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

 
 
> Почему не хватает родных САПР для ПЛИС?, Зачем нужны Active-HDL, Riviera, ModelSym, Synplify, Identify...
kst
сообщение May 15 2006, 14:24
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 141
Регистрация: 16-06-05
Из: Нижний Новгород
Пользователь №: 6 065



Из форумов понял что разработчики ПЛИС помимо родных САПР Altera (Quartus) и Xilinx (ISE) используют и другие программные продукты.
Подскажите пожалуйста, почему не хватает родных?
И какое ПО сейчас используют для разработки ПЛИС Xilinx?

Начинал я работать с Altera_вскими ПЛИСами в Quartus, в прошлом году пришлось пересесть на Xilinx в Foundation 4.2i (по требованию заказчика). Все делал в схемотехнике. На VHDL писал лишь отдельные блоки. И хватало всех средств каждой из этих САПР для полного цикла разработки: кодирование -> функциональная симуляция -> синтез -> имплементация -> временная симуляция. Как-то и не задавался вопросом, можно ли еще какие-то продукты использовать.

Теперь предстоит делать прошивку ПЛИС Viretx4 SX. Причем все нужно делать на VHDL. Достал ISE 8.1. А он, по отзывам коллег, устраивает демонстрации с маршем протеста. Вешает машину, долго думает и прочее. По отзывам в форумах понял, что сведущие люди помимо этих САПР используют еще и другое ПО, например Active-HDL, Riviera, ModelSym, Synplify, Identify и др.
Я могу, конечно, уйти с головой в изучение докумнетации на каждый из этих продуктов, чтоб выяснить их плюсы и минусы и решить стоит мне ими заниматься или нет, но мне все таки хотелось бы услышать пару слов от профессионалов, почему используются дополнительные программы и какие бы они порекомендовали для использования?
Go to the top of the page
 
+Quote Post
7 страниц V   1 2 3 > »   
Start new topic
Ответов (1 - 99)
maksya
сообщение May 15 2006, 16:42
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 253
Регистрация: 28-08-04
Из: Ленинград
Пользователь №: 562



Цитата(kst @ May 15 2006, 18:24) *
Подскажите пожалуйста, почему не хватает родных?
Попробуйте влезь на рынок прохладительных напитков с морсом домашнего приготовения. Сразу получите ответ на свой вопрос smile.gif
Цитата(kst @ May 15 2006, 18:24) *
По отзывам в форумах понял, что сведущие люди помимо этих САПР используют еще и другое ПО, например Active-HDL, Riviera, ModelSym, Synplify, Identify и др. Я могу, конечно, уйти с головой в изучение докумнетации на каждый из этих продуктов, чтоб выяснить их плюсы и минусы и решить стоит мне ими заниматься или нет, но мне все таки хотелось бы услышать пару слов от профессионалов, почему используются дополнительные программы и какие бы они порекомендовали для использования?

Пара слов (от непрофессионала): По сути ModelSim и так уже наличиствует в ISE. Хотя вроде бы в усеченной и специализированной версии (могу ошибаться, т.к. с ISE серьезно не работал). Это типа продукт кооперации фирм-производителей САПР. Вообще ModelSim - одно из самых популярных средств моделирования (а с недавних пор еще и продвинутой верификации). Synplify принято считать лидером в области оптимизации HDL-описания. Identify можно использовать для внутрикристальной отладки. Однако в ISE 8 вроде как появился аналогичный продукт - ChipScope.


--------------------
Лень - это не врожденное чувство русского человека, а средство борьбы с неуемной, но бестолковой энергией начальника.
Go to the top of the page
 
+Quote Post
makc
сообщение May 15 2006, 17:21
Сообщение #3


Гуру
******

Группа: Админы
Сообщений: 3 621
Регистрация: 18-10-04
Из: Москва
Пользователь №: 904



Цитата(maksya @ May 15 2006, 20:42) *
Пара слов (от непрофессионала): По сути ModelSim и так уже наличиствует в ISE. Хотя вроде бы в усеченной и специализированной версии (могу ошибаться, т.к. с ISE серьезно не работал). Это типа продукт кооперации фирм-производителей САПР. Вообще ModelSim - одно из самых популярных средств моделирования (а с недавних пор еще и продвинутой верификации).


Modelsim и встроенный симулятор ISE - это две большие разницы. Это становится понятно, если попробовать воспользоваться тем и другим. Симулятор ISE - это "Modelsim для бедных".

Цитата
Synplify принято считать лидером в области оптимизации HDL-описания.


У каждого из синтезаторов есть свои плюсы и минусы. Но есть такое понятие, как привязанность к какому-либо средству разработки. Например, если человек работая с Actel привыкнет к Synplify, то с большой вероятностью ему уже не захочется изучать XST или Precision. И т.п.

Цитата
Identify можно использовать для внутрикристальной отладки. Однако в ISE 8 вроде как появился аналогичный продукт - ChipScope.


Chipscope работал еще с 6-й версией ISE. Но его трудно сравнивать с Identify, который является более интеллектуальным средством, т.к. позволяет не просто пронаблюдать временную диаграмму внутренних сигналов, но и производить отладку с возможностью удобной установки точек останова.


--------------------
BR, Makc
В недуге рождены, вскормлены тленом, подлежим распаду. (с) У.Фолкнер.
Go to the top of the page
 
+Quote Post
papasha
сообщение May 15 2006, 17:44
Сообщение #4


Частый гость
**

Группа: Свой
Сообщений: 122
Регистрация: 25-06-04
Из: Москва
Пользователь №: 185



"Из форумов понял что разработчики ПЛИС помимо родных САПР Altera (Quartus) и Xilinx (ISE) используют и другие программные продукты.
Подскажите пожалуйста, почему не хватает родных? "

Цена ISE - $2500. Все можно с его помощью сделать. Но гораздо удобнее применять специализированные продукты. Например, ввод проекта и его моделирование (хошь схематик, хошь HDL) - ActiveHDL. Его цена - $10000. Синтез - Synplify. Его цена, по-моему, $4500 для Xilinx и $9000 для нескольких производителей ПЛИС (могу ошибаться). ISE используется только для трассировки ПЛИС. Разница в цене соответсвует разнице в удобстве и быстроте выполнения проекта.
Для отладки проекта в большинстве случаев хватает ChipScope - $500. Identify стоит на порядок дороже, если не больше.
Поэтому, если проект не очень большой, напрягают с лицензионностью и нет денег, то - ISE. В остальных случаях - см. выше. Если разрабатывать систему на кристале или близкую к ней, то это совсем другая ценовая и весовая категория и одним ISE не отделаешься. Раньше я пытался с помощью Foundation разрабатывать 1600 млн. вентилей. Быстро понял, что сделаю проект как раз к пенсии.
Go to the top of the page
 
+Quote Post
kst
сообщение May 16 2006, 09:35
Сообщение #5


Частый гость
**

Группа: Свой
Сообщений: 141
Регистрация: 16-06-05
Из: Нижний Новгород
Пользователь №: 6 065



А можно привести парочку примеров, почему дополнительные продукты удобнее чем средства ISE?

Цитата(papasha @ May 15 2006, 21:44) *
Раньше я пытался с помощью Foundation разрабатывать 1600 млн. вентилей. Быстро понял, что сделаю проект как раз к пенсии.
В чем лично для вас был выигрыш от применения других программ?
Go to the top of the page
 
+Quote Post
Mad Makc
сообщение May 16 2006, 12:08
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 244
Регистрация: 2-10-04
Из: Мухосранска
Пользователь №: 763



Цитата
В чем лично для вас был выигрыш от применения других программ?

Для ребят,которые LEON сделали вот в чём выйгрыш( взято из описания на grlib.pdf):
XST generates netlists with roughly the same timing as Synplify,
but with approximately 20% more gates. cheers.gif
Go to the top of the page
 
+Quote Post
kst
сообщение May 16 2006, 14:34
Сообщение #7


Частый гость
**

Группа: Свой
Сообщений: 141
Регистрация: 16-06-05
Из: Нижний Новгород
Пользователь №: 6 065



Цитата(Mad Makc @ May 16 2006, 16:08) *
...but with approximately 20% more gates. cheers.gif
Не хило smile.gif

Сообщение отредактировал kst - May 16 2006, 14:35
Go to the top of the page
 
+Quote Post
papasha
сообщение May 16 2006, 19:04
Сообщение #8


Частый гость
**

Группа: Свой
Сообщений: 122
Регистрация: 25-06-04
Из: Москва
Пользователь №: 185



Цитата(kst @ May 16 2006, 13:35) *
А можно привести парочку примеров, почему дополнительные продукты удобнее чем средства ISE?

Цитата(papasha @ May 15 2006, 21:44) *

Раньше я пытался с помощью Foundation разрабатывать 1600 млн. вентилей. Быстро понял, что сделаю проект как раз к пенсии.
В чем лично для вас был выигрыш от применения других программ?


Успел до пенсии smile.gif
Go to the top of the page
 
+Quote Post
kst
сообщение May 17 2006, 08:56
Сообщение #9


Частый гость
**

Группа: Свой
Сообщений: 141
Регистрация: 16-06-05
Из: Нижний Новгород
Пользователь №: 6 065



Цитата(papasha @ May 16 2006, 23:04) *
Успел до пенсии smile.gif
smile.gif Ну это было сразу понятно.
Меня больше интересует какие преимущества другого программного продукта перед Foundation позволили ускорить процесс разработки?
Go to the top of the page
 
+Quote Post
Jools
сообщение May 17 2006, 11:29
Сообщение #10


Патриот
***

Группа: Свой
Сообщений: 384
Регистрация: 26-12-04
Пользователь №: 1 682



Цитата(kst @ May 17 2006, 12:56) *
Меня больше интересует какие преимущества другого программного продукта перед Foundation позволили ускорить процесс разработки?


Вот почитай. А то долго расписывать.

Ссылка про ActiveHDL
Прикрепленные файлы
Прикрепленный файл  Aldec_ECOMP_2_2005.pdf ( 369.51 килобайт ) Кол-во скачиваний: 269
Прикрепленный файл  Synplicity.pdf ( 435.04 килобайт ) Кол-во скачиваний: 336
 
Go to the top of the page
 
+Quote Post
Mad Makc
сообщение May 17 2006, 11:44
Сообщение #11


Местный
***

Группа: Свой
Сообщений: 244
Регистрация: 2-10-04
Из: Мухосранска
Пользователь №: 763



Цитата
Меня больше интересует какие преимущества другого программного продукта перед Foundation позволили ускорить процесс разработки?

Ну начнём с написания кода.Графический редактор в Foundation никакой. Значит время отладки и написания кода стремится к бесконечности.
далее.Синтез.Ну кроме того,что уже было написано про XST, можно добавить,что он плохо поддерживает всякие извращённые конструкции,которые позволяют сделать код универсальным и легко настраиваемым.Опять же экономия времени разработки и места в ПЛИС.
А ваще- зачем спрашивать?Возьмите и попробуйте сами.
Go to the top of the page
 
+Quote Post
kst
сообщение May 17 2006, 11:47
Сообщение #12


Частый гость
**

Группа: Свой
Сообщений: 141
Регистрация: 16-06-05
Из: Нижний Новгород
Пользователь №: 6 065



Jools, огромное спасибо! Очень кстати.
Go to the top of the page
 
+Quote Post
kst
сообщение May 17 2006, 12:00
Сообщение #13


Частый гость
**

Группа: Свой
Сообщений: 141
Регистрация: 16-06-05
Из: Нижний Новгород
Пользователь №: 6 065



Цитата
А ваще- зачем спрашивать?Возьмите и попробуйте сами.
Ну если я буду пробовать сам абсолютно всё, мне жизни не хватит smile.gif
Иногда сильно экономят время повествования других людей о своем опыте. Форумы, насколько я знаю, создавались и для этих целей тоже.

Вот теперь я действительно буду пробовать! smile.gif
Go to the top of the page
 
+Quote Post
papasha
сообщение May 17 2006, 12:41
Сообщение #14


Частый гость
**

Группа: Свой
Сообщений: 122
Регистрация: 25-06-04
Из: Москва
Пользователь №: 185



Цитата(kst @ May 17 2006, 12:56) *
Цитата(papasha @ May 16 2006, 23:04) *
Успел до пенсии smile.gif
smile.gif Ну это было сразу понятно.
Меня больше интересует какие преимущества другого программного продукта перед Foundation позволили ускорить процесс разработки?

Я до сих пор пользуюсь Foundation, но только для поддержки старых проектов. Если делаешь с нуля, то даже и не думай, почему это лучше другие проги использовать. Сразу переходи на HDL и на проверенные связки продуктов, например, ActiveHDL + Sinplify Pro + ISE. Опосля поймешь. Уж поверь опыту, если не моему, то остальных соконфетников. Не пожалеешь.
Go to the top of the page
 
+Quote Post
kst
сообщение May 17 2006, 12:52
Сообщение #15


Частый гость
**

Группа: Свой
Сообщений: 141
Регистрация: 16-06-05
Из: Нижний Новгород
Пользователь №: 6 065



Цитата(papasha @ May 17 2006, 16:41) *
Если делаешь с нуля, то даже и не думай, почему это лучше другие проги использовать. Сразу переходи на HDL и на проверенные связки продуктов, например, ActiveHDL + Sinplify Pro + ISE. Опосля поймешь. Уж поверь опыту, если не моему, то остальных соконфетников. Не пожалеешь.
Вот!!! Вот оно!!! То, что я ждал так долго! w00t.gif
Прочь сомнения!
Уже запасся ActiveHDL и ISE. Остался Sinplify Pro.

Спасибо!
Go to the top of the page
 
+Quote Post
Kopart
сообщение May 17 2006, 13:15
Сообщение #16


