Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Вопрос по верификации.
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
bark
Сейчас в разработке довольно большой проект.
(будет в CycloneIII 40-55)
Разобрал его на блоки и модули для упрощения написания и отладки.

Сейчас занимаюсь имплементацией модулей. После объеденяю в блоки для дальнейших тестов и вписывания блоков в общий проект.

отладку отдельных модулей провожу в вейвформах. мне вроде хватает пока этого.

один из модулей имеет очень богатый интерфейс (>500 пинов ввода/вывода) и не хочет компилироваться т.к. у физического кристала нет стольких ног.

и вот вопрос:
Как его уговорить квартус компилиться проект с любым интерфейсом? чтобы потом можно было свободно проводить отладку? ну или как-то иначе обойти это "неудобство".

и ещё.

какие есть инструменты для эффективной верификации? (пока без железяки.. только на машине)
что почитать? куда посмотреть? я что-то только вейвдиаграммами пользоваться умею.

Quartus9.0 + Verilog
Kuzmi4
телепатируя вопрос даю ответ - виртуальные пины:
/* synthesis altera_attribute="-name VIRTUAL_PIN ON" */

Цитата
куда посмотреть

в сторону modelsim,nc-sim,vcs - тут кому как нравится

bb-offtopic.gif
а отладку этого 500 лапового модуля тоже будете в вейвформе проводить ?
bark
Цитата(Kuzmi4 @ Oct 12 2010, 17:01) *
телепатируя вопрос даю ответ - виртуальные пины:
/* synthesis altera_attribute="-name VIRTUAL_PIN ON" */


в сторону modelsim,nc-sim,vcs - тут кому как нравится

bb-offtopic.gif
а отладку этого 500 лапового модуля тоже будете в вейвформе проводить ?



эм. а что с этой строчкой сделать?

как-то так?

/* synthesis altera_attribute="-name VIRTUAL_PIN ON" */

// outputs

/* synthesis altera_attribute="-name VIRTUAL_PIN OFF" */

а отладку этого 500 лапового модуля тоже будете в вейвформе проводить ?
пока да.
половина этих ног - ответы вычислений шестнадцать 16-битных выводов.
их наблюдать довольно удобно. и ввод не сложный. просто его много )

в моделсиме кооогда-то работал (лет 7 назад) не помню его нифига.. надо поставить заново разбираться.
спасибо за совет
Kuzmi4
Цитата(bark @ Oct 12 2010, 17:08) *
эм. а что с этой строчкой сделать?

Example5–2
page 11 / 42
bark
Цитата(Kuzmi4 @ Oct 12 2010, 17:18) *
Example5–2
page 11 / 42


Спасибо! =)
beer.gif
буду пробовать.
bark
Поставил моделсим6,5б

пытаюсь с ним разобраться. первое что не могу понять - не хочет компилировать фалй который в Квартусе компилировались и уже нормально отлажены.
не могу понять в чем дело.
ошибки такого вида:
** Error: D:/Projects/MyDesigns/modelsimtest_02/calc_LLR_01.v(629): 'alfa_reg0' already declared in this scope (calc_LLR_01).
** Error: D:/Projects/MyDesigns/modelsimtest_02/calc_LLR_01.v(629): 'alfa_reg1' already declared in this scope (calc_LLR_01).
** Error: D:/Projects/MyDesigns/modelsimtest_02/calc_LLR_01.v(629): 'alfa_reg2' already declared in this scope (calc_LLR_01).
** Error: D:/Projects/MyDesigns/modelsimtest_02/calc_LLR_01.v(630): 'alfa_reg3' already declared in this scope (calc_LLR_01).

хоте естесственно что никаких повторных объявлений у меня нет.

пишу на верилоге.
может в моделсиме что-то настроить надо ещё чтобы он нормально воспринимал код?

---------------

Моделсим воспринимает использование переменных до их объявления?

т.е. типа такая конструкция будет работать?

wire B = A ;
reg A ;

я так понял что компилятору моделсима надо именно:

reg A ;
wire B = A ;

квартус всё нормально воспринимает =\
это никак нельзя поправить?

и вообще если проет делается в квартусе то как правильно проводить симуляцию в моделсиме.

короче я опять запутался. подскажите я правильно иду?
des00
Цитата(bark @ Oct 18 2010, 02:23) *
хоте естесственно что никаких повторных объявлений у меня нет.

может быть поспорим? Ибо негоже объявлять переменную после ее использования. Парсеры у ква и ментора разные.
bark
Цитата(des00 @ Oct 18 2010, 12:48) *
может быть поспорим? Ибо негоже объявлять переменную после ее использования. Парсеры у ква и ментора разные.


вначале стоит
output wire A = B ;


позже где вормируется B он и объявляется.
так удобней, понятней и логичнее.
где что объявляется там и формируется.
а всё теперь переписывать уичтывая непонятливость моделсима это фейл. к сожалению (

раньше когда-то пользовался моделсимом но для VHDL, а не Verilog и вроде таких проблем не припоминаю.. хотя давно это было.

проет уже из пары десятков файлов и кода в них по 1000-1500 строк.. прийдётся отказаться от моделсима если это не решается никак =\

или всё-таки есть варианты?
des00
Цитата(bark @ Oct 18 2010, 04:55) *
вначале стоит
output wire A = B ;

связи логической не вижу с постом вашим ранее
Цитата
** Error: D:/Projects/MyDesigns/modelsimtest_02/calc_LLR_01.v(629): 'alfa_reg0' already declared in this scope (calc_LLR_01).
** Error: D:/Projects/MyDesigns/modelsimtest_02/calc_LLR_01.v(629): 'alfa_reg1' already declared in this scope (calc_LLR_01).
** Error: D:/Projects/MyDesigns/modelsimtest_02/calc_LLR_01.v(629): 'alfa_reg2' already declared in this scope (calc_LLR_01).
** Error: D:/Projects/MyDesigns/modelsimtest_02/calc_LLR_01.v(630): 'alfa_reg3' already declared in this scope (calc_LLR_01).
bark
как я понимаю когда компилятор видит

output wire A = B ;

он из неизвестного символа В делает wire B. т.к. ведь объявление цепей не обязательно.
а когда ниже видит

reg В ;
он вероятно считет это повторным объявлением.
des00
Цитата(bark @ Oct 18 2010, 04:26) *
как я понимаю когда компилятор видит

Это не вы понимаете, это в стандарте написано. А ментор и альтера разрулили это по разному.
Цитата
раньше когда-то пользовался моделсимом но для VHDL, а не Verilog и вроде таких проблем не припоминаю.. хотя давно это было.

В VHDL это возникнуть не могло в принципе. Т.к. секция объявлений сигналов находится раньше кода.
Цитата
проет уже из пары десятков файлов и кода в них по 1000-1500 строк.. прийдётся отказаться от моделсима если это не решается никак =\

Стандарт нужно было читать до того, как код писать %)
bark
Цитата(des00 @ Oct 18 2010, 13:43) *
Стандарт нужно было читать до того, как код писать %)


так и быть ) допишу проект, и потом, если ещё останусь на этой работе, почитаю стандарт. wink.gif
Intekus
Сам "влетал" в аналогичную ситуацию Quartus-Modelsim. Но времени тогда было много, поэтому не поленился, освоил регулярные выражения и провёл пакетную замену скриптом на Python. Вручную было бы быстрее (проект на тот момент был не таким большим), но полученные знания не раз пригодились после.
bark
снова подниму ветку.

как воспользоваться виртуализацией пинов /* synthesis altera_attribute="-name VIRTUAL_PIN ON" */ ?
если объявление интерфейса идёт таким манером:

Код
module main  (
  input       clk,
  input       rst,
  output [7:0] data
  );
.....
endmodule
bogaev_roman
Цитата(bark @ Feb 8 2011, 19:29) *
снова подниму ветку.
как воспользоваться виртуализацией пинов /* synthesis altera_attribute="-name VIRTUAL_PIN ON" */ ?

http://electronix.ru/forum/index.php?showtopic=85537 пост 5
IL-76
Пишите в стиле Верилога 2001 или СВ

Код
module main
(
(* altera_attribute ="-name VIRTUAL_PIN ON" *)  input         clk,
(* altera_attribute ="-name VIRTUAL_PIN ON" *)  input         rst,
(* altera_attribute ="-name VIRTUAL_PIN ON" *)  output  [7:0] data
);
...
endmodule
bark
Цитата(IL-76 @ Feb 9 2011, 16:07) *
Пишите в стиле Верилога 2001 или СВ


спасибо.
я только ещё изучаю его.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.