реклама на сайте
подробности

 
 
> Как можно оптимизировать код?
keeka
сообщение Oct 13 2011, 19:45
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 15
Регистрация: 15-12-10
Из: Москва
Пользователь №: 61 640



Добрый день, народ.

Закончил свою первую работу - модулятор ЧМ2.
Код написан на VHDL.
Подскажите, пожалуйста, что можно было сделать лучше, оптимальней, чтобы лучше работало. Чувствую, что сделал все очень корявоsm.gif
на вход clk подается clock, на вход reset - информационные биты. Все в формате boolean. Ну и выход в формате integer.

Прикрепленный файл  fsk_modulator.vhd ( 1.21 килобайт ) Кол-во скачиваний: 237
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
syoma
сообщение Oct 19 2011, 07:41
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 817
Регистрация: 14-02-07
Из: наших, которые работают за бугром
Пользователь №: 25 368



Цитата
Хотя есть одно НО - сгенеренный код не оптимален (не знаю как сейчас - учитываются ли особенности архитектуры) и при жестких требованиях площадь/частота все равно потребуется его править руками.

Возможно код не оптимален, но MATLAB дает несколько неоспоримых преемуществ.
1. Разработчику алгоритмов не нужно уметь программировать в VHDL вообще - то есть он может отладить алноритм вплоть до таймингов и синхронизации не лезя в код.
2. Отлаженный в МАТЛАБе код 100% работает в железе. (Относится к System Generator)
3. При моделировании разработчику доступен весь спектр тулбоксов Матлаба. Например мы используем Simpowersystems для моделирования электроники инверторов, с помощью симулинка отлаживаем алгоритмы контроллеров, а потом с помощью System Generator моделируем те же алгоритмы, но у же с учетом особенностей ПЛИС(задержки и ограничения чисел с фиксированной запятой) и затем тупо компилируем эти же алгоритмы в конечный битстрим. И все работает
И четвертое - как минимум в 4 раза сокращается время разработки. Вот презентация еще 2005г.
http://www.google.de/url?sa=t&source=w...o0FIeUnLmv9OpZg
У нас уже 4-х летний опыт работы на Xilinx DSP System Generator, и уже не один проект на нем сделали и все работает в индустрии.
Предыдущие утверждения справедливы для System Generator. Последние версии достаточно мощны - там тебе куча кодеров-декодеров и почти все корки представлены.
Цитата
Также часто требуется работа с внешней памятью типа ZBT SRAM, SDRAM, DDR2 SDRAM и др. - тоже матлаб в ауте.

С SDRAM работаем прямо из Матлаба. Раньше пользовались внутренней памятью и ее стало не хватать. И мы подумали - почему бы не использовать внешний неиспользуемый банк. Чувак без единой строчки кода за 3 дня подключил все к матлабу.

С Matlab Coder не работал, поэтому думаю там не все так хорошо.
Go to the top of the page
 
+Quote Post
bogaev_roman
сообщение Oct 19 2011, 12:25
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 088
Регистрация: 20-10-09
Из: Химки
Пользователь №: 53 082



Цитата(syoma @ Oct 19 2011, 11:41) *
1. Разработчику алгоритмов не нужно уметь программировать в VHDL вообще - то есть он может отладить алноритм вплоть до таймингов и синхронизации не лезя в код.

Каким образом Вы проверяете работоспособность на функциональном уровне? Только по симулинку? Тестбенчи вообще не пишете? Каким образом проверяется работоспособность с учетом всех задержек, просто не помню, чтоб симулинк позволял моделировать в формате sdf.
Цитата
2. Отлаженный в МАТЛАБе код 100% работает в железе. (Относится к System Generator)

Четыре года назад генерировал автоматически канал AWGN (матлаб2005), нетлист получился нерабочим - убил неделю, чтоб найти ошибку в нетлисте - оказалось индексы он попутал.
Цитата
3.

