Jump to content

    

Cyclone III для Gigabit Ethernet

И вот опять, непонятно кто, непонятно как, непонятно для чего сделал модуль на том языке который знает, а всю вину вы перекладываете не на автора, а на язык. Но я повторяюсь.
Я виню не язык программирования, а указываю на опасность его использования в отрыве от особенностей архитектуры FPGA. Когда пишешь на AHDL, то твердо знаешь- в синтезе будут по максимуму использованы фичи Altera. При VHDL или Verilog, как показывает мой печальный опыт применения готовых модулей из opencores, - такой уверенности нет.

немножко не так, я старался показать что разницы между AHDL/Verilog нет, а то, что мы принимаем за разницу, зависит от прокладки между сиденьем и клавой и от того как использовать конкретный синтезатор %)
Если писать на Verilog в стиле AHDL, по максимуму используя готовые примитивы Altera, то разницы действительно можно и не обнаружить. Но если озаботиться не практикой, а академическими проблемами переносимости и моделирования, как в opencores, то вы правы- все зависит от "прокладки".

Share this post


Link to post
Share on other sites
Когда пишешь на AHDL, то твердо знаешь- в синтезе будут по максимуму использованы фичи Altera.

Это абсолютное заблуждение. AHDL - просто язык описания аппаратуры, и ничего в нем конкретно заточенного под "Альтеровские фичи" нету. Потому что, например, в Stratix "фичи" одни, а в MAXII - несколько иные. И приложив совсем немного усилий можно написать на AHDL код, который ни на одну Альтеровскую архитектуру не ляжет вообще.

Share this post


Link to post
Share on other sites
... AHDL - просто язык описания аппаратуры, и ничего в нем конкретно заточенного под "Альтеровские фичи" нету...

AHDL - Altera Hardware Description Language

Share this post


Link to post
Share on other sites
AHDL - Altera Hardware Description Language

 

AHDL сегодня - это деньги на ветер.

Share this post


Link to post
Share on other sites
Это абсолютное заблуждение. AHDL - просто язык описания аппаратуры, и ничего в нем конкретно заточенного под "Альтеровские фичи" нету. Потому что, например, в Stratix "фичи" одни, а в MAXII - несколько иные.
Я именно про это и говорю- при синтезе с фирменного языка от Altera (AHDL) учитывается, для какого кристалла написано и какие архитектурные фичи данной серии FPGA будут использованы.
И приложив совсем немного усилий можно написать на AHDL код, который ни на одну Альтеровскую архитектуру не ляжет вообще.
Это вряд ли.

Share this post


Link to post
Share on other sites
Я именно про это и говорю- при синтезе с фирменного языка от Altera (AHDL) учитывается, для какого кристалла написано и какие архитектурные фичи данной серии FPGA будут использованы.

угу, учитываются, в виде тех мегафункций, которые вы используете. описывая dff вы по сути вставляете dffeas, желая иметь счетчик вставляете lpm_counter и т.д. и т.п. А вот описывая КА или логику, тут уже нет никакой кристалло зависимости.

 

ЗЫ. И называется это не стиль AHDL, а описание на структурном уровне с использованием готовых блоков. А по уровню понимания квартусом Verilog/VHDL у него есть один единственный серьезный косяк, который на этом форуме обсосали со всех сторон, он не умеет использовать сигнал sload для сыклонов/асексов, когда LUT в этом LE занят какой либо логикой.

Share this post


Link to post
Share on other sites
угу, учитываются, в виде тех мегафункций, которые вы используете. описывая dff вы по сути вставляете dffeas, желая иметь счетчик вставляете lpm_counter и т.д. и т.п. А вот описывая КА или логику, тут уже нет никакой кристалло зависимости.
Есть. По крайней мере, когда пишешь сложение двух групп сигналов, то твердо уверен- синтезатор будет использовать lpm_addsub. А она, в свою очередь, учтет тип кристалла и возможности использования carry_chain или soft_expanders. Впрочем, меня такие тонкости уже не заботят потому, что Altera уже позаботилась о них. Что касается lpm_counter, то использую его кране редко. В подавляющем случае достаточно написать cnt[]=cnt[]+1 в нужных стэйтах конечного автомата.
ЗЫ. И называется это не стиль AHDL, а описание на структурном уровне с использованием готовых блоков.
Согласен. Hо в AHDL я уверен, что синтезатор по максимуму использует эти готовые блоки, тем самым увеличивая производительность схемы. А вот с VHDL/Verilog у меня лично не получилось заставить Quartus распознать в исходнике и использовать готовые блоки. Он просто академически собирал логику из рассыпухи. Может, я и не прав и многое не освоил, но, чтобы всерьез влезать в особенности "суперязыков", нужна полная ясность- какой качественный выигрыш получаешь. В своей сфере я не вижу никакого. Одни убытки.

