Hallo Hat jemanden ein Ahnung was für ein Schalter VHDL Code hier unter für geeignet ist? Ich dachte das sollte für ein „4-to-2 encoder“ sein…..aber mein Freund glaubt das nichts. Danke in voraus /Peter architecture rtl of D2b is begin process (Ma, Mb, Mc, Md) variable out_vector : std_logic_vector(1 downto 0); begin if Ma= ’1’ then out_vector := ”11"; elsif Mc = ’1’ then out_vector := ”10"; elsif Mb = ’1’ then out_vector := ”01"; elsif Md= ’1’ then out_vector := ”01"; end if; A1 <= out_vector(1); A0 <= out_vector(0); end process; end D2b;
Das ist ein Prioritätsencoder (priority encoder). Allerdings mit Fehler beim Md... :-( Mit dieser Korrektur:
1 | :
|
2 | elsif Mb = '1' then |
3 | out_vector := "01"; |
4 | elsif Md = '1' then |
5 | out_vector := "00"; -- !!! |
6 | end if; |
7 | :
|
Kommt dann das heraus: MA MB MC MD A10 1 x x x 11 0 1 x x 10 0 0 1 x 01 0 0 0 1 00 Und ganz böse ist, dass das Ding bei MD..MA = '0' den letzten Zustand latcht.
mach dir doch eine Wertetabelle ma mc mb md A1 A0 1 x x x 1 1 0 1 x x 1 0 0 0 1 x 0 1 0 0 0 1 0 1
Danke Lothar und lalala Ich dachte auch erst das es ein Prioritätsencoder ist, aber wenn Mb und Md beide = "01" dachte ich habe das Total falsch verstanden. Jetzt verstehe ich das die Aufgabe hat ein Fehler. I habe gerade mit den VHDL angefangen :-)… /Peter
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.