Использование Qsys (Quartus II x64 15.0.1 build 150) Я создал систему с Nios2/e и несколькими стандартными периферийными компонентами. Я также добавляю свой пользовательский компонент с 1 MM-Slave и 2 отправителями прерываний. Для каждого из них я устанавливал этот подчиненный как «Связанный адресный интерфейс» в редакторе компонентов при создании файла _hw.tcl.Несколько отправителей прерываний в одном периферийном устройстве в Qsys
Qsys не сообщает об ошибках или предупреждениях, но затем я попытался сделать проект BSP в Eclipse с помощью New | Мастер проекта Nios 2 BSP. Я выбираю «SOPC Information File name», но «CPU» ComboBox остается пустым, и появляется сообщение «No Nios II CPU Found».
Затем я запускаю BSP Editor из главного меню: Nios 2 | Редактор BSP и нажмите Файл | Новый Nios 2 BSP. Я снова предоставляю файл SOPC, и этот инструмент нашел CPU, но также сообщает об ошибке: «Может иметь только не более одного IRQ, связанного со следующими подчиненными модулями« my_component »: mm_slave."
Затем я вернулся в Qsys и удалил один из отправителей прерываний, и на этот раз все работает нормально, но мне нужно сгенерировать более одного прерывания.
Итак, что делать, если у вас есть Nios2/e, подключенный к настраиваемой периферии с 1 MM-Slave и несколькими отправителями прерываний?
У меня есть некоторые идеи, но их не любят:
Добавить ММ-невольник для каждого IRQ (он выглядит как пустая трата ресурсов).
Не указывайте «Связанный адресный интерфейс» в редакторе компонентов (он работает, но я не знаю, будет ли он работать должным образом все время). Что этот вариант действительно делает? Я был неточен, говоря, что он будет работать, извините за это. В действительности qsys и BSP могут быть сгенерированы, но внутри системы BSP.h. Номер IRQ будет определен как -1, поэтому он не будет работать.
Объедините все прерывания в один провод (все они будут иметь одинаковый приоритет).
Конфигурировать отправителя прерывания, чтобы иметь сигнал irq с шириной более 1 (Редактор компонентов позволяет это делать, но сообщает о предупреждении: «interrupt_sender: сигнал irq_many [4] типа irq должен иметь ширину [1]».) Как и в случае с case 2 Я не знаю, что произойдет в генераторах/компиляторах Altera. После завершения этапа редактирования компонента Qsys не принимает такую систему.
Помогите пожалуйста.