Kuzmi4 0 28 апреля, 2010 Опубликовано 28 апреля, 2010 · Жалоба ...SystemVerilog, который заточен Альтерой под свои кристаллы... Вы смотрели список товарисчей, которые учавствовали в разработке SV ?? Я там лично альтерного большинства не видел Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
masics 0 28 апреля, 2010 Опубликовано 28 апреля, 2010 · Жалоба Что же касается SystemVerilog, который заточен Альтерой под свои кристаллы ... SystemVerilog - это универсальный язык и никто его не затачивал. Этот же алгоритм можно переписать на простом верилоге - будет немного по-другому выглядеть. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
xvr 12 28 апреля, 2010 Опубликовано 28 апреля, 2010 · Жалоба Пора заводить список 'перлов' Aprox. Начало уже было положено - http://electronix.ru/forum/index.php?showt...st&p=750721 Новые пополнения: 7. SV это язык, сделанный Alter'ой на замену AHDL PS. Тему пора в оффтопик :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sazh 8 28 апреля, 2010 Опубликовано 28 апреля, 2010 · Жалоба Повторяю- программы написанные на академических VHDL или Verilog дают производительность схем как правило хуже, чем тот же самый алгоритм, оформленный на языке AHDL для кристаллов от Altera. Зачем AHDL так обижать. Он вообще то язык высокого уровня. И тот же счетчик на нем можно по разному описать, не обязательно опираясь на мегафункцию PARAMETERS (WIDTH = 8); SUBDESIGN COUNTER_B ( Clock: input; Clock_out: output; ) VARIABLE RG[WIDTH-1..0]: DFF; BEGIN RG[].clk = Clock; RG[] = RG[]+1; Clock_out = RG[WIDTH-1]; END; На верилоге будет практически тоже самое. А анализировать открытые корки лично мне не интересно. Мне интересно как Вы думаете. Ради этого можно и AHDL посмотреть. (Вы умудрились практически всех завести) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 28 апреля, 2010 Опубликовано 28 апреля, 2010 · Жалоба Повторяю- программы написанные на академических VHDL или Verilog дают производительность схем как правило хуже, чем тот же самый алгоритм, оформленный на языке AHDL для кристаллов от Altera. .... Я всего лишь предлагаю des00 проверить мой тезис, что писать на академических языках, не заточенных под конкретный кристалл - это всегда проигрыш в быстродействии схемы Хорошо, я перепишу этот кодер на чистый verilog 2001 и vhdl 93, для частоты эксперимента. С вас жду ваш AHDL ный код. Что же касается SystemVerilog, который заточен Альтерой под свои кристаллы теми же приемами использования примитивов, что и AHDL, то тут и сравнивать нечего- это одно и то же в плане синтеза. вы меня конечно простите, но это бред, синтез с SV в квартусе это синтез с Verilog + дополнительные типы данных. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DimaG 0 28 апреля, 2010 Опубликовано 28 апреля, 2010 · Жалоба Постоянно происходит подмена моего тезиса. Повторяю- программы написанные на академических VHDL или Verilog дают производительность схем как правило хуже, чем тот же самый алгоритм, оформленный на языке AHDL для кристаллов от Altera. Что же касается SystemVerilog, который заточен Альтерой под свои кристаллы теми же приемами использования примитивов, что и AHDL, то тут и сравнивать нечего- это одно и то же в плане синтеза. Совершенно напрасно des00 рвется доказывать очевидные вещи. Я всего лишь предлагаю des00 проверить мой тезис, что писать на академических языках, не заточенных под конкретный кристалл - это всегда проигрыш в быстродействии схемы. Вот, пусть и попробует взять из опенкоров какую-нибудь простенькую корку на VHDL и, ничего в ней не переписывая и не улучшая, как она есть, прогнать на Quartus для выяснения реального быстродействия в железе. Из чего у Вас следует вывод, что исходники на опенкорсес - это "написанные на академическом языке", а то, что написал des00 - заточено конкретно под Альтеру? Уверен, что его исходник можно собрать под любую другую FPGA, и там тоже все будет оптимально. Я лишь вижу следующее - реализация корки на опенкорсес оставляет желать лучшего. Это как на любом языке программирования высокого уровня - можно написать хороший код, который будет оптимально собираться на большинстве платформ, а можно написать через одно место, а потом хаять язык. Собственно, за что часто ругают С++ по сравнению с С Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 28 апреля, 2010 Опубликовано 28 апреля, 2010 · Жалоба Повторяю- программы написанные на академических VHDL или Verilog дают производительность схем как правило хуже, чем тот же самый алгоритм, оформленный на языке AHDL для кристаллов от Altera. В аттаче проект с 4 мя модулями, enc8b10b - исходная идеальная модель кодера написанная в лоб на SV enc8b10b_1 - первый вариант алгоритмической оптимизации модуля за счет таблиц на SV enc8b10b_v - модуль enc8b10b_1 переписанный под академический verilog 2001 enc8b10b_2 - модуль enc8b10b_1 переписанный с учётом баги 9.1сп2 квартуса с обработкой таблиц заданных как localparam (на 9.0 баги нет) выбран специально самый маленький и самый тормозной сыклон 3. вот результаты enc8b10b Device : EP3C5E144C8 Timing Models : Final Total logic elements : 144 / 5,136 ( 3 % ) Total combinational functions : 130 / 5,136 ( 3 % ) Dedicated logic registers : 38 / 5,136 ( < 1 % ) Info: Fmax Summary Info: Restricted Info: Fmax Fmax Clock Note Info: ============ ============ ========== ===================== Info: 102.92 MHz 102.92 MHz clk enc8b10b_1 Device : EP3C5E144C8 Timing Models : Final Total logic elements : 151 / 5,136 ( 3 % ) Total combinational functions : 137 / 5,136 ( 3 % ) Dedicated logic registers : 38 / 5,136 ( < 1 % ) Info: Fmax Summary Info: Restricted Info: Fmax Fmax Clock Note Info: ============ ============ ========== ===================== Info: 146.93 MHz 146.93 MHz clk enc8b10b_v Device : EP3C5E144C8 Timing Models : Final Total logic elements : 116 / 5,136 ( 2 % ) Total combinational functions : 103 / 5,136 ( 2 % ) Dedicated logic registers : 38 / 5,136 ( < 1 % ) Info: Fmax Summary Info: Restricted Info: Fmax Fmax Clock Note Info: ============ ============ ========== ===================== Info: 183.72 MHz 183.72 MHz clk enc8b10b_2 Device : EP3C5E144C8 Timing Models : Final Total logic elements : 116 / 5,136 ( 2 % ) Total combinational functions : 103 / 5,136 ( 2 % ) Dedicated logic registers : 38 / 5,136 ( < 1 % ) Info: Fmax Summary Info: Restricted Info: Fmax Fmax Clock Note Info: ============ ============ ========== ===================== Info: 183.72 MHz 183.72 MHz clk Как видите, по степени "понятливости" академический Verilog даже сделал SV (за счет баги в квартусе, но сделал). Я всего лишь предлагаю des00 проверить мой тезис, что писать на академических языках, не заточенных под конкретный кристалл - это всегда проигрыш в быстродействии схемы Я предлагаю вам взять мой проект с опенкоресов, на SV, написать его аналог на AHDL и выложить в тему для сравнения по обозначенным пунктам. Тогда мы оба этих проекта погоняем по синтезу. ЗЫ. Ваш AHDL код 8b10b кодера в студию, а то игра идет в одни ворота !!! PPS. VHDL вариант будет много позже, все же я не работал на этом языке 4 года %) coder_8b10b.zip Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aprox 0 28 апреля, 2010 Опубликовано 28 апреля, 2010 · Жалоба Я предлагаю вам взять мой проект с опенкоресов, на SV, написать его аналог на AHDL и выложить в тему для сравнения по обозначенным пунктам. Тогда мы оба этих проекта погоняем по синтезу. ЗЫ. Ваш AHDL код 8b10b кодера в студию, а то игра идет в одни ворота !!! Извольте:INCLUDE "my_rom.inc"; SUBDESIGN enc8b_10b ( clk, symbol_in[7..0], extra : INPUT; symbol_out[9..0] : OUTPUT; ) VARIABLE encoder: my_rom; BEGIN encoder.clock=clk; encoder.address[]=(extra,symbol_in[]); symbol_out[]= encoder.q[]; END; Здесь использована мегафункция Altera- lpm_rom. В этой ROM, в ее 512-ти словах зашита таблица перекодировки. Вход extra для генерации служебных символов. Скорострельность этого кодера на AHDL составляет 238,10 MHz для EP3C5E144C8. Как видите, если применять специально заточенные под архитектуру Altera мегафункции, а это и происходит автоматически в Quartus на языке AHDL, то результат с легкостью кроет по скорострельности любые изыски на академических языках, рожденных в мертвой тиши кабинетов. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vetal 0 28 апреля, 2010 Опубликовано 28 апреля, 2010 · Жалоба Извольте: По моему вы сравниваете твердое с горячим! :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sazh 8 28 апреля, 2010 Опубликовано 28 апреля, 2010 · Жалоба По моему вы сравниваете твердое с горячим! :) Вы не справедливы. Убедительная победа уже в 1 раунде. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
xvr 12 28 апреля, 2010 Опубликовано 28 апреля, 2010 · Жалоба Извольте:Абзац! Aprox продолжает нас радовать по полной программе. :laughing: Здесь использована мегафункция Altera- lpm_rom. В этой ROM, в ее 512-ти словах зашита таблица перекодировки.Нравятся мне такие 'решения' :rolleyes: Как видите, если применять специально заточенные под архитектуру Altera мегафункции,А AHDL - это специальный язык для написания оптимальных кусков ROM'а для архитектуры Alter'ы :yeah: а это и происходит автоматически в Quartus на языке AHDL, то результат с легкостью кроет по скорострельности любые изыски на академических языках, рожденных в мертвой тиши кабинетов.К сожалению это происходит исключительно у Aprox и исключительно по причине полного непонимания сути дела. NB. Aprox, ваша скорострельная таблица это еще не 8b10b кодер (таблица, кстати, еще и неправильная - не хватает по одному входу и выходу, учите матчасть). Аналогичное фуфло кодер на Verilog даст столько же :1111493779: 2 des00 - можно проверить? (Ну нету у меня квартуса) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Des333 0 28 апреля, 2010 Опубликовано 28 апреля, 2010 · Жалоба 2 des00 - можно проверить? (Ну нету у меня квартуса) А там проверять нечего - там только обертка :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AndrewS6 0 28 апреля, 2010 Опубликовано 28 апреля, 2010 · Жалоба 2Aprox: а где running disparity? Вы функциональность Вашего модуля вообще проверяли? Хотя бы по сравнению с альтеровской моделью? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aprox 0 28 апреля, 2010 Опубликовано 28 апреля, 2010 · Жалоба Здесь использована мегафункция Altera- lpm_rom. В этой ROM, в ее 512-ти словах зашита таблица перекодировки.Нравятся мне такие 'решения' :rolleyes: Функцию свою мой кодер выполняет? - Да, выполняет! Что же вам не нравится? И потом, мой соперник des00 использует таблицы в своей программе кодера на языке SV. Почему вы мне отказываете в таком же подходе? Может потому, что des00 непрерывно вычисляет в реальном времени значения перекодировки, а я просто заранее записал их в ROM и не заставляю FPGA трудиться в поте лица? AHDL - это специальный язык для написания оптимальных кусков ROM'а для архитектуры Alter'ы :yeah: Повторяю, синтезатор Quartus автоматически использует готовые, специально заточенные под архитектуру Altera мегафункции, если распознает их использование в тексте ADHL. Я просто слегка помог Quartus увидеть нужную для кодера мегафункцию.К сожалению это происходит исключительно у Aprox и исключительно по причине полного непонимания сути дела. Я же представил в студию, как просили, чемпиона по скорострельности на языке AHDL. В чем же вы увидели мое якобы непонимание сути дела? NB. Aprox, ваша скорострельная таблица это еще не 8b10b кодер (таблица, кстати, еще и неправильная - не хватает по одному входу и выходу, учите матчасть). Аналогичное фуфло кодер на Verilog даст столько же :1111493779: Добавление одного входа и выхода в схему на ROM никоим образом не изменит результат ее скорострельности. Алаверды: советую учить матчасть. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Des333 0 28 апреля, 2010 Опубликовано 28 апреля, 2010 · Жалоба Aprox: А как Вы думаете, можно ли использовать мегафункцию lpm_rom в модули, написанном на Verilog? :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться