Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/71.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测试台不更改输出ALU 32位_Vhdl_Alu_Test Bench - Fatal编程技术网

VHDL测试台不更改输出ALU 32位

VHDL测试台不更改输出ALU 32位,vhdl,alu,test-bench,Vhdl,Alu,Test Bench,你看,我已经用modelsim在vhdl上描述了一个ALU,但是测试台似乎没有更新解决方案,当我看到模拟时,电路32位响应总是说“uuuuuuuu”我不知道我在测试台上写错了什么,而且编译器上有一个关于电路响应的警告,上面说 **警告:(vsim-8683)未初始化的输出端口/alu_tb/alu_测试/res(32向下至0)没有驱动程序。 该端口将为信号网络提供价值(uuuuuuuu) 下面是测试台代码: library ieee; use ieee.std_logic_1164.all; u

你看,我已经用modelsim在vhdl上描述了一个ALU,但是测试台似乎没有更新解决方案,当我看到模拟时,电路32位响应总是说
“uuuuuuuu”
我不知道我在测试台上写错了什么,而且编译器上有一个关于电路响应的警告,上面说

**警告:(vsim-8683)未初始化的输出端口/alu_tb/alu_测试/res(32向下至0)没有驱动程序。 该端口将为信号网络提供价值(uuuuuuuu)

下面是测试台代码:

library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;

entity ALU_tb is        
end ALU_tb;

architecture bhv_ALU_tb of ALU_tb is
component ALU
    port(
        a, b: in std_logic_vector(31 downto 0);
        c: in std_logic;
        s: in std_logic_vector(3 downto 0);
        res: out std_logic_vector(32 downto 0));
end component;

signal a, b: std_logic_vector(31 downto 0);
signal c: std_logic;
signal s: std_logic_vector(3 downto 0);
signal re: std_logic_vector(32 downto 0);

begin 
    ALU_test: ALU port map (a => a, b => b, c => c, s => s, res => re);
process begin
    b <= "00000000000010100111010100011110";
    a <= "00000000011010000100110011101110";
    c <= '0';
    s <= "1111";
    wait for 2 ns;
    b <= "00000000000010100111010100011110";
    a <= "00000000011010000100110011101110";
    c <= '0';
    s <= "0100";
    wait for 2 ns;
    s <= "0000";
    wait for 2 ns;
    s <= "0001";
    wait for 2 ns;
    s <= "0010";
    wait for 2 ns;
    s <= "0011";
    wait for 2 ns;
    s <= "0100";
    wait for 2 ns;
    s <= "0101";
    wait for 2 ns;
    s <= "0110";
    wait for 2 ns;
    s <= "0111";
    wait for 2 ns;
    s <= "1000";
    wait for 2 ns;
    s <= "1001";
    wait for 2 ns;
    s <= "1010";
    wait for 2 ns;
    s <= "1011";
    wait for 2 ns;
    s <= "1100";
    wait for 2 ns;
    s <= "1101";
    wait for 2 ns;
    s <= "1110";
    wait for 2 ns;
    s <= "1111";
    wait for 2 ns;
end process;
end bhv_ALU_tb;
ieee库;
使用ieee.std_logic_1164.all;
使用ieee.std_logic_arith.all;
使用ieee.std_logic_unsigned.all;
实体ALU_tb是
结束ALU_-tb;
ALU_tb的体系结构bhv_ALU_tb是
成分铝
港口(
a、 b:标准逻辑向量(31到0);
c:标准逻辑;
s:标准逻辑向量(3到0);
res:out标准逻辑向量(32向下到0);
端部元件;
信号a、b:标准逻辑向量(31向下至0);
信号c:标准逻辑;
信号s:std_逻辑_向量(3到0);
信号re:std_逻辑_向量(32向下至0);
开始
ALU_测试:ALU端口映射(a=>a,b=>b,c=>c,s=>s,res=>re);
过程开始
b

use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
坏。。不要使用。你甚至不需要把它们放在这个文件里。 如果您需要算术,请使用
numeric\u std

然后:错误出现在组件
ALU
,因为它应该“驱动”
res
。但是,由于你没有张贴代码,我们不能帮助你(尚未)

p、 目前,您不再需要在VHDL中定义组件。你可以写:

ALU_test: entity work.ALU port map
首先

use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
坏。。不要使用。你甚至不需要把它们放在这个文件里。 如果您需要算术,请使用
numeric\u std

然后:错误出现在组件
ALU
,因为它应该“驱动”
res
。但是,由于你没有张贴代码,我们不能帮助你(尚未)

p、 目前,您不再需要在VHDL中定义组件。你可以写:

ALU_test: entity work.ALU port map

这个问题的答案在组件内部-
res
是out值,因此如果它没有连接到组件内部的任何东西,它就不会从模块内部驱动。这个问题的答案在组件内部-
res
是out值,因此如果它没有连接到组件内部的任何东西,它不是从模块内部驱动的。