Wie serielles Signal aus Zeichenfolge zu generieren?
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.
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);