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

 
 
> Вопрос об особенностях архитектуры MAX-II, Нужна помощь по оптимизации дизайна, включающего регистровые блоки.
SIA
сообщение Oct 7 2011, 19:56
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 462
Регистрация: 26-06-07
Пользователь №: 28 723



1. Вводная инфа.
Есть небольшой проект, типа "glue logick+register block".
Первоначально разрабатывался под ПЛИС с архитектурой CPLD (экономились триггера, а не многовходовая логика).
По ряду причин нужно его перенести на Altera MAX-II.
У которого архитектура, насколько я понимаю, представляет собой "быстрозагружаемую" FPGA (LUT+flip-flop).
На что напоролись - очень много ресурсов стали съедать многовходовые мультиплексоры шин данных.
"Не лезет". При менее чем паре сотен триггеров - дизайн съедает намного больше тысячи LE.
Выходов из положения напрашивалось два
- заменить мультиплексоры на шину с тремя состояниями
или
- регистровые блоки выполнить в виде небольших асинхронных двухпортовых ОЗУ.

Насколько я знаю, мелкие ОЗУ должны очень эффективно реализовываться из LUT (которая и представляет собой не что иное, как небольшое ОЗУ).

Однако проверка обоих вариантов на небольшом тест-проекте очень сильно озадачила - эффекта от замены mux на двухпортовку или шину практически никакого.
Возможно, на бОльшем проекте разница появится, но перед переделкой хочется получить совет от тех, кто сталкивался с подобной проблемой.

2. Собственно вопрос: как в MAX-II лучше всего выполнять регистровые блоки с доступом от двух шин ?

3. Попутный вопрос: Правильно ли я понимаю, судя по результатам фиттинга, что или аппаратура этих ПЛИС, или Quartus "не умеет" использовать LUT как распределенную память ?
(если так, то это выглядит очень странно - Xilinx умеет, Lattice - тоже).
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
dxp
сообщение Oct 8 2011, 06:00
Сообщение #2


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



В ПЛИС Altera нету аппаратной поддержки линий с тремя состояниями, кроме как на внешних пинах (т.е. внутри нету), поэтому всякая попытка описать такую логику будет сопровождаться эмуляцией этого на мультиплексорах, что приведёт к громоздкой реализации и кучи предупреждений при синтезе. Лучше так не делать.

Распределённая память в ПЛИС Альтеры встречается, AFAIK, только во "взрослых" ПЛИС семейств Stratix III/IV. В Циклонах и уж тем более максах её нет.

Т.ч. если нужна распределённая память, посмотрите на Спартанцев от Зайлинкса, там есть варианты с встроенной загрузочной флешкой (почти как Макс 2). Правда, внутренних буферов с тремя состояниями вы там тоже не найдёте - Зайлинкс перестал ставить такие буфера в ПЛИС нижней ценовой категории (Спартанцы), начиная со Спартан 3. Они есть в Вёртексах.


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
SIA
сообщение Oct 8 2011, 08:38
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 462
Регистрация: 26-06-07
Пользователь №: 28 723



Цитата(dxp @ Oct 8 2011, 10:00) *
В ПЛИС Altera нету аппаратной поддержки линий с тремя состояниями, кроме как на внешних пинах (т.е. внутри нету), поэтому всякая попытка описать такую логику будет сопровождаться эмуляцией этого на мультиплексорах, что приведёт к громоздкой реализации и кучи предупреждений при синтезе. Лучше так не делать.

Распределённая память в ПЛИС Альтеры встречается, AFAIK, только во "взрослых" ПЛИС семейств Stratix III/IV. В Циклонах и уж тем более максах её нет.

Т.ч. если нужна распределённая память, посмотрите на Спартанцев от Зайлинкса, там есть варианты с встроенной загрузочной флешкой (почти как Макс 2). Правда, внутренних буферов с тремя состояниями вы там тоже не найдёте - Зайлинкс перестал ставить такие буфера в ПЛИС нижней ценовой категории (Спартанцы), начиная со Спартан 3. Они есть в Вёртексах.

За информацию спасибо.
Но я правильно понимаю, что на мой вопрос о том, как лучше реализовать требуемое именно на MAX-II ответа нет или он отрицательный?
Go to the top of the page
 
+Quote Post
dxp
сообщение Oct 8 2011, 10:28
Сообщение #4


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



Цитата(SIA @ Oct 8 2011, 15:38) *
Но я правильно понимаю, что на мой вопрос о том, как лучше реализовать требуемое именно на MAX-II ответа нет или он отрицательный?

Я не очень представляю вашу задачу. С одной стороны вы говорите, что имеется обилие многовходовых мультиплексторов, с другой про шину с тремя состояниями. Если я правильно понимаю, то вы имеете в виду, что у вас есть куча [однотипных] блоков, работающих на общий приёмник, и это тянет неслабый мультиплексор, который вы хотели заменить шиной с тремя состояниями. Если так, то насчёт шины с тремя состояниями ответ отрицательный - если нет аппаратной поддержки внутри (а её нет), то ничего хорошего не получится - будет тоже неслабый мультиплексор, может быть даже ещё хуже, чем описанный явно. Поэтому, если Макс2 не тянет по ресурсам, то ничего не поделать - значит, не подходит он в реализации этой задачи.

Памяти, кстати, в Макс2 тоже нету. Как и триггеров в элементах ввода-вывода. В общем, кастрат это. sm.gif

Посмотрите другие решения. Либо честную FPGA поставить, либо более толстый чип.


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
SIA
сообщение Oct 8 2011, 11:30
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 462
Регистрация: 26-06-07
Пользователь №: 28 723



Цитата(dxp @ Oct 8 2011, 14:28) *
Я не очень представляю вашу задачу. С одной стороны вы говорите, что имеется обилие многовходовых мультиплексторов, с другой про шину с тремя состояниями. Если я правильно понимаю, то вы имеете в виду, что у вас есть куча [однотипных] блоков, работающих на общий приёмник, и это тянет неслабый мультиплексор, который вы хотели заменить шиной с тремя состояниями.

Правильно. Блок регистров.
Замена напрашивается или на маленькую память, или на TS шину.
Цитата(dxp @ Oct 8 2011, 14:28) *
Если так, то насчёт шины с тремя состояниями ответ отрицательный - если нет аппаратной поддержки внутри (а её нет), то ничего хорошего не получится - будет тоже неслабый мультиплексор, может быть даже ещё хуже, чем описанный явно. Поэтому, если Макс2 не тянет по ресурсам, то ничего не поделать - значит, не подходит он в реализации этой задачи.
Памяти, кстати, в Макс2 тоже нету. Как и триггеров в элементах ввода-вывода. В общем, кастрат это. sm.gif

Судя по всему, на редкость бестолковый, кстати - когда в ~1000 с гаком LE не влезает дизайн, прототип которого умещался в CPLD с 288 триггерами. Честно говоря, не предполагал такого идиотизма от альтеровских разработчиков - делать FPGA и без поддержки трехстабильных шин, и без конверсии LUT в распределенную память.
Цитата(dxp @ Oct 8 2011, 14:28) *
Посмотрите другие решения. Либо честную FPGA поставить, либо более толстый чип.

Ограничение по размерам корпуса. Нужен TQFP-100 с шагом 0.5, сигнальных выводов не менее 76, BGA ставить нельзя.
Единственное, что я знаю действительно приличное в этом форм-факторе - Lattice MachXO2 1200/2000.
Но это все "на будущее".
Сейчас нужно как-то выкрутиться с имеющимися MAX-II, обкарнывая все, что только можно. Поэтому и спрашиваю, что на этих чипах реализуется эффективно, а что - нет.

Цитата(dxp @ Oct 8 2011, 10:00) *
Т.ч. если нужна распределённая память, посмотрите на Спартанцев от Зайлинкса, там есть варианты с встроенной загрузочной флешкой (почти как Макс 2).

Учтем. Spartan 3AN в рассмотрение включили.
Цитата(dxp @ Oct 8 2011, 10:00) *
Правда, внутренних буферов с тремя состояниями вы там тоже не найдёте - Зайлинкс перестал ставить такие буфера в ПЛИС нижней ценовой категории (Спартанцы), начиная со Спартан 3. Они есть в Вёртексах.

Этого я с технической точки зрения не понимаю - ключи-то все равно в кристалле есть, ими все межсоединения конфигурируются. Смысл отключать к ним доступ и урезать возможности (т.е. снижать конкурентоспособность) продукта?

Цитата(Boris_TS @ Oct 8 2011, 13:16) *
Поправлю: оби были в Virtex-2. Начиная с Virtex-4 / Spartan-3 внутренних BUTF не стало !

to SIA: А вместо MAX-II посмотрите на Spartan-3AN - он тоже имеет внутреннюю конфигурационную память - может он подойдёт лучше.

Спасибо.
Go to the top of the page
 
