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

Можно взять Simulink и вставить как блок-модули вашу логику а место где деление - вставить как Verilog файл. Помниться мы так делали когда нас не устраивали ньюансы laughing.gif правда много вставлять Verilog-а не получалось - жаба падала, но в ключевых моментах это нам помогло.

Ну это костыли еще посуровее будут, получается надо препарировать модель в местах деления пополам, такое зверство над моделью :maniac: Безусловно, мне как начинающему будет полезно поманьячить лишний раз, но для чего-то серьезного надо бы уходить от подобной практики.

 

Послушать отзывы так попытки использования MATLAB для мало-мальски эффективной HDL-генерации пока что есть утопия и лучше сразу писать в HDL. А так радужно это дело мне описывали, мол, написал функцию - она сразу так красиво сама в код заделалась и хоть сразу компиль и зашивай в ПЛИСину или разводи в ASIC, только настройки успевай выставлять. А оказалось что эта система даже об элементарную арифметику уже спотыкается =_=

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


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

Послушать отзывы так попытки использования MATLAB для мало-мальски эффективной HDL-генерации пока что есть утопия и лучше сразу писать в HDL. А так радужно это дело мне описывали, мол, написал функцию - она сразу так красиво сама в код заделалась и хоть сразу компиль и зашивай в ПЛИСину или разводи в ASIC, только настройки успевай выставлять. А оказалось что эта система даже об элементарную арифметику уже спотыкается =_=

обратитесь в саппорт матлаба (или на сайт), там чел есть вменяемый по этому делу. Как он мне намекнул, "просто вы не умеете готовить".

 

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


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

Да уж, ничего больше не остается - пытать саппорт только. Нюансов может быть еще море и стаканчик, жаль только что далеко не все освещены в стандартном матлабовском хелпе :smile3046:

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


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

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

Советую посмотреть в сторону synopsys synphony model compiler (это бывший synplify dsp). Примерный эквивалент xilinx system generator или altera dsp builder, но без привязки к конкретному вендору.

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


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

Советую посмотреть в сторону synopsys synphony model compiler (это бывший synplify dsp). Примерный эквивалент xilinx system generator или altera dsp builder, но без привязки к конкретному вендору.

хмм, а они уже довели свой инструмент до ума ? он появился года 2 назад, но как то тишина была с тех пор.

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


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

хмм, а они уже довели свой инструмент до ума ? он появился года 2 назад, но как то тишина была с тех пор.

Да вроде работает. Моделирует, генерит hdl, который потом синтезирует синплифай. Даже с-модели делает. Вопрос в том, подойдет ли он для Ваших задач. Вот здесь я писал, как можно взять поиграться: http://electronix.ru/forum/index.php?showtopic=104839

ps вообще-то synplify dsp появился лет 7-8 назад, так что время отладить немножко было.

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


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

Попробую повыступать в защиту HDL Code Generation в Simulink и использования его для проектирования ПЛИС. Здесь пишу скорее не топикстартеру, а людям, начавшим обсуждать Simulink HDL Coder

Послушать отзывы так попытки использования MATLAB для мало-мальски эффективной HDL-генерации пока что есть утопия и лучше сразу писать в HDL. А так радужно это дело мне описывали, мол, написал функцию - она сразу так красиво сама в код заделалась и хоть сразу компиль и зашивай в ПЛИСину или разводи в ASIC, только настройки успевай выставлять. А оказалось что эта система даже об элементарную арифметику уже спотыкается =_=

Вот вообще с Вами не согласен. Никакой утопии нет, нужно просто "уметь готовить". Уже лет 5 наверное использую HDL Coder для Simulink'а для разработки проектов ПЛИС (об этом несколько раз писал на форуме, правда не в этом разделе). Именно нативный, без всяких вендорных фишек типа System Generator или DSP Builder (хотя если речь идет о серьезном ЦОС, то лучше конечно использовать их для получения максимального быстродействия в кристалле)

 

Ну т.е. что кроме фильтров вы генерировали с матлаба, использовали симулинк или m файлы, какое по вашему качество реализации получилось ? Интересует не столько Xilinx/Altera DSP Builder, а чистый нативный HDL кодер.

