Перейти к содержанию
    

тема для Aprox и любителей AHDL

Тема выделена в отдельную ветку отсюда . Напомню суть вопроса: уважаемый Aprox необоснованно утверждает что AHDL заткнет за пояс VHDL/V/SV вместе взятые. Для рассмотрения сего вопроса поступило предложение сравнить модули, с одинаковой функциональностью написанные на разных языках. Критерии сравнения :

читаемость/краткость/параметризуемость/результат синтеза

 

Мне предоставили право первого укола. Итак первый раунд: 8b10b кодер. Мой первый укол : эталонная, референсная модель 8b10b кодера, без какой либо оптимизации. Написана в лоб, на основе информации из википедии (В отличии от корки на опенкоресах, которая сделана на основе документа IBM) и оттестирована в сравнении с альтеровской коркой. Интерфейсы взяты от нее же, единственное отличие, в моей модели не работает выход kerr. На всё написание затратил где то 30 минут времени и на отладку столько же. Хотя с самим алгоритмом разбирался несколько дольше, в виду одного темного места в вики %)

 

Результаты синтеза обертки с регистрами на входе/выходе

Total logic elements : 155

Total combinational functions : 130

Dedicated logic registers : 38

Разводки

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:   139.59 MHz   139.59 MHz        clk

В аттаче файлы модуля и его обертки, алтеровская корка для моделирования + тестбенч сравнения с эталонной моделью, файлы квартусовского проекта.

 

Чуть позже будет оптимизированная версия, пути оптимизации там на виду %)

enc8b10b.zip

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Мне предоставили право первого укола. Итак первый раунд: 8b10b кодер. Мой первый укол : эталонная, референсная модель 8b10b кодера, без какой либо оптимизации. Написана в лоб, на основе информации из википедии (В отличии от корки на опенкоресах, которая сделана на основе документа IBM)
Нужна та статья, от IBM? А то валется на винте, позже закину на ftp, с ходу вроде нету на ftp.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

сравнить модули, с одинаковой функциональностью написанные на разных языках. Критерии сравнения :

читаемость/краткость/параметризуемость/результат синтеза

Модули, декодеры, критерии... Вы сначала два триггера сравните.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Модули, декодеры, критерии... Вы сначала два триггера сравните.

Так кто Вам мешает?

 

 

Сравните, выложите результаты на форум. Остальные почитают, подумают.

 

Критиковать все могут...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Остальные почитают, подумают.

Остальным было бы, как раз, более показательно иметь сравнение на основе триггеров, а не на основе навороченных модулей, объективность оценки которых неизвестно как установить.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Остальным было бы, как раз, более показательно иметь сравнение на основе триггеров, а не на основе навороченных модулей, объективность оценки которых неизвестно как установить.

мне это не интересно, это уже не мой уровень %), хотите сравнивайте

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

на этом форуме много постов, в том числе моих, где разбираются особенности синтеза тех или иных конструкций.

 

А вот и средне заоптималеный модуль, отличается от первого тем, что логика расчета RD сделана на таблицах, но таблица генерируется самим квартусом, на основе функции (мне лень было ручками считать). Результаты на том же враппере

синтез

Total logic elements : 142

Total combinational functions : 117

Dedicated logic registers : 38

разводка

Total logic elements : 130 / 5,136 ( 3 % )

Total combinational functions : 117 / 5,136 ( 2 % )

Dedicated logic registers : 38 / 5,136 ( < 1 % )

времянка

Info: Fmax Summary
    Info:                Restricted
    Info:         Fmax         Fmax      Clock Note
    Info: ============ ============ ========== =====================
    Info:   216.22 MHz   216.22 MHz        clk

 

При этом прозрачность алгоритма на виду, всё понятно, откуда и куда. Жду публикации AHDL версии от Aprox %)

 

Нужна та статья, от IBM? А то валется на винте, позже закину на ftp, с ходу вроде нету на ftp.

Выкладывайте, пусть будет в коллекции %)

 

UPD. Там есть еще два явных места для оптимизации, но отложу это на потом %)

enc8b10b_1.v

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Тема выделена в отдельную ветку отсюда . Напомню суть вопроса: уважаемый Aprox необоснованно утверждает что AHDL заткнет за пояс VHDL/V/SV вместе взятые. Для рассмотрения сего вопроса поступило предложение сравнить модули, с одинаковой функциональностью написанные на разных языках. Критерии сравнения :