Знающий
****

Группа: Свой
Сообщений: 601
Регистрация: 1-03-05
Из: Spb
Пользователь №: 2 972



Цитата(Jools @ May 17 2006, 15:29) *
Цитата(kst @ May 17 2006, 12:56) *

Меня больше интересует какие преимущества другого программного продукта перед Foundation позволили ускорить процесс разработки?


Вот почитай. А то долго расписывать.

Ссылка про ActiveHDL


К сожалению, с Альдеком поработать еще не успел...

Поэтому вопрос к тем, кто уже много чего попробывал - можете поделится ЛИЧНЫМ мнением по как по сравнению с hdldesigner'om (который в FPGA Advantag'е идет).
Вопрос по удобству ввода проекта и его симмуляции (про синтез тут уже много осуждалось и даже общие выводы есть)

* По сообщениям на форуме, обзорам и личному опыту с хдлдезайнер + модел сим склоняюсь, что в Альдеке этот этап более "Юзер-френдли"

А фирмы Sinplicity есть свой пакет? (не Premier ли зовется)
Знаю есть здесь, кто под эту фирму программит, но на форуме ничего не видел.
Хотя я могу ошибатся про САПР от этой фирмы...


--------------------
Насколько проще была бы жизнь, если бы она была в исходниках
Go to the top of the page
 
+Quote Post
vetal
сообщение May 17 2006, 13:23
Сообщение #17


Гуру
******

Группа: Модераторы
Сообщений: 2 095
Регистрация: 27-08-04
Из: Россия, СПб
Пользователь №: 553



Цитата
А фирмы Sinplicity есть свой пакет? (не Premier ли зовется)
Знаю есть здесь, кто под эту фирму программит, но на форуме ничего не видел.

Основная линейка продуктов - synplify.
Большинство тех, кто работает с Actel, синтезирует в нем, т.к. он предоставляется бесплатно.
Altera в своих отчетах по бенчмаркам оговаривает, что синтез был в synplify.
Go to the top of the page
 
+Quote Post
Kopart
сообщение May 17 2006, 13:51
Сообщение #18


Знающий
****

Группа: Свой
Сообщений: 601
Регистрация: 1-03-05
Из: Spb
Пользователь №: 2 972



Цитата(vetal @ May 17 2006, 17:23) *
Основная линейка продуктов - synplify.
Большинство тех, кто работает с Actel, синтезирует в нем, т.к. он предоставляется бесплатно.


Глянул на сайте Synplify Premier - это для ввода проекта.
Про удобства с вышеназваными пакетами, кто-то может выразить свое мнение?!
А как/в чем происходит моделирование(симуляция/отладка)?

Цитата
Altera в своих отчетах по бенчмаркам оговаривает, что синтез был в synplify.


Про Альтеру это хорошее замечание a14.gif (вопрос как рассматривать - свой не такой "производительный" или для унификации сравнения, а наверно оба smile.gif )

Сообщение отредактировал NiOS - May 17 2006, 14:04


--------------------
Насколько проще была бы жизнь, если бы она была в исходниках
Go to the top of the page
 
+Quote Post
Gate
сообщение May 17 2006, 14:13
Сообщение #19


Знающий
****

Группа: Свой
Сообщений: 859
Регистрация: 7-04-05
Из: Санкт-Петербург
Пользователь №: 3 943



Цитата(NiOS @ May 17 2006, 17:15) *
А фирмы Sinplicity есть свой пакет? (не Premier ли зовется)

Не, это развитие pro и объединение его с amplify - физический синтез, топологическое размещение дизайна и прочие прибамбасики для выцарапывания максимальной частоты.
Для ввода проекта, кроме алдека и хдлдизайнера, знаю еще Visual Elite от Summit design - по крайней мере его можно использовать, т.к. и интернете встречаются краки.


--------------------
"Человек - это существо, которое охотнее всего рассуждает о том, в чем меньше всего разбирается." (с) С.Лем
Go to the top of the page
 
+Quote Post
CaPpuCcino
сообщение May 17 2006, 15:19
Сообщение #20


тоже уже Гуру
******

Группа: Свой
Сообщений: 2 047
Регистрация: 13-06-05
Из: Кёлн - Санкт-Петербург
Пользователь №: 5 973



не подумайте что я тут побычить хочу - мнe понастоящему инересно мнение вот по какому поводу.
не кажется ли публике что такие вещи как HDL-designer приводят к деградации разработчика - что-то на подобие того как это происxодит при общение с Дельфи или Висжуал Студио - когда разработчик начинает играть в кубики и мнеогие даже уже не представляют что реально происxодит под этими обложками - и то что подобние рода штуки приводят к привыканию когда разработчик уже просто подсажен на продукт. я вот просто всегда вс: писал ручками а вот сейчас появилась возможность пересесть на ХДЛ-дезигнер думаю стоит или вполне лучше обходиться хорошим текстовим редактором
каковы главные прeимущества?

и еще одно замечание - если пишите в Верилоге не советую использовать Симплифай - они давно забили на поддержание синтаксиса ап-ту-дэйт и роются только в оптимизации ресурсов и подержки новых кристаллов


--------------------
И снова на арене цирка - дрессированные клоуны!! Оказываем консультации по электронике за симпу круглосуточно.
Go to the top of the page
 
+Quote Post
kst
сообщение May 17 2006, 16:40
Сообщение #21


Частый гость
**

Группа: Свой
Сообщений: 141
Регистрация: 16-06-05
Из: Нижний Новгород
Пользователь №: 6 065



Цитата(CaPpuCcino @ May 17 2006, 19:19) *
... не кажется ли публике что такие вещи как HDL-designer приводят к деградации разработчика - что-то на подобие того как это происxодит при общение с Дельфи или Висжуал Студио - когда разработчик начинает играть в кубики и мнеогие даже уже не представляют что реально происxодит под этими обложками - и то что подобние рода штуки приводят к привыканию когда разработчик уже просто подсажен на продукт. я вот просто всегда вс: писал ручками а вот сейчас появилась возможность пересесть на ХДЛ-дезигнер думаю стоит или вполне лучше обходиться хорошим текстовим редактором
каковы главные прeимущества?
Несколько консервативный подход.
Насколько я правильно понимаю этот вопрос, главное преимущество (если в полной мере освоить возможности подобных упрощающих жизнь продуктов) - это уменьшение времени разработки, ну и людям не дают сойти с ума от переизбытка информации.
Чем дальше движется прогресс, тем сложнее технологии и конечные продукты. Никуда не деться. Скоро задачи сатнут крайне сложными и все делать ручками с нуля уже не удасться. И одному человеку это будет не под силу. Командная работа с разделением труда.
Кто-то думает об оптимальной начинке кубиков, а кто-то правильным образом расставлет кубики. А дальше - кубики станут начинкой еще больших кубиков. И те кто двигает кубики сейчас начнет кричать, что это приводит к деградации разработчика. smile.gif
Go to the top of the page
 
+Quote Post
maksya
сообщение May 17 2006, 16:54
Сообщение #22


Местный
***

Группа: Свой
Сообщений: 253
Регистрация: 28-08-04
Из: Ленинград
Пользователь №: 562



Цитата(CaPpuCcino @ May 17 2006, 19:19) *
не подумайте что я тут побычить хочу - мнe понастоящему инересно мнение вот по какому поводу.
не кажется ли публике что такие вещи как HDL-designer приводят к деградации разработчика - что-то на подобие того как это происxодит при общение с Дельфи или Висжуал Студио - когда разработчик начинает играть в кубики и мнеогие даже уже не представляют что реально происxодит под этими обложками - и то что подобние рода штуки приводят к привыканию когда разработчик уже просто подсажен на продукт. я вот просто всегда вс: писал ручками а вот сейчас появилась возможность пересесть на ХДЛ-дезигнер думаю стоит или вполне лучше обходиться хорошим текстовим редактором
каковы главные прeимущества?

и еще одно замечание - если пишите в Верилоге не советую использовать Симплифай - они давно забили на поддержание синтаксиса ап-ту-дэйт и роются только в оптимизации ресурсов и подержки новых кристаллов
IMHO, на стадии обучения всякого рода САПР - зло. Блокнот и карандаш для ввода проекта, ручное моделирование по дельта-циклам, описание проекта вплоть до уровня вентилей - вот что необходимо начинающему HDL'исту smile.gif Пару сотен автоматов собрать голымим руками тоже не повредит. Но в дальнейшем при реальной работе этот процесс чреват обилием никому не нужных ошибок (не алгоритмических, а из разряда очепяток). Лично Я поступаю так - генерю остов автомата в HDL-Дизайнере, а доводку делаю руками. Так и количество глупых ошибок сокращается и тотального подсаживания на софт не происходит. А вообще лень - двигатель прогресса!


--------------------
Лень - это не врожденное чувство русского человека, а средство борьбы с неуемной, но бестолковой энергией начальника.
Go to the top of the page
 
+Quote Post
papasha
сообщение May 17 2006, 18:25
Сообщение #23


Частый гость
**

Группа: Свой
Сообщений: 122
Регистрация: 25-06-04
Из: Москва
Пользователь №: 185



Цитата(maksya @ May 17 2006, 20:54) *
Цитата(CaPpuCcino @ May 17 2006, 19:19) *

не подумайте что я тут побычить хочу - мнe понастоящему инересно мнение вот по какому поводу.
не кажется ли публике что такие вещи как HDL-designer приводят к деградации разработчика - что-то на подобие того как это происxодит при общение с Дельфи или Висжуал Студио - когда разработчик начинает играть в кубики и мнеогие даже уже не представляют что реально происxодит под этими обложками - и то что подобние рода штуки приводят к привыканию когда разработчик уже просто подсажен на продукт. я вот просто всегда вс: писал ручками а вот сейчас появилась возможность пересесть на ХДЛ-дезигнер думаю стоит или вполне лучше обходиться хорошим текстовим редактором
каковы главные прeимущества?
IMHO, на стадии обучения всякого рода САПР - зло. Блокнот и карандаш для ввода проекта, ручное моделирование по дельта-циклам, описание проекта вплоть до уровня вентилей - вот что необходимо начинающему HDL'исту smile.gif Пару сотен автоматов собрать голымим руками тоже не повредит. Но в дальнейшем при реальной работе этот процесс чреват обилием никому не нужных ошибок (не алгоритмических, а из разряда очепяток). Лично Я поступаю так - генерю остов автомата в HDL-Дизайнере, а доводку делаю руками. Так и количество глупых ошибок сокращается и тотального подсаживания на софт не происходит. А вообще лень - двигатель прогресса!


100% истина! Обязательная прорисовка временных диаграм на бумаге! Ни один САПР за нас это не сделает. А функциональное моделирование - это проверка ляпов типа 2*2=10.
Go to the top of the page
 
+Quote Post
makc
сообщение May 17 2006, 18:58
Сообщение #24


Гуру
******

Группа: Админы
Сообщений: 3 621
Регистрация: 18-10-04
Из: Москва
Пользователь №: 904



Цитата(papasha @ May 17 2006, 22:25) *
100% истина! Обязательная прорисовка временных диаграм на бумаге! Ни один САПР за нас это не сделает. А функциональное моделирование - это проверка ляпов типа 2*2=10.


Для временных диаграмм (их рисования) есть замечательные программы типа Timing Designer, Timing Tool, TimeGen, которые уже обсуждались на форуме. Они гораздо удобнее бумаги и ластика. smile.gif


--------------------
BR, Makc
В недуге рождены, вскормлены тленом, подлежим распаду. (с) У.Фолкнер.
Go to the top of the page
 
+Quote Post
papasha
сообщение May 18 2006, 07:28
Сообщение #25


Частый гость
**

Группа: Свой
Сообщений: 122
Регистрация: 25-06-04
Из: Москва
Пользователь №: 185



Цитата(makc @ May 17 2006, 22:58) *
Цитата(papasha @ May 17 2006, 22:25) *

100% истина! Обязательная прорисовка временных диаграм на бумаге! Ни один САПР за нас это не сделает. А функциональное моделирование - это проверка ляпов типа 2*2=10.


Для временных диаграмм (их рисования) есть замечательные программы типа Timing Designer, Timing Tool, TimeGen, которые уже обсуждались на форуме. Они гораздо удобнее бумаги и ластика. smile.gif


Не обращал внимания blush.gif Попробую.
Go to the top of the page
 
+Quote Post
kst
сообщение May 18 2006, 08:39
Сообщение #26


Частый гость
**

Группа: Свой
Сообщений: 141
Регистрация: 16-06-05
Из: Нижний Новгород
Пользователь №: 6 065



На Телесистемах была тема по поводу программ для рисования временных диаграмм:
"http://telesys.ru/wwwboards/fpga/265/messages/18371.shtml"
Go to the top of the page
 
+Quote Post
dxp
сообщение May 18 2006, 10:06
Сообщение #27


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



Цитата(CaPpuCcino @ May 17 2006, 22:19) *
не подумайте что я тут побычить хочу - мнe понастоящему инересно мнение вот по какому поводу.
не кажется ли публике что такие вещи как HDL-designer приводят к деградации разработчика - что-то на подобие того как это происxодит при общение с Дельфи или Висжуал Студио - когда разработчик начинает играть в кубики и мнеогие даже уже не представляют что реально происxодит под этими обложками - и то что подобние рода штуки приводят к привыканию когда разработчик уже просто подсажен на продукт. я вот просто всегда вс: писал ручками а вот сейчас появилась возможность пересесть на ХДЛ-дезигнер думаю стоит или вполне лучше обходиться хорошим текстовим редактором
каковы главные прeимущества?

