在测试台上运行真值表的循环的VHDL
如何在VHDL测试台上运行多路复用器的真值表。我走对了吗在测试台上运行真值表的循环的VHDL,vhdl,Vhdl,如何在VHDL测试台上运行多路复用器的真值表。我走对了吗 sel <= "00" after 100 ns, "01" after 200 ns, "10" after 300 ns, "11" after 400; process (sel) variable p :STD_LOGIC_VECTOR(3 downto 0); begin p := "0000" for j in "0001" to "1111" loop if j /= "11
sel <= "00" after 100 ns, "01" after 200 ns, "10" after 300 ns, "11" after 400;
process (sel)
variable p :STD_LOGIC_VECTOR(3 downto 0);
begin
p := "0000"
for j in "0001" to "1111" loop
if j /= "1111" then p:= p + 1;
wait for 5 ns;
end loop ;
end process;
x <= p;
sel将sel
(选择)和p
(数据)的生成保持在一起,因为这更容易
如果这些未在不同的时间解耦,则以正确的时间生成
分配或处理。可以根据自然范围创建回路。这个
然后,流程可以是:
library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
...
process is
begin
for sel_loop in 0 to 2 ** sel'length - 1 loop -- 0 to 3 for sel'length = 2
for p_loop in 0 to 2 ** p'length - 1 loop -- 0 to 15 for p'length = 4
sel <= std_logic_vector(to_unsigned(sel_loop, sel'length));
p <= std_logic_vector(to_unsigned(p_loop, p'length));
wait for 5 ns;
end loop;
end loop;
wait;
end process;
ieee库;
使用ieee.std_logic_1164.all;
使用ieee.numeric_std.all;
...
过程是
开始
对于0到2的sel_循环**sel'length-1循环--0到3的sel'length=2
对于0到2的p_循环**p'length-1循环--0到15的p'length=4
sel将sel
(选择)和p
(数据)的生成保持在一起,因为这更容易
如果这些未在不同的时间解耦,则以正确的时间生成
分配或处理。可以根据自然范围创建回路。这个
然后,流程可以是:
library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
...
process is
begin
for sel_loop in 0 to 2 ** sel'length - 1 loop -- 0 to 3 for sel'length = 2
for p_loop in 0 to 2 ** p'length - 1 loop -- 0 to 15 for p'length = 4
sel <= std_logic_vector(to_unsigned(sel_loop, sel'length));
p <= std_logic_vector(to_unsigned(p_loop, p'length));
wait for 5 ns;
end loop;
end loop;
wait;
end process;
ieee库;
使用ieee.std_logic_1164.all;
使用ieee.numeric_std.all;
...
过程是
开始
对于0到2的sel_循环**sel'length-1循环--0到3的sel'length=2
对于0到2的p_循环**p'length-1循环--0到15的p'length=4
我认为你的思路是正确的,但是我已经12年没有编写VHDL了。我认为你的思路是正确的,但是我已经12年没有编写VHDL了。