如何从字符串生成串行信号?

时间:2009-11-27 12:00:45

标签: string binary signals vhdl

如果给定固定延迟或时钟信号,如何将二进制字符串表示的数据(例如"01011101000100111",长度可变)发送到std_logic信号?我希望这个用于测试平台,所以我希望能够尽可能轻松地随意更改二进制字符串,所以我正在考虑使用generate

2 个答案:

答案 0 :(得分:2)

我谦卑地提出了一个固定延迟版本(毕竟它是testbench代码......)。我已经检查了这个并且它有效,但我在verilog中更舒服,所以这段代码可能不是最好的VHDL ......

--
-- 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;

答案 1 :(得分:0)

添加Marty的好答案:

要将其设为时钟,请将wait for 10 ns;更改为wait until rising_edge(clk);