Здесь трудно сказать. На вкус и цвет, как известно... Лично я предпочитаю не пользоваться всякими такими тулзами - описание делаю только на языке. Так максимальная гибкость и управляемость. И чем интенсивнее и больше работаешь с текстом, языком, тем лучше рука набита, увереннее поддается контролю текстовое описание. Тут еще хороший редактор рулит.

Что касается дополнительних средств, то без них не обходится. Но тут опять же на вкус и цвет. Я предпочитаю, например, те же автоматы состояний рисовать в Visio, который по уровню работы с графикой дает сто очков любому HDL рисователю. Конечно, Visio не может потом сгенерить из диаграммы код, но это, имхо, не самый большой недостаток - по готовой схеме набросать код - самая простая и быстрая часть работы.

Кстати, то же самое касается и временнЫх диаграмм. Посмотрел несколько специализированных программ (в т.ч. скачал вчера по ссылке с фтп редактор от NI, совершенно не проникся. Возможно, этот инструмент крут тем, что интегрируется с какими-то другими тулзами оной фирмы, но сам по себе совершенно не впечатлил). Какая-то простая программка, afair, TimeGen уже больно убогой показалось. Еще мельком посмотрел более крутую вещь (название могу попутать), вроде, Timing Designer, но ниасиил. smile.gif В том же Visio вполне удобно временнЫе диаграммы рисовать. Как показывает опыт, основное время уходит не на собственно рисование, а на обдумывание и придумывание. Зато в полный рост рулит внешний вид - чем оно красивше выглядит, тем быстрее приходит понимание. Опять же, гибкость полная при рисовании - какие хочешь элементы (и как хочешь), такие и добавляешь. В отличие от специализированных продуктов. Прошу воспринимать эти слова не как наезд на спец. инструменты, возможно, чего-то не понимаю. Разъясните? smile.gif

Цитата(CaPpuCcino @ May 17 2006, 22:19) *
и еще одно замечание - если пишите в Верилоге не советую использовать Симплифай - они давно забили на поддержание синтаксиса ап-ту-дэйт и роются только в оптимизации ресурсов и подержки новых кристаллов

О! А чего там еще делать? Стандарт 2001 он поддерживает, что еще надо? Баги исправлять? Это дело, конечно, нужное, но, во-первых, возможно, они не знают о тех багах, которые Вам анноят, во-вторых, возможно, считают, что это не фатально и пока может подождать, т.к. и так есть над чем работать.

А так оно постепенно начинает поддеживать SystemVerilog. Хотя бы пока на уровне некоторых синтаксических конструкций. Т.е. работают.


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
CaPpuCcino
сообщение May 18 2006, 14:49
Сообщение #28


тоже уже Гуру
******

Группа: Свой
Сообщений: 2 047
Регистрация: 13-06-05
Из: Кёлн - Санкт-Петербург
Пользователь №: 5 973



to dxp
разделяю мнение по 1 пункту - сам думаю так же
п 2: вы наверное пока не сталкивались, но на самом деле V2к1 поддерживается на уровне V95 плюс половина из того что есть в 2001 для синтеза. синтезируемое подмножество SV поддержено процентов на 5 отсилы


--------------------
И снова на арене цирка - дрессированные клоуны!! Оказываем консультации по электронике за симпу круглосуточно.
Go to the top of the page
 
+Quote Post
Джеймс
сообщение May 18 2006, 19:26
Сообщение #29


Местный
***

Группа: Свой
Сообщений: 462
Регистрация: 20-01-06
Пользователь №: 13 399



Цитата
dxp:
Я предпочитаю, например, те же автоматы состояний рисовать в Visio, который по уровню работы с графикой дает сто очков любому HDL рисователю. Конечно, Visio не может потом сгенерить из диаграммы код, но это, имхо, не самый большой недостаток - по готовой схеме набросать код - самая простая и быстрая часть работы.
Прошу воспринимать эти слова не как наезд на спец. инструменты...Разъясните?


Во-первых, зачем делать двойную работу? Кроме того, эти два представления нужно как-то синхронизировать между собой, поддерживать актуальные версии. Но это даже мелочь. Так можно сделать проект для себя. А если проектом должны пользоваться другие разработчики? А если им понадобится что-то изменить?
Далее. Закодировать машину на 74 состояния (реальный пример) вручную, и не допустить ни одной ошибки чисто по невнимательности (например, в приоритетах) очень сложно. Здесь же половину работы делает HDL-Designer. Разработчик занимается только полезной логикой, не думая о тупиковых состояниях и т.п. Небольшой пример - исключаю одно состояние (нажатием Delete) – автоматически меняются приоритеты остальных.
Многие выступают против использования графического представления (я не о “рисовании схем”, а всё о том же HDL-Designer-e), приводя примеры как просто объединять модули в тексте. А если количество instance-ов - тысяча? Да, наверное, в небольшом проекте на подготовку понадобится немного больше времени при работе с графической оболочкой для HDL, чем в чистом тексте, но мере роста проекта в многочисленных исходниках просто перестанешь ориентироваться (особенно по прошествии времени!)
Go to the top of the page
 
+Quote Post
dxp
сообщение May 19 2006, 04:34
Сообщение #30


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



Цитата(CaPpuCcino @ May 18 2006, 21:49) *
п 2: вы наверное пока не сталкивались, но на самом деле V2к1 поддерживается на уровне V95 плюс половина из того что есть в 2001 для синтеза.

А что из синтезируемого подмножества V2001 Синплифай не поддерживает?

Цитата(CaPpuCcino @ May 18 2006, 21:49) *
синтезируемое подмножество SV поддержено процентов на 5 отсилы

Да, я поэтому и не дергаюсь. Хотя те же классы были бы очень кстати. Подождем.


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
dxp
сообщение May 19 2006, 05:04
Сообщение #31


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



Цитата(Джеймс @ May 19 2006, 02:26) *
Во-первых, зачем делать двойную работу? Кроме того, эти два представления нужно как-то синхронизировать между собой, поддерживать актуальные версии. Но это даже мелочь. Так можно сделать проект для себя. А если проектом должны пользоваться другие разработчики? А если им понадобится что-то изменить?
Далее. Закодировать машину на 74 состояния (реальный пример) вручную, и не допустить ни одной ошибки чисто по невнимательности (например, в приоритетах) очень сложно. Здесь же половину работы делает HDL-Designer. Разработчик занимается только полезной логикой, не думая о тупиковых состояниях и т.п. Небольшой пример - исключаю одно состояние (нажатием Delete) – автоматически меняются приоритеты остальных.
Многие выступают против использования графического представления (я не о “рисовании схем”, а всё о том же HDL-Designer-e), приводя примеры как просто объединять модули в тексте. А если количество instance-ов - тысяча? Да, наверное, в небольшом проекте на подготовку понадобится немного больше времени при работе с графической оболочкой для HDL, чем в чистом тексте, но мере роста проекта в многочисленных исходниках просто перестанешь ориентироваться (особенно по прошествии времени!)

Я не утверждал, что мое предпочтение лучше. Это просто мое предпочтение. Проект я всегда виду от текста, а не от графики. Так, как уже сказал, гибче и надежнее. Что-то поменять в тексте - беру и меняю. А корректировать сгенеренный машиной текст считаю неправильным путем - изменять всегда надо исходник, т.е. графику, если от нее пляска.

Графическое представление мне нужно исключително для личного понимания - не могу удержать в голове слишком много информации. А схему переходов печатаю на бумаге - да хоть А1 формата, если она большая, и она всегда перед глазами. Зато ее графический вид я могу выполнить как мне угодно. Не знаю, как у Вас, а у меня основное время уходит не на рисование и не на набор текста, а на придумывание. Если схема выглядит некрасиво, "страдает мое эстетическое восприятие" (с) не помню, кто, кажется ReAl. smile.gif

Что касается машины на 74 состояния, то графическое представление такого автомата для удобства и оперативности работы вряд ли лучше, чем case(State) ... Что касается запрещенных состояний, то для этого есть всякие default. Кроме того я для каждого состояния завожу именованную константу и присвоение состояния делается только этим. При уделения состояния в первую очередь удалается эта констатнта (компилятор сразу выдаст ошибку, если где-то будет ее использование), т.ч. это еще и в известной степени вопрос стиля.

Кстати, еще про 74 состояния. Количество состояний - не мера сложности. Это мера объема. А сложность - это не объем, а количество перекресных связей. И автомат на дюжину состояний но с морем связей между состояниями может оказаться куда сложнее, чем здоровенный автомат, но с простыми цепочными переходами. Кстати, большие КА, как правило, от того и большие, что в них много цепочных переходов... Ладно, это уже совсем в сторону... smile.gif


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
Kopart
сообщение May 19 2006, 06:51
Сообщение #32


Знающий
****

Группа: Свой
Сообщений: 601
Регистрация: 1-03-05
Из: Spb
Пользователь №: 2 972



Цитата(Джеймс @ May 18 2006, 23:26) *
Далее. Закодировать машину на 74 состояния (реальный пример) вручную, и не допустить ни одной ошибки чисто по невнимательности (например, в приоритетах) очень сложно. Здесь же половину работы делает HDL-Designer. Разработчик занимается только полезной логикой, не думая о тупиковых состояниях и т.п. Небольшой пример - исключаю одно состояние (нажатием Delete) – автоматически меняются приоритеты остальных.
Многие выступают против использования графического представления (я не о “рисовании схем”, а всё о том же HDL-Designer-e), приводя примеры как просто объединять модули в тексте. А если количество instance-ов - тысяча? Да, наверное, в небольшом проекте на подготовку понадобится немного больше времени при работе с графической оболочкой для HDL, чем в чистом тексте, но мере роста проекта в многочисленных исходниках просто перестанешь ориентироваться (особенно по прошествии времени!)


Помимо того, что сказано про "большие" КА (когда в тексте проще сделать очепятки) мое мнение, что из графического описания синтезатор сделает стандартную схему, которую он сможет еще и оптимизировать(по произовдительности/ресурсам).


--------------------
Насколько проще была бы жизнь, если бы она была в исходниках
Go to the top of the page
 
+Quote Post
dxp
сообщение May 19 2006, 07:13
Сообщение #33


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



Цитата(NiOS @ May 19 2006, 13:51) *
Помимо того, что сказано про "большие" КА (когда в тексте проще сделать очепятки) мое мнение, что из графического описания синтезатор сделает стандартную схему, которую он сможет еще и оптимизировать(по произовдительности/ресурсам).

Пардон, не понял, из какого графического описания и какой синтезатор? Синтезаторы работают с текстом. Из той графики сначала генерируется текстовое описание на языке. Потом уже это синтезатору отдается. Откуда тут дополнительние возможности по оптимизации?


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
Kopart
сообщение May 19 2006, 07:54
Сообщение #34


Знающий
****

Группа: Свой
Сообщений: 601
Регистрация: 1-03-05
Из: Spb
Пользователь №: 2 972



Цитата(dxp @ May 19 2006, 11:13) *
Цитата(NiOS @ May 19 2006, 13:51) *

Помимо того, что сказано про "большие" КА (когда в тексте проще сделать очепятки) мое мнение, что из графического описания синтезатор сделает стандартную схему, которую он сможет еще и оптимизировать(по произовдительности/ресурсам).

Пардон, не понял, из какого графического описания и какой синтезатор? Синтезаторы работают с текстом. Из той графики сначала генерируется текстовое описание на языке. Потом уже это синтезатору отдается. Откуда тут дополнительние возможности по оптимизации?


Я имел ввиду, что текстовое описание сгенереное из графики будет стандартное. Связка генератор из графики -> синтезатор в пределе одно пакета, по логике, должна быть оптимизирована => синтезатору будет проще разложить сгенерированое текстовое описание в "стандартные" блоки.

А вот текст не всегда можно так идеально написать (идеально в смысле для конкретного синтезатора)


--------------------
Насколько проще была бы жизнь, если бы она была в исходниках
Go to the top of the page
 
+Quote Post
dxp
сообщение May 19 2006, 09:12
Сообщение #35


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



Цитата(NiOS @ May 19 2006, 14:54) *
Я имел ввиду, что текстовое описание сгенереное из графики будет стандартное. Связка генератор из графики -> синтезатор в пределе одно пакета, по логике, должна быть оптимизирована => синтезатору будет проще разложить сгенерированое текстовое описание в "стандартные" блоки.

А вот текст не всегда можно так идеально написать (идеально в смысле для конкретного синтезатора)

Теперь понятно. Хм, не знаю, не встречался с такой проблемой. КА всегда оформляю в виде case(...) ..., синтезатор (Синплифай) всегда обнаруживает в этом КА, о чем радостно сообщает, что, дескать, обнаружена FSM. Тем более, что я там еще обычно encoding задаю (чаще всего onehot). Не знаю, как надо написать, чтобы синтезатор это не распознал.


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
Kopart
сообщение May 19 2006, 10:16
Сообщение #36


Знающий
****

Группа: Свой
Сообщений: 601
Регистрация: 1-03-05
Из: Spb
Пользователь №: 2 972



Цитата(dxp @ May 19 2006, 13:12) *
Теперь понятно. Хм, не знаю, не встречался с такой проблемой. КА всегда оформляю в виде case(...) ..., синтезатор (Синплифай) всегда обнаруживает в этом КА, о чем радостно сообщает, что, дескать, обнаружена FSM. Тем более, что я там еще обычно encoding задаю (чаще всего onehot). Не знаю, как надо написать, чтобы синтезатор это не распознал.


