|
Cyclone III для Gigabit Ethernet |
|
|
|
Apr 23 2010, 07:35
|

Местный
  
Группа: Участник
Сообщений: 374
Регистрация: 7-11-07
Из: Moscow
Пользователь №: 32 131

|
Цитата(des00 @ Apr 22 2010, 19:31)  Вы опять начинаете вносить смуту в головах начинающих? Задавший вопрос MALLOY2 отнюдь не начинающий. Цитата Вам напомнить как вы по быстрому свалили из темы, в которой сравнивался ваш crc32 модуль на AHDL и мой на Verilog и результаты сравнения? %) "Свалил" я из-за принципиальной невозможности производить REMOTE сравнение вариантов. Именно поэтому тема и свалилась во флейм, который пресек модератор. А недавно я получил еще одно подтверждение того, насколько опасно использовать готовые проекты, написанные на языках высокого уровня. Понадобилось мне реализовать в Cyclon-III преобразование 8/10b и обратно. Скачал с opencores.org готовый модуль на VHDL. Протестировал в Quratus и снова ужаснулся результатам быстродействия. В точности как и тогда, при тестировании готового CRC32 на VHDL. Увы, снова пришлось разбираться в логике и переписывать на AHDL. И только тогда было получена макс частота примерно 150 MHz на самой низкой градации С8. А в готовом модуле VHDL - не более 30.
|
|
|
|
|
Apr 23 2010, 08:55
|
Профессионал
    
Группа: Свой
Сообщений: 1 129
Регистрация: 19-07-08
Из: Санкт-Петербург
Пользователь №: 39 079

|
Цитата(DmitryR @ Apr 23 2010, 12:56)  Вы путаете острое с мокрым: к изменению параметров дизайна привело не то, что вы переписали его на AHDL, а то что вы, переделывая, изменили логику. Если вы возьмете логику, описанную вами на AHDL и переведете ее хоть на VHDL, хоть на Verilog, хоть в схематике нарисуете - результат будет в точности одинаковый. Именно. Aprox:Хотите я Вам этот модуль на AHDL напишу так, что он даже на 30 Мгц не заработает?
--------------------
|
|
|
|
|
Apr 23 2010, 09:31
|
Профессионал
    
Группа: Свой
Сообщений: 1 129
Регистрация: 19-07-08
Из: Санкт-Петербург
Пользователь №: 39 079

|
Aprox: Кстати, почему Вы решили, что максимальная частота модуля была 30 МГц? Цитата(ViKo @ Apr 23 2010, 13:40)  Хочу, чтобы Вы написали на VHDL, чтобы работало на 150 MHz. Ну, у меня TimeQuest говорит, что исходный модуль с Opencores (тот, который на VHDL) имеет частоту 148,18 МГц. Может Вас устроит? Цитата(ViKo @ Apr 23 2010, 13:40)  Загляните в тему про счетчик на примитивах. Там des00 доказывал, что есть разница между AHDL и Verilog. Да кто же спорит что разница есть? Это же разные языки, синтезаторы разные. Между Verilog и VHDL тоже разница есть (может стоит на Verilog переписать и будет 200 МГц? ). Только разговор не об этом, а о том, что VHDL - 30 МГц, а AHDL - 150 МГц (заметьте, при прочих равных, судя по разговору). А вот это, уже, мягко говоря, неправда
--------------------
|
|
|
|
|
Apr 23 2010, 09:37
|
Вечный ламер
     
Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453

|
Цитата(Aprox @ Apr 23 2010, 02:50)  Скачал с opencores.org готовый модуль на VHDL. Протестировал в Quratus и снова ужаснулся результатам быстродействия. И вот опять, непонятно кто, непонятно как, непонятно для чего сделал модуль на том языке который знает, а всю вину вы перекладываете не на автора, а на язык. Но я повторяюсь. Цитата(ViKo @ Apr 23 2010, 04:40)  Там des00 доказывал, что есть разница между AHDL и Verilog. немножко не так, я старался показать что разницы между AHDL/Verilog нет, а то, что мы принимаем за разницу, зависит от прокладки между сиденьем и клавой и от того как использовать конкретный синтезатор %)
--------------------
|
|
|
|
|
Apr 23 2010, 10:04
|

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

|
2 des333 & des00Согласен, что многое зависит от головы. Но и от инструмента тоже. Проводя аналогию с программированием - Verilog это как C, а AHDL - как ассемблер. Никто же не спорит, что на ассемблере можно написать более быструю программу, из-за того, что C компилятор вставляет иногда что-то лишнее. Только муторно. Хотя кто-нибудь и на ассемблере может написать хуже, чем C компилятор. А круче всего - на C с ассемблерными вставками. Как на SystemVerilog с примитивами
|
|
|
|
|
Apr 23 2010, 10:23
|

Местный
  
Группа: Участник
Сообщений: 374
Регистрация: 7-11-07
Из: Moscow
Пользователь №: 32 131

|
Цитата(des333 @ Apr 23 2010, 13:46)  Aprox: Кстати, почему Вы решили, что максимальная частота модуля была 30 МГц? Симулятором Quartus-a. Задавал поток символов на вход- смотрел, что на выходе. Начиная с 30 MHz на входе, симулятор стал давать на выходе undefined и сигнализировать о нарушении setup/hold временах. Кроме того, дикая разбежка по фронтам на выходе. Цитата Ну, у меня TimeQuest говорит, что исходный модуль с Opencores (тот, который на VHDL) имеет частоту 148,18 МГц. Мы не о разном говорим? Это тот модуль, который ведет обработку на обеих фронтах clk? Что же мог в таком случае оценить TimeQuest? Цитата Только разговор не об этом, а о том, что VHDL - 30 МГц, а AHDL - 150 МГц (заметьте, при прочих равных, судя по разговору). А вот это, уже, мягко говоря, неправда И тем не менее имеем факт прогона на симуляторе. Правда, следует признаться, не совсем "равные прочие". Когда я переписывал на AHDL, то отказался от работы по обеим фронтам clk и "развязал" длинные логические цепи дополнительными регистрами.
|
|
|
|
|
Apr 23 2010, 10:30
|
Профессионал
    
Группа: Свой
Сообщений: 1 129
Регистрация: 19-07-08
Из: Санкт-Петербург
Пользователь №: 39 079

|
Цитата(Aprox @ Apr 23 2010, 14:38)  Мы не о разном говорим? Это тот модуль, который ведет обработку на обеих фронтах clk? Что же мог в таком случае оценить TimeQuest? Там два модуля, кодер и декодер. Декодер работает только по одному фронту и дает 148 МГц. Кодер не смотрел. UPD:Да, в кодере используются оба фронта. А TimeQuest нормально анализирует пути, даже когда имеется переход с posedge на negedge.
--------------------
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|