VHDL-Forum

 
You are not logged in.
LoginLogin Join for freeJoin for free
MessagesMessages MembersMembers SearchSearch HelpHelp
VotesVotes FilesFiles CalendarCalendar BookmarksBookmarks
VHDL-Forum
Found 8 results
Search took 0,02 seconds.
VHDL-Forum First   Previous   Next   Last
   Subject   Author   Datum 
No new posts 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; Gruss Steffen
code_HH 2004-09-02, 01:26 PM CET
No new posts 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
code_HH 2004-08-30, 12:09 PM CET
No new posts 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
code_HH 2004-08-19, 01:17 PM CET
No new posts Re: paralleles Singal seriell ausgeben
Moin, 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
code_HH 2004-08-19, 09:28 AM CET
No new posts Re: paralleles Singal seriell ausgeben
Moin, also ich habe das Programm mit dem XEMACS Editor geschrieben und mit vsim semuliert, ich erhalte keine Fehler mehr, es treten nur bei der Simulation Fehler im Signalverlauf auf. Ich habe bereits selbst festgestellt, dass die Umsetzung in Hardware zu 90% nicht möglich ist, bin gerade dabei das gesamte Programm zu ändern. Danke für Deine Mühe... Werde ich über meine Erfolge, Misserfolge auf dem laufenden halten. Gruss Steffen
code_HH 2004-08-16, 08:21 AM CET
No new posts Re: paralleles Singal seriell ausgeben
LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; ENTITY led_config IS PORT (ars : IN STD_LOGIC; clk : IN STD_LOGIC; config : IN STD_LOGIC; cs : IN BIT; fehlerhint : IN STD_LOGIC; fehlertyp : in INTEGER; sendeid : IN BIT; sender : IN string; din : OUT BIT); END led_config; ARCHITECTURE rtl OF led_config IS TYPE zustaende IS (anzeige, configurat, fehler, ruhe); SIGNAL zustand, folgezustand :zustaende; SIGNAL fehlerueber : BIT_VECTOR( 0 to 7 ); SIGNAL sendertemp : string(1 to 4); FUNCTION TEST (zeichenkette : string(1 TO 4)) RETURN bit_vector IS variable i,y,count,l, count1, count2 : integer; variable zeichen : string(1 to 79):= ('0', '1', '2', '3', '4', '5', '6', '7','8', '9', ':', ';', '<', '=', '>', '?','@', 'A', 'B', 'C', 'D', 'E', 'F', 'G','H', 'I', 'J', 'K', 'L', 'M', 'N', 'O','P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W','X', 'Y', 'Z', '[', '\', ']', '^', '_','`', 'a', 'b', 'c', 'd', 'e', 'f', 'g','h', 'i', 'j', 'k', 'l', 'm', 'n', 'o','p', 'q', 'r', 's', 't', 'u', 'v', 'w','x', 'y', 'z', '{', '|', '}', '~'); variable a : integer:= 0; variable senderbit : bit_vector(0 to 7); variable sender1 : natural := 0; variable sendebitueber : bit_vector(0 to 7); BEGIN i := 1;y:=1; l:= 0; a := 1; count:= 0; count1 := 1; count2 := 1; l:= zeichenkette'length; FOR i IN 1 TO l LOOP FOR y IN 1 TO 79 LOOP IF (zeichenkette(count1)= zeichen(count2)) THEN count := (48+count2); IF ((count rem 2)= 0) THEN senderbit(0) := '0'; ELSE senderbit(0) := '1'; sender1 := count/2; END IF; WHILE (sender1 /= 0) LOOP IF((sender1 rem 2) = 0) then senderbit(a) := '0' ; ELSE senderbit(a) := '1'; sender1 := sender1 -1; END IF; sender1 := (sender1/ 2); a:= a+1; END LOOP; sendebitueber := senderbit; RETURN sendebitueber; count2 := count2+1; ELSE sendebitueber := ('0','1','0','1','1','0','0','0'); RETURN sendebitueber; count2 := count2+1; END IF; END LOOP; count1 := count1+1; END LOOP; END FUNCTION test; BEGIN sendertemp <= sender; fehlerpro: PROCESS ( fehlerhint, fehlertyp) VARIABLE fehlertemp : BIT_VECTOR (0 to 7); BEGIN IF fehlerhint = '1' AND (fehlertyp = 1234 ) THEN fehlertemp := ('0','0','0','0','0','0','0','1'); END IF; IF fehlerhint = '1' AND (fehlertyp = 5678 ) THEN fehlertemp := ('0','0','0','0','0','1','0','0'); END IF; fehlerueber <= fehlertemp; END PROCESS fehlerpro; ausgabe: PROCESS (clk,sendertemp) variable sendebituebertr : bit_vector (0 to 7); variable j,x,y,i : natural:= 0; BEGIN x:= (sendebituebertr'length)-1; sendebituebertr := test(sendertemp); IF (j/=8) THEN IF cs = '0' AND sendeid = '1' AND fehlerhint = '0' THEN IF ( rising_edge(clk)) THEN din <= sendebituebertr(x-j); j:= j + 1; ELSIF (clk'event and clk = '0') THEN din <= '0'; END IF; END IF; else j := 0; END IF; y := fehlerueber'length; IF cs = '0' AND fehlerhint = '1' THEN IF ( CLK'EVENT AND CLK ='1') THEN din <= fehlerueber((y-1)-i); i:= i + 1; ELSIF (cLK'EVENT AND CLK= '0') THEN din <= '0'; END IF; END IF; END PROCESS ausgabe; zentrale_fsm: BLOCK BEGIN nextzustand : PROCESS (config, fehlerhint, sendeid, zustand) BEGIN CASE zustand IS WHEN ruhe => IF fehlerhint = '1' THEN folgezustand <= fehler; END IF; IF config = '1' THEN folgezustand <= configurat; ELSE folgezustand <= ruhe; END IF; IF ars = '1' THEN folgezustand <= ruhe; END IF; WHEN configurat => IF fehlerhint = '1' THEN folgezustand <= fehler; END IF; IF sendeid = '1' THEN folgezustand <= anzeige; ELSE folgezustand <= configurat; END IF; IF ars = '1' THEN folgezustand <= ruhe; END IF; WHEN anzeige => IF fehlerhint = '1' THEN folgezustand <= fehler; END IF; IF config = '1' AND sendeid = '0' THEN folgezustand <= configurat; END IF; IF config = '0' AND sendeid = '1' THEN folgezustand <= anzeige; ELSE folgezustand <= ruhe; END IF; IF ars = '1' THEN folgezustand <= ruhe; END IF; WHEN fehler => IF fehlerhint = '0' AND sendeid = '0' AND config = '0' THEN folgezustand <= ruhe; END IF; IF fehlerhint = '0' AND sendeid = '0' AND config = '1' THEN folgezustand <= configurat; END IF; IF fehlerhint = '0' AND sendeid = '1' AND config = '0' THEN folgezustand <= anzeige; ELSE folgezustand <= fehler; END IF; IF ars = '1' THEN folgezustand <= ruhe; END IF; END CASE; END PROCESS nextzustand; END BLOCK zentrale_fsm; Moin zusammen, koennt ihr euch mal den quelltext anschauen und mir sagen warum count zwei nicht hochzaehlt und warum wenn ich zeichen mit zeichenkette vergleiche immer nix passiert.. Danke
code_HH 2004-08-10, 04:59 PM CET
No new posts Re: paralleles Singal seriell ausgeben
Ich danke Euch, werde das gleich mal testen und Euch über meine Erfolge auf dem Laufenden halten.. Thx :)
code_HH 2004-08-04, 11:54 AM CET
No new posts paralleles Singal seriell ausgeben
Hallo zusammen, ich versuche einen Bit Vektor seriell auszugeben, komischerweise übernimmt mein Ausgangssignal nur einen Wert und gibt den dauerhaft aus. Woran könnte das liegen, könnt Ihr mir vielleicht helfen? Danke
code_HH 2004-08-03, 05:48 PM CET
 
 
8 of 8 results First   Previous   Next   Last
Search

powered by carookee.com - group communication for you

Design © trevorj