Vhdl &引用;UUU“;ModelSim中特定输出的输出
诚挚的问候,你的帮助使我受益匪浅。我有这样的情况: 我正在制作一个ALU,可以进行加法、减法、乘法(3X2位)和逻辑运算。为此,我使用了库“IEEE.std_logic_arith.all”、“IEEE.std_logic_unsigned.all”和“IEEE.numeric_std.all”;我分别做了乘数,将其包含在项目中,然后“调用”它 问题在于乘数。我将向您展示的代码是编译的,但是,RTL模拟(在ModelSim中)给出了以下答案: “uuu”输出正好是s es“010”时的输出,即乘法器输出 代码如下:Vhdl &引用;UUU“;ModelSim中特定输出的输出,vhdl,modelsim,quartus,Vhdl,Modelsim,Quartus,诚挚的问候,你的帮助使我受益匪浅。我有这样的情况: 我正在制作一个ALU,可以进行加法、减法、乘法(3X2位)和逻辑运算。为此,我使用了库“IEEE.std_logic_arith.all”、“IEEE.std_logic_unsigned.all”和“IEEE.numeric_std.all”;我分别做了乘数,将其包含在项目中,然后“调用”它 问题在于乘数。我将向您展示的代码是编译的,但是,RTL模拟(在ModelSim中)给出了以下答案: “uuu”输出正好是s es“010”时的输出,即
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
use ieee.numeric_std.all;
entity alu is
port(
s: in std_logic_vector (2 downto 0);
a: in std_logic_vector (4 downto 0);
b: in std_logic_vector (4 downto 0);
ci: in std_logic;
co: out std_logic;
r: out std_logic_vector (4 downto 0);
f: out std_logic_vector (4 downto 0)
);
end alu;
architecture comportamiento of alu is
component multiplicador
port(
a: in std_logic_vector (2 downto 0);
b: in std_logic_vector (1 downto 0);
ci: in std_logic;
co: out std_logic;
r: out std_logic_vector (4 downto 0)
);
end component;
signal ri: std_logic_vector (4 downto 0);
begin
with s select
f<= a+b when "000",
a-b when "001",
ri when "010",
a or b when "011",
a xor b when "100",
a and b when "101",
"00000" when others;
end comportamiento;
ieee库;
使用ieee.std_logic_1164.all;
使用ieee.std_logic_arith.all;
使用ieee.std_logic_unsigned.all;
使用ieee.numeric_std.all;
实体alu是
港口(
s:标准逻辑向量(2到0);
a:标准逻辑向量(4到0);
b:标准逻辑向量(4到0);
ci:标准逻辑;
co:输出标准逻辑;
r:输出标准逻辑向量(4到0);
f:输出标准逻辑向量(4到0)
);
末端alu;
alu的架构组件是
组件乘法器
港口(
a:标准逻辑向量(2到0);
b:标准逻辑向量(1到0);
ci:标准逻辑;
co:输出标准逻辑;
r:输出标准逻辑向量(4到0)
);
端部元件;
信号ri:std_逻辑_向量(4到0);
开始
用s选择
fy您的代码没有显示实体实例化,只有一个组件声明。因此,ri
不与任何内容连接,并初始化为“uuu”
,与您在模拟中得到的完全相同。你需要实例化乘数。哇,是的,我的错。如何在“with…s select…”中调用乘数输出。。。f@Tricky(没有组件实例化,甚至没有带有保留字实体的组件。)如何在“with…s select…”中调用乘数输出。。。fI从那里读出一些东西并给它分配一个信号,因为“r”是“out”,代码:信号ri:std_逻辑_向量(4到0);开始r