hallo zusammen, entityfktab is port(x4,x3,x2,x1 : in bit; y : out bit); end; architecture demo of fktab is begin with bit_vector'(x4,x3,x2,x1) select y <='1' when"0001", '1' when"0010", '1' when"0100", '1' when"0111", '1' when"1000", '1' when"1011", '1' when"1101", '1' when"1110", '0' when others; end demo; was hat das apostroph nach dem bibtvector zu sagen, oder ist das einfach fest? und dann Unterschied zwischen bit_vector und std_logic_vector?
> apostroph Kennzeichnet ein Attribut. z.B. 'event, 'left , 'right, 'range Such mal vhdlqrc.pdf > und dann Unterschied zwischen bit_vector und std_logic_vector? Ein bit kann 0 oder 1 werden. std_logic dagegen ist 9-wertig, da gibt es zu 0 und 1 auch Z, U, X, H, L, W, - Ein bit_vector ist ein Vektor aus Bits, ein std_logic_vector ist ein Vektor aus std_logic. In der Synthese für ein FPGA ist der Zustand Z manchmal recht brauchbar, insbesondere, wenn ein bidirektionaler IO-Port beschreiben werden soll.
vielen dank für die schnelle und gute antwort! kennst du eventuell einen guten anleitung bzw. buch für VHDL? können sie mir dann kurz den quellcode erläutern? signalinput_sig, output_sig, clk, reset: bit; .... --D-FF ohne zusätzliche Eingänge process(clk) begin if(clk’event and clk=’1’) then output_sig<= input_sig; end if; end process; --D-FF mit synchronem Reset process(clk) begin if(clk’eventand clk= ’1’) then ifreset= ’1’then output_sig<= ’0’; else output_sig<= input_sig; end if; end if; end process; ich weiss zwar bei der abfrage nmit clk dass es nach positvien taktflanke abfrägt, aber wie kann ich den ganzen ausdruck verstehen clk’event and clk=’1’?
> kennst du eventuell einen guten anleitung bzw. buch für VHDL? Ja: Reichardt/Schwarz VHDL-Synthese > wie kann ich den ganzen ausdruck verstehen > clk’event and clk=’1’? Das Attrigut 'event bedeutet irgendeine Änderung eines Signals (hier clk). Zusammen mit clk='1' wird damit eine steigende Flanke definiert: Wenn eine Änderung am clk passiert und danach clk = '1' ist, dann ist das eine steigende Flanke. Damit ist allerdings auch eine Flanke von 'X' nach '1' oder eine Flanke von 'H' nach '1' eine steigende Flanke. Besser ist es daher, die Funktion rising_edge() zu verwenden. > können sie mir dann kurz den quellcode erläutern? Im Beitrag "Re: Hardware mit VHDL "richtig" beschreiben." finden sich einige Beschreibungen und die Syntheseergebnisse dazu.
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.