aprox 0 28 апреля, 2010 Опубликовано 28 апреля, 2010 · Жалоба 2Aprox: а где running disparity? Вы функциональность Вашего модуля вообще проверяли? Хотя бы по сравнению с альтеровской моделью? Мой соперник des00 тоже не анализирует Running disparity error. У нас честное соревнование "AHDL против SV". Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Des333 0 28 апреля, 2010 Опубликовано 28 апреля, 2010 · Жалоба Мой соперник des00 тоже не анализирует Running disparity error... Вам нужно почитать побольше про 8b/10b Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aprox 0 28 апреля, 2010 Опубликовано 28 апреля, 2010 · Жалоба Aprox: А как Вы думаете, можно ли использовать мегафункцию lpm_rom в модули, написанном на Verilog? :) Скорей всего можно. Но почему-то не используют в программах на Verilog! Факт налицо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Builder 1 28 апреля, 2010 Опубликовано 28 апреля, 2010 · Жалоба Скорей всего можно. Но почему-то не используют в программах на Verilog! Факт налицо.Да просто никто не ждал такого фортеля. Ждали реального сравнения кода, а Вы выкручиваетесь. Так даже не интересно. Столько говорили про эффективность кода, а тут... Вы и в самом деле думаете что проблема вызвать функцию памяти из Verilog? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 28 апреля, 2010 Опубликовано 28 апреля, 2010 · Жалоба Извольте: очень хорошо, ну наконец то. А теперь, для того что бы собрать и портировать в моделсим ваш код на моей машине мне нужны недостающие файлы. Прошу вас их выложить. Второе ваш код не является 8b10b кодером, вы не обрабатываете Running Disparity, чем это чревато, смотрите в описании 8b10b кодирования. В моем коде есть полная обработка RD, в том числе обработка исключений RD. Причем хочу заметить, вы не в первый раз упрощаете чужие корки, а потом заявляете что языки VHDL/Verilog мастдай. Сравните выходы альтеровского кодера и вашего, увидите в чем разница. Мой кодер совпадает с альтеровским один в один ( о чем говорит альтеровский же тестбенч), единственное исключение я не стал описывать выход kerr, который описывает появление некорректного слова управления, а не RD Error; Почему вы мне отказываете в таком же подходе? Может потому, что des00 непрерывно вычисляет в реальном времени значения перекодировки, а я просто заранее записал их в ROM и не заставляю FPGA трудиться в поте лица? Если бы вы хоть немного владели Verilog, то знали бы что localparam и assign wire = some_constsant вычисляются на этапе предварительного разбора файла. Никаких вычислений в реальном времени нет и быть не может. Да просто никто не ждал такого фортеля. Ждали реального сравнения кода, а Вы выкручиваетесь. Так даже не интересно. +1, не серьезно все это %) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
xvr 12 28 апреля, 2010 Опубликовано 28 апреля, 2010 · Жалоба Я же представил в студию, как просили, чемпиона по скорострельности на языке AHDL. В чем же вы увидели мое якобы непонимание сути дела?От вас просили в первую очередь АНАЛОГ того, что написал des00. А такого 'чемпиона' можно и на Verilog'е сделать: module champion(input wire clk, output reg qqq); always @(posedge clk) qqq <= ~qqq; endmodule Явно чемпион. А то, что он делает нечто совсем к делу не относящееся никого волновать не должно, так по вашему? Добавление одного входа и выхода в схему на ROM никоим образом не изменит результат ее скорострельности. Алаверды: советую учить матчасть.Ох уж эти советчики :rolleyes: Проверьте скорострельность: module c8b10b(input wire clk, input wire [7:0] code, output wire [9:0] out_code); reg [10:0] mem [0:511]; reg [10:0 ] r; always @(posedge clk) r <= mem[{r[10],code}]; assign out_code = r[9:0]; initial $readmemh("table.txt",mem); endmodule Вот ЭТО является аналогом вашего творчества на AHDL (но с добавлением running parity), а не то, что предлагал des00 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aprox 0 28 апреля, 2010 Опубликовано 28 апреля, 2010 · Жалоба Вам нужно почитать побольше про 8b/10bНет. В контексте сравнения одинаковых алгоритмов, ваше предложение представляется совершенно излишним. Я лишь вижу следующее - реализация корки на опенкорсес оставляет желать лучшего. Это как на любом языке программирования высокого уровня - можно написать хороший код, который будет оптимально собираться на большинстве платформ, а можно написать через одно место, а потом хаять язык. Реализация корки на опенкор есть жертва академической переносимости проектов. И больше ничего. Если бы писали под конкретную FPGA было бы много лучше. Вы и в самом деле думаете что проблема вызвать функцию памяти из Verilog? Но ведь des00 не вызывал, правда? А почему? Потому, что над ним довлеет академический Verilog и заставляет идти по проторенной дорожке мэйнстрима. Вот ЭТО является аналогом вашего творчества на AHDL (но с добавлением running parity), а не то, что предлагал des00 Hе совсем, тут я не вижу возможности посылать служебные символы. А без них никак невозможно пересылать пакеты. очень хорошо, ну наконец то. А теперь, для того что бы собрать и портировать в моделсим ваш код на моей машине мне нужны недостающие файлы. Прошу вас их выложить. Имеете в виду .mif файл? Он не имеет ровным счетом никакого значения. Возьмите любой для оценки скорострельности.Второе ваш код не является 8b10b кодером, вы не обрабатываете Running Disparity, чем это чревато, смотрите в описании 8b10b кодирования. А вы, значит, обрабатываете? И что, какой вклад в замедление процесса вносит эта параллельная ветка, никак не относящаяся непосредственно к преобразованию 8b/10b? Мой кодер совпадает с альтеровским один в один ( о чем говорит альтеровский же тестбенч), единственное исключение я не стал описывать выход kerr, который описывает появление некорректного слова управления, а не RD Error; Все это непринципиально, поскольку находится в стороне от непосредственного преобразования 8b/10b.Если бы вы хоть немного владели Verilog, то знали бы что localparam и assign wire = some_constsant вычисляются на этапе предварительного разбора файла. Никаких вычислений в реальном времени нет и быть не может. Вы хотите сказать, что синтезатор с Verilog сумел разглядеть в вашем тексте кучу констант? Почему же тогда он не оформил их в виде простого ПЗУ? Отчего же тогда произошло отставание в скорости на SV? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Des333 0 28 апреля, 2010 Опубликовано 28 апреля, 2010 · Жалоба Aprox: Вы добейтесь той же функциональности, как у модуля, написанного des00, при большей (или хотя бы такой же) Fmax, после этого можете утверждать, что принципиально, а что нет. А иначе это всего лишь слова. А сказать можно все, что угодно. Я могу сказать, что не принципиально, какой разрядности числа умножать, 8-битные или 64-битные. И что? Мир от этого, все равно, не изменится. Цель темы была получить несколько реализаций одного алгоритма и сравнить их между собой. des00 свою реализацию предоставил. Вы - не предоставили. Реализацию чего-то другого предоставили, но в контексте данной темы она не интересна. Предоставьте реализацию того же алгоритма. Не можете? Не хотите? Тогда Вам следует признать Ваше "поражение". Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aprox 0 28 апреля, 2010 Опубликовано 28 апреля, 2010 · Жалоба Aprox: Вы добейтесь той же функциональности, как у модуля, написанного des00, при большей (или хотя бы такой же) Fmax, после этого можете утверждать, что принципиально, а что нет. Как я понимаю, оценку полного совпадения функциональности вы берете на себя? Hеужели не видите, что не в функциональности дело и не в разбирательстве, кто лучше воспроизведет стандарт кодера 8b/10b?Цель темы была получить несколько реализаций одного алгоритма и сравнить их между собой.des00 свою реализацию предоставил. Вы - не предоставили. Реализацию чего-то другого предоставили, но в контексте данной темы она не интересна. Предоставьте реализацию того же алгоритма. Не можете? Не хотите? Тогда Вам следует признать Ваше "поражение". Пытаетесь утопить диспут в несущественных деталях? Я в такое не играю. Вот вам кодер на AHDL. Как просили- чемпион скорострельности. Не нравится? - Ваши проблемы! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 29 апреля, 2010 Опубликовано 29 апреля, 2010 · Жалоба Я говорил о еще двух стадиях алгоритмической оптимизации. Идем в развитии проекта дальше, более оптимальный код кодера enc8b10b_3 для любой плис. Всё как и прежде считает сам квартус, никакой дополнительный софт не используется, всё нутро алгоритма на ладони. Результаты Device : EP3C5E144C8 Timing Models : Final Total logic elements : 129 / 5,136 ( 3 % ) Total combinational functions : 115 / 5,136 ( 2 % ) Dedicated logic registers : 38 / 5,136 ( < 1 % ) Info: Fmax Summary Info: Restricted Info: Fmax Fmax Clock Note Info: ============ ============ ========== ===================== Info: 201.69 MHz 201.69 MHz clk Остался последний шаг оптимизации : 1. слияние двух таблиц в одну. 2. отказ от комбинационного выхода rdcascade и указание квартусу мапить таблицу в ROM (именно комбинационный rdcascade не дает положить таблицы в ROM. По поставленным мной условиям, я остаюсь в рамках интерфейсов альтеровского кодера) В итоге иерархически, с максимальной открытостью приводим проект в финальную точку и собираем его на любой ПЛИС. To be continue UDP. Забыл добавить еще и шаг 3. Отказ от входа rdforce, который также не дает положить таблицу в ROM. enc8b10b_3.v Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
xvr 12 29 апреля, 2010 Опубликовано 29 апреля, 2010 · Жалоба Пытаетесь утопить диспут в несущественных деталях?То есть подмена условий конкурса на свои собственные (к своей выгоде) и предоставление недоделанной корки - это 'несущественные детали'? :blink: Я в такое не играю.Во что вы играете мы уже поняли - в демагогию :) Вот вам кодер на AHDL.Это не 'кодер на AHDL', а недоделанное 'нечто'. Как просили- чемпион скорострельности.Вы мой код (на Verilog) проверили на скорострельность? Видимо нет. Так что ваш 'кодер' пока не чемпион. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 29 апреля, 2010 Опубликовано 29 апреля, 2010 · Жалоба Не могли бы Вы, des00, выдать пошаговую инструкцию, как создавать и отлаживать проект. Начиная с поиска алгоритмов и заканчивая тестбенчами и выкладыванием кода на сайт. Какими программами пользуетесь, какие цели преследуете при оптимизации, и т.п. Да еще бы со скриншотами... В блоге своем, например. Я думаю, от этого была бы бОльшая польза всем. Думаю поставлю точку в вопросе кодера 8b10b и на его основе сделаю статью, вида "Пошаговая разработка алгоритмических модулей или как съесть слона" %) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
PorychikKize 4 29 апреля, 2010 Опубликовано 29 апреля, 2010 · Жалоба Думаю поставлю точку в вопросе кодера 8b10b и на его основе сделаю статью, вида "Пошаговая разработка алгоритмических модулей или как съесть слона" %) Очень интересно будет прочитать! P.S. Жаль только, что Aprox вместо честной дискуссии ударился в демагогию и реализацию алгоритна на SV и AHDL сравнить (пока) не удалось. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Maverick_ 15 29 апреля, 2010 Опубликовано 29 апреля, 2010 · Жалоба Мой совет - лучше признайте свое поражение. Или давайте более весомые аргументы!!! PS. Мое мнение Вы не правы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aprox 0 29 апреля, 2010 Опубликовано 29 апреля, 2010 · Жалоба Info: Fmax Fmax Clock Note Info: ============ ============ ========== ===================== Info: 201.69 MHz 201.69 MHz clk[/code] Остался последний шаг оптимизации : 1. слияние двух таблиц в одну. 2. отказ от комбинационного выхода rdcascade и указание квартусу мапить таблицу в ROM (именно комбинационный rdcascade не дает положить таблицы в ROM. По поставленным мной условиям, я остаюсь в рамках интерфейсов альтеровского кодера) Давайте, давайте - обрезайте функциональность. Не огорчите только любителей точного соблюдения стандарта en8b/10b.В итоге иерархически, с максимальной открытостью приводим проект в финальную точку и собираем его на любой ПЛИС. To be continue Вынужден предостеречь- ваш вылизанный по быстродействию SV проект для кристаллов Altera скорей всего будет давать крайне неудовлетворительные результаты для кристаллов Xilinx. Потребуется солидная переработка исходников. Поэтому советую отказаться от слов "для любой ПЛИС".UDP. Забыл добавить еще и шаг 3. Отказ от входа rdforce, который также не дает положить таблицу в ROM. Я очень доволен, что направил ваши поиски оптимальности в правильном направлении. И считаю это лучшим доказательством свой правоты в споре AHDL <-> VHDL\V\SV . Ведь, увязший в академических языках вряд-ли догадается использовать ROM для перекодировки символов. Ему надо про это специально напоминать. А вот пишущему на AHDL практику ROM - первое, что приходит в голову. Я думаю, мы остались довольны друг другом и результатом дурацкой дуэли. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться