相邻语句之间的VHDL进程延迟
我正在用VHDL做实验,遇到了一个我无法摆脱的延迟 我试图在一个测试台上编程一个非常简单的3输入与门,该测试台可以循环使用AND3和后续输出的所有可能输入。我将一个输入设为上限,以使其在模拟中的计算更简单 我运行了一个模拟,在3个输入的8个值之间循环(忽略第3个输入),但是,在迭代数字和将数字分配给输入之间,尽管这些语句紧跟其后,但会有100ns的延迟-为什么?迭代之间的100ns延迟是可以理解的,因为这是故意的,但是我不明白为什么下面所示的两行按顺序运行时会有100ns的延迟 我把定义,测试台放在下面 非常感谢相邻语句之间的VHDL进程延迟,vhdl,delay,simulation,xilinx,test-bench,Vhdl,Delay,Simulation,Xilinx,Test Bench,我正在用VHDL做实验,遇到了一个我无法摆脱的延迟 我试图在一个测试台上编程一个非常简单的3输入与门,该测试台可以循环使用AND3和后续输出的所有可能输入。我将一个输入设为上限,以使其在模拟中的计算更简单 我运行了一个模拟,在3个输入的8个值之间循环(忽略第3个输入),但是,在迭代数字和将数字分配给输入之间,尽管这些语句紧跟其后,但会有100ns的延迟-为什么?迭代之间的100ns延迟是可以理解的,因为这是故意的,但是我不明白为什么下面所示的两行按顺序运行时会有100ns的延迟 我把定义,测试
--ENTITY AND3 (3 input AND gate) --
library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
entity and3 is
port(
a, b, c : in std_logic;
o : out std_logic
);
end entity and3;
architecture RTL of and3 is
begin
o <= (a and b and c) after 5 ns;
end architecture RTL;
--TESTBENCH FOR AND3 with 3rd input left open (tied high)
library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
entity testAnd3 is
end entity testAnd3; -- no ports for a test bench
architecture io of testAnd3 is
component And3 is
port(x, y, z : in std_logic:= '1'; --Sets default value if left open;
o : out std_logic
);
end component And3;
signal a, b, c : std_logic:='0';
signal iteration : unsigned(2 downto 0):= (others => '0');
begin
g1 : And3 port map(x => a, y => b, z => open, o => c); --map signals to And ports
stim_process : process
begin
iteration <= iteration + 1; --//100 ns delay between here and next line!?
a <= iteration(0);
b <= iteration(1);
wait for 100 ns;
end process;
end architecture io;
——实体和3(3输入和门)--
图书馆ieee;
使用ieee.std_logic_1164.all;
使用ieee.numeric_std.all;
实体3是
港口(
a、 b,c:在标准逻辑中;
输出标准逻辑
);
终端实体和3;
and3的RTL体系结构是
开始
o‘0’;
开始
g1:And3端口映射(x=>a,y=>b,z=>open,o=>c)--将信号映射到和端口
stim_过程:过程
开始
迭代问题是问题是问题是问题是尝试了所有3种实验解决方案-只有移动迭代的中间一种不起作用-这不要紧,但出于好奇,你知道为什么不?否则非常感谢(帮了我的理解没完)!你是对的,波形是一样的。然而,不同之处在于,当使用时,迭代更新的delta延迟
尝试了所有3种实验解决方案-只有移动迭代的中间一种不起作用-这并不严重,但出于好奇,你知道为什么不起作用吗?否则非常感谢(帮了我的理解没完)!你是对的,波形是一样的。然而,不同之处在于,当使用时,迭代更新的delta延迟
尝试了所有3种实验解决方案-只有移动迭代的中间一种不起作用-这并不严重,但出于好奇,你知道为什么不起作用吗?否则非常感谢(帮了我的理解没完)!你是对的,波形是一样的。然而,不同之处在于,当使用时,迭代更新的delta延迟
尝试了所有3种实验解决方案-只有移动迭代的中间一种不起作用-这并不严重,但出于好奇,你知道为什么不起作用吗?否则非常感谢(帮了我的理解没完)!你是对的,波形是一样的。然而,不同之处在于使用
iteration <= iteration + 1;