читаемость/краткость/параметризуемость/результат синтеза

Оооо, холивар назревает. Битву поддерживаю.

1. Прошу убрать из первого поста слово "необоснованно", до тех пор пока не доказано что оно не обоснованно (презумпция невиновности).

2. Прошу озвучить целевую схему. Предлагаю маленький, но быстрый циклон, чтобы клоковое дерево не являлось ограничителем. Можно и медленный, чтобы показать худшее быстродействие, но в любом случае схему выбрать надо.

3. Прошу озвучить версию ПО и настройки синтезатора, отличающиеся от дефолтных.

Ну то есть методику измерений.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

...

1. Прошу убрать из первого поста слово "необоснованно", до тех пор пока не доказано что оно не обоснованно (презумпция невиновности).

 

...

Может быть, наоборот?  :)

 

 Aprox заявил, что Verilog/VHDL дают более плохой результат, чем AHDL.

 

Так вот, презумпция невиновности сейчас стоит на стороне Verilog/VHDL, и, пока не доказано, что они, действительно, хуже, подобные заявления логично считать "необоснованными".  :)

 

 

 

Пункты 2 и 3 поддерживаю.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2. Прошу озвучить целевую схему. Предлагаю маленький, но быстрый циклон, чтобы клоковое дерево не являлось ограничителем. Можно и медленный, чтобы показать худшее быстродействие, но в любом случае схему выбрать надо.

3. Прошу озвучить версию ПО и настройки синтезатора, отличающиеся от дефолтных.

по первому вопросу des333 высказался, по остальным я выкладываю qsf/qpf/sdc файл проекта, в которых указано какой квартус, с какими настройками использовался и какая тактовая требовалась от квартуса. Этого более чем достаточно.

 

В выложеных файлах выбран третий сыклон с автовыбором, пины стоят как виртуальные (кроме клока). Можем выбрать третий сыклон 25 ку с8 для еще большей привязки %)

 

Жду результатов работы Aprox, который в очередной раз кинул хороший камень в огород VHDL/Verilog. Специально для Aprox хочу отметить, представленный оптимизированный код ни затачивался ни под одну FPGA и является полностью переносимым.

 

ЗЫ. Сами авторы корки с опенкоресов подчеркивают, что их модель создавалась как демонстрационная, один в один совпадающая с документом IBM. И для использования в системах с высокими требованиями требует доработки.

 

ЗЗЫ. Очень интересен выбор фаната альтеры, между бесплатной альтеровской коркой 8b10b кодера и опенкоресами, в пользу последних %)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Выкладывайте, пусть будет в коллекции %)
В доках аплоада, папка "8b_10b", там смотрю приведены уже минимизированные фунции, а не только таблицы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

простите, что не в тему вклиниваюсь, а что такое тип "logic" в файле enc8b10b_1.v ? в справочниках я его не нашел...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

простите, что не в тему вклиниваюсь, а что такое тип "logic" в файле enc8b10b_1.v ? в справочниках я его не нашел...

основной тип языка SystemVerilog :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вместо того, чтобы "пинать дохлую собаку" AHDL...

des00, как обычно, выдал эталонный код, достойный изучения и подражания. Не могли бы Вы, des00, выдать пошаговую инструкцию, как создавать и отлаживать проект. Начиная с поиска алгоритмов и заканчивая тестбенчами и выкладыванием кода на сайт. Какими программами пользуетесь, какие цели преследуете при оптимизации, и т.п. Да еще бы со скриншотами... В блоге своем, например.

Я думаю, от этого была бы бОльшая польза всем.

А по поводу соревнования - разве у кого-то есть сомнения, что то, что написано на Verilog, можно создать на AHDL? Также справедливо и обратное.

 

Make Peace Not War!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А по поводу соревнования - разве у кого-то есть сомнения, что то, что написано на Verilog, можно создать на AHDL? Также справедливо и обратное.

Мне кажется все можно сделать даже в сематике, не говоря об языках описания. Главный вопрос сколько уйдет времени на разработку устройства и его отладку. Плюс вопрос переносимости и юзабильности кода(схемы).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

основной тип языка SystemVerilog :)

 

 

понял. я в справочниках по "просто"-verilog смотрел.. :biggrin:

 

полностью поддерживаю предложение ViKo !!!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...