2015-04-08 10 views
1

В 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; 

Я получил следующие ошибки, у меня есть несколько вопросов:

  1. Я предполагаю, что я не буду иметь часы и сброс сигналов, причиной этого является чисто передача данных
  2. writebyteenable_n появляется 12 раз (только один раз разрешено), но у меня есть 12 pio сек ... какие изменения должны быть сделаны?

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.

ответ

1

Предупреждение и ошибок вы видите, потому что вы не определили эти соединения, как трубопровод экспорта, сигналы настроены как Авалон ведомых сигналов.

Перейдите, чтобы отредактировать компонент на вкладке «Сигналы», и настроить сигналы как conduit_end, затем на следующей вкладке нажмите кнопку «Удалить оборванные соединения». Это может решить проблему с предупреждением и ошибкой.

На вопрос о группировке контактов я не знаю, возможно ли это сделать.