Да много чего генерировал, полноценные большие проекты делал в Симулинке, потом выход на VHDL/Verilog. Качество реализации зависит от степени приложения мозгов в проектировании. Если рассматривать это средство как инструмент для домохозяек и "бездумно" делать модель, то и код будет соответствующий. В случае же когда при проектировании есть понимание во что в ПЛИС превратится та или иная конструкция в модели, то все получается нормально. Да, возможно найдутся случаи, когда руками получится оптимальнее (площадь, время, ...) но у меня такого пожалуй не было. Да и не этим (не только этим) ценен для меня такой метод проектирования. Чтобы не повторяться можно почитать вот тут немного.

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


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

Ну это костыли еще посуровее будут, получается надо препарировать модель в местах деления пополам, такое зверство над моделью :maniac: Безусловно, мне как начинающему будет полезно поманьячить лишний раз, но для чего-то серьезного надо бы уходить от подобной практики.

На счёт препарирования - из того что видел, такая метода позволяет существенно сократить время на разработку когда нарисовался какой то глюк через криворукость кодера или свою (или скорость не дотягивает), времени разбираться нет потому что нужно на "позавчера" и оно всё работает. Просто, как было сказано, нужно иметь представление о вн. структуре алгоритма, тогда такие "препарации" будут не очень болезненными, ну или представлять как оно может быть приблизительно реализовано на камне - тогда ещё проще :laughing:

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


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

Да много чего генерировал....

Спасибо за развернутый ответ, сгонял на конференцию, пообщался, посмотрел как люди работают, был несколько шокирован возможностями. В общем да, его нужно уметь готовить. Щас сижу изучаю синтез Digital Filter, блин, он даже оптимизирует csd умножители почти как человек. В планах собрать простой демодулятор и проверить ресурс, сравнить со своими наработками.

 

Один большой минус, цена.....

 

PS. Проверил валидацию задержек, на примере простых Digital Filter, теперь понятно как сделать cycle-accurate модель. Извините за глупые вопросы в начале %)

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


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

...сгонял на конференцию....

А есть какие-нить материалы в электронном виде ?

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


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

А есть какие-нить материалы в электронном виде ?

там не раздавали ничего электронного, была запись на камеру, но по словам организаторов это было для внутреннего использования. Упоминали что-то вроде что вышлют по запросу, но как то мутно %)

да и было это похоже не на конференцию, а на практические занятия

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


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

Хочу написать, как пользователь Xilinx System Generator, сравнение с HDL Coder.

Работаю на нем уже 5 лет. В нем полностью без VHDL сделана real-time model управления 3-х-фазным IGBT инвертором со всей защитой, автоматикой и векторным управлением. Все крутится на Spartan-3. За все время - глюков было очень мало.

Сейчас хотим еще больше начать использовать Матлаб и они нас уламывают использовать ихнюю автоматическую генерацию кода - так как мы используем и процессоры и ПЛИС для управления системами. Но пообщавшись с ними (а моя фирма - key account для Mathworks) пока остановились только на Real-time Embedded coder для процессоров - тут спору нет - хорошая штука и генерит код то, что надо.

Но по HDL Coderу очень много вопросов.

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

Кстати насчет латентности

Мне интересен натурный HDL кодер. На демонстрации которую матлабовцы показывали по россии, конвейеризация m файлов выглядела так, вместо a = b написали a1 = b, a = a1 (без каких либо квалификаторов и тегов) и получили прирост тактовой в ~5 раз, за счет конвейризации и увеличения латентности на 1 такт. При этом для моделирования этого m файла в матлабе, это "пустые" операции и задержки не будет. Т.е. модель и железо тут разошлись.

Это и есть фишка HDL Coderа. Но в этом скорей всего и его проблема. В XSG все четко - латентность программист сам задает для каждого блока и она моделируется. Если заданы нереальные значения (куча логики без регистров), то железо просто не разведется или будут огромные варнинги. Но если все развелось - то работать будет четко, как и модель. Если не развелось, то можно увидеть критичиские пути, но гонку сигналов каждый должен моделировать сам. Так что такой гибкости, как в HDL coder - там нет.

 

 

Во-вторых HDL Coder не будет работать со специфичискими ресурсами, типа DSP48, а все будет делать из логики.

С другой стороны - можно использовать нативный Stateflow для автоматов - нас это очень привлекает.

Третья - пока основная проблема - HDL Coder в отличии от XSG не поддерживает работу в составе System-on-Chip - то есть если сгенерированый код будет частью большого проекта с софтпроцессором, который должен иметь возможность обмениваться данными с матлабовской системой. Фактически такого механизма нет вообще. А он однозначно нужен для параметризации и т.д. В XSG все аккуратно сделано через двухпортовую память и шину данных с драйверами и всем-всем.

 

Ну и в последнюю очередь - цена. За HDL Coder + FPT + еще что-то из тулбоксов надо отдать 15k€. А к нему все равно ISE нужен. А если посчитать чистую стоимость XSG - получается в районе 900$.

В итоге мы пока остаемся на XSG. Кстати у меня Матлаббер уже умудрился PCIе корку в XSG дизайн всунуть, и как ни странно - она работает.

 

А есть какие-нить материалы в электронном виде ?

У меня есть презентация HDL Coder - могу выложить на ФТП

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


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

Хочу написать, как пользователь Xilinx System Generator, сравнение с HDL Coder.

Работаю на нем уже 5 лет. В нем полностью без VHDL сделана real-time model управления 3-х-фазным IGBT инвертором со всей защитой, автоматикой и векторным управлением. Все крутится на Spartan-3. За все время - глюков было очень мало.

Сейчас хотим еще больше начать использовать Матлаб и они нас уламывают использовать ихнюю автоматическую генерацию кода - так как мы используем и процессоры и ПЛИС для управления системами. Но пообщавшись с ними (а моя фирма - key account для Mathworks) пока остановились только на Real-time Embedded coder для процессоров - тут спору нет - хорошая штука и генерит код то, что надо.

Но по HDL Coderу очень много вопросов.

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

Кстати насчет латентности

 

Это и есть фишка HDL Coderа. Но в этом скорей всего и его проблема. В XSG все четко - латентность программист сам задает для каждого блока и она моделируется. Если заданы нереальные значения (куча логики без регистров), то железо просто не разведется или будут огромные варнинги. Но если все развелось - то работать будет четко, как и модель. Если не развелось, то можно увидеть критичиские пути, но гонку сигналов каждый должен моделировать сам. Так что такой гибкости, как в HDL coder - там нет.

 

 

Во-вторых HDL Coder не будет работать со специфичискими ресурсами, типа DSP48, а все будет делать из логики.

С другой стороны - можно использовать нативный Stateflow для автоматов - нас это очень привлекает.

Третья - пока основная проблема - HDL Coder в отличии от XSG не поддерживает работу в составе System-on-Chip - то есть если сгенерированый код будет частью большого проекта с софтпроцессором, который должен иметь возможность обмениваться данными с матлабовской системой. Фактически такого механизма нет вообще. А он однозначно нужен для параметризации и т.д. В XSG все аккуратно сделано через двухпортовую память и шину данных с драйверами и всем-всем.

 

Ну и в последнюю очередь - цена. За HDL Coder + FPT + еще что-то из тулбоксов надо отдать 15k€. А к нему все равно ISE нужен. А если посчитать чистую стоимость XSG - получается в районе 900$.

В итоге мы пока остаемся на XSG. Кстати у меня Матлаббер уже умудрился PCIе корку в XSG дизайн всунуть, и как ни странно - она работает.

 

 

У меня есть презентация HDL Coder - могу выложить на ФТП

Очень хотел бы увидеть презентацию. я общался с этим толковым человеком с софтлайна, и он мне около часа затирал как прекрасно матлаб генерит код любой сложности причем и HDL и C, просто никто не умеет правильно галочки расставлять в настройках. Хотелось бы узнать как же правильно их расставлять)

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


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

Мы перевели разработку модема на рельсы модельно-ориентированного проектирования (Simulink, Matlab).

В железе еще не проверяли, но по тактовым, эффективности и т.п. соизмеримо с ручным кодированием. По эффективности вылавливания глюков и по качеству системного уровня альтернативы не вижу.

 

Если по HDL-кодеру еще есть вопросы, то, например, Си-код генерируется совершенно замечательно.

 

Такой подход особенно полезен тем, кому надо будет проходить сертификацию по DO или КТ.

 

Да и Матлаб со своими генераторами уже не тот, что был даже еще год назад.

 

 

Насчет качества HDL и Си кода. Стало понятно, что необходимо хорошо разобраться что и как делает Матлаб из вашей модели. Все сам и красиво по волшебному нажатию кнопки он, конечно, не сделает.

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


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

Мы перевели разработку модема на рельсы модельно-ориентированного проектирования (Simulink, Matlab).

 

 

Как осуществляется разворот сложной комбинационной схемы в последовательные вычисления во времени? Автоматически с генерацией управляющей логики и автоматов, c указанием на сколько тактов разбить вычисления?

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


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

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

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

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

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

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

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

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

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