Я писал более обще по Идее:
В veriog можно так описать КА, что синтезатор, может, просто так, не развести на макс частоту/мин ресурсы.
А вот в описав в графике - скомпилированое текстовое описание будет всегда высококачественное для данного пакета (быть может при этом в графике в жертву качественности текстового описания урезаны "лишние" возможности Verilog'a, при сразу текстовом описании).

Согласитесь?
Ведь можно так описать в тексте КА, что, как Вы сказали, синтезатор его поймет, но вот у синтезатора не получется его качественно оптимизировать.


--------------------
Насколько проще была бы жизнь, если бы она была в исходниках
Go to the top of the page
 
+Quote Post
dxp
сообщение May 19 2006, 12:02
Сообщение #37


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



Цитата(NiOS @ May 19 2006, 17:16) *
Я писал более обще по Идее:
В veriog можно так описать КА, что синтезатор, может, просто так, не развести на макс частоту/мин ресурсы.
А вот в описав в графике - скомпилированое текстовое описание будет всегда высококачественное для данного пакета (быть может при этом в графике в жертву качественности текстового описания урезаны "лишние" возможности Verilog'a, при сразу текстовом описании).

Согласитесь?
Ведь можно так описать в тексте КА, что, как Вы сказали, синтезатор его поймет, но вот у синтезатора не получется его качественно оптимизировать.

Ну, не знаю. Не сталкивался с трудностями. Смотрел, в частности, как генерит КА Альдек, примерно также. Несколько более многословно, но это нормально для машинносгенерированого текста. С имплементацией тоже все в порядке - с Синплифаем полное понимание. Во всяком случае трудности с времянками возникали совсем не здесь. Я даже запрещал ему FSM Explorer включать (достаточно было FSM Compiler'а), потому что тот занимался излишними оптимизациями, я потом испытывал дополнительные трудности при отладке (в SignalTap'е), когда искал триггеры, описывающие состояния. Да и откуда взяться траблам, когда мой текст по сути и смыслу мало отличается от сгененернного прогой?


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
Kopart
сообщение May 19 2006, 14:25
Сообщение #38


Знающий
****

Группа: Свой
Сообщений: 601
Регистрация: 1-03-05
Из: Spb
Пользователь №: 2 972



Цитата(dxp @ May 19 2006, 16:02) *
Цитата(NiOS @ May 19 2006, 17:16) *

Я писал более обще по Идее:
В veriog можно так описать КА, что синтезатор, может, просто так, не развести на макс частоту/мин ресурсы.
А вот в описав в графике - скомпилированое текстовое описание будет всегда высококачественное для данного пакета (быть может при этом в графике в жертву качественности текстового описания урезаны "лишние" возможности Verilog'a, при сразу текстовом описании).

Согласитесь?
Ведь можно так описать в тексте КА, что, как Вы сказали, синтезатор его поймет, но вот у синтезатора не получется его качественно оптимизировать.

Ну, не знаю. Не сталкивался с трудностями. Смотрел, в частности, как генерит КА Альдек, примерно также. Несколько более многословно, но это нормально для машинносгенерированого текста. С имплементацией тоже все в порядке - с Синплифаем полное понимание. Во всяком случае трудности с времянками возникали совсем не здесь. Я даже запрещал ему FSM Explorer включать (достаточно было FSM Compiler'а), потому что тот занимался излишними оптимизациями, я потом испытывал дополнительные трудности при отладке (в SignalTap'е), когда искал триггеры, описывающие состояния. Да и откуда взяться траблам, когда мой текст по сути и смыслу мало отличается от сгененернного прогой?


Я как раз писал в общем смысле (статистически при написании людьми).
Я, наоборот, не имел ввиду лично Вас, вы уже писали, что у Вас "рука набита".
А вот когда рука не набита, в графике в этом плане не ошибешься


--------------------
Насколько проще была бы жизнь, если бы она была в исходниках
Go to the top of the page
 
+Quote Post
CaPpuCcino
сообщение May 19 2006, 16:10
Сообщение #39


тоже уже Гуру
******

Группа: Свой
Сообщений: 2 047
Регистрация: 13-06-05
Из: Кёлн - Санкт-Петербург
Пользователь №: 5 973



[quote name='dxp' date='May 19 2006, 08:34' post='114684']
[quote name='CaPpuCcino' post='114542' date='May 18 2006, 21:49']
п 2: вы наверное пока не сталкивались, но на самом деле V2к1 поддерживается на уровне V95 плюс половина из того что есть в 2001 для синтеза. [/quote]
А что из синтезируемого подмножества V2001 Синплифай не поддерживает?

первое что приходит на ум - это ужасная поддержка generate - она здесь на самом базовом уровне, второе - поддержание иерархии проекта на уровне синтаксиса языка, третье кошмарная работа с параметрами функции, ещё можно добавить индексирование полей регистров по переменной вычисляемой на этапе компиляции- это только то что сразу пришло на ум, а если подумать то много ещё нюансов всплывёт
из СВ вообще поддерживается только новое связывание портов и уточнение always блоков - из того что действительно полезно не поддерживается ничего - даже такая простая вещь как перечисляемые типы удобные для state machines - которые поддерживаются тем же симплифаем в синтаксисе ВХДЛ


--------------------
И снова на арене цирка - дрессированные клоуны!! Оказываем консультации по электронике за симпу круглосуточно.
Go to the top of the page
 
+Quote Post
CaPpuCcino
сообщение May 19 2006, 16:22
Сообщение #40


тоже уже Гуру
******

Группа: Свой
Сообщений: 2 047
Регистрация: 13-06-05
Из: Кёлн - Санкт-Петербург
Пользователь №: 5 973



Цитата(NiOS @ May 19 2006, 18:25) *
Я, наоборот, не имел ввиду лично Вас, вы уже писали, что у Вас "рука набита".
А вот когда рука не набита, в графике в этом плане не ошибешься

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


--------------------
И снова на арене цирка - дрессированные клоуны!! Оказываем консультации по электронике за симпу круглосуточно.
Go to the top of the page
 
+Quote Post
druzhin
сообщение May 30 2006, 12:47
Сообщение #41


druzhin
***

Группа: Свой
Сообщений: 286
Регистрация: 18-06-04
Из: Москва
Пользователь №: 58



Цитата(NiOS @ May 19 2006, 18:25) *
Я как раз писал в общем смысле (статистически при написании людьми).
Я, наоборот, не имел ввиду лично Вас, вы уже писали, что у Вас "рука набита".
А вот когда рука не набита, в графике в этом плане не ошибешься
Вы вообще-то делали БОЛЬШИЕ проекты? Вы пробовали понять почему схематик почти вымер? В схематике сидит одно тупое старичьё с второстепенными проектами, у них всегда на готове обоснование почему надо сидеть в схематике третьего фоундейшена.
Когда я что-то проектирую, я придумываю КАК что-либо должно работать и пишу это на верилоге.
Если бы я сидел на схематике, тоя должен был бы: 1) придумать КАК должно работать нечто, 2) понимание КАК должно работать перевести в примитивы схематика, то есть сделать лишнее действие.
Go to the top of the page
 
+Quote Post
Very_hard
сообщение May 30 2006, 13:01
Сообщение #42


Частый гость
**

Группа: Свой
Сообщений: 183
Регистрация: 10-02-06
Из: Киев, Украина
Пользователь №: 14 188



Цитата
Вы вообще-то делали БОЛЬШИЕ проекты? Вы пробовали понять почему схематик почти вымер?


Речь вообще-то шла не о схематике, а о графическом представлении конечных автоматов. smile.gif
Насчет схематики полностью согласен - геморрой с ней еще тот.
Go to the top of the page
 
+Quote Post
kst
сообщение May 30 2006, 13:20
Сообщение #43


Частый гость
**

Группа: Свой
Сообщений: 141
Регистрация: 16-06-05
Из: Нижний Новгород
Пользователь №: 6 065



Цитата(druzhin @ May 30 2006, 16:47) *
Вы вообще-то делали БОЛЬШИЕ проекты?
Большие это какие?
Цитата
Когда я что-то проектирую, я придумываю КАК что-либо должно работать и пишу это на верилоге.
Если бы я сидел на схематике, тоя должен был бы: 1) придумать КАК должно работать нечто, 2) понимание КАК должно работать перевести в примитивы схематика, то есть сделать лишнее действие.
А что, синтезаторы все делают как надо?
Кстати писание на HDL, IMHO, тоже можно приравнять к переводу понимания "как должно работать" в примитивы.
Go to the top of the page
 
+Quote Post
vetal
сообщение May 30 2006, 13:27
Сообщение #44


Гуру
******

Группа: Модераторы
Сообщений: 2 095
Регистрация: 27-08-04
Из: Россия, СПб
Пользователь №: 553



Цитата
А что, синтезаторы все делают как надо?

А как иначе-то? Что написано, то и делают(работа у них такая).
Go to the top of the page
 
+Quote Post
iosifk
сообщение May 30 2006, 13:42
Сообщение #45


Гуру
******

Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(kst @ May 30 2006, 17:20) *
Цитата(druzhin @ May 30 2006, 16:47) *
Вы вообще-то делали БОЛЬШИЕ проекты?
Большие это какие?


Пример большого проекта - в одном кристаллле пара микроконтроллеров, развитый алгоритм управления, примерно 1Кслов команд. Управление на десяток ЦАПов, на АЦП, на полсотни реле и силовые ключи.
Примерно описан в статье "Микропроцессор своими руками - 3".
Кто хочет попробовать в "картинках" - напишите, когда нарисуете хотя бы четверть.

Объем чипа не всегда определяет сложность проекта. Можно сделать фильтр обалденной разрядности и порядка и забить им большой кристалл. А бывает что и не очень большой кристалл, но в проекте много логических связей и сложный алгоритм. Вот тогда и приходится все "крутить" по месту.
Так что для сравнения могу сказать, что либо микроконтроллеры, либо автомат на более чем 200 состояний. Вот как Вы это будете все рисовать в "картинках"?
А для текстового описания я сделал свой программный инструмент, который в вериложный файл вставлял куски кода в зависимости от того, что я запрограммировал для микроконтроллера. Например 1 кликом можно выбрать объем памяти команд. Ну и добавлял "прошивку" и дату версии. И это очень удобно.
А еще посмотрите мою статью "Между ISE и ViewDraw". Там тоже описан программный инструмент, которым из нет-листа я сразу генерил вериложный файл с пинами, портами, буферами и т.д.
Очень полезно, когда пинов 400 и более.
Удачи!


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
Kopart
сообщение May 30 2006, 13:47
Сообщение #46


Знающий
****

Группа: Свой
Сообщений: 601
Регистрация: 1-03-05
Из: Spb
Пользователь №: 2 972



Цитата(druzhin @ May 30 2006, 16:47) *
Вы вообще-то делали БОЛЬШИЕ проекты? Вы пробовали понять почему схематик почти вымер? В схематике сидит одно тупое старичьё с второстепенными проектами, у них всегда на готове обоснование почему надо сидеть в схематике третьего фоундейшена.
Когда я что-то проектирую, я придумываю КАК что-либо должно работать и пишу это на верилоге.
Если бы я сидел на схематике, тоя должен был бы: 1) придумать КАК должно работать нечто, 2) понимание КАК должно работать перевести в примитивы схематика, то есть сделать лишнее действие.


Если Вы писали вообще про схематик, то это уже избитая тема...

А вот если про схематик КА (что менее вероятно), то я думаю уже многие согласились, что в графическом описании КА больше преимуществ, чем недостатков.

Мое ИМХО я бы вообще всё писал на Verilog'e (комментить проще) + если проект большой - разделение на "глобальные" функциональными блоки. Но получается удобней (и продуктивней!) КА оформлять в графике.


--------------------
Насколько проще была бы жизнь, если бы она была в исходниках
Go to the top of the page
 
+Quote Post
kst
сообщение May 30 2006, 13:52
Сообщение #47


Частый гость
**

Группа: Свой
Сообщений: 141
Регистрация: 16-06-05
Из: Нижний Новгород
Пользователь №: 6 065



Цитата(vetal @ May 30 2006, 17:27) *
А как иначе-то? Что написано, то и делают(работа у них такая).
Ну еслиб я мог написать "Уважаемый верилог поставь триггер", и он бы ставил, я б согласился smile.gif
Как сказал уважаемый druzhin, выигрыш HDL состоит в том, что можно не отвлекать на то, как реализовывать на основе примитивов. Набросал поведение, а синтезатор сам пусть думает, как это воплотить в жизнь. Здесь и всатет вопрос, а то ли он делает, что имелось в виду.
Go to the top of the page
 
+Quote Post
Mad Makc
сообщение May 30 2006, 14:03
Сообщение #48


Местный
***

Группа: Свой
Сообщений: 244
Регистрация: 2-10-04
Из: Мухосранска
Пользователь №: 763



Цитата
Здесь и всатет вопрос, а то ли он делает, что имелось в виду.

Конечно то.
А если не то,то всегда можно посмотреть,что он там насинтезил.На крайняк замоделировать то,что насинтезил.Ну,или самое тупое- сделать прошивку,залить в железо и искать причины почему не работает.Благо встоенные логические анализаторы облегчают такую отладку.
Go to the top of the page
 
+Quote Post
kst
сообщение May 30 2006, 14:36
Сообщение #49


Частый гость
**

Группа: Свой
Сообщений: 141
Регистрация: 16-06-05
Из: Нижний Новгород
Пользователь №: 6 065



Я имел в виду, всегда ли синтезаторы адекватно синтезируют HDL описание. А то может так ссинтезируют, что после разводки шедевра по кристаллу схема не будет работать и на 30 МГц, хотя планировалось 50.


Или затратят слишком много ресурсов.
Go to the top of the page
 
+Quote Post
vetal
сообщение May 30 2006, 15:20
Сообщение #50


Гуру
******

Группа: Модераторы
Сообщений: 2 095
Регистрация: 27-08-04
Из: Россия, СПб
Пользователь №: 553



Цитата
"Уважаемый верилог поставь триггер"

Я примерно так и делаю :"Уважаемый вхдл поставь триггер" и он появляется.

Цитата
Я имел в виду, всегда ли синтезаторы адекватно синтезируют HDL описание. А то может так ссинтезируют, что после разводки шедевра по кристаллу схема не будет работать и на 30 МГц, хотя планировалось 50.

Синтезаторы синтезируют на столько корректно, на сколько корректно описана схема.

Шутка: можно сходить к хирургу и выпрямить руки, тогда и rtl, прямой будетsmile.gif(всерьез не воспринимать)

От синтезатора мало что зависит. Все упирается в человека.

Если вы в квартусе(схема) поставите триггер на вход D подадите '1', на clk тактовую, а выход q податите на выход, то квартус просто посадит q на '1'.
Go to the top of the page
 
+Quote Post
kst
сообщение May 30 2006, 15:45
Сообщение #51


Частый гость
**

Группа: Свой
Сообщений: 141
Регистрация: 16-06-05
Из: Нижний Новгород
Пользователь №: 6 065



Цитата(vetal @ May 30 2006, 19:20) *
Я примерно так и делаю :"Уважаемый вхдл поставь триггер" и он появляется.
Прям одной строчкой? Прям по русски? Фантастика!!!
Цитата
Синтезаторы синтезируют на столько корректно, на сколько корректно описана схема.
Шутка: можно сходить к хирургу и выпрямить руки, тогда и rtl, прямой будетsmile.gif(всерьез не воспринимать)
От синтезатора мало что зависит. Все упирается в человека.
Если вы в квартусе(схема) поставите триггер на вход D подадите '1', на clk тактовую, а выход q податите на выход, то квартус просто посадит q на '1'.
Я не говорю о коде, который написан неправильно. Я говорю о коде, который синтезиться в принципе правильно, но при этом либо схема занимает слишком много ресурсов, либо с максимальной тактовой частотой проблемы.

В данной теме выше приводился пример того как синтезатор ISE при разводке схемы на кристале затратил на 20% больше ресурсов, чем синтезатор Sinplify. То есть синтезаторы все-таки делают какие-то ошибки, не оптимально что-то синтезируют. Вот я о чем говорю.
Go to the top of the page
 
+Quote Post
des00
сообщение May 30 2006, 16:00
Сообщение #52


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата
Я не говорю о коде, который написан неправильно. Я говорю о коде, который синтезиться в принципе правильно, но при этом либо схема занимает слишком много ресурсов, либо с максимальной тактовой частотой проблемы.

Очень интересно, а чем это отличается от рисования схем ? то, что вы попросили от синтезатора, то он и собрал, так как вы указали. И проблема максимальной тактовой это проблема в первую очередь разработчика, т.к. синтезировался его код.
Согласитесь что ждать от
pipa(31 downto 0) <= pipaA(31 downto 0) when (signed(pipaA) < signed(pipaB)) else pipab(31 downto 0);
500 МГЦ на virtex4 это просто смещно и виноват в этом не синтезатор, а человек, который вот это написал.

Цитата
В данной теме выше приводился пример того как синтезатор ISE при разводке схемы на кристале затратил на 20% больше ресурсов, чем синтезатор Sinplify. То есть синтезаторы все-таки делают какие-то ошибки, не оптимально что-то синтезируют. Вот я о чем говорю.

В данном конкретном примере они не делают ошибки, они понимают описание таким образом, каким понимают + у симплифая большая площадь охвата алгоритма минимизации. И не факт что схематичное описание, переведеное в вхдл и скормленое симлифаю даст такой же выйгрышь (ах какой плохой симплифай).

А по сабжу ИМХО через написание кода, должны пройдти все, это так сказать школа жизни. И только потом переходить на пакеты граф. проектирования, и если уж пошла такая пьянка так давайте еще расмотрим цикл разработки как снизу в верх, так и сверху вниз (вот тут как раз на высоком уровне иерархии граф. отображение благо).


--------------------
Go to the top of the page
 
+Quote Post
vetal
сообщение May 30 2006, 16:32
Сообщение #53


Гуру
******

Группа: Модераторы
Сообщений: 2 095
Регистрация: 27-08-04
Из: Россия, СПб
Пользователь №: 553



Цитата
Я не говорю о коде, который написан неправильно. Я говорю о коде, который синтезиться в принципе правильно, но при этом либо схема занимает слишком много ресурсов, либо с максимальной тактовой частотой проблемы.

Уж ответили. Но я повторю - какой rtl, такой и результат.

Схема - структурное описание алгоритма.
RTL - описание алгоритма на уровне регистровых передач.
Разница - в подходе.
Go to the top of the page
 
+Quote Post
CaPpuCcino
сообщение May 30 2006, 17:46
Сообщение #54


тоже уже Гуру
******

Группа: Свой
Сообщений: 2 047
Регистрация: 13-06-05
Из: Кёлн - Санкт-Петербург
Пользователь №: 5 973



Цитата(kst @ May 30 2006, 18:36) *
...после разводки шедевра по кристаллу схема не будет работать и на 30 МГц, хотя планировалось 50.

счастливые вы ребята wink.gif


--------------------
И снова на арене цирка - дрессированные клоуны!! Оказываем консультации по электронике за симпу круглосуточно.
Go to the top of the page
 
+Quote Post
Джеймс
сообщение May 30 2006, 18:23
Сообщение #55


Местный
***

Группа: Свой
Сообщений: 462
Регистрация: 20-01-06
Пользователь №: 13 399



[quote name='druzhin' date='May 30 2006, 16:47' post='118516']
[/quote]Вы вообще-то делали БОЛЬШИЕ проекты? [/quote]

А Вы вообще-то топик читали? Какой схематик??
Я посмотрю на большой проект, который по объему наполовину будет состоять из объявлений instance-ов с десятками разных параметров ( - а если к проекту нужно вернуться через год?). В HDL Designer-е я даже ни разу не написал слово module, пишу только полезный КОД.
Go to the top of the page
 
+Quote Post
dxp
сообщение May 31 2006, 04:18
Сообщение #56


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



Цитата(kst @ May 30 2006, 20:52) *
Цитата(vetal @ May 30 2006, 17:27) *
А как иначе-то? Что написано, то и делают(работа у них такая).
Ну еслиб я мог написать "Уважаемый верилог поставь триггер", и он бы ставил, я б согласился smile.gif

Фраза "Уважаемый верилог поставь триггер" переводится на Верилог следующим образом:

reg trigger;
always @(posedge clk) trigger <= ...;

Но я на другом хотел заострить внимание. При проектировании логики на HDL нужно уйти от понятий "триггер", "счетчик (простой, реверсивный, по модулю эн и т.д.)", "сдвиговый регистр" и т.д. Цель проектирования - получить работоспособный результат. И при вводе описания мне нужен-то (и всегда был нужен), скажем, не счетчик, как таковой, а некое устройство, которое будет выполнять функцию счета. Во времена рассыпухи таких устройств универсальных не было и делали это на триггерах, потом появилсь ИМС счетчиков, из которых лепили более сложные счетчики. Потом возникли ПЛИСы, где появилась возможность исползовать параметризованные блоки - например, lpm_counter, и казалось, что вот это и есть то, что надо - универсальный счетчик на все случаи жизни подходит, другого нечего и желать. И сам факт, что нужен-то не счетчик, а функция счета, как-то остался в стороне. А между тем, именно HDL'ные конструкции и дают возможность описывать именно функциональность. Например, мне нужно подсчитывать что-то, пишу (упрощено, почти псевдокод smile.gif):

Код
...
input event;
reg [N-1:0] Count;

always @(posedge clk)
    if(event) Count <= Count + 1;


Конечно, это будет счетчик, точно такой, какой бы я сам сваял. Но в этом случае мне об этом даже думать не надо - мне нужен подсчет, я его получил. Безо всяких явных указаний про счетчики и прочее. Аналогично и со всем остальным.

Когда работал еще с AHDL'ем, использовал в полный рост библиотеку LPM, казалось, клевая вещь. Пересевши на Verilog, тоже пытался по привычке использовать LPM, испытал большое неудобство в использовании - все-таки способ инстанцирования объектов в AHDL, имхо, на порядок удобнее и читабельнее, чем в Верилоге. Но скоро понял, что занимаюсь ерундой, что нет никакой необходимости в этих модулях. В итоге, в проектах нет ни одного LPM модуля, в качестве готовых альтеровских модулей использую только блоки памяти, ФАПЧ и умножители - то, что является специализированными аппаратными устройствами ПЛИС.

Я не утверждаю, что надо абстрагироваться от железа - ни в коем случае этого делать нельзя, иначе ничего хорошего после синтеза не выйдет - всегда надо представлять, во что выльется та или иная языковая конструкция. Но не нужно делать акцента на конкретных устройствах - как триггеры, счетчики. Ведь при проектировании всегда есть над чем подумать - на это и концентрировать усилия.


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
Kopart
сообщение May 31 2006, 06:34
Сообщение #57


Знающий
****

Группа: Свой
Сообщений: 601
Регистрация: 1-03-05
Из: Spb
Пользователь №: 2 972



Цитата(dxp @ May 31 2006, 08:18) *
Когда работал еще с AHDL'ем, использовал в полный рост библиотеку LPM, казалось, клевая вещь. Пересевши на Verilog, тоже пытался по привычке использовать LPM, испытал большое неудобство в использовании - все-таки способ инстанцирования объектов в AHDL, имхо, на порядок удобнее и читабельнее, чем в Верилоге. Но скоро понял, что занимаюсь ерундой, что нет никакой необходимости в этих модулях. В итоге, в проектах нет ни одного LPM модуля, в качестве готовых альтеровских модулей использую только блоки памяти, ФАПЧ и умножители - то, что является специализированными аппаратными устройствами ПЛИС.


Навеяло воспоминания cheers.gif Я также подпишусь под каждым словом этого абзаца a14.gif

Думаю, для всех кто работал с AHDL, это типичный путь перехода. Может оформить как краткая инструкция к переходу с языка AHDL smile.gif


--------------------
Насколько проще была бы жизнь, если бы она была в исходниках
Go to the top of the page
 
+Quote Post
vetal
сообщение May 31 2006, 06:37
Сообщение #58


Гуру
******

Группа: Модераторы
Сообщений: 2 095
Регистрация: 27-08-04
Из: Россия, СПб
Пользователь №: 553



солидарен с dxp.

Все, кроме pll, можно без проблемм реализовать на языке. У altera целый раздел посвящен этому в "настольной книге".
Go to the top of the page
 
+Quote Post
Kopart
сообщение May 31 2006, 06:54
Сообщение #59


Знающий
****

Группа: Свой
Сообщений: 601
Регистрация: 1-03-05
Из: Spb
Пользователь №: 2 972



Цитата(vetal @ May 31 2006, 10:37) *
Все, кроме pll, можно без проблемм реализовать на языке. У altera целый раздел посвящен этому в "настольной книге".


хочу уточнить: что синтезаторы уже стали понимать поведенческое описания блоков памяти??? (для Altera?)

Или просто забыли дописать в посте "Все, кроме pll, блоков памяти и специализированых блоков ПЛИС" как у dxp


--------------------
Насколько проще была бы жизнь, если бы она была в исходниках
Go to the top of the page
 
+Quote Post
dxp
сообщение May 31 2006, 07:14
Сообщение #60


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



Цитата(vetal @ May 31 2006, 13:37) *
Все, кроме pll, можно без проблемм реализовать на языке.

Это да, только вот эксперименты с той же памятью не принесли (мне) удовлетворения. Для того, чтобы синтезатор (Синплифай) правильно инферил память, надо соблюдать ряд требований. Например, оно хотело (версия 7.5 или 7.6, что-ли, в общем, какая-то из этих, с более новыми не проверял), чтобы выход памяти обязательно пропущен через регистр - это в доке было описано. Но ведь не всегда это надо, иногда достаточно взять просто с выхода памяти. Короче, по предсказуемости и устойчивости результата использование блока, сгенеренного в мегавизарде, оказалось лучше.

С умножителем похожая история вышла. Пока использовались умножения на константу, синтезатор генерил прекрасный код. Но при попытке использовать полноценный (переменную на переменную) умножитель, синтезатор нагенерил кучу предупреждение о том, что, дескать, такой-то регистр с офигенно длинным и запутанным именем - это он сам все это сгенерил, нечеловеческое название было, pruned because его выход не используется. Спрашивается, зачем об этом вопить? Сам сгенерил, сам удалил, малацца, хороший мальчик, возьми с полки конфетку, зачем об этом сообщать? И таких предупреждений оно выдало несколько сотен - умножитель-то немаленькая штучка. Потыкался, потыкался, не понял, что ему надо, сгенерил блок lpm_mult и удовлетворился.

В общем, нет никаких принципиальных противопоказаний к хорошей генерации и памяти, и умножителей, но на тот момент реализация мне не понравилась. Возможно, в будущем ситуация улучшится. М.б. она уже улучшилась в том же Синплифае 8.5, пока не проверял.

Цитата(NiOS @ May 31 2006, 13:54) *
Цитата(vetal @ May 31 2006, 10:37) *

Все, кроме pll, можно без проблемм реализовать на языке. У altera целый раздел посвящен этому в "настольной книге".


хочу уточнить: что синтезаторы уже стали понимать поведенческое описания блоков памяти??? (для Altera?)

Понимать-то уже давно понимают. И даже иногда генерят то, что нужно. Но только для этого надо ряд условий соблюдать. В доке на синтезатор это, как правило, описано.


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
vetal
сообщение May 31 2006, 08:31
Сообщение #61


Гуру
******

Группа: Модераторы
Сообщений: 2 095
Регистрация: 27-08-04
Из: Россия, СПб
Пользователь №: 553



Проверил(ram) возможные комбинации с регистровым и нерегистровым и пр. выходами/входами - хрумкает так , что за ушами трещит. Проблеммы могут возникнуть тогда, когда целевая архитектура не поддерживает чудо.(На пример в циклоне ram без регистра адреса/данных не получится).
Go to the top of the page
 
+Quote Post
dxp
сообщение May 31 2006, 09:14
Сообщение #62


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



Цитата(vetal @ May 31 2006, 15:31) *
Проверил(ram) возможные комбинации с регистровым и нерегистровым и пр. выходами/входами - хрумкает так , что за ушами трещит. Проблеммы могут возникнуть тогда, когда целевая архитектура не поддерживает чудо.(На пример в циклоне ram без регистра адреса/данных не получится).

А какой синтезатор? Какая ПЛИС?

Например, в том же Циклоне аппаратные блоки памяти, насколько знаю, имеют внутри себя входной регистр, его нельзя отключить. Поэтому нерегистровые входы при описании памяти тут не пройдут. Но это не вопрос, тут все понятно. Как уже сказал, оно (Синплифай каких-то 7.х версий) не хотел инферить блоковую память если она была описана без регистров на выходе. И это было четко документировано.


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
vetal
сообщение May 31 2006, 09:18
Сообщение #63


Гуру
******

Группа: Модераторы
Сообщений: 2 095
Регистрация: 27-08-04
Из: Россия, СПб
Пользователь №: 553



Цитата(dxp @ May 31 2006, 13:14) *
Цитата(vetal @ May 31 2006, 15:31) *

Проверил(ram) возможные комбинации с регистровым и нерегистровым и пр. выходами/входами - хрумкает так , что за ушами трещит. Проблеммы могут возникнуть тогда, когда целевая архитектура не поддерживает чудо.(На пример в циклоне ram без регистра адреса/данных не получится).

А какой синтезатор?


Synplify 8.5.1.
(Проверял на actel apa и altera cyclone)
Go to the top of the page
 
+Quote Post
dxp
сообщение May 31 2006, 09:55
Сообщение #64


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



Цитата(vetal @ May 31 2006, 16:18) *
Цитата(dxp @ May 31 2006, 13:14) *

А какой синтезатор?


Synplify 8.5.1.
(Проверял на actel apa и altera cyclone)

Ок, отличная новость, в следующий раз обязательно попробую поюзать языковое описание - генерация модулей в мегавизарде, особенно, когда надо что-то подправить, честно говоря, достает. Спасибо. cheers.gif


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
des00
сообщение May 31 2006, 12:14
Сообщение #65


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(dxp @ May 31 2006, 04:55) *
Цитата(vetal @ May 31 2006, 16:18) *

Цитата(dxp @ May 31 2006, 13:14) *

А какой синтезатор?


Synplify 8.5.1.
(Проверял на actel apa и altera cyclone)

Ок, отличная новость, в следующий раз обязательно попробую поюзать языковое описание - генерация модулей в мегавизарде, особенно, когда надо что-то подправить, честно говоря, достает. Спасибо. cheers.gif


я не был бы столь воодушевлен,
для хилых к сожалению симплифай не может:
корректно отображать DWC память,
пайплайнить на внутреннем тригере блоки ROM памяти (8.4 по крайней мере),
вставлять аппаратные фифо блоки (виртекс 4)
+ даже если описать память так:

Код
process (clk) is
begin
  if (rising_edge(clk)) then
     if (we) then
        mem(to_integer(wr_addr)) <= wr_data;
     end if;
     if (re) then
        rd_data <= mem(to_integer(rd_addr));
     end if;
  end if;
end process;

все равно сибирается реально вот что

Код
process (clk) is
begin
  if (rising_edge(clk)) then
     if (we) then
        mem(to_integer(wr_addr)) <= wr_data;
     end if;
     rd_addr_int <= rd_addr;
  end if;
end process;
rd_data <= mem(to_integer(rd_addr_int)) when (re);


Что по сути и соответсвует модели блочной памяти хилых. при отключеном pipeline регистре,
поэтому те кто не знаком с этой фичей, потом откроет много удивительного smile.gif


--------------------
Go to the top of the page
 
+Quote Post
dxp
сообщение May 31 2006, 13:21
Сообщение #66


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



Цитата(des00 @ May 31 2006, 19:14) *
[...]
я не был бы столь воодушевлен,
для хилых к сожалению симплифай не может:
корректно отображать DWC память,
пайплайнить на внутреннем тригере блоки ROM памяти (8.4 по крайней мере),
вставлять аппаратные фифо блоки (виртекс 4)
+ даже если описать память так:

Код
process (clk) is
begin
[...]
end process;

все равно сибирается реально вот что

Код
process (clk) is
begin
  if (rising_edge(clk)) then
[...]
  end if;
end process;
rd_data <= mem(to_integer(rd_addr)) when (re);


Что по сути и соответсвует модели блочной памяти хилых. при отключеном pipeline регистре,
поэтому те кто не знаком с этой фичей, потом откроет много удивительного smile.gif

Ну, я выше и имел в виду подобные моменты, когда говорил, что использование готовых блоков дает более предсказуемое и устойчивое поведение, нежели инферинг синтезатором. В общем, буду при случае экспериментировать, проверять.


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
vetal
сообщение May 31 2006, 18:46
Сообщение #67


Гуру
******

Группа: Модераторы
Сообщений: 2 095
Регистрация: 27-08-04
Из: Россия, СПб
Пользователь №: 553



des00:
Цитата
...

Это из разряда думаю одно, пишу другое smile.gif.
Данная конструкция должна выглядить примерно так:
Код
internal_async_result:ram_result<=mem(to_integer(rd_addr));
process(clk)
begin
    if (rising_edge(clk)) then
        ...
        if (re) then
            rd_data<=ram_result;
        end if;
    end if;
end process;


Чем правильнее обьяснишь синтезатору, что хоцца получить, тем точнее он это сделает.
А lpm-ы почти тоже самое, только в них подробнейшим обрасом обьясняется генератору "что делать", а при написании rtl об этом часто забывают и пытаются все запихать в одну строчку.

ЗЫ: Повторяюсь, что считаю наезды на синтезаторы необоснованными, они всего навсего выдают результат, который его просили сделать на основании данных, который у него имеются. А просить надо "учиться, учиться и еще раз учиться" С smile.gif, не останавливаясь на достигнутом.

Больше всего в rtl на vhdl мне нравится возможность создания самоадаптирующихся модулей. Пример:
Код
entity myram is
    port(
    ...
    data    : std_logic_vector;
    ...
    );