Share this post


Link to post
Share on other sites
А по уровню понимания квартусом Verilog/VHDL у него есть один единственный серьезный косяк, который на этом форуме обсосали со всех сторон, он не умеет использовать сигнал sload для сыклонов/асексов, когда LUT в этом LE занят какой либо логикой.

 

Если можно - ссылочку на данную тему, хочу ее внимательно прочитать, а то поиск дает слишком много ссылок...

Share this post


Link to post
Share on other sites
Думаю, зависит от языка и компилятора с него. Для VHDL или Verilog в Quartus-8 может не хватить и градации C7. Если пишете на AHDL, то C8 хватает заглаза. Проверено. Единственный нюанс существует при распределении пинов для RGMII- эти пины должны иметь функцию ddio.
Не от языка с компилятором, а от кривизны рук и опыта.

 

Какой speed grade выбирать для Gigabit Ethernet на EP3C25 если -7 хватает можно поставить E144 корпус, или лучше -6 чтобы меньше пляски было с временами ?

кто какие юзает ? или и С8 хватит ?

Если есть сомнение - поставьте в прототип что побыстрее, а серию вылижите и поставите медленее и дешевле.

 

Загляните в тему про счетчик на примитивах. Там des00 доказывал, что есть разница между AHDL и Verilog.
Ну чего вы прицепились к этому sload, это проблема не Verilog, Verilog - то тут при чём?

 

Я виню не язык программирования, а указываю на опасность его использования в отрыве от особенностей архитектуры FPGA. Когда пишешь на AHDL, то твердо знаешь- в синтезе будут по максимуму использованы фичи Altera. При VHDL или Verilog, как показывает мой печальный опыт применения готовых модулей из opencores, - такой уверенности нет.

Если писать на Verilog в стиле AHDL, по максимуму используя готовые примитивы Altera, то разницы действительно можно и не обнаружить. Но если озаботиться не практикой, а академическими проблемами переносимости и моделирования, как в opencores, то вы правы- все зависит от "прокладки".

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

 

Если можно - ссылочку на данную тему, хочу ее внимательно прочитать, а то поиск дает слишком много ссылок...
Последний раз тут видел рпссмотрение вопроса: http://electronix.ru/forum/index.php?showt...st&p=742018

 

Ну и от себя, не флэйма ради. AHDL - это круто, сам когда-то на нём лабал. На сегодня его удел - это внутренний язык для мегафункций самой альтеры, и поддержка старых проектов. Он с этим нормально справляется. Его время прошло. Его время - это когда чип на пару десятков тысяч, если не просто тысяч был чем-то мега большим. И то, уже тогда были проблемы стмуляции, тогда ещё в Max+II - это рисование матрасов времянки, симуляция, просмотр в основно глазами результата. Вспоминаю с содраганием.

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

Примеров уйму можно привести, это и стмуляция многочиповых решений, с той-же динамикой. И верификация при симуляции провекта с помощью не ситнезируемых конструкций, тут можно продолжать долго... В AHDL на прямую это нельзя сделать, но зачем лишние проблемы? Уменя знакомый с видео работал. Сделал тест бенч, который берёт картинку, прогоняет через проект и выплёвывает обратно в файл. И смотрит потом фотошопом, всёли на выходе красиво. Ну и как такое сделать на AHDL? Танцы с бубном и ухищрения разные - проблему не решат. Это если кратко, т.к. тему симуляции можно развивать.

Далее, AHDL привязывает Вас к альтере, сколько-б я не был поклонником альтеры, но иногда есть необходимость сделать что-то на том-же ксалинксе. Правильно сделанный проект VHDL или Verilog переносится с одного вендора на другой достаточно легко. Ну, если не считаьт случаи, когда есть сильная завязка на особенности конкретного железа. С AHDL такое в принципе невозможно.

Далее, не знаю как вам, а мне кажется что тенденции обычного софта, когда пусть прога будет пусть чуть больше но написана в 2 раза быстрее и ,удет иметь меньше глюков приходят и в железо. Да, есть случаи, когда нужно выжать по объёму и скорости 100%, но это и не только на AHDL можно сделать. На мой взгляд, большие проекты на AHDL отлаживать значительно сложнее и дольше.

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

В общем шире нужно смотреть, на sload свет клином не сошолся...

Edited by Builder

Share this post


Link to post
Share on other sites
В общем IMHO, Вы допускаете в своих рассуждениях одну ошибку, Вы распространяете свои частные неудачные попытки соскочить с AHDL на общий случай.

Только собирался написать, как вы 100% точно выразили мою мысль %)

 