+Quote Post
sazh
сообщение Oct 8 2011, 12:26
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 2 435
Регистрация: 6-10-04
Из: Петербург
Пользователь №: 804



Цитата(SIA @ Oct 8 2011, 14:30) *
Нужен TQFP-100 с шагом 0.5, сигнальных выводов не менее 76, BGA ставить нельзя


Если не секрет, почему нельзя?
Go to the top of the page
 
+Quote Post
SIA
сообщение Oct 8 2011, 12:41
Сообщение #7


Местный
***

Группа: Свой
Сообщений: 462
Регистрация: 26-06-07
Пользователь №: 28 723



Цитата(sazh @ Oct 8 2011, 16:26) *
Если не секрет, почему нельзя?

1. ПЛИС стоит на плате, у которой должна быть толстая медь. Соответственно, проектные нормы - 0.25 мм. А габарит жестко задан, наскребали по долям миллиметра.
2. Надежность в производстве и эксплуатации у BGA все-таки ниже.

Цитата(dxp @ Oct 8 2011, 15:41) *
Max II - это в чистом виде Cyclone I, без внутренней памяти, без аппаратных умножителей, без триггеров в I/O элементах со встроенной загрузочной флешью. На нём прилично реализуется обычная логика синхронного дизайна (счётчики, регистры, сумматоры и т.п.), требующая обилия триггеров, но если нужна память или скоростные интерфейсы с внешним миром - это не сюда.

Кстати, в свое время у меня на MAX-II очень прилично получились bit-serial DSP обработчики.
Последовательные АЛУ на них реализовывались хорошо. Но тут другой случай.
Go to the top of the page
 
+Quote Post
sazh
сообщение Oct 8 2011, 12:52
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 2 435
Регистрация: 6-10-04
Из: Петербург
Пользователь №: 804



Цитата(SIA @ Oct 8 2011, 15:41) *
2. Надежность в производстве и эксплуатации у BGA все-таки ниже.


По мне, так с точностью до наоборот.
max5 посмотрите. (там вроде бы не использованные le в память можно).
А вообще странно, что Вам мах 2 не хватило (в сравнении с альтеровскими чистыми cpld).
Go to the top of the page
 
+Quote Post
SIA
сообщение Oct 8 2011, 12:57
Сообщение #9


Местный
***

Группа: Свой
Сообщений: 462
Регистрация: 26-06-07
Пользователь №: 28 723



Цитата(sazh @ Oct 8 2011, 16:52) *
max5 посмотрите. (там вроде бы не использованные le в память можно).
А вообще странно, что Вам мах 2 не хватило (в сравнении с альтеровскими чистыми cpld).

И мне странно. Было бы понятно - не создавал бы тему.
Спасибо за замечание.
Если в MAX-V действительно можно использовать LUT как память, и эта фича поддержана - то это должно решить проблему, они почти pin-совместимы.
Но экспресс-тест этого не подтвердил, да и в документации указаний не нашлось.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- SIA   Вопрос об особенностях архитектуры MAX-II   Oct 7 2011, 19:56
- - tegumay   прблема в межсоединениях - надо уйти от муксов, ск...   Oct 7 2011, 23:18
|- - SIA   Цитата(tegumay @ Oct 8 2011, 03:18) прбле...   Oct 8 2011, 01:28
||- - dxp   Цитата(SIA @ Oct 8 2011, 18:16) Судя по в...   Oct 8 2011, 11:41
||- - Boris_TS   Цитата(SIA @ Oct 8 2011, 15:30) Этого я с...   Oct 8 2011, 15:39
||- - SIA   Это все (упразднение wired AND и пр.) имеет смысл ...   Oct 8 2011, 15:57
|||- - Boris_TS   Цитата(SIA @ Oct 8 2011, 19:57) Это все (...   Oct 8 2011, 17:38
||- - dxp   Цитата(Boris_TS @ Oct 8 2011, 22:39) Не-е...   Oct 9 2011, 12:36
||- - Boris_TS   Цитата(dxp @ Oct 9 2011, 16:36) По поводу...   Oct 9 2011, 14:46
|- - Boris_TS   Цитата(dxp @ Oct 8 2011, 10:00) Правда, в...   Oct 8 2011, 09:16
- - SIA   Spartan 3AN, как и большинство распространенных FP...   Oct 8 2011, 12:08
- - dxp   Цитата(SIA @ Oct 8 2011, 19:41) 2. Надежн...   Oct 8 2011, 15:26


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

 


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


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