реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Пользовательская логика, Подключение дополнительной логики к NIOS
Sidny Sho
сообщение May 10 2011, 20:27
Сообщение #1





Группа: Участник
Сообщений: 13
Регистрация: 27-03-11
Пользователь №: 63 923



Привет всем. Хочу прикрутить свою логику. Для примера решил добавить простой сумматор. Вот его текст
Код
module adder(
    dataa,
    datab,
    result,
    clk
);
    input[31:0]dataa;
    input[31:0]datab;
    input clk;
    output[31:0]result;
    reg[31:0] result;
    always @ (posedge clk)
        begin
            {result} = dataa + datab;
        end
endmodule

Далее через SOPC добавляю к проекту с ниосом. Проблема возникла при компиляции. Говорит что неправильно указаны типы выводов.

Какие именно поставить для данного устройства? Если есть пример бы, желательно на русском. Спасибо за внимание
Go to the top of the page
 
+Quote Post
alexPec
сообщение May 10 2011, 21:45
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 284
Регистрация: 9-04-06
Пользователь №: 15 968



Цитата(Sidny Sho @ May 11 2011, 00:27) *
Какие именно поставить для данного устройства? Если есть пример бы, желательно на русском. Спасибо за внимание

Так ведь сигналы и модуль надо под авалон-шину адаптировать, в Вашем случае похоже avalon-memory mapped. Почитайте спецификацию на авалон. Я так понимаю надо сделать чтоб по определенным адресам располагался вход сумматора, а на каком-то адресе выход.
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение May 10 2011, 23:05
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 291
Регистрация: 21-07-05
Пользователь №: 6 988



Цитата(Sidny Sho @ May 11 2011, 03:27) *
Далее через SOPC добавляю к проекту с ниосом. Проблема возникла при компиляции. Говорит что неправильно указаны типы выводов.

и правильно говорит. делать надо примерно так: д.б. 1 сигнал типа readdata (для чтения результата) и 1 сигнал типа writedata (для записи обоих операндов). ну, и writeenable желательно. в компоненте сделать 4 регистра: 2 под операнды (чтение/запись), 1 под результат (только чтение) и 1 статус/контроль (чтение/запись)
Go to the top of the page
 
+Quote Post
Sidny Sho
сообщение May 11 2011, 18:30
Сообщение #4





Группа: Участник
Сообщений: 13
Регистрация: 27-03-11
Пользователь №: 63 923



ак в хедбуке сказано вроде что для простого устройства должно быть 3 интерфейса dataa, datab, result. Без каких либо управляющих сигналов.
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение May 12 2011, 02:11
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 2 291
Регистрация: 21-07-05
Пользователь №: 6 988



Цитата(Sidny Sho @ May 12 2011, 01:30) *
ак в хедбуке сказано вроде что для простого устройства должно быть 3 интерфейса dataa, datab, result. Без каких либо управляющих сигналов.

в каком именно хендбуке? в любом случае, если хотите делать именно так, то dataa и datab будут иметь тип сигнала writedata (соответственно, будет 2 Avalon-MM Slave интерфейса), а result - readdata (и, пожалуй, третий интерфейс для него). как по мне, это довольно корявый способ.
Go to the top of the page
 
+Quote Post
Sergey'F
сообщение May 12 2011, 04:24
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 351
Регистрация: 17-09-05
Из: Москва
Пользователь №: 8 660



Вопрос ТС: Вы пытаетесь сделать компонент на шину Avalon или Custom Instruction? Это очень разные вещи. Если CI, то да, там есть dataa, datab и result. Надо выбирать интерфейс custom instruction slave.
Go to the top of the page
 
+Quote Post
Sidny Sho
сообщение May 12 2011, 14:01
Сообщение #7





Группа: Участник
Сообщений: 13
Регистрация: 27-03-11
Пользователь №: 63 923



Чет как то не совсем добавляется. Опишу порядок своих действий:
1) В SOPC билдере открываю проект с ниос
2) Нажимаю Project->New componen
3) Загружаю свой верилоговский файл
4) Указываю следующие интерфейсы:


5) Указываю группу сохранения

7) В итоге ни эта группа ни этот компонент не появляется в библиотеке. Если же делать шину Avalon то все нормально. В чем заключется моя ошибка? Все делал мо мануалу:Сайт Аltera
Go to the top of the page
 
+Quote Post
Sergey'F
сообщение May 12 2011, 17:20
Сообщение #8


Местный
***

Группа: Свой
Сообщений: 351
Регистрация: 17-09-05
Из: Москва
Пользователь №: 8 660



После создания custom instruction она появится на закладке Custom Instructions в мастере свойств процессора. И там ее надо добавлять в ядро. По сути - она добавляется в АЛУ процессора.
А в списке компонент у Вас видно то, что добавляется в систему снаружи процессора, через Avalon MM или Avalon ST.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 13:25
Рейтинг@Mail.ru


Страница сгенерированна за 0.01389 секунд с 7
ELECTRONIX ©2004-2016