[an error occurred while processing this directive]
Вопрос к знатокам по поводу оптимизации (Spartan-II) (+)
(«Телесистемы»: Конференция «Программируемые логические схемы и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено Незнаев 01 августа 2003 г. 14:57

Есть проект фильтра (вообще в матрице еще много чего есть, но оно не критично). Он должен на вход получать отсчеты с АЦП (в количестве 2000 штук), а выходные данные лежат в двухпортовой памяти, из которой они считываются процессором ТМС6711.
Есть такие проблемы:

1. Получение данных с АЦП. Частота дискретизации 80 МГц. При этом должна обеспечиваться синхронизация отсчетов с внешним запускающим импульсом. Для этого я беру две фазы 80 МГц (она получается на ДЛЛ) - clk0 и clk180. По фронту запускающего импульса устанавливаю FF. Каждую фазу завожу еще на два FF, а на D-вход обоих с выхода предыдущего триггера. Каждый из этих двух FF еще запрещает другого (по CE). Тогда получаю, что взодится тот FF, фаза clk-а которого была первее. Затем выходами этих двух FF управляю выбором тактовой частоты, которая идет на фильтр. Да еще внутри фильтра есть коммутация частоты для изменения частоты дискретизации: идет та же 80 МГц на вход (и на саму АЦП), просто берутся отсчеты с АЦП так - либо каждый, либо каждый второй, либо каждый третий и т.д. Проблема в том, что не очень-то хорошо коммутировать тактовую, да еще 80 МГц. Вопрос: может как-то иначе сделать синхронизацию? Другие идеи есть?

2. Проблема с другого конца. Двухпортовая память, используемая на выходе, используется в фильтре полностью, т.е. обеими портами. Поэтому, чтобы организовать чтение процессором данных приходится опять же коммутировать тактовую. С одной стороны, это тактовая фильтра при записи/чтении памяти, с другой, это тактовая процессора. А она 100 МГц. Такая коммутация тоже не нравится компиллятору. Как быть?

В общем проект скомпиллирован, но получаются плохие результаты (ISE 5.2.03i, режим XST). Design score ~2500, Timing score ~2000. Проект без фильтра (но с синхронизацией, а память отсчетов была внешней типа ZBT, при этом процессор) имел соответственно 300 и 0, да и работал нормально. После добавления фильтра и использования внутренней памяти матрицы (всей) получились вот такие неутишительные результаты.
Матрица Spartan-II XC2S200. Заполнение проектом 40%.

Что можно предпринять для оптимизации? Куда копать?
Вообще как грамотнее коммутировать тактовую?
Что присоветуете?

Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru