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

High Level Synthesis - стоит ли изучать?

в точку. делал фильтры, ресамплеры на фарроу, эквалайзер, декодер витерби, рида-соломона.

 

Ну первый раз очевидно долго будет, непонятно как вообще писать, постоянно кучу экспериментов, нарисовал, скомпилировал, посмотрел HDL. Но потом веселее должно пойти? Идея-то привлекательная, всё в одном симулинке делать, постепенно конкретизируя плавучку до фиксированной точки, легче кучу всяких DSP-шных экспериментов провести, чем в HDL-ных громоздких тулзах, графики всякие, спектры, созвездия смотреть. Хочу попробовать сделать следующий проект полностью в симулинке.

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


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

Ну первый раз очевидно долго будет, непонятно как вообще писать, постоянно кучу экспериментов, нарисовал, скомпилировал, посмотрел HDL. Но потом веселее должно пойти?

Первый раз всяко сложно, но там философию надо менять (может поменяли уже в последнем симулинке). Больше всего мне не нравилось по умолчанию saturate on integer overflow и желание матлаба всю фиксированную точку делать по своим правилам. в RTL это не зачем, там разрядность заранее считается нужная, остальное обрезает сам синтезатор.

Идея-то привлекательная, всё в одном симулинке делать, постепенно конкретизируя плавучку до фиксированной точки, легче кучу всяких DSP-шных экспериментов провести, чем в HDL-ных громоздких тулзах, графики всякие, спектры, созвездия смотреть. Хочу попробовать сделать следующий проект полностью в симулинке.

Результат будет интересен. Я остановился на ко-симуляции, параллельно пускаю RTL и идеалку, выровненную до такта, смотрю что хочу и как хочу, подменяю блоки, смотрю результат и т.д. :)

 

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


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

des00

На декодер витерби мне уже поступил заказ от модемщиков. ) Имеет ли смысл его через matlab HDL кодер делать, или ручками? Ко-симуляцию не пробовал, только читал, что такая штука имеет место быть. Есть какой-нибудь getting started по этой теме?

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


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

На декодер витерби мне уже поступил заказ от модемщиков. ) Имеет ли смысл его через matlab HDL кодер делать, или ручками?

Турбо рулит ;) А вообще в матлабе начиная с 2012 го, есть блок в симулинке HDL Viterby Coder/Decoder - это генератор кода, написанного человеком (видно по стилю) и оптимизированный под ПЛИС. Настроек для генерации прилично, в том числе на чем делать Traceback: память или регистры.

Ко-симуляцию не пробовал, только читал, что такая штука имеет место быть. Есть какой-нибудь getting started по этой теме?

я сам начинал с советов уважаемого MKS

 

ЗЫ. Есть еще в либе HDL Reed Solomon Coder/Decoder. Вот LDPC/Turbo пока не видел:)

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


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

Первый раз всяко сложно, но там философию надо менять (может поменяли уже в последнем симулинке). Больше всего мне не нравилось по умолчанию saturate on integer overflow и желание матлаба всю фиксированную точку делать по своим правилам. в RTL это не зачем, там разрядность заранее считается нужная, остальное обрезает сам синтезатор.

 

Я как раз не заметил особых ограничений для получения того же результата, что и при кодировании ручками, разрядность элементарных комбинационных схем контролируется, enable входы D-триггеров контролируются, HDL-код получается более-менее читаемым.

 

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


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

Если говорить за матлаб, в свое время тестировал, методом анализа генерируемого кода получал соответствие ручному кодированию 5-10% по ресурсу и времянке. Но усилий затратил столько, что руками быстрее бы все написал. Вполне возможно что плавучкой все будет веселее, пока руки не дошли до этого.

хлс он пониже уровнем будет - с матлабом не связывался

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


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

Я как раз не заметил особых ограничений для получения того же результата, что и при кодировании ручками, разрядность элементарных комбинационных схем контролируется, enable входы D-триггеров контролируются, HDL-код получается более-менее читаемым.

Ну вот например взял я ресаплер фарроу 3 го порядка из вашей модели. Оптимзировал его ручками, наставил триггеров, начал переводить в фиксированную точку. И началось :

1. Разрядности коэффициентов : нужно ткнуться на каждый gain и прописать разрядность коэффициентов.

2. При сложении матлаб автоматом накидывает 1 бит в разрядность и вываливается из оптимальной разрядности умножителей. Тут начинаются танцы с тыканием в каждый сумматор меняя его параметры (параметры группы заменить нельзя).

3. В каждом гейне, нужно отключить saturation (для группы этого сделать нельзя), иначе тактовая упадет сильно.

 

В итоге, взяв готовый, отлаженный блок, оказалось проще сделать рядом такой же с нуля, по образцу, но уже с учетом всех шурушков дальнейшего пути в ПЛИС.

 

хлс он пониже уровнем будет - с матлабом не связывался

не уверен, очень много алгоритмов на сях катается :)

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


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

Работаю с матлабовскими HDL-coder, Stateflow, Xilinx System Generator -проекты в железе работают на частотах больше 400 МГц (Virtex7). Громадные проекты(30-80% ресурсов Virtex7), отлаживать одному (особенно, когда раз в неделю получаешь новые указания, на доработки) просто нереально без матлаба. Когда компиляция в железе(Xilinx ISE) уже готового кода занимает более суток, цена каждой ошибки очень высока по времени(и нервам).

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


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

в точку. делал фильтры, ресамплеры на фарроу, эквалайзер, декодер витерби, рида-соломона.

 

Причем был забавный момент : не мог понять почему альтеровский декодер витерби весит 500 плиток, а матлабовский где то 1500 - 2000, расковырял код обоих и выяснил что альтеровский читерил (не искал состояние с минимальной метрикой), а матлабовский делал честно. Когда в альтеровском поставил работать честно, то получил сравнимый результат :)

Разве Альтеровский витерби не закрыт для чужих глаз?

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


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

Разве Альтеровский витерби не закрыт для чужих глаз?

Не всегда. Кстати код там более менее нормальный. в отличии их же Рида Соломона (когда увидел этот код, сел и свой за пару месяцев написал. выиграл и по ресурсу и по тактовой) :)

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


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

Работаю с матлабовскими HDL-coder

Можете уточнить. Вы используете его для генерации описания из м-языка или в симулинке? Если второе, то вы используете макроблоки (например FIR фильтры) или самописные на уровне сумматоров, умножителей, гейнов и т.д. И если самописные, как вы их конвейеризируете под целевую архитектуру? Про систем генератор понятно, интересует именно HDL-coder и 400МГц распределенной арифметики (не на ДСП слайсах). Спасибо.

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


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

HDL-coder использую совместно со Stateflow -для генерации кода,в Stateflow делаю блоки управления (они тактируются частотами не более 100 МГц). Все высокочастотные блоки беру из Xilinx System Generator.

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


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

Прошлым летом прошел курс в Инлайне по HLS - действительно перспективный инструмент, но, очень мало документации и примеров использования. на мой взгляд, он больше подойдет для задач, где требуется реализовать хоть как то прототип, без привязки к качественному быстродействия, но это все пока что. Определенно продукт развивается, и что будет через год - никому не известно. Для DSP, все таки лучше MATLAB... Хотя видел проект, как биофизики ускоряли на FPGA модель взаимодействия молекул в клетках, и у них неплохо это получилось.

 

 

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


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

Прошлым летом прошел курс в Инлайне по HLS - действительно перспективный инструмент, но, очень мало документации и примеров использования. на мой взгляд, он больше подойдет для задач, где требуется реализовать хоть как то прототип, без привязки к качественному быстродействия, но это все пока что. Определенно продукт развивается, и что будет через год - никому не известно. Для DSP, все таки лучше MATLAB... Хотя видел проект, как биофизики ускоряли на FPGA модель взаимодействия молекул в клетках, и у них неплохо это получилось.

 

Год назад тоже были на этих курсах. Поддерживаю.

Пересаживаться с SystemGenerator на HLS как-то лениво. И в отсутствие хороших жизненных примеров, а не искуственных типа простейшего FIR и записи/чтения - не очень хочется.

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


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

Пересаживаться с SystemGenerator на HLS как-то лениво. И в отсутствие хороших жизненных примеров, а не искусственных типа простейшего FIR и записи/чтения - не очень хочется.

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

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


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

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

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

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

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

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

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

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

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

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