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

 
 
7 страниц V  < 1 2 3 4 5 > »   
Reply to this topicStart new topic
> Почему не хватает родных САПР для ПЛИС?, Зачем нужны Active-HDL, Riviera, ModelSym, Synplify, Identify...
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

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

 


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


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