PS. Тем кто по прежнему уверен что AHDL много круче Verilog, повторно предлагаю создать отдельную тему, с вас модуль на AHDL + краткое описание функциональности, с меня его SV аналог. Смотрим ресурс, сравниваем и т.д. Начать предлагаю с разработанного Aprox 8b/10b кодера. Оценивать результат будет сообщество по параметрам : читаемость/краткость/параметризуемость/результат синтеза.

Share this post


Link to post
Share on other sites
PS. Тем кто по прежнему уверен что AHDL много круче Verilog
Не, ну AHDL в принципе крут, для своего времени альтеровцы считаю ксалинкс уделали по полной.

Но его крутизна на сегодня точечная и роли не играет. Если уж проводили аналогию asm с C/C++, то давате проводить до конца:

кто сегодня на асме пишет? А? Да реально только во встраиваемых системах, и только тогда, когда ресурсы памяти и скорости жмут. А по чему? Да потому, что во первых на сегодня, особенно для x86 компиляторы уделают подавляющее число тех, кто асм x86 знает.

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

Та-же тенденция уже приходит и в FPGA, точнее уже пришла.

Share this post


Link to post
Share on other sites
Начать предлагаю с разработанного Aprox 8b/10b кодера. Оценивать результат будет сообщество по параметрам : читаемость/краткость/параметризуемость/результат синтеза.

 

Не. Начать предлагаю с разработанного des00 на SV.

От себя лично обещаю заценить его по другим параметрам. ( Стоимость, время)

Share this post


Link to post
Share on other sites
Не. Начать предлагаю с разработанного des00 на SV.

ПАдловили %) Хорошо, пойду смотреть как такие кодеры делаются.

 

От себя лично обещаю заценить его по другим параметрам. ( Стоимость, время)

Что с чем вы будете сравнивать ?

 

UPD. Раз мне предоставлено первое слово и начинаю я с нуля, договоримся на берегу : за основу интерфейсов кодера я беру альтеровскую корку.

Share this post


Link to post
Share on other sites
Что с чем вы будете сравнивать ?

 

UPD. Раз мне предоставлено первое слово и начинаю я с нуля, договоримся на берегу : за основу интерфейсов кодера я беру альтеровскую корку.

 

Пока имею наработку с CYW15G0101DXB. Кушает до неприличия много.

Нужно что то делать. (Оценить Вашу работу сходу не смогу. Но в наглую обязательно воспользуюсь)

Share this post


Link to post
Share on other sites
Ваш опыт показывает не то, что VHDL или Verilog плохи, а то что чужие проекты нужно осторожно использовать, тем более - открытые, когда неизвестно кто их писал. Может тот код вообще студент писал, в образовательных целях.
Ваш довод лишний раз рушит иллюзию переносимости, которой обычно козыряют в VHDL или Verilog. Что это за языки, если потребителю надо все время быть начеку- кто писал, когда писал и для каких целей? О какой переносимости и юзабилити готовых проектов может идти речь в этом случае? И мой печальный опыт показывает- нет ее, этой переносимости. В каждом случае придется вникать до тонкостей и перерабатывать практически до основания.
Ну и от себя, не флэйма ради. AHDL - это круто, сам когда-то на нём лабал. На сегодня его удел - это внутренний язык для мегафункций самой альтеры, и поддержка старых проектов. Он с этим нормально справляется. Его время прошло. Его время - это когда чип на пару десятков тысяч, если не просто тысяч был чем-то мега большим. И то, уже тогда были проблемы стмуляции, тогда ещё в Max+II - это рисование матрасов времянки, симуляция, просмотр в основно глазами результата. Вспоминаю с содраганием.
Не флейма ради, а токмо правды для, напоминаю, что "рисование матрасов времянки" возникает как правило от неумения разбить сложный проект на рад простых модулей с раздельной отладкой. Вы правы, что AHDL заточен под кристаллы Altera. И в этом его громадное преимущество в плане эффективности синтеза. В то время, как язык VHDL или Verilog не заточены ни подо что конкретно и, значит, сомнительны в плане эффективного синтеза практических вещей. Эти языки придумали для моделирования процессов. О синтезе разводки FPGA никто тогда не думал. Значит, - чужеродно!

Далее, AHDL привязывает Вас к альтере,....
Да. И в этом выигрыш в скорости схемы.

В общем IMHO, Вы допускаете в своих рассуждениях одну ошибку, Вы распространяете свои частные неудачные попытки соскочить с AHDL на общий случай.
По-моему, не так. Я пытался два раза использовать готовые модули на VHDL или Verilog из opencores, чтобы сэкономить время, а не для "соскочить". И каждый раз получал крайне неудовлетворительные результаты при тестировании. Приходилось переписывать заново. А уж хороши, или не не хороши VHDL с Verilog- сие мне неведомо.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this