在给定固定延迟或时钟信号的情况下,如何将二进制字符串表示的数据(例如"01011101000100111"
,长度是可变的)发送到 std_logic 信号?我想要这个用于测试平台,所以我希望能够以尽可能少的麻烦任意更改二进制字符串,所以我正在考虑使用generate
.
user196187
问问题
1510 次
2 回答
2
我谦虚地介绍一个固定延迟的版本(毕竟它是测试台代码......)。我已经检查过了,它可以工作,但我更喜欢 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;
于 2009-11-27T18:48:38.173 回答
0
添加到马蒂的好答案:
要使其计时,请将wait for 10 ns;
s 更改为wait until rising_edge(clk);
于 2009-12-02T12:00:08.037 回答