Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
相邻语句之间的VHDL进程延迟_Vhdl_Delay_Simulation_Xilinx_Test Bench - Fatal编程技术网

相邻语句之间的VHDL进程延迟

相邻语句之间的VHDL进程延迟,vhdl,delay,simulation,xilinx,test-bench,Vhdl,Delay,Simulation,Xilinx,Test Bench,我正在用VHDL做实验,遇到了一个我无法摆脱的延迟 我试图在一个测试台上编程一个非常简单的3输入与门,该测试台可以循环使用AND3和后续输出的所有可能输入。我将一个输入设为上限,以使其在模拟中的计算更简单 我运行了一个模拟,在3个输入的8个值之间循环(忽略第3个输入),但是,在迭代数字和将数字分配给输入之间,尽管这些语句紧跟其后,但会有100ns的延迟-为什么?迭代之间的100ns延迟是可以理解的,因为这是故意的,但是我不明白为什么下面所示的两行按顺序运行时会有100ns的延迟 我把定义,测试

我正在用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;