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

 
 
> Генерация DDS с помощью Simulink HDL Coder, Как задействовать память RAM ПЛИС для хранения таблицы LUT
Georg.A
сообщение Dec 4 2012, 11:44
Сообщение #1





Группа: Участник
Сообщений: 11
Регистрация: 4-10-10
Пользователь №: 59 910



Здравствуйте!

Пытаюсь создать проект на ПЛИС путем генерации VHDL кода из Simulink`а.

Для начала задался целью сделать квадратурный Direct Digital Syntezator разрядностью 2^13, основанный на 2х таблицах значений функции Lockup Table, синусной и косинусной, разрядность каждой 2^13 (8192 отсчета), интервал от 0 до 2пи.
В хелпе по Simulink HDL Coder есть пример реализации памяти ROM на основе таблицы (внутри подсистемы находится Lockup Table и одиночная задержка), взял его за основу.

Проект DDS состоит из аккумулятора фазы и двух ROM подсистем, внутри каждой таблица отсчетов и задержка . После генерации VHDL кода и синтеза в Xilinx ISE 13.4, синтез репорт сообщает о использовании некоторого количества процентов блоков FIFO/RAM, то есть таблицы легли туда.
Если подвешиваю в Simulink модели к выходу ROM`ов какую нибудь подсистему, например фильтр, или выход DDS перемножаю с чем либо еще, то есть расширяю свой проект, то после синтеза в Xilinx ISE, репорт сообщает о том, что проект занял только slices, IOBs, DSP48 и т.д. но FIFO/RAM никак не задействована.

Поскольку разрядность DDS приличная, то он сжирает почти всю логику, а чтобы задействовать FIFO/RAM приходится генерировать DDS отдельно от остального проекта.

Если кто-то сталкивался с подобной задачей и/или знает как ее решить, подскажите пожалуйста.

Сообщение отредактировал Georg.A - Dec 4 2012, 11:46
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Tue
сообщение Dec 21 2012, 12:34
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 166
Регистрация: 7-09-05
Из: Москва
Пользователь №: 8 340



ммм... не понял вопроса. "Некоторые части модели генерировать отдельно и связывать вручную" - не понимаю в чем смысл? Обычно, когда d проекте ПЛИС есть модели, которые должны тактироваться разными частотами - то эти модули я соединяю вручную (например в схематике Квартуса, который можно потом перевести в hdl автоматом). Это потому что Симулинк умеет генерировать hdl для блоков с одной единственной частотой (один вход clk). Забота о разных тактовых доменах - это задача разработчика.
"некоторые части модели переписывать вручную" - а это зачем ?

Да, по поводу контрол-файла. Модель, для которой Вы генерируете код и контрол-файл находятся в одной директории и Матлаб находится в ней ?
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 25th July 2025 - 06:19
Рейтинг@Mail.ru


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