...
type mem_type is array(...) of std_logic_vector(data'range);
...

Если подключить в прожект 3 таких модуля и на вход data подключять шины разной ширины, то подключится 3 разных блока памяти. Самое главное - ничего не надо делать для конфигурирования, оно само сконфигурируется. Слабо такое с lpm повторить без использования generate?
Go to the top of the page
 
+Quote Post
des00
сообщение Jun 1 2006, 06:48
Сообщение #68


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата
Данная конструкция должна выглядить примерно так:
Код
internal_async_result:ram_result<=mem(to_integer(rd_addr));
process(clk)
begin
    if (rising_edge(clk)) then
        ...
        if (re) then
            rd_data<=ram_result;
        end if;
    end if;
end process;

ИМХО в корне не верно, вы описываете выходной регистр, с разрешением, работающий по клоку, тогда как в даташите на блоки памяти явно видно, что такого регистра там нет, а есть всего лишь выходная защелка (pipeline регистр не рассматриваем), а вот как раз адресс чтения там проходит через регистр

пр. ug070.pdf стр. 115 Figure 4-5: Block RAM Logic Diagram (One Port Shown)
более того если посмотреть на ds302.pdf стр. 33 Table 39: Block RAM Switching Characteristics
то можно прекрасно увидеть что Clock CLK to DOUT output (without output register) в 2.2 раза медленнее чем с пайплайн регистром, именно потому, что после защелкивания адреса в тригере, требуеться выборка данных в защелку, а в реальной схеме если на выходе памяти стоит например сумматор, то тактовая вообще проседает, кстати если не ошибаюсь у стратикса/стратикса2 те же самые проблемы, а именно отстутвие асинхронного чтения на блочной памяти.

Цитата
[/code]
Если подключить в прожект 3 таких модуля и на вход data подключять шины разной ширины, то подключится 3 разных блока памяти. Самое главное - ничего не надо делать для конфигурирования, оно само сконфигурируется. Слабо такое с lpm повторить без использования generate?[/size][/color]


Да все правильно, скажу даже более у меня получалось через генерики подключать pipeline регистры (работало только для RAM, для ROM игнорировалось) и инвертировать клоки, и даже синтезировать память описаную через переменные (чего нет в датшите на симплифай), но не получилось никак описать DWC память, несколько стробов записи собранных на 1 BRAM, также есть определенные проблемы повторяемости при реализации памяти в 9, 18, 36 бит (симлифай 7.х) и при мультипексировании потоков данных на памяти.

Я не утверждаю что этим нельзя пользоваться, но в ВХДЛ я решаю эти проблемы с помошью конфигураций (behavior/structure), так можно упростить симуляцию и не беспокоиться за синтез.


--------------------
Go to the top of the page
 
+Quote Post
vetal
сообщение Jun 1 2006, 07:04
Сообщение #69


Гуру
******

Группа: Модераторы
Сообщений: 2 095
Регистрация: 27-08-04
Из: Россия, СПб
Пользователь №: 553



Стормозил. я имел в виду, что если нам нужен регистр на выходе или выходе, то его надо и описывать явно.

Цитата
...
rd_data <= mem(to_integer(rd_addr_int)) when (re);..


Может все же:
Код
..clk..
if (re) then rd_addr_int <= rd_addr;
endif;
...
rd_data <= mem(to_integer(rd_addr_int));

Иначе зыщелка получается.
Go to the top of the page
 
+Quote Post
Mad Makc
сообщение Jun 1 2006, 11:32
Сообщение #70


Местный
***

Группа: Свой
Сообщений: 244
Регистрация: 2-10-04
Из: Мухосранска
Пользователь №: 763



чтобы синплифай нормально делал блочную память,нужно слазить на сайт синплифая и в глупых вопросах умным разработчикам узреть ответ на этот вопрос.Для хилых это выглядит где-то так:
Код
entity block_ram is
    generic(
    AddrBits : integer := 8;
    DataBits : integer := 8
    );
  port( din  : in std_logic_vector(DataBits-1 downto 0);
        addr : in std_logic_vector(AddrBits-1 downto 0);
        clk  : in std_logic;
        we   : in std_logic;
        dout : out std_logic_vector(DataBits-1 downto 0)
   );
end block_ram;

architecture rtl of block_ram is
type mem_array is array (2**AddrBits-1 downto 0) of std_logic_vector(DataBits-1 downto 0);
signal mem : mem_array;
signal addr_reg : std_logic_vector(AddrBits-1 downto 0);
begin

process(clk)
begin
   if (clk'event and clk = '1') then
     addr_reg <= addr;
     if (we = '1') then
       mem(conv_integer(addr)) <= din;
     end if;
   end if;
end process;

dout <= mem(conv_integer(addr_reg));
end rtl;
Go to the top of the page
 
+Quote Post
des00
сообщение Jun 2 2006, 04:08
Сообщение #71


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(Mad Makc @ Jun 1 2006, 06:32) *
чтобы синплифай нормально делал блочную память,нужно слазить на сайт синплифая и в глупых вопросах умным разработчикам узреть ответ на этот вопрос.Для хилых это выглядит где-то так:


Подозреваю что ваш сарказм вызван не внимательным прочтением постов, да и термин "нормально делать блочную память" у каждого свой, на досуге попробуйте заставить симплифай написать вот такую блочную память, БЕЗ использования CLB
2 порта:
1ый порт чения/записи 512х32 бита, 4 строба записи, по каждому на 8мь бит, выход через pipeline регистр, режим работы любой.
2ой порт чтения/записи 2048х8, выход через pipeline регистр, режим работы write_first.

2 vetal
Цитата
Иначе зыщелка получается.


ug070.pdf стр. 112

Read Operation
The read operation uses one clock edge. The read address is registered on the read port,
and the stored data is loaded into the output latches after the RAM access time.

тот же pdf стр. 115 Figure 4-5: Block RAM Logic Diagram (One Port Shown)

Из этого рисунка следует что адрес чтения/записи "хлопает" в регистре всегда, а операции чтения/записи определяеться сигналами we/ena что в моем коде заменено на we/re. И при чтении данные по стробу храняться в выходной защелке.

В своем примере я привел код, более близкий к реальному устройству bram памяти от хилых и указал, что в симплифае реально при сборке идет по-сути подмена первого кода, на второй. Но при этом нет никаких диагностических сообщений об этом (о расхождении желаемого и действительного) , кроме сообщения об обнаружении bram памяти.


--------------------
Go to the top of the page
 
+Quote Post
D-Luxe
сообщение Aug 5 2011, 15:44
Сообщение #72


Местный
***

Группа: Свой
Сообщений: 347
Регистрация: 24-02-10
Из: Пенза
Пользователь №: 55 642



Цитата(papasha @ May 17 2006, 16:41) *
sm.gif Ну это было сразу понятно.
Меня больше интересует какие преимущества другого программного продукта перед Foundation позволили ускорить процесс разработки?

Я до сих пор пользуюсь Foundation, но только для поддержки старых проектов. Если делаешь с нуля, то даже и не думай, почему это лучше другие проги использовать. Сразу переходи на HDL и на проверенные связки продуктов, например, ActiveHDL + Sinplify Pro + ISE. Опосля поймешь. Уж поверь опыту, если не моему, то остальных соконфетников. Не пожалеешь.

Интересно зачем нужны одновременно Sinplify Pro + ISE ? Разве одного продукта недостаточно. Если вы используете оба, то как разделяете функции между ними.

В ActiveHDL понятно будет ввод и симуляция дизайна. А вот связка Sinplify Pro + ISE зачем нужна неясно.


--------------------
Нелегко оказаться на верном пути, но куда труднее его пройти.
(с) Уилл Роджерс
Go to the top of the page
 
+Quote Post
DevL
сообщение Aug 5 2011, 16:54
Сообщение #73


Местный
***

Группа: Свой
Сообщений: 254
Регистрация: 23-10-10
Из: астрал
Пользователь №: 60 371



Цитата(D-Luxe @ Aug 5 2011, 17:44) *
Интересно зачем нужны одновременно Sinplify Pro + ISE ? Разве одного продукта недостаточно. Если вы используете оба, то как разделяете функции между ними.

В ActiveHDL понятно будет ввод и симуляция дизайна. А вот связка Sinplify Pro + ISE зачем нужна неясно.


не довелось пока работать с ISE , у меня Quartus ...

но тоже раньше задумывался об этом же - однако быстро понял, вот последний пример
http://electronix.ru/forum/index.php?showtopic=93048

где синтезис от Quartus работал , но одновременно делал проблемы...
Synplify Pro - четко дал понять где именно проблема и решилася она за 5 мин.
( а это только недобольшой хобби проект )

в итоге - многое от недостатков HDL/Verilog, вернее многих неоднозначностей которые могут получиться если их использовать
а других и лучших языков нет sm.gif

вопросы еще более правильного и компактного синтеза - это я думаю еще бОлее широкая тема...

в Quartusе - переход на Synplify очень прозрачен - один чек бокс и выбор EDIF/VQM
Go to the top of the page
 
+Quote Post
Timmy
сообщение Aug 5 2011, 17:14
Сообщение #74


Знающий
****

Группа: Участник
Сообщений: 835
Регистрация: 9-08-08
Из: Санкт-Петербург
Пользователь №: 39 515



Цитата(D-Luxe @ Aug 5 2011, 19:44) *
Интересно зачем нужны одновременно Sinplify Pro + ISE ? Разве одного продукта недостаточно. Если вы используете оба, то как разделяете функции между ними.

XST не поддерживает SystemVerilog, и более корявый и глючный. Интеграция Sinplify в ISE стандартно предусмотрена, и делается элементарно.
Go to the top of the page
 
+Quote Post
Victor®
сообщение Aug 5 2011, 20:11
Сообщение #75


Lazy
******

Группа: Свой
Сообщений: 2 070
Регистрация: 21-06-04
Из: Ukraine
Пользователь №: 76



Цитата(Timmy @ Aug 5 2011, 20:14) *
XST ..., и более корявый и глючный.

Скрестим шпаги, мистер?
В чем корявость и глючночть?
Или Вы достигли такого уровня, что Вам не хватает синтезатора в ISE
и без некоторых преимуществ Synopsys как синтезатора Вам жизнь серая? sm.gif
По пунктам, пожалуйста с исходниками...
Иначе Ваши мысли считаю трепом.


--------------------
"Everything should be made as simple as possible, but not simpler." - Albert Einstein
Go to the top of the page
 
+Quote Post
Timmy
сообщение Aug 6 2011, 04:14
Сообщение #76


Знающий
****

Группа: Участник
Сообщений: 835
Регистрация: 9-08-08
Из: Санкт-Петербург
Пользователь №: 39 515



Цитата(Victor® @ Aug 6 2011, 00:11) *
Скрестим шпаги, мистер?
В чем корявость и глючночть?
Или Вы достигли такого уровня, что Вам не хватает синтезатора в ISE
и без некоторых преимуществ Synopsys как синтезатора Вам жизнь серая? sm.gif
По пунктам, пожалуйста с исходниками...
Иначе Ваши мысли считаю трепом.

Я часто использую альтернативный способ описания асинхронного ресета. Традиционно делается так
Код
if rst = '1' then
  <что-то инициализировали>
elsif rising_edge(clk) then
  <последовательные операторы>
end if;


Однако можно и так:
Код
if rising_edge(clk) then
  <последовательные операторы>
end if;
if rst = '1' then
  <что-то инициализировали>
end if;

Во втором случае не требуется инициализировать по ресету все регистры, управляемые процессом, и вообще он более соответствует логике асинхронного ресета. Так вот XST во втором случае создаёт неправильный, нерабочий код, что в простых случаях легко можно видеть по RTL view. Создание кода, несоответствующего исходнику - это мегабаг для любого компилятора. Sinplify в подобном поведении никогда замечен не был.

И на тему корявости. Например, описываем процессор, у которого ALU с явно описанной системой мультиплексоров(а иначе невозможно получить нормальный дизайн) и предопределённой в соответствии с мультиплексорами системой кодов операций.
Код
constant ALU_ADD:alu_opcode_t := "0X00";
constant ALU_SUB:alu_opcode_t := "0X01";
constant ALU_AND:alu_opcode_t := "001X";
constant ALU_OR:alu_opcode_t := "011X";

constant OP_ADD:opcode_t := "00000000";
constant OP_SUB:opcode_t := "00000001";
constant OP_AND:opcode_t:= "01100000";
constant OP_OR:opcode_t := "01100010";
...
-- и декодер
case opcode is
when OP_ADD=>alu_op <= ALU_ADD;
when OP_SUB=>alu_op <= ALU_SUB;
when OP_OR=>alu_op <= ALU_OR;
when OP_AND=>alu_op <= ALU_AND;
when others=> alu_op <= (others=>'X');
end case;

В таком случае Sinplify совершенно правильно отобразит младший бит opcode на младший бит alu_op. И второй бит opcode на третий из alu_op. А вот XST, не обращая внимания на расставленные 'X'(он воспринимает их, как нули), накрутит такой логики, что мама не горюй, что фактически не позволяет под ним использовать обобщённое описание декодера, без катастрофического падения perfomance.
Go to the top of the page
 
+Quote Post
анатолий
сообщение Aug 27 2011, 16:47
Сообщение #77


Местный
***

Группа: Свой
Сообщений: 221
Регистрация: 10-12-05
Из: Украина
Пользователь №: 12 052



Synplify идет на 2-4 года впереди ISE по расширению возможностей распознавания разных идиом.
Когда ISE не делал retiming, Synplify его уже делал - и повышал этим частоты в 1,1 - 1,7 раз.
И сейчас Synplify делает это лучше.
Опять же, в Synplify не проходит несоответствие разрядностей в выражениях - типичная ошибка, проходящая в ISE.
Кроме того, Synplify варнингами показывает, где написание текста корявое и требует исправления для красивости.
Наконец, Synplify рисует значительно красивее и компактнее картинки после синтеза - очень
квалифицированная иллюстрация, напр., для студентов.

Если делается IPCore, то его требуется проверить на синтез на всех популярных синтезаторах, включая Synplify.

Другое дело, Synplify рассчитан на все ПЛИС, а ISE - на свои собственные.
И поэтому ISE кое-какие синтезы удаются лучше, например, линии задержки на SRL16.
Go to the top of the page
 
+Quote Post
Bad0512
сообщение Aug 28 2011, 04:37
Сообщение #78


Знающий
****

Группа: Свой
Сообщений: 802
Регистрация: 11-05-07
Из: Томск
Пользователь №: 27 650



Цитата(Timmy @ Aug 6 2011, 11:14) *
Я часто использую альтернативный способ описания асинхронного ресета. Традиционно делается так
Код
if rst = '1' then
  <что-то инициализировали>
elsif rising_edge(clk) then
  <последовательные операторы>
end if;


Однако можно и так:
Код
if rising_edge(clk) then
  <последовательные операторы>
end if;
if rst = '1' then
  <что-то инициализировали>
end if;

Во втором случае не требуется инициализировать по ресету все регистры, управляемые процессом, и вообще он более соответствует логике асинхронного ресета. Так вот XST во втором случае создаёт неправильный, нерабочий код, что в простых случаях легко можно видеть по RTL view. Создание кода, несоответствующего исходнику - это мегабаг для любого компилятора. Sinplify в подобном поведении никогда замечен не был.


Я думаю, что создать "правильный" код по такому корявому исходнику - просто невозможно. Ваш код описывает не асинхронный ресет, а какую-то весьма странную нестабильную систему. Простой вопрос : что произойдёт если ресет и фронт тактового сигнала придут в один и тот же момент времени? Ваша схема ответа на этот вопрос не даёт. В нормальном описании побеждает ресет, на то он и асинхронный.
И это соответствует логике работы базового элемента FPGA. Так что синтезатор тут ни при чём, учите матчасть... Ну а то обстояетельство, что Sinplify переваривает даже такой корявый код, ни о каких преимуществах не говорит.
Go to the top of the page
 
+Quote Post
des00
сообщение Aug 28 2011, 09:51
Сообщение #79


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(Bad0512 @ Aug 27 2011, 22:37) *
Простой вопрос : что произойдёт если ресет и фронт тактового сигнала придут в один и тот же момент времени? Ваша схема ответа на этот вопрос не даёт.

хммм, разве в стандарте на VHDL уже отменили требование по последовательное исполнение операторов в процессе ? biggrin.gif


--------------------
Go to the top of the page
 
+Quote Post
Bad0512
сообщение Aug 28 2011, 14:23
Сообщение #80


Знающий
****

Группа: Свой
Сообщений: 802
Регистрация: 11-05-07
Из: Томск
Пользователь №: 27 650



Цитата(des00 @ Aug 28 2011, 16:51) *
хммм, разве в стандарте на VHDL уже отменили требование по последовательное исполнение операторов в процессе ? biggrin.gif

В таком случае (судя по описанию) получается что клок имеет приоритет над "якобы асинхронным" ресетом. Как это ляжет в железо? Да и ляжет ли вообще?
Code templates придумали неслучайно. Именно для того, чтобы не наступать на подобные грабли. Первое описание всеми синтезаторами трактуется одинаково, второе -
весьма странная конструкция, которая (по моему мнению) вообще не должна синтезироваться корректно.
Go to the top of the page
 
+Quote Post
des00
сообщение Aug 28 2011, 15:19
Сообщение #81


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(Bad0512 @ Aug 28 2011, 09:23) *
В таком случае (судя по описанию) получается что клок имеет приоритет над "якобы асинхронным" ресетом. Как это ляжет в железо? Да и ляжет ли вообще?

это с каких это пор ? при последовательном исполнении операторов сверху вниз и при той модели присвоения сигналов, которая указанна в стандарте VHDL, сигнал сброса, в сабжевом коде, имеет более высокий приоритет, т.к. исполняется последним.

ЗЫ. в V, SV абсолютно тоже самое. В некоторых случаях это очень хороший способ описания логики, на форуме SM выкладывал как-то оччень интересные и красивые сорцы демонстрирующие это.


--------------------
Go to the top of the page
 
+Quote Post
sazh
сообщение Aug 28 2011, 20:21
Сообщение #82


Гуру
******

Группа: Свой
Сообщений: 2 435
Регистрация: 6-10-04
Из: Петербург
Пользователь №: 804



Цитата(des00 @ Aug 28 2011, 18:19) *
при последовательном исполнении операторов сверху вниз и при той модели присвоения сигналов, которая указанна в стандарте VHDL, сигнал сброса, в сабжевом коде, имеет более высокий приоритет, т.к. исполняется последним.


А красота то в чем?
В том что с ног на голову описание поставлено. (а потом для верности в rtl просмотрщик заглянуть, чтоб в правильности реализации по стандарту убедиться и ухмыляться, когда соратник в xst большую фигу наблюдает.)
И для этого еще дополнительно Synplify докупать?
Go to the top of the page
 
+Quote Post
des00
сообщение Aug 29 2011, 04:07
Сообщение #83


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(sazh @ Aug 28 2011, 15:21) *
А красота то в чем?

найдите сорцы SM на эту тему и сами убедитесь.


--------------------
Go to the top of the page
 
+Quote Post
анатолий
сообщение Aug 29 2011, 19:06
Сообщение #84


Местный
***

Группа: Свой
Сообщений: 221
Регистрация: 10-12-05
Из: Украина
Пользователь №: 12 052



Цитата(des00 @ Aug 28 2011, 12:51) *
хммм, разве в стандарте на VHDL уже отменили требование по последовательное исполнение операторов в процессе ? biggrin.gif

Поддерживаю.
У языка есть очень четкая семантика, определяемая стандартом.
И симулятор, и синтезатор должны подчиняться этой семантике,
кроме случаев, когда объекты с таким поведением не синтезируются в принципе.

А идиомы, рекомендуемые фирмой - это от ее убогости с 1 стороны
и для обучения новичков по методу "делай как я" с 2 стороны.
Go to the top of the page
 
+Quote Post
sazh
сообщение Aug 29 2011, 19:59
Сообщение #85


Гуру
******

Группа: Свой
Сообщений: 2 435
Регистрация: 6-10-04
Из: Петербург
Пользователь №: 804



Цитата(анатолий @ Aug 29 2011, 22:06) *
и для обучения новичков по методу "делай как я" с 2 стороны.


Код
Как только я познакомился с языком VHDL и ПЛИСами, я понял, что это как раз то, чего мне с детства не хватало. Было сделано несколько проектов, пришел опыт. Но интерес к языку всё возрастал. Интерес толкал жонглировать операторами языка при реализации разных штучек, не нужных в работе, но оригинальных в исполнении и эффектных в функционировании. VHDL и ПЛИС - это как кисти и мольберт для художника. VHDL стал моим хобби. Хорошо, когда работа - хобби, а хобби - работа.

Go to the top of the page
 
+Quote Post
анатолий
сообщение Sep 3 2011, 18:10
Сообщение #86


Местный
***

Группа: Свой
Сообщений: 221
Регистрация: 10-12-05
Из: Украина
Пользователь №: 12 052



Можно и не докупать Synplify. Можно все задачи решить на Webpack'e.
Я в детстве увлекался вырезанием по дереву - и все ножичком, даже то, что можно токарным станком было.
Но как только добрался до токарного станка, стамесок, рубаночков - сразу пошло и качество, и скорость.
То же самое - с другими инструментами и в другой отрасли.

Go to the top of the page
 
+Quote Post
jojo
сообщение Sep 3 2011, 21:41
Сообщение #87


Знающий
****

Группа: Свой
Сообщений: 574
Регистрация: 9-10-04
Из: FPGA-city
Пользователь №: 827



Synplify не нужен, чтобы писать хороший код. А с хорошим кодом достаточно XST.
Кроме того, основные проблемы в ISE с размещением, где ничто уже не поможет, кроме головы.

Go to the top of the page
 
+Quote Post
RobFPGA
сообщение Sep 3 2011, 23:01
Сообщение #88


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

Группа: Свой
Сообщений: 1 214
Регистрация: 23-12-04
Пользователь №: 1 643



Приветствую!


Цитата(анатолий @ Aug 27 2011, 19:47) *
Synplify идет на 2-4 года впереди ISE по расширению возможностей распознавания разных идиом.
Когда ISE не делал retiming, Synplify его уже делал - и повышал этим частоты в 1,1 - 1,7 раз.
И сейчас Synplify делает это лучше.


Почти всегда лучше - но так обидно бывает что на каких-то вроде мелочах обламывает вусмерть sad.gif

Из последних "приколов" если например порты в VHDL объявит типа record то ISE создает имена отдельных портов соединяя имя record с именами полей в record а вот Synplify нет - будет тебе просто шина с именем как у record sad.gif Хотя в SystemVerilog для interface тот же Synplify нормально имена создает - бардак какой то sad.gif. На днях Synplify отказался модуль на Verilog вставлять в модуль на VHDL на его (Synplify ) взгляд какое-то несоответствие а какое - не сознается !!! Блин переписал все по новой - проверил каждый порт - в ISE, ActivHDL, Modelsim - все нормально а Synplify - "Unbound component aurora of instance u_aurora " падла!

Удачи! Rob.
Go to the top of the page
 
+Quote Post
sazh
сообщение Sep 4 2011, 05:31
Сообщение #89


Гуру
******

Группа: Свой
Сообщений: 2 435
Регистрация: 6-10-04
Из: Петербург
Пользователь №: 804



Цитата(анатолий @ Sep 3 2011, 21:10) *
Но как только добрался до токарного станка, стамесок, рубаночков - сразу пошло и качество, и скорость.


Позволю себе привести описание уважаемого Oldring.
Хотелось бы узнать оценку сообщества (по стилю (красоте, читаемости) описания)
в контексте данного обсуждения (той или иной поддержки стандарта синтезаторами).
Код
library ieee;
use ieee.numeric_bit.all;

entity in_out_flag is
    port(
        in_flag : in bit;
        
        out_clk : in bit;
        ena_out_flag : out bit
    );
end in_out_flag;

architecture Behavioral of in_out_flag is
-- На S6 схема получается проще, если начальное состояние триггера
-- с задействованной асинхронной установкой равно 1
    signal shift_reg : bit_vector( 1 to 4 ) := (others => '1');
begin

process( in_flag, out_clk )
begin
    if rising_edge( out_clk ) then
        shift_reg <= shift_reg srl 1;
    end if;
    
    if in_flag = '1' then
        shift_reg( 1 ) <= '1';
    end if;
end process;

ena_out_flag <= shift_reg( 3 ) and not shift_reg( 4 );

end Behavioral;

Go to the top of the page
 
+Quote Post
ViKo
сообщение Sep 4 2011, 08:45
Сообщение #90


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(des00 @ Aug 28 2011, 18:19) *
... при последовательном исполнении операторов сверху вниз и при той модели присвоения сигналов, которая указана в стандарте VHDL, сигнал сброса, в сабжевом коде, имеет более высокий приоритет, т.к. исполняется последним.
ЗЫ. в V, SV абсолютно тоже самое ...

Приоритет имеет первый оператор, не последний. Сначала проверяется подходящее условие для него, а уж потом, если условие не выполняется, выполняются следующие операторы.

Написать сначала проверку фронта такта, а потом сброса... можно, и, наверное, все скомпилируется, в обход логики описания. А может быть, и нет... Не вижу ни одной причины нарушать приоритеты сигналов, заданные в железе ПЛИС.

Вот тут http://electronix.ru/forum/index.php?showt...st&p=764559 я когда-то "пошутил" с сигналами такта и сброса.
Go to the top of the page
 
+Quote Post
des00
сообщение Sep 4 2011, 13:23
Сообщение #91


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(ViKo @ Sep 4 2011, 03:45) *
Приоритет имеет первый оператор, не последний. Сначала проверяется подходящее условие для него, а уж потом, если условие не выполняется, выполняются следующие операторы.

вы что издеваетесь? Напомню что речь идет про сабжевый код
Код
if rising_edge(clk) then
  <последовательные операторы>
end if;
if rst = '1' then
  <что-то инициализировали>
end if;


Думаю что сами исправите свою ошибку %)


--------------------
Go to the top of the page
 
+Quote Post
ViKo
сообщение Sep 4 2011, 15:36
Сообщение #92


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(des00 @ Sep 4 2011, 16:23) *
вы что издеваетесь?
Думаю что сами исправите свою ошибку %)

