Vhdl &引用;UUU“;ModelSim中特定输出的输出

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”时的输出,即

诚挚的问候,你的帮助使我受益匪浅。我有这样的情况:

我正在制作一个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