vhdl - 未定义符号错误,但符号似乎在代码 VHDL 中定义
问题描述
所以,我不断收到这些错误,我不知道如何解决它们,因为我在代码中定义了组件。这些是错误:
错误:HDLParsers:3312 -“D:/licenta/multyv3/multy.vhd”第 123 行。未定义符号“D”。错误:HDLParsers:1209 -“D:/licenta/multyv3/multy.vhd”第 123 行。D:未定义符号(此块中的最后报告)错误:HDLParsers:3312 -“D:/licenta/multyv3/multy.vhd”第 124 行。未定义的符号“Q”。错误:HDLParsers:1209 -“D:/licenta/multyv3/multy.vhd”第 124 行。问:未定义符号(此块中的最后报告)
错误在 cell_4 中
entity multy is
port (
x: in std_logic_vector (3 downto 0);
y: in std_logic_vector (3 downto 0);
p: out std_logic_vector (7 downto 0);
clk: in std_logic
);
end entity multy;
architecture rtl of multy is
component Ripple_Adder
port (
A: in std_logic_vector (3 downto 0);
B: in std_logic_vector (3 downto 0);
Cin: in std_logic;
S: out std_logic_vector (3 downto 0);
Cout: out std_logic
);
end component;
component FlipFlopPack
generic(
N : integer := 4
);
port(
Q : out std_logic_vector (N-1 downto 0);
Clk : in std_logic;
D : in std_logic_vector (N-1 downto 0)
);
end component;
-- AND Product terms:
signal G0, G1, G2: std_logic_vector (3 downto 0);
-- B Inputs (B0 has three bits of AND product)
signal B0, B1, B2: std_logic_vector (3 downto 0);
-- D flip flop signals (Qyout)
signal I: std_logic_vector (3 downto 0);
-- D flip flop signal (Qxout)
signal O: std_logic_vector (3 downto 0);
-- d flip flop signal for S
signal S1, S2, S3: std_logic_vector (3 downto 0);
-- signal for p
signal P1: std_logic_vector (3 downto 0);
begin
-- y(1) thru y (3) AND products, assigned aggregates:
G0 <= (O(3) and I(1), O(2) and I(1), O(1) and I(1), O(0) and I(1));
G1 <= (O(3) and I(2), O(2) and I(2), O(1) and I(2), O(0) and I(2));
G2 <= (O(3) and I(3), O(2) and I(3), O(1) and I(3), O(0) and I(3));
-- y(0) AND products (and y0(3) '0'):
B0 <= ('0', O(3) and I(0), O(2) and I(0), O(1) and I(0));
-- named association:
cell_1:
Ripple_Adder
port map (
a => G0,
b => B0,
cin => '0',
cout => S1(3), -- named association can be in any order
S(3) => S1(2), -- individual elements of S, all are associated
S(2) => S1(1), -- all formal members must be provide contiguously
S(1) => S1(0),
S(0) => P1(1)
);
cell_2:
Ripple_Adder
port map (
a => G1,
b => B1,
cin => '0',
cout => S2(3),
S(3) => S2(2),
S(2) => S2(1),
S(1) => S2(0),
S(0) => P1(2)
);
cell_3:
Ripple_Adder
port map (
a => G2,
b => B2,
cin => '0',
cout => S3(3),
S(3) => S3(2),
S(2) => S3(1),
S(1) => S3(0),
S(0) => P1(3)
);
cell_4:
FlipFlopPack
port map (
x => D,
O => Q,
clk => clk
);
cell_5:
FlipFlopPack
port map (
y => D,
I => Q,
clk => clk
);
cell_6:
FlipFlopPack
port map (
S1 => D,
B1 => Q,
clk => clk
);
cell_7:
FlipFlopPack
port map (
S2 => D,
B2 => Q,
clk => clk
);
cell_8:
FlipFlopPack
port map (
S3 => D,
p(7 downto 4) => Q,
clk => clk
);
cell_9:
FlipFlopPack
port map (
P(3 downto 0) => D,
p(3 downto 0) => Q,
clk => clk
);
P1(0) <= O(0) and I(0);
end architecture rtl;
解决方案
组件的端口名称需要在 => 的左侧
例如:
cell_4:
FlipFlopPack
port map (
D => x,
Q => O,
Clk => clk
);
这适用于 FlipFlopPack 的所有实例化。
推荐阅读
- sql-server - C#查询SQL不同的日期时间格式到dataGridview
- javascript - For 循环加入 &
- python - 如何以 .json 格式更改转储数据的 unicode 语言
- node.js - Hyperleger Indy - 由于节点和 NPM 问题导致 TheOrgBook 模块构建失败
- sql - 使用 SQL 更新多个表中的日期参数
- driver - 在 Solus 上安装 Broadcom 无线驱动程序
- continuous-deployment - Rundeck - 无法读取存储在路径中的 SSH 私钥 - 路径不存在
- apache-kafka - Kafka消费者再平衡及其影响
- android - 谷歌电子表格到 Android 应用程序 - 数据失败
- java - 我不断收到丢失的退货声明?