|
Как можно оптимизировать код? |
|
|
|
Oct 13 2011, 19:45
|
Участник

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

|
Добрый день, народ. Закончил свою первую работу - модулятор ЧМ2. Код написан на VHDL. Подскажите, пожалуйста, что можно было сделать лучше, оптимальней, чтобы лучше работало. Чувствую, что сделал все очень коряво  на вход clk подается clock, на вход reset - информационные биты. Все в формате boolean. Ну и выход в формате integer.
fsk_modulator.vhd ( 1.21 килобайт )
Кол-во скачиваний: 237
|
|
|
|
|
 |
Ответов
|
Oct 19 2011, 13:22
|
Профессионал
    
Группа: Свой
Сообщений: 1 817
Регистрация: 14-02-07
Из: наших, которые работают за бугром
Пользователь №: 25 368

|
Цитата Что сделать, если внести регистры не удается по алгоритму? БИХ фильтр к примеру, раз речь про ЦОС. В Матлабе и так есть куча возможностей добиться оптимизации между скоростью и размерами. Например разработчик имеет выбор между полностью последовательными или параллельными реализациями, или что-то среднее. Опять же есть выбор, какие элементы ПЛИС использовать - DSP48 или лепить умножитель из логики и т.д. Память из чего BlockRAM или доморощеная. В общем выбор есть. Цитата Вот тут и требуется знание языков, архитектуры конкретной ПЛИС и возможностей САПР. А если все это знать, что еще тогда можно сделать с БИХ фильтром? Цитата А как вы относитесь к связке LabVIEW + PXI? У нас тут есть человек, который пробовал и эту связку и Altera DSP Builder. И я разговаривал с людьми, которые юзали Matlab (VHDL)Coder. И пока однозначный ответ - Xilinx System Generator по функциональности и эффективности пока всех их уделывает как минимум на голову. Многие модели, спокойно реализованные на System Generator невозможно было реализовать на DSP Builder или Coder. Преемуществом System Generator является то, что он заточен под конкретную архитектуру, и поэтому генерит не универсальный VHDL, а эффективно заточенный под конкретную FPGA. То есть использует на полную встроенные DSP48 и память, генерит корки, которые только может, организовует DCMы, как ему надо и т.д. Матлабовский кодер так полюбому не умеет.
|
|
|
|
|
Oct 19 2011, 13:44
|
Профессионал
    
Группа: Свой
Сообщений: 1 088
Регистрация: 20-10-09
Из: Химки
Пользователь №: 53 082

|
Цитата(syoma @ Oct 19 2011, 17:22)  В Матлабе и так есть куча возможностей добиться оптимизации между скоростью и размерами. Например разработчик имеет выбор между полностью последовательными или параллельными реализациями, или что-то среднее. Опять же есть выбор, какие элементы ПЛИС использовать - DSP48 или лепить умножитель из логики и т.д. Память из чего BlockRAM или доморощеная. В общем выбор есть. Выбор то есть, только увидев "непроходящую" цепочку, неразбирающийся будет опытным путем дробить ее регистрами, а знающий архитектуру расчитает уровень слоев логики и выставит сразу оптимальный вариант. Цитата А если все это знать, что еще тогда можно сделать с БИХ фильтром? По разрядности коэффициентов можно заранее представить в какое кол-во умножителей выльется реализация. Подбором коэффициентов можно уйти от умножителей на сдвиги и сумматоры. Если взть один проблематичный фильтр и посмотреть его максимальную частоту, то она окажется как правило гораздо выше, чем если кристалл будет забит на 90% другой логикой. Можно отдельно его откомпилировать и вставить в готовый проект с сохранением всех временных характеристик. Помимо этого существует куча дополнительных параметров кроме "оптимизация по быстродействию", включающая в себя дублирование регистров и комбинаторики, ограничение по fan-out, переразводка с учетом "неуложившихся" путей, замены мультиплексоров. Можно некоторые сигналы даже на глобальные шины вешать.
|
|
|
|
Сообщений в этой теме
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, 07:41 bogaev_roman Цитата(syoma @ Oct 19 2011, 11:41) 1. Раз... Oct 19 2011, 12:25 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, 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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|