des00 25 30 октября, 2012 Опубликовано 30 октября, 2012 · Жалоба Как осуществляется разворот сложной комбинационной схемы в последовательные вычисления во времени? Автоматически с генерацией управляющей логики и автоматов, c указанием на сколько тактов разбить вычисления? ЕМНИП там есть параметры Sharing Factor, Streaming Factor, Pipelining они определяеют уровень конвейризации, уровень многотактовости и зашаривание модуля между разными операциями. У меня в планах тоже полноценный модем сделать, точнее всю дспешную часть %) скоро начну копать Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
petrov 7 30 октября, 2012 Опубликовано 30 октября, 2012 · Жалоба У меня в планах тоже полноценный модем сделать, точнее всю дспешную часть %) скоро начну копать Отпишите пожалуйста в чём там соль, пока непонятно. Взять например FFT, в симулинке это просто большая комбинационная схема, что за искусственный интеллект автоматически разобьёт это на оптимальное количество последовательных бабочек и блоков памяти. Если всё это вручную детально рисовать в симулинке, то в чём отличие от разработки цифровой схемы в схематике? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x736C 0 30 октября, 2012 Опубликовано 30 октября, 2012 (изменено) · Жалоба Если всё это вручную детально рисовать в симулинке, то в чём отличие от разработки цифровой схемы в схематике? Исключительно правильный вопрос. По большей части проектирование в Simulink, при условии, что Вы опускаетесь на "вентильный" уровень мало чем отличается от схематика. Я бы даже сказал, что это своего рода возврат обратно к методу схематичного проектирования. И тем не менее. 1. Появляется вся мощь матлаба с точки зрения окружения, моделирования физических процессов, эквивалентных трасс, каналов, и всего многообразия методов и средств моделирования. Нечто похожее пришлось бы творить на си и интегрировать через PLI и т. п. Или я чего-то не знаю. Например, у Вас готов модем, но нет помехозащиты, необходимой для проверки или предполагаемой в будущем. Цепляете ее и всё. Даже не перечислишь всех достоинств. Матлаб он и есть матлаб. 2. Появляется возможность избежать двойной работы, ибо моделирование Вы, насколько я понимаю, все равно проводите в матлабе. Например, изменили модель, лезем искать в код, меняем код. Потом еще подправили модель, что-то в ней уточнили, переписываем значительный участок кода. Работа x2. 3. Приобретаем возможность трассировать требования на Вашу модель. 4. Если требуется сертификация по разным авиационным стандартам (KT, DO), то с инструментами матлаба пройти сертификацию будет легче. Имеется в виду генерация отчетов, трассировка требований к модели и обратно, кодогенератор, не требующий сертификации (только квалификация). Могу ошибаться, но и код, созданный кодогенератором не требует сертификации (только сама модель). 5. Наконец, никто Вам не мешает тонкие вещи вынести в чистый hdl и подключить тонко настроенный и отлаженный модуль к своей модели. При этом сохранятся все достоинства модельно-ориентированного проектирования, о которых сказал выше. Более того, интерфейсные ядра, процессоры и т.п. имхо должны проектироваться так, как и проектируются. В Симулинк лучше выносить обработку сигналов. Это очевидные вещи выше кто-то уже писал. Мы только встали на этот путь ~три месяца назад, но уже готовы значительные части демодулятора, закончен модулятор. В железе проверим, тогда будет понятно. Изменено 30 октября, 2012 пользователем x736C Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 30 октября, 2012 Опубликовано 30 октября, 2012 · Жалоба Отпишите пожалуйста в чём там соль, пока непонятно. Взять например FFT, в симулинке это просто большая комбинационная схема, что за искусственный интеллект автоматически разобьёт это на оптимальное количество последовательных бабочек и блоков памяти. Если всё это вручную детально рисовать в симулинке, то в чём отличие от разработки цифровой схемы в схематике? Пока я крутил только 2 вещи : Digital Filter и Viterbi Decoder. Могу ответить за них : 1. Когда крутил Digital Filter, поставил ему реализацию на цепи сумматоров (вроде инверсная реализация называется) и использование константных умножителей. Когда полез смотреть код, то увидел вполне читаемый код, в котором регистры были на своем месте, логика на своем. При этом производиться реализация умножения на битовом уровне (в столбик) и оптимизация умножения на константы (например вместо умножения на 7, он делает сдвиг на 3 и -1). При этом в параметрах генерации этого фильтра есть настройки : конвейризация входа/выхода/логики. Когда конвейризируем вход/выход он добавляет туда регистры, когда логику, он, ЕМНИП вставляет регистры в умножители, дробя на равномерные слайсы. Если же этот фильтр поставить в систему и задействовать Sharing Factor, задав например что тактовая в 2 раза выше символьной, то он начнет делать многотактный фильтр, если Streaming Factor, то начнет на вход одного филтьра мультиплексировать 2 разных потока (канала). Задержку же фильтра можно учесть в модели, сделав что-то вроде back annotation, который сам генерит фильтр и добавляет нужное кол-во регистров. 2. Когда крутил Viterbi Decoder, то сначала крутил demos в 2007, он там сделан на рассыпухе и на m файлах. В этих демках все в ручную : нужна конвейризация - ставим ручками регистр. Но большой плюс, что в матлабе размерность и типы данных могут быть легко изменены, что в витерби, с его обработкой массивов сплошь и рядом. Сравнивал его с параметрами Altera Viterbi Decoder. Корректного сравнения не получилось, т.к. в моделях реализован Register Traceback, а у Altera RAM Traceback. Но в 2012b есть компонент Viterbi Decoder HDL optimized. Когда я взял его и собрал, то он оказался по ресурсу меньше альтеровского, при этом выдает нормальный читаемый код, сам подбирает разрядности и т.д. и т.п. На этом отложил изучение. Не до конца понял как он делает многотактную обработку и какие handshake использует. Обработку по clockenable не проверял, т.к. не всегда есть возможность делать clockenable дерево, а хотелось бы пропустить его через цепочку регистров. Но код после него, абсолютно читаемый, иерархия сохраняется. Можно загнать в симулятор и посмотреть что к чему. ЗЫ. Открытие для меня было в 2012б наличие demos где показан синтез HDL кода с использованием multicycle paths. Как бы где матлаб, а где плисоводная времянка ...... %) ЗЗЫ. Много примеров по генерации сделано на m языке, что у меня привело к ощущению того, что mathworks просто с xilinx/altera не договорились в свое время, плюнули на их нежелание делать высокоуровневый синтез, набрали хорошую команду и сделали свой синтезатор. Как говорилось в одном старом фильме "Чувствуется рука создателя", когда смотришь на сгенерированный код %)) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
petrov 7 30 октября, 2012 Опубликовано 30 октября, 2012 · Жалоба Пока я крутил только 2 вещи : Digital Filter и Viterbi Decoder. Могу ответить за них : Т. е. это просто корки параметризируемые которые можно к симулинк модели подключить? Меня интересует разработка произвольной сложной цифровой схемы, которая ни в какие корки не вписывается, есть ли там нечто, что позволяет уйти от написания ручками RTL или это будет тот же схематик вид сбоку? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 30 октября, 2012 Опубликовано 30 октября, 2012 · Жалоба Т. е. это просто корки параметризируемые которые можно к симулинк модели подключить? Меня интересует разработка произвольной сложной цифровой схемы, которая ни в какие корки не вписывается, есть ли там нечто, что позволяет уйти от написания ручками RTL или это будет тот же схематик вид сбоку? хмм, толи я объясняю не так, то ли одно из двух. найдите файл ..\toolbox\hdlcoder\hdlcoderdemos\hdlcoderviterbi.mdl в 2007а он точно был, вот это дает синтезируемый рабочий вариант. по вашему это достаточно произвольная сложная цифровая схема? а вот краткий список того что есть синтезируемого в демках 2012б AES.mdl dct8_fixed.mdl hdlArcCosine.mdl hdlArcCosineSetting.m hdlArcSine.mdl hdlArcSineSetting.m hdlCartesian2Polar.mdl hdlcodercfir.mdl hdlcodercpu.mdl hdlcoderfdtd.mdl hdlcoderfft.mdl hdlcoderfftdit.mdl hdlcoderfirram.mdl hdlcodergcd.mdl hdlcoderlms.mdl hdlcodermimo.mdl hdlcoderramrom.m hdlcoderrecon.mdl hdlcoderrecon2.mdl hdlcoderrecon2_m.m hdlcoderreconcmds.m hdlcoderrecon_m.m hdlcoderrom.slx hdlcodervectorlms.mdl hdlcoderviterbi.mdl hdlcoderviterbi2.mdl hdlcoder_aes.m hdlcoder_agc.mdl hdlcoder_audiofiltering.mdl hdlcoder_bitops_eml.mdl hdlcoder_byte2tuple_eml.mdl hdlcoder_clockdemo.mdl hdlcoder_counters_eml.mdl hdlcoder_delays_eml.mdl hdlcoder_delay_balancing.m hdlcoder_distributed_pipelining.m hdlcoder_dspddc.mdl hdlcoder_edalinks_cosimulation.m hdlcoder_eml_design_patterns.m hdlcoder_fft32_eml.mdl hdlcoder_fsm_eml.mdl hdlcoder_int2bits_eml.mdl hdlcoder_multiclock.m hdlcoder_nibbleswap_eml.mdl hdlcoder_ofdm_fft.mdl hdlcoder_ofdm_fft_eml.mdl hdlcoder_ofdm_fft_eml_m.m hdlcoder_ofdm_fft_m.m hdlcoder_saturate_eml.mdl hdlcoder_serial_fft_butterfly.m hdlcoder_sharing_optimization.m hdlcoder_slsysgen.slx hdlcoder_slsysgen_preload.m hdlcoder_slsysgen_stop.m hdlcoder_sobel_serial_eml.mdl hdlcoder_streaming_optimization.m hdlcoder_system_generator_subsystem.m hdlcoder_vectorized_lms_eml.mdl hdlcordic_eml.mdl hdledascripts.m hdlfirtdecim_multicycle.mdl hdl_areaopt1.mdl hdl_cosim_demo1.mdl hdl_cosim_demo2.mdl hdl_cosim_demo3.mdl hdl_cosim_demo4.mdl hdl_delaybalancing.mdl mcombo.mdl mpipe_multchain.mdl sfir_fixed.mdl sfir_fixed_pipe1.m sfir_fixed_pipe2.m Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Mogwaika 0 1 ноября, 2012 Опубликовано 1 ноября, 2012 · Жалоба У меня есть презентация HDL Coder - могу выложить на ФТП Презентации-то они прислали, да не все, про ФАР там что-то было, я пока не разглядел где, что-то там слишком компактно всё скомпилилось. Девушка из саппорта сказала что уточнит, могут ли выслать коды, пока тишина. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
amelyutin9 0 19 июля, 2013 Опубликовано 19 июля, 2013 · Жалоба Кто-нибудь использовал Матлаб или Симулинк для реализации кодеров и декодеров на ПЛИС (интересуют коды Рида-Соломона, БЧХ, LDPC, Турбо коды) с соответствующим преобразованием в vhdl-код? Какие результаты получились? Или все же сразу на vhdl вести разработку предпочтительней? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DASM 0 22 июля, 2013 Опубликовано 22 июля, 2013 · Жалоба Надо будет попробовать, но после того как мне Матлаб сделал файл синтезируемый на 15000 строк с чем -то (всего лишь перемножение 8х8 char матриц (A*K*A') - , так-то он пишет простой и короткий код, но 512 умножителей я пожалел (да и нет столько) и попросил сделать reuse на 16 - вот тут он долго думал, загрузил как ни странно оба ядра минут на 10, и явно ОЗУ хочет больше) - так вот после этого я задумался - а стоит ли это писать ручками, и возможно ли ? В сгенерированном коде вроде ничего лишнего, сплошной loop unroll - ну так не писать его ручками же. Как-то интересно даже - как раньше то писали. Видмо поэтому ПЛИСоводы - буддисты по натуре, пока эта САПР разводит можно думать о смысле всего насущного до посинения. И чего так - непойму.. Собрать ядро Линукса намного быстрее - а файлов и прочего там поболее. Кто объяснит - чего эти среды такие задумчивые ? ЗЫ - для Соломона лучше имхо вообще IP готовый взять. А еще на тему Рида-Соломона ругался с ФПГАшниками нашими, у нас скорость небольшая, но высокая избыточность, в итоге определение синдрома и восстановление чисто неоптимзированным софтом на DM3730 ( ARM не помню какой) - занимает 1/50 от длительности всего кадра, который надо восстановить (кадр - 255*64 байт, 16 килобайт, из них я могу 63 пакета по 64 байта потерять - восстановим). У них это сожрало 2/3 ПЛИС тысячедолларовой (в переводе на Альтеру - 30 LE). Хотя сами виноваты - взяли скоростную корку - вот и хана ресурсам, а без исходников то как reuse сделаешь Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
amelyutin9 0 22 июля, 2013 Опубликовано 22 июля, 2013 (изменено) · Жалоба Быстро пришлось отказаться от использования мегафункции ввиду ее закрытой архитектуры. В итоге разобрался с теорией и реализовал свой декодер RS и БЧХ на vhdl. По ресурсам значительно выиграл т.к. делал последовательную обработку синдромов на одном решателе ключевого уравнения. Но этот подход потребовал много времени. Интересно попробовать матлаб для этих целей. Особенно если взяться за реализацию LDPC на плис. Изменено 22 июля, 2013 пользователем Gold777 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DASM 0 22 июля, 2013 Опубликовано 22 июля, 2013 · Жалоба Много времени в смысле на разработку ? Кстати по верификации полученного кода. У меня в Моделсиме тесты проходят только если я не делаю loop unroll. Надо ставить в настройках генератора тесбенча oversampling ? Все равно не вышло. Разбираюсь. И еще он у меня ставит везде timescale 1 ns/1ns - это разве нормально ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
amelyutin9 0 23 июля, 2013 Опубликовано 23 июля, 2013 (изменено) · Жалоба Написание своих блоков декодирования потребовало гораздо больше времени, чем использование в проекте готовых ip модулей. Что такое loop unroll? Кто-нибудь пробовал считывать бинарный файл в симулинке, подать например на кодер и записать полученный результат в файл? Или это только в матлабе можно? Изменено 23 июля, 2013 пользователем Gold777 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DASM 0 23 июля, 2013 Опубликовано 23 июля, 2013 · Жалоба Развертывание циклов. Которые он сам и генерит. Ну если не сталкивались то и ладно Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Mogwaika 0 14 октября, 2013 Опубликовано 14 октября, 2013 · Жалоба Кто-нибудь использовал Матлаб или Симулинк для реализации кодеров и декодеров на ПЛИС (интересуют коды Рида-Соломона, БЧХ, LDPC, Турбо коды) с соответствующим преобразованием в vhdl-код? Какие результаты получились? Или все же сразу на vhdl вести разработку предпочтительней? Пытался делать генерацию hdl с помощью Accel DSP от Xilinx, ничего хорошего не вышло, да и сами они потом этот пакет закрыли. Сейчас использую следующий алгоритм: - разработка кодека в матлабе - в симулинке - симулинк с Xilinx coregenerator - Verilog Матлаб очень хорош для отладки. Сейчас думаю ещё приспособить hardware co-simulation для этого... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
foxer 0 16 октября, 2013 Опубликовано 16 октября, 2013 · Жалоба В качестве обзорной информации по генерации HDL из MATLAB, можно посмотреть вебинар https://www.mathworks.com/company/events/we.../wbnr75811.html (нужна регистрация на сайте mathworks). по верификации непосредственно на ПЛИС есть видео на YOUTUBE https://www.youtube.com/watch?v=kce6Y7oqPqI...Xt&index=34 Если есть желание попробовать эту технологию в качестве инструмента для компании в которой работаете, я бы рекомендовал обратится на http://sl-matlab.ru/ или пишите мне dmitryточка[email protected] (пишите пожалуйста только если есть желание внедрения технологии на предприятии, на вопросы типа я решил попробовать для себя но не получается, лучше пишите на форуме, может отвечу :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться