在 Qsys 中,我使用了 12 个输入并行端口(我们将它们命名pio1
为pio12
),每个端口都是 12 位的。vhdl
这些并行端口从Quartus 原理图中的模块中获取值。在原理图bdf
中,我可以从 nios ii 系统符号中看到pio1
to ,因此我可以将这些s 连接到我的其他块pio12
pio
bdf
.
我的问题是,如何将这些矢量pio1
化为pio12
?不是pio
从 Nios 系统符号中一行一行地看到所有十二个,而是应该怎么做才能将所有这十二个 pios 分组,以便我只看到一个而不是十二个?根据pio
我看到的,我可以将它命名为pio
[1..12][1..12],第一个括号表示pio1
to pio12
,第二个括号表示第 1 位到第 12 位,因为每个并行端口都有 12 位。
我使用这个pio_helper.vhd
文件在 Qsys 中创建了一个新组件,
该pio_helper.vhdl
文件如下:
entity pio_helper is
port(
pio1 : in std_logic_vector(11 downto 0);
pio2 : in std_logic_vector(11 downto 0);
pio3 : in std_logic_vector(11 downto 0);
pio4 : in std_logic_vector(11 downto 0);
pio5 : in std_logic_vector(11 downto 0);
pio6 : in std_logic_vector(11 downto 0);
pio7 : in std_logic_vector(11 downto 0);
pio8 : in std_logic_vector(11 downto 0);
pio9 : in std_logic_vector(11 downto 0);
pio10 : in std_logic_vector(11 downto 0);
pio11 : in std_logic_vector(11 downto 0);
pio12 : in std_logic_vector(11 downto 0);
piomerge : out std_logic_vector(143 downto 0)
);
end pio_helper;
pio_helper
is 的架构行为
begin
piomerge(11 downto 0) <= pio1;
piomerge(23 downto 12) <= pio2;
piomerge(35 downto 24) <= pio3;
piomerge(47 downto 36) <= pio4;
piomerge(59 downto 48) <= pio5;
piomerge(71 downto 60) <= pio6;
piomerge(83 downto 72) <= pio7;
piomerge(95 downto 84) <= pio8;
piomerge(107 downto 96) <= pio9;
piomerge(119 downto 108) <= pio10;
piomerge(131 downto 120) <= pio11;
piomerge(143 downto 132) <= pio12;
end behavior;
我收到以下错误,我有几个问题:
- 我假设我不会有时钟和复位信号,因为这纯粹是数据传输
writebyteenable_n
出现 12 次(只允许出现一次),但我有 12 次pio
...要进行哪些更改?
警告:avalon_slave_0:信号 writebyteenable_n 出现 12 次(只允许一次) 错误:avalon_slave_0:接口必须有关联的时钟 错误:avalon_slave_0:接口必须有关联的复位 错误:avalon_slave_0:接口必须有关联的时钟。