also ich bekomme ein ascii-Zeichensatz uebergeben und moechte jedes Element dieses Zeichensatzes in einen entsprechenden Bitvektor konvertieren, damit ich diesen Bitvektor seriell ausgeben kann...das ist so mein primaeres Ziel, der Rest drumherrum ist spielrei...
Gruss Steffen
Re: paralleles Singal seriell ausgeben
also theoretisch funktioniert mein prog jetzt, habe aber um es endgueltig simulieren zu koennen ein prob...
in meiner testbench definiere ich ein Signal vom typ string ("Hall") moechte dies in meinem Programm aber an ein Signal uebergeben, dieses signal ist auch vom typ string nimmt aber nie den wert von dem testbench signal an, woranb liegt das...
MfG Steffen
Re: paralleles Singal seriell ausgeben
Hallo Steffen
1. Wie erfolgt die Übernahme eines Strings in einem digitalen System? Ich denke, dass dazu zwischen zwei digitalen Systemen auch nur ein binärer serieller oder paralleler Datenstrom fließt. Es sei denn, dass der String innerhalb eines Systems übergeben wird. In diesem Fall wandelt das Synthesetool das automatisch im Hintergrund. 2. Erfolgt die Übernahme des Strings in einem Prozess? Vielleicht wird der Prozess nicht aktiviert.
Sven
Re: paralleles Singal seriell ausgeben
Der String wird innerhalb eines Systems übergeben, aber die Vorgabe ist eben, dass ich den String direkt verarbeiten soll...
Der Prozess wird eigentlich aktiviert, aber werde das nochmal genau ergründen und Dir dann von meinem Erfolg oder Misserfolg berichten..
Gruss Steffen
Re: paralleles Singal seriell ausgeben
So habe es hinbekommen, fuer die die es interessiert, hier der Quelltext.
ausgabe: PROCESS (CLK,zeichenkette) VARIABLE sendebitueber : BIT_VECTOR (0 TO 15); VARIABLE j,x,y,i : NATURAL:= 0; VARIABLE zeichen : STRING (1 TO 4); VARIABLE z : INTEGER:=1; begin
IF (z/=5) THEN sendebitueber := test(zeichenkette,z); IF (j /= 16) THEN IF(clk'event AND CLK ='1') THEN cs <= '0'; END IF; IF cs = '0' AND sendeid = '1' AND fehlerhint = '0' THEN IF(clk'event AND CLK ='1') THEN din <= sendebitueber(j); j := j+1; END IF; END IF; ELSE z := z+1; j := 0; cs <= '1'; END IF; END IF;