我是VHDL的新手,尝试将地图端口映射到地面。端口映射到VHDL地面
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
---- Uncomment the following library declaration if instantiating
---- any Xilinx primitives in this code.
--library UNISIM;
--use UNISIM.VComponents.all;
entity msPC4 is
Port (b : in STD_LOGIC_VECTOR (3 downto 0);
clk : in STD_LOGIC;
reset : in STD_LOGIC;
a : out STD_LOGIC_VECTOR (3 downto 0);
co : out STD_LOGIC);
end msPC4;
architecture Structure of msPC4 is
component msdff4
Port (d : in STD_LOGIC_VECTOR (3 downto 0);
clk : in STD_LOGIC;
q : out STD_LOGIC_VECTOR (3 downto 0));
end component;
component msFA4bit
Port (a : in STD_LOGIC_VECTOR (3 downto 0);
b : in STD_LOGIC_VECTOR (3 downto 0);
ci : in STD_LOGIC;
s : out STD_LOGIC_VECTOR (3 downto 0);
co : out STD_LOGIC);
end component;
component ms21mux4
Port (d1 : in STD_LOGIC_VECTOR (3 downto 0);
d0 : in STD_LOGIC_VECTOR (3 downto 0);
s : in STD_LOGIC;
z : out STD_LOGIC_VECTOR (3 downto 0));
end component;
signal w0, w1, w2, w3: STD_LOGIC_VECTOR (3 downto 0);
signal w4 : STD_LOGIC;
w4 <= '0';
w3 <= '0000';
begin
gmsPC4g1: msdff4 port map (w1,clk,w2);
gmsPC4g2: msFA4bit port map (w2,b,w4,w0,co);
gmsPC4g3: ms21mux4 port map (w0,w3,clk,w1);
a <= w2;
end Structure;
所以,如果你会注意到,我有3个组件,一些信号来连接一切等。
我真正想要的是将信号w3和w4设置为接地(尽管与逻辑低电平相连),但无论出于何种原因,我无法为我的生活找出我应该如何做这个。
FWIW我是EE,所以我更习惯于从硬件端看到这一点。另外,这个项目特别是有与端口映射,而不是行为的东西。对于那个很抱歉。
编辑:错误在w3设置为'0',w4设置为'0000'的行被抛出。双引号不能解决这个错误。将其移入内部并不能解决错误。在开始集内我得到一个“意外的TICK”,并在开始集之外我得到一个“意外标识符”。它真的不想让我决定某件事的价值。
他们没有教导声明和声明之间的区别吗? –
您不能在架构和开始之间分配值。 – Paebbels
因为矢量文字必须放在双引号之间,而不是蜱('“0000”',而不是''0000''),所以出现非预期的勾号。意外的标识符,因为这两个赋值必须放在体系结构体中(在'begin'之后),而不是在体系结构声明中(在'begin'之前)。您随机尝试了几种解决方案,但不是全部:您在开始后忘记了组合双引号。如果你试图用这个随机策略来解决你的所有问题,在学习VHDL之前需要花时间。书籍和课程可能更有效率。 –