我正在创建一个简单的VHDL代码,它应该使用8个输入(每个输入4个)来创建两个4位二进制数(A和B),然后根据按下的三个按钮中的一个,在A和B上执行一个逻辑函数,或者是AND,OR,或者XOR。
我担心的是,我试图将多个输入信号映射到单个端口,将多个输出信号映射到单个端口,但我的困惑在于,我成功地实现了一个非常类似的描述,没有任何错误,我将在最后显示无错误描述。如果我的怀疑是正确的,请有人向我解释为什么错误不会发生在下面的代码?
有错误的代码:
use IEEE.STD_LOGIC_1164.ALL;
entity Lab_2_Source_File is
port(A : in STD_LOGIC_VECTOR(3 downto 0);
B : in STD_LOGIC_VECTOR(3 downto 0);
btnd : in STD_LOGIC;
btnl : in STD_LOGIC;
btnr : in STD_LOGIC;
led : out STD_LOGIC_VECTOR(3 downto 0)
);
end Lab_2_Source_File;
architecture Behavioral of Lab_2_Source_File is
begin
process(btnd)
begin
led(0) <=A(0) and B(0);
led(1) <=A(1) and B(1);
led(2) <=A(2) and B(2);
led(3) <=A(3) and B(3);
end process;
process(btnl)
begin
led(0) <=A(0) or B(0);
led(1) <=A(1) or B(1);
led(2) <=A(2) or B(2);
led(3) <=A(3) or B(3);
end process;
process(btnr)
begin
led(0) <=A(0) xor B(0);
led(1) <=A(1) xor B(1);
led(2) <=A(2) xor B(2);
led(3) <=A(3) xor B(3);
end process;
end Behavioral;
我相应地修改了约束文件
set_property -dict { PACKAGE_PIN T14 IOSTANDARD LVCMOS25 } [get_ports { led }]; #IO_L15P_T2_DQS_13 Sch=led[0]
## Switches
set_property -dict { PACKAGE_PIN E22 IOSTANDARD LVCMOS12 } [get_ports { A }]; #IO_L22P_T3_16 Sch=sw[0]
set_property -dict { PACKAGE_PIN F21 IOSTANDARD LVCMOS12 } [get_ports { B }]; #IO_25_16 Sch=sw[1]
这是错误
DRC MDRV-1多驱动网: Net led_OBUF有多个驱动程序:led_OBUF_inst_I_1/O,led_OBUF_inst_i_3/O和led_OBUF_inst_i_2/O。
第二个代码,没有错误。我展示了这段代码,因为我不确定如何将4个输入(3 downto 0)
映射到单个输入。我已经使用约束文件中的原始端口名命名了这些端口。
port(sw0 : in STD_LOGIC_VECTOR(3 downto 0);
led0: out STD_LOGIC_VECTOR(3 downto 0)
);
end Lab_2_Source_File;
architecture Behavioral of Lab_2_Source_File is
begin
process(sw0)
begin
led0<=sw0;
end process;
end Behavioral;
如前所述,这个错误使我想到,这是由于试图将多个信号映射到led输出,然而,尽管这是合理的,但我感到困惑,因为当我将多个信号映射到其他代码的输出时,不会发生相同的错误。有人能帮我解释一下发生了什么吗?
发布于 2021-01-01 19:54:26
错误使我想到,这是由于试图将多个信号映射到led输出
这是正确的。
然而,尽管这是有意义的,但我感到困惑,因为当我将多个信号映射到其他代码的输出时,不会出现相同的错误。
在最后一个例子中,
led0<=sw0;
led0(0)
的唯一驱动程序是sw0(0)
,led0(1)
的唯一驱动程序是sw0(1)
,依此类推。因此,一个网没有多个驱动程序,正如第一个例子所示,这就是没有错误的原因。
https://stackoverflow.com/questions/65524860
复制相似问题