laughing.gif
А если присваивания блокирующие? Посмотрите, что получается при компиляции следующего кода (я пользуюсь Quartus 9.1 SP2).
Код
module Trigger (input clk, rst_n, in, output out);
  always_ff @(posedge clk, negedge rst_n) begin
    if (clk) out = in;
    if (!rst_n) out = 0;
  end
endmodule

Можете переставить строки в блоке местами %.
ЗЫ. И _ff ему, Quartus'у, нипочем...
ЗЗЫ. Да и неблокирующие присваивания не помогают. Не получается у Quartus'а триггер, а получается - ...!
Похоже, издевка удалась, но не у меня. sm.gif
Go to the top of the page
 
+Quote Post
Timmy
сообщение Sep 4 2011, 18:19
Сообщение #93


Знающий
****

Группа: Участник
Сообщений: 835
Регистрация: 9-08-08
Из: Санкт-Петербург
Пользователь №: 39 515



Цитата(ViKo @ Sep 4 2011, 19:36) *
А если присваивания блокирующие? Посмотрите, что получается при компиляции следующего кода (я пользуюсь Quartus 9.1 SP2).
Код
module Trigger (input clk, rst_n, in, output out);
  always_ff @(posedge clk, negedge rst_n) begin
    if (clk) out = in;
    if (!rst_n) out = 0;
  end
endmodule

Этот код вовсе не соответствует шаблону, который я приводил. Оператор "out = in;" тут выполняется не только по фронту clk, но и по фронту rst_n(при условии clk==1), чего допускать нельзя. Как написать полный аналог моего VHDL метода асинхронного сброса на Верилоге, я, честно говоря, даже не представляю. В Верилоге вроде нет функции проверки фронта сигнала, а без неё никак.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Sep 4 2011, 18:45
Сообщение #94


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(Timmy @ Sep 4 2011, 21:19) *
... Как написать полный аналог моего VHDL метода асинхронного сброса на Верилоге, я, честно говоря, даже не представляю. В Верилоге вроде нет функции проверки фронта сигнала, а без неё никак.

Похоже на то.
А des00 сказал "в V, SV абсолютно тоже самое". crying.gif
Go to the top of the page
 
+Quote Post
des00
сообщение Sep 5 2011, 03:20
Сообщение #95


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(ViKo @ Sep 4 2011, 10:36) *
laughing.gif
А если присваивания блокирующие? Посмотрите, что получается при компиляции следующего кода (я пользуюсь Quartus 9.1 SP2).
Код
module Trigger (input clk, rst_n, in, output out);
  always_ff @(posedge clk, negedge rst_n) begin
    if (clk) out = in;
    if (!rst_n) out = 0;
  end
endmodule

Можете переставить строки в блоке местами %.
ЗЗЫ. Да и неблокирующие присваивания не помогают. Не получается у Quartus'а триггер, а получается - ...!

У вас очень интересный способ аргументации.
Вместо того, что бы посмотреть стандарт на HDL, раздел касающийся присвоений сигналов и очередей исполнения. Убедится что в VHDL/V/SV любое присвоение сигнала, без задания временной задержки переопределяет все предыдущие присваивания.
Вы берете синтезатор(!!!!) как истину в последней инстанции, пишете код, который вступает в противоречие как с требованиям самого синтезатора, так и со стандартом на описание синтезируемых конструкций языка V (не знаю есть ли подобный документ для SV).

И предъявляете этот результат как однозначное опровержение того, что стандарты врут. Вам не кажется что вы, пытаясь доказать от противного, идете не по тому пути?

Если идти дальше, насчет вашего кода, то в симуляторе он ведет себя как триггер. А то что вас "напугало" в результатах синтеза, представляет собой классический двухтактный триггер, но без RS звена. И это будет работать, так как вы его описали, как триггер. А то что реализован не на аппаратных DFF, дык надо было стандартам следовать, код писать как рекомендуется.

Цитата
Похоже, издевка удалась, но не у меня. sm.gif

Это сообществу решать

Цитата(ViKo @ Sep 4 2011, 13:45) *
А des00 сказал "в V, SV абсолютно тоже самое". crying.gif

Если бы это было не так то ~40-50 % моих проектов в принципе бы не работали.
Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
 


--------------------
Go to the top of the page
 
+Quote Post
ViKo
сообщение Sep 5 2011, 04:43
Сообщение #96


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(des00 @ Sep 5 2011, 06:20) *
У вас очень интересный способ аргументации.
Вместо того, что бы посмотреть стандарт на HDL, раздел касающийся присвоений сигналов и очередей исполнения. Убедится что в VHDL/V/SV любое присвоение сигнала, без задания временной задержки переопределяет все предыдущие присваивания.
...
Если идти дальше, насчет вашего кода, то в симуляторе он ведет себя как триггер. А то что вас "напугало" в результатах синтеза, представляет собой классический двухтактный триггер, но без RS звена. И это будет работать, так как вы его описали, как триггер. А то что реализован не на аппаратных DFF, дык надо было стандартам следовать, код писать как рекомендуется.

Я согласен, что был неправ в первом сообщении. И не доказываю свою правоту любым способом. Просто выясняю истину.
Переопределяет все предыдущие...? Разве блокирующее присваивание дожидается выхода из блока, а не задает сигнал каждый раз, когда выполняется? Посмотрю.
Но уже при проверке в реальном коде выяснилось, что для SV получается не тактируемый триггер, а latch. И временные диаграммы, что Quartus мне нарисовал, триггеру не соответствуют. Чего это у вас in скачет перед "нужными" тактами?
Цитата
Это сообществу решать

По-моему, вы тоже были неправы, когда сказали, что в V, SV то же самое, что и в VHDL. Зачем что-то решать и кому-то доказывать? Обычные дела. Главное, выяснилось, что в SV конструкция, предложенная Timmy, не работает. Такой результат дискуссии меня устраивает. Надеюсь, что и вас.

upd. Картинку из Квартуса добавил.
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
Singer
сообщение Sep 12 2011, 11:44
Сообщение #97


Участник
*

Группа: Свой
Сообщений: 52
Регистрация: 13-11-07
Пользователь №: 32 296



Уважаемые специалисты, нет ли у кого актуальной информации по порядку цен на одно лицензионное рабочее место на связку
Hdl Designer + Precision RTL + Model Sim SE ?
Go to the top of the page
 
+Quote Post
Stewart Little
сообщение Sep 12 2011, 13:34
Сообщение #98


Лентяй
******

Группа: Свой
Сообщений: 2 203
Регистрация: 11-10-04
Из: Санкт-Петербург
Пользователь №: 843



Цитата(Singer @ Sep 12 2011, 15:44) *
Уважаемые специалисты, нет ли у кого актуальной информации по порядку цен на одно лицензионное рабочее место на связку
Hdl Designer + Precision RTL + Model Sim SE ?

Обратитесь в Мегратек
Они официальные представители Ментора в России.


--------------------
Чтобы слова не расходились с делом, нужно молчать и ничего не делать...
Go to the top of the page
 
+Quote Post
des00
сообщение Sep 12 2011, 13:51
Сообщение #99


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(Singer @ Sep 12 2011, 05:44) *
Уважаемые специалисты, нет ли у кого актуальной информации по порядку цен на одно лицензионное рабочее место на связку
Hdl Designer + Precision RTL + Model Sim SE ?

хмм, ну где то миллиона под 2 %)


--------------------
Go to the top of the page
 
+Quote Post
warrior-2001
сообщение Sep 14 2011, 11:47
Сообщение #100


Местный
***

Группа: Свой
Сообщений: 375
Регистрация: 9-10-08
Из: Таганрог, Ростовская обл.
Пользователь №: 40 792



Цитата(des00 @ Sep 12 2011, 17:51) *
хмм, ну где то миллиона под 2 %)


А вдруг это учебное заведение?

Лучше все таки воспользоваться советом Stewart Little.
Да и моделсим не так дорог, в отличие от Questasim.


--------------------
Глупцы игнорируют сложность. Прагматики терпят ее. Некоторые могут избегать ее. Гении ее устраняют.
Go to the top of the page
 
+Quote Post

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

 


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


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