Особо добавить нечего, кроме того, что парнишка делал цифровой модем и таким вот автоматическим образом получил максимальную тактовую частоту 150МГц на virtex4, при этом требовалось 200. Вот эту вот модель я за неделю довел до 205МГц, при этом топовый модуль пришлось руками писать + 2 проблематичных БИХ фильтра полностью переписать вручную.
И еще: в текущей моей работе приходится отлаживать некий коммутатор, который стыкуется с процессорами по некоему интерфейсу, вот каким "макаром" мне на матлабе описать этот самый процессор. От поставщика только описание на СИ некоторых функций. При этом дело обстоит не только с "моим" процессором, таких устройств много. В тулбоксе только стандартные и наиболее распространенные устройства.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- keeka   Как можно оптимизировать код?   Oct 13 2011, 19:45
- - eugen_pcad_ru   Код не видел пока. Вопрос: фаза формируемого сигна...   Oct 14 2011, 04:44
- - andrew_b   Что это такое? Код process(clk) begin -...   Oct 14 2011, 04:51
- - keeka   ЦитатаКод не видел пока. Вопрос: фаза формируемого...   Oct 14 2011, 08:06
- - DuHast   а "rising_edge(clk)" где у Вас? В моде...   Oct 14 2011, 08:14
- - keeka   Там по rising_edge ранее запускалась команда счит...   Oct 14 2011, 08:44
|- - DuHast   У Вас сигнал clk стоит в списке чуствительности пр...   Oct 16 2011, 10:04
|- - keeka   Цитата(DuHast @ Oct 16 2011, 14:04) У Вас...   Oct 16 2011, 19:34
|- - VladimirB   Цитата(keeka @ Oct 16 2011, 23:34) Поясни...   Oct 16 2011, 20:21
|- - keeka   Цитата(VladimirB @ Oct 17 2011, 00:21) Са...   Oct 17 2011, 04:49
|- - DuHast   Цитата(keeka @ Oct 17 2011, 08:49) Хотя б...   Oct 17 2011, 11:18
|- - yes   Цитата(keeka @ Oct 17 2011, 08:49) Хотя б...   Oct 17 2011, 15:23
|- - VladimirB   Цитата(yes @ Oct 17 2011, 19:23) опасаюсь...   Oct 17 2011, 18:30
- - Koluchiy   Цитатана вход clk подается clock, на вход reset - ...   Oct 16 2011, 16:06
- - keeka   Мне на самом деле очень интересна тема автоматичес...   Oct 18 2011, 12:23
|- - bogaev_roman   Цитата(keeka @ Oct 18 2011, 16:23) Как сч...   Oct 18 2011, 13:40
|- - VladimirB   Цитата(keeka @ Oct 18 2011, 16:23) Мне на...   Oct 18 2011, 19:17
|- - des00   Цитата(VladimirB @ Oct 18 2011, 14:17) Но...   Oct 19 2011, 03:11
|- - sazh   Цитата(des00 @ Oct 19 2011, 06:11) я сдел...   Oct 19 2011, 06:50
|- - des00   Цитата(sazh @ Oct 19 2011, 01:50) Вопр...   Oct 19 2011, 17:17
- - syoma   Конечно, Матлаб не универсальная штука и все промо...   Oct 19 2011, 12:57
|- - bogaev_roman   Согласен, для ЦОС матлаб подходит очень хорошо, но...   Oct 19 2011, 13:11
- - keeka   А как вы относитесь к связке LabVIEW + PXI? Писать...   Oct 19 2011, 13:04
- - syoma   ЦитатаЧто сделать, если внести регистры не удается...   Oct 19 2011, 13:22
|- - bogaev_roman   Цитата(syoma @ Oct 19 2011, 17:22) В Матл...   Oct 19 2011, 13:44
- - syoma   Ваша логика ясна, все понятно. Но так же и понятно...   Oct 19 2011, 14:14
|- - bogaev_roman   Цитата(syoma @ Oct 19 2011, 18:14) Ваша л...   Oct 19 2011, 14:44
- - tAmega   Немного запоздал с линком, вот только что нарыл. Э...   Oct 22 2011, 05:32
|- - ys05   Цитата(tAmega @ Oct 22 2011, 09:32) Кому ...   Oct 22 2011, 07:51
- - keeka   ЦитатаНу а пока первый линк для топик стартера. С...   Oct 22 2011, 07:25
- - tAmega   Завтра выложу на рапиду и дам сюда линк.   Oct 22 2011, 09:58
- - tAmega   Вот, линк на полный конспект из трех частей со все...   Oct 23 2011, 07:48
- - keeka   Спасибо Как раз, что мне нужно)   Oct 23 2011, 10:29


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 31st July 2025 - 01:12
Рейтинг@Mail.ru


Страница сгенерированна за 0.01394 секунд с 7
ELECTRONIX ©2004-2016