Frage

Wie sende Daten I durch eine binäre Zeichenfolge dargestellt (z.B. "01011101000100111", Länge ist variabel) auf ein Signal std_logic entweder feste Verzögerung oder Taktsignal gegeben? Ich möchte dies für einen Prüfstand, so würde ich mag willkürlich mit so wenig Aufwand wie möglich die binäre Zeichenfolge in der Lage sein, zu ändern, so dass ich denke an generate verwenden.

War es hilfreich?

Lösung

Ich stelle demütig eine feste Verzögerungs Version (es ist Testbench-Code, nachdem alle ...). Ich habe dies geprüft und es funktioniert, aber ich bin noch komfortabler in Verilog sodass dieser Code nicht die netteste VHDL auch immer sein mag ...

--
-- Clocking out bitstream
--

library ieee;
use ieee.std_logic_1164.all;

entity stackoverflow_strings is
end stackoverflow_strings;

-- this is testbench code, so we can use "wait"s inside a "for" loop.
architecture rtl of stackoverflow_strings is
signal my_output : std_ulogic;
begin

shift_data : process is
constant my_bits : std_logic_vector := B"100101010000100010101";
begin
   my_output <= '0';
   wait for 10 ns; 
   for i in my_bits'range loop
      my_output <= my_bits(i);
      wait for 10 ns;
   end loop; 

   wait;
end process shift_data;

end rtl;

Andere Tipps

Hinzufügen zu Martys feiner Antwort:

Um es getaktet zu machen, die wait for 10 ns;s ändern wait until rising_edge(clk);

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top