Перейти к содержанию
    

Quartus выкидывает блоки из проекта

Спецы, помогите.

Сделал проект в Квартус 6.0 на EP1C3. Использую несколько блоков памяти по 256 байт. Выходные шины данных через элементы BUSTRI уходят наружу на общую шину. После полной компиляции проекта оказывается, что некоторые из блоков памяти квартус куда-то подевал (При попытке обнаружить через locate in Timing Closure Floorplan пишет Can`t find requested location) . Меняю технику оптимизации AREA,SPEED,BALANCED - каждый раз из проекта изчезают РАЗНЫЕ блоки!!! Вся логика управления BUSTRI есть, свободных модулей памяти - навалом. Проект занимает 40 % ячеек и 60% - памяти. Что делать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спецы, помогите.

Сделал проект в Квартус 6.0 на EP1C3. Использую несколько блоков памяти по 256 байт. Выходные шины данных через элементы BUSTRI уходят наружу на общую шину. После полной компиляции проекта оказывается, что некоторые из блоков памяти квартус куда-то подевал (При попытке обнаружить через locate in Timing Closure Floorplan пишет Can`t find requested location) . Меняю технику оптимизации AREA,SPEED,BALANCED - каждый раз из проекта изчезают РАЗНЫЕ блоки!!! Вся логика управления BUSTRI есть, свободных модулей памяти - навалом. Проект занимает 40 % ячеек и 60% - памяти. Что делать?

Почти наверняка он выкидывает те модули, которые считает что они не используется. К примеру если сделать модуль, но никуда не подулючать (то есть он фактически ни на что не влияет) то квартус его выкинет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В том то и беда, что все блоки используются, все WR/RD, клоки подаются, BUSTRI все управляются, а часть из них Квартус убирает

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В том то и беда, что все блоки используются, все WR/RD, клоки подаются, BUSTRI все управляются, а часть из них Квартус убирает

Выходы должны быть подключены куда-то. Если выходы RAM или FIFO никуда не подключены, (или по логики они никогда не могут быть подключены) то он их может убрать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я так и не понял. Вы не получили того, чего хотели функционально?

Посмотрите в map viewer что реально получилось.

Настораживает использование шин по третьему состоянию внутри кристалла. поддерживается ли такое в вашем семействе.

Попробуйте заменить на мультиплексоры.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В том то и беда, что все блоки используются, все WR/RD, клоки подаются, BUSTRI все управляются, а часть из них Квартус убирает

Выходы должны быть подключены куда-то. Если выходы RAM или FIFO никуда не подключены, (или по логики они никогда не могут быть подключены) то он их может убрать.

 

Я так и не понял. Вы не получили того, чего хотели функционально?

Посмотрите в map viewer что реально получилось.

Настораживает использование шин по третьему состоянию внутри кристалла. поддерживается ли такое в вашем семействе.

Попробуйте заменить на мультиплексоры.

В map viewer, в Chip Editor и прочих эдиторах эти блоки также отсутствуют.

Я использую общую шину данных как на ввод, так и на вывод (т. е. BIDIR), и мультиплексорами тут работать нельзя (компилятор выдаст конфликт между входом пина и выходом логики (мультиплексора) - давно проверено), только через BUSTRI и никак иначе . Мультиплексоры прокатят если работать только на выход. У меня так во всех проектах работало. Просто в данном проекте у меня на общей шине висит больше блоков (8 по выходу, 6 по входу).

Создается такое впечатление, что к двунаправленному порту можно прицепить ОГРАНИЧЕННОЕ количество BUSTRI элементов и логических входов.

Или компилятор запихивает два моих блока (256х8) в один стандартный MEMORY BLOCK M4K. Черт, так оно и есть. Подлый квартус просто не пишет корректно, чем забит тот или иной MEMORY BLOCK M4K. А по связям, подходящим к нему видно что внутри него все-таки сидят два моих блока 256х8. Всем спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я использую общую шину данных как на ввод, так и на вывод (т. е. BIDIR), и мультиплексорами тут работать нельзя (компилятор выдаст конфликт между входом пина и выходом логики (мультиплексора) - давно проверено), только через BUSTRI и никак иначе .

Хоть и не в тему топика, но дам совет: никогда не используйте двунаправленные шины внутри кристалла. Это моветон. В каждом блоке сделайте 2 - на вход и на выход. Шина может становиться двунаправленной только на пинах кристалла, там для этого и тристабильные буфера имеются.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...