Jump to content

    

тема для 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

Share this post


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

Share this post


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

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

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

Share this post


Link to post
Share on other sites
Модули, декодеры, критерии... Вы сначала два триггера сравните.

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

 

 

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

 

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

Share this post


Link to post
Share on other sites
Остальные почитают, подумают.

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

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

Share this post


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

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

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

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

 

А вот и средне заоптималеный модуль, отличается от первого тем, что логика расчета 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

Share this post


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

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

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

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

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

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

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

Share this post


Link to post
Share on other sites
...

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

 

...

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

 

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

 

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

 

 

 

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

Share this post


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

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

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

 

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

 

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

 

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

 

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

Share this post


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

Share this post


Link to post
Share on other sites

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

Share this post


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

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

Share this post


Link to post
Share on other sites

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

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

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

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

 

Make Peace Not War!

Share this post


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

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

Share this post


Link to post
Share on other sites
основной тип языка SystemVerilog :)

 

 

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

 

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

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