В Qsys я использую двенадцать входных параллельных портов (давайте назовите их pio1
- pio12
), каждый порт составляет 12 бит. Эти параллельные порты получают значения из блока vhdl
в схеме Quartus. В схеме bdf
я вижу pio1
от pio12
от системного символа nios ii, поэтому я могу подключить эти pio
s к другим блокам в моем bdf
.Как использовать новый компонент, созданный в Qsys, для векторизации/группировки многих сигналов
Мой вопрос в том, как его векторизовать pio1
до pio12
? Вместо того, чтобы видеть все двенадцать строк на одной строке, выходящей из системного символа Nios, что мне делать, чтобы сгруппировать все эти двенадцать пионов, чтобы я видел только один вместо двенадцати? От одного pio
, который я вижу, я могу назвать его pio
[1..12] [1..12], первое скобковое средство pio1
- pio12
, второе бит - бит 1 - бит 12, поскольку каждый параллельный порт имеет 12 бит ,
Я создал новый компонент в QSYS используя этот pio_helper.vhd
файл,
Файл 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
является
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 раз (только один раз разрешено), но у меня есть 12pio
сек ... какие изменения должны быть сделаны?
Warning: avalon_slave_0: Signal writebyteenable_n appears 12 times (only once is allowed) Error: avalon_slave_0: Interface must have an associated clock Error: avalon_slave_0: Interface must have an associated reset Error: avalon_slave_0: Interface must have an associated clock.