Speccy - наш выбор!

Speccy - наш выбор! (http://zx-pk.ru/index.php)
-   Unsorted (http://zx-pk.ru/forumdisplay.php?f=13)
-   -   Altera (Cyclone3?) или Xilinx (Virtex5?) (http://zx-pk.ru/showthread.php?t=4592)

Vladimir Kladov 28th January 2007 20:00

Quote:

Originally Posted by deathsoft
Стандарта Verilog 2001 для циклов и условных конструкций достаточно, а вообще я бы советовал использовать VHDL (он похож на паскаль и ада, вам я думаю это привычнее будет) и поддерживает if/generate и for/generate с самой первой версии. Плюс к тому поддерживает типы данных, как обычный язык программирования, что позволяет при моделировании автомата видень состояние автомата в виде осмысленного текста (s_idle, s_rx и т.п.). Кроме того VHDL поддерживает 9ти значную логику, кроме состояний '0', '1' есть еще 'X', 'Z' и различные уровни нагрузки, от weak до strong (что необхдимо для выявления гонок при моделировании).

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

Там двухмерный массив, и поэтому нужен System. Мне вообще-то глубоко до лампочки, в каком из стандартов поддерживаются макросы, но как я узнал про их существование, я окончательно выбрал верилог.

Когда-то Паскаль был сложнее С, и я не любил Паскаль, и писал на С. В С было всего 7 конструкций, зная которые (и кучу функций библиотеки, но это всех касается) можно было писать код. Сейчас ситуация изменилась: Паскаль проще чем Ansi C. В нем 11 конструкций, которые надо знать, и это неизмеримо меньше, чем в С. VHDL vs Verilog HDL мне не понравился именно этим: в нем слишком много слов надо помнить. Это не к Паскалю ближе, а к Коболу. Который я так в молодости и не осилил. Хотя для изучения того же PL/1 мне хватило недели. Слишком много слов. А еще мне непонятно, зачем 3 раза писать одно и то же. В Entity, в Architecture, и еще (не помню уже как называется) в реализации. Читать я его могу. Ну, почти могу. Но писать - ну его.

deathsoft 28th January 2007 20:05

Quote:

Originally Posted by Vladimir Kladov
Там двухмерный массив

А что в обычном не System вложеные циклы писать нельзя? Я просто уже 100 лет на верилоге ничего не писал, т.к. в симуляции только 0 и 1, то я перешел на VHDL.

deathsoft 28th January 2007 20:08

Quote:

Originally Posted by Vladimir Kladov
Это не к Паскалю ближе, а к Коболу

Кобола к сожалению не знаю (даже как синтаксис примерно выглядит).
Но синтаксис у VHDL как у языка ADA, все параллельные действия описываются в виде процессов.

P.S. Возможно у кобола тоже похожий синтаксис.

Vladimir Kladov 28th January 2007 20:08

Не, квартус спотнулся на декларации двумерного массива, пришлось выбрать множество System.

Но я-то на Аде не пишу. И близким к паскалю его назвать не могу (наличие begin/end мало о чем говорит - в verilog'е они тоже есть, но ведь все в один голос утверждают все равно, что это С).

deathsoft 28th January 2007 20:11

Quote:

Originally Posted by Vladimir Kladov
е, квартус спотнулся на декларации двумерного массива

Так это в квартусе неполная реализация верилога, используйте что нибудь типа Synplify Pro или Leonardo Spectrum, а в квартус грузите только результат этих программ (RTL-уровень, только регистры, логические элементы и провода).

deathsoft 28th January 2007 20:14

Quote:

Originally Posted by Vladimir Kladov
все в один голос утверждают все равно, что это С

так в верилоге все операции сишные >>,<<,|,& и т.п. А в VHDL нужны объявления аля interface/implenentation, типы описываются по паскалевски:
x:integer;
v:std_logic(3 downto 0);

операции тоже паскалевские: or, xor, and

циклы паскалевские:
for i=0 to 10 do
begin
end

Vladimir Kladov 28th January 2007 20:53

ну как же неполная. Все он поддерживает. Я просто до сих пор не получил учебник по почте, а в и-нете нахаляву режат только огрызки. Замечу, что по VHDL лежит гораздо больше. И реализаций софт-процессоров на opencores тоже больше в VHDL, чем в Verilog'е. Но он мне все равно VHDL не нравится. Достаточно почитать было сравнительную книжицу Стешенко (кажется), из нее сразу видно, что на верилоге текст намного короче получается. Особенно мне конкатенация в { } понравилась.

Ну, вот ответили на electronix.ru. generate for. Тут же спросил в гугле verilog "generate for" и нашел 2 pdf'а с описанием синтаксиса и примерами использования. И почему мне запало что именно `for - по нему ничего найти не удавалось...

deathsoft 28th January 2007 21:47

Quote:

Originally Posted by Vladimir Kladov
Я просто до сих пор не получил учебник по почте

Могу прислать IEEEшный стандарт на верилог, там весь синтаксис описан, и книжку по верилогу от Cadence (правда там verilog 98 без for generate).

deathsoft 28th January 2007 21:50

Quote:

Originally Posted by Vladimir Kladov
что на верилоге текст намного короче получается

Мне этим верилог тоже понравился, я сначала все на верилоге писал, на VHDL перешол исключительно из за отсутствия for generate в верилоге (в тогдашней версии) и из за дубовой симуляции с двоичными сигналами. А для синтеза верилог удобнее (собственно для этого он фирмой Cadence и разрабатывался и применялся).

deathsoft 28th January 2007 21:59

Quote:

Originally Posted by Vladimir Kladov
Особенно мне конкатенация в { } понравилась.

Ну, вот так далается конкатенация на VHDL:
e1<=e(1 to 4) & e(12+1 to 12+4) & e(2*12+1 to 2*12+4) & e(3*12+1 to 3*12+4)...
e1 - вектор на 96 бит;

icebear 29th January 2007 12:54

Quote:

Originally Posted by Vladimir Kladov
А еще мне непонятно, зачем 3 раза писать одно и то же. В Entity, в Architecture, и еще (не помню уже как называется) в реализации. Читать я его могу. Ну, почти могу. Но писать - ну его.

Это грубо говоря похоже на сишные ifdef'ы. Если чип такой-то, то определяем константы (как пример) так и задержки эдак. Если чип другой, то все данные тоже другие. Можно сравнить с пустой платой, на которой напаяны панельки под микросхемы. Плюс это сильно типизированый язык по-сравнению с верилогом.

deathsoft 29th January 2007 13:01

Quote:

Originally Posted by Vladimir Kladov
Architecture

Architecture - задает вариантность архтектуры, например поведенческая (для моделирования) и синтезируемая (оптимизированая до уровней вентилей например).
А Entity задает общий абстрактный интерфейс доступа скрывая реализацию.

Vladimir Kladov 29th January 2007 17:53

Да я все понимаю. Просто, как говорят англоязычные, too verbose, не люблю много болтовни. В языке программирования тем более. Я лучше комментарии подробные напишу, на своем, русском.

icebear 1st February 2007 12:52

Quote:

Originally Posted by Vladimir Kladov
Да я все понимаю. Просто, как говорят англоязычные, too verbose, не люблю много болтовни. В языке программирования тем более. Я лучше комментарии подробные напишу, на своем, русском.

С чего бы это too verbose? Наоборот, "лёгким движением руки брюки превращаются"... Без особого напряга можно проект настроить на особености другого камня, в этом смысл. Или проапдейтить какую-либо часть проекта не трогая остальные.

Vladimir Kladov 1st February 2007 16:02

Quote:

Originally Posted by icebear
С чего бы это too verbose? Наоборот, "лёгким движением руки брюки превращаются"... Без особого напряга можно проект настроить на особености другого камня, в этом смысл. Или проапдейтить какую-либо часть проекта не трогая остальные.

Ну `define в verilog'е тоже есть. И `include есть, куда можно положить то, что является "особенностями". А в тело смотрю - куча раз одно и то же понаписано, для чего - непонятно. Мне и 1 раза хватит.

Vladimir Kladov 3rd February 2007 22:00

А никто не знает, как конкретному регистру сказать, чтобы он был именно на триггерах, а не на памяти сделан? Зараза квартус засунул длинный регистр (96 бит) в ram, и сам же показывает в своем тайм-анализаторе, что на этом деле возникают тормоза: частота клока в 3 раза уменьшилась. Гад. Гад. Сволочь. Гад.

deathsoft 4th February 2007 18:05

Quote:

Originally Posted by Vladimir Kladov
А никто не знает, как конкретному регистру сказать, чтобы он был именно на триггерах, а не на памяти сделан? Зараза квартус засунул длинный регистр (96 бит) в ram, и сам же показывает в своем тайм-анализаторе, что на этом деле возникают тормоза: частота клока в 3 раза уменьшилась. Гад. Гад. Сволочь. Гад.

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

Vladimir Kladov 4th February 2007 19:39

Quote:

Originally Posted by deathsoft
Не использовать компоненты квартуса, а описывать регистр самому на верилоге, тогда квартус не будет запихивать его в память (либо через атрибуты/прагмы для верилога отключать оптимизацию).

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

Меня сейчас волнует, как правильно интерпретировать его отчеты тайминг анализера. То он говорит, что все нормально 420МГц - MET. При этом показывает 6 нс (а это явно не 420 МГц). То он на 5 нс начинает орать, что частоту надо уменьшить до 200 МГц (ясен пень, надо - но почему про 6 нс его все устраивает, на меньшей модели - на простом сумматоре).

deathsoft 4th February 2007 21:28

Еще необходимо учитывать задержки на внешних выводах (5нс на каждый вывод из корпуса)

deathsoft 4th February 2007 21:29

Quote:

Originally Posted by Vladimir Kladov
Меня сейчас волнует, как правильно интерпретировать его отчеты тайминг анализера.

В отчетах много чего показыается, наилучшее время, наихудшее время и т.п., есть вывод критического пути (просмотр его на топологии кристалла).

Vladimir Kladov 4th February 2007 22:11

Quote:

Originally Posted by deathsoft
В отчетах много чего показыается, наилучшее время, наихудшее время и т.п., есть вывод критического пути (просмотр его на топологии кристалла).

Хм. Я там видел только From и To. А если у меня из этого From в этот To несколько путей, то дальше сам догадайся, на какой дуге оно тормознуло. или надо что-то сделать, чтобы он весь путь показал?

deathsoft 4th February 2007 23:07

Вроде в квартусе была отдельная функция Show Critical Path (хотя может я путаю с Synplify Pro, там эта функция точно есть, квартус как таковой я не использовал, т.к. она давал довольно посредственные результаты по сравнению с профессиональными средствами типа Synplify Pro и Leonardo Spectrum).

Vladimir Kladov 5th February 2007 16:14

Ну, Synplify мне новый взять просто негде. То, что мне прислали на диске - 2003 г. Уже рухлядь. Хотя компилирует очень шустро. Жаль, что для старых чипов, а так бы я не посмотрел, что интерфейс уже малось древноват. Не в курсе, где новй synplify народ берет?

deathsoft 5th February 2007 18:27

Quote:

Originally Posted by Vladimir Kladov
Не в курсе, где новй synplify народ берет?

Через форум телесистем "в закромах родины". www.telesys.ru, там форум а дальше спрашивать и искать. А в принципе раньше можно было с родного сайта качнуть, а потом лекарство в инете найти.

deathsoft 5th February 2007 18:28

Quote:

Originally Posted by Vladimir Kladov
То, что мне прислали на диске - 2003 г. Уже рухлядь.

Ну, у меня вроде вообще 2001 был. (7.3 или 7.03)

Vladimir Kladov 5th February 2007 19:19

я хочу сразу тестировать на циклон2 хотя бы, и временные характеристики его учитывать. А там - циклон даже без римских цифр, 50МГц максимум.

deathsoft 5th February 2007 21:24

Тогда нужен свежий Synplify Pro, кроме того, результаты которые выдает Synplify Pro - неточные. Выход Synplify Pro (.edf файл) надо пропускать через квартус, и смотреть временнЫе параметры уже в квартусе (т.к. только квартус делает окончательное размещение ячеек внутри ПЛИС). Есть еще такой пакет как Amplify, он тоже делает физ. размещение. (но я его никогда не использовал).

Вот здест заполните имя и email и вам дадут скачать Synplify Pro, потом ищите лекарство
http://www.synplicity.com/downloads/download1.html

Vladimir Kladov 6th February 2007 19:22

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

deathsoft 6th February 2007 23:16

Quote:

Originally Posted by Vladimir Kladov
А когда первичная подгонка сделана, тогда можно уже и квартус помучить...

Ну, так я по этому Synplify и использовал, там все за 3 секунды компилится, дальше отсимулировал, проверил что все без ошибок, а в самом конце можно и квартусом компилить.

Vladimir Kladov 11th February 2007 20:12

Yes! Получил 8.8.0. Это нечто: скорость синтеза просто офигенная, да и репорт о таймингах просто исчерпывающий: сразу стало видно где не успевает, и ясно как поправить. Поправил - ускорил на 30% сразу. Ух, поработаем... а то у меня с квартусом снова стало по пачке сигарет в день выкуриваться :v2_thumb:

deathsoft 11th February 2007 23:56

Quote:

Originally Posted by Vladimir Kladov
Получил 8.8.0.

А лекарство нашли?, а то я чегото лекарство не нашел, саму прогу тоже скачал. Если нашли, то немогли бы мне его по почте скинуть.

Vladimir Kladov 12th February 2007 17:00

это не проблема, шлю. У меня теперь проблема с ActiveHDL 7.2. Т.е. это и не так срочно, но имеющееся у меня средство не помогает. В лицензии написано что-то странное, типа сами сюда добавите фич и соли (зачем в лицензии соль?). Пробовал взять содержимое из версии 6.2, но не работает.

icebear 12th February 2007 17:01

Quote:

Originally Posted by Vladimir Kladov
это не проблема, шлю. У меня теперь проблема с ActiveHDL 7.2. Т.е. это и не так срочно, но имеющееся у меня средство не помогает. В лицензии написано что-то странное, типа сами сюда добавите фич и соли (зачем в лицензии соль?). Пробовал взять содержимое из версии 6.2, но не работает.

если найдёшь вдруг приправы для ActiveHDL - поделись пожалуйста

deathsoft 12th February 2007 17:53

Quote:

Originally Posted by Vladimir Kladov
соли

"соль" - это sault vaule? По английски "соль" в шифровании значит шум (случайная последовательность байтов).

Vladimir Kladov 12th February 2007 20:17

да там по-русски написано :)

deathsoft 13th February 2007 02:31

Quote:

Originally Posted by Vladimir Kladov
да там по-русски написано

Так может автопереводчиком переводили типа Promt и ему подобных.

Vladimir Kladov 13th February 2007 16:12

чего, лицензию? Там текст:
; Можно добавлять FEATURES и соль по вкусу :-)

И все. Думаю, если бы переводчиков, уж слово FEATURES точно бы перевело заодно.

Vladimir Kladov 13th February 2007 17:00

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

deathsoft 13th February 2007 18:50

Quote:

Originally Posted by Vladimir Kladov
А при попытке напечатать русскую букву в своем редакторе просто вываливается.

Напишите им багрепорт, может в следующей версии исправят. Я чтото тоже подобное припоминаю, что были проблемы с русскими буквами, я просто писал коментарии по английски.

deathsoft 13th February 2007 18:53

Quote:

Originally Posted by Vladimir Kladov
квартус мне ничего не сказал, а симплифай выдал с полсотни предупреждений

Квартус иногда просто молча синтезирует полную лажу, которую потом видно только при моделировании, т.к. раньше в квартусе не было возможности посмотреть RTL уровень, а в синплифай это было с самого начала.


All times are GMT +4. The time now is 17:40.

Powered by vBulletin® Version 3.8.3
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.