Полная версия этой страницы:
Утилизация BRAM коркой
Andrey Pesoshin
Oct 9 2011, 13:37
Приветствую!
Ситуация: Проект для Spartan 6 в Xilinx EDK. Создаю периферийный модуль - корку, в визарде указываю число адресных пространств - 1.
В сгенерированном коде вижу следующую строчку:
-- This code snippet infers
-- 1 256x32-bit (byte accessible) single-port Block RAM by XST.
Ничего не меняя, добавляю корку в проекту, генерирую bitstream.
Отчет об утилизации показывает, что корка заняла 4 BRAM'а на 8(9?) Kbit.
Если указать число адресных пространств - 8, то корка занимает уже 32 BRAM'а.
Почему так, если 256x32-bit=8192 bits=8 Kbit=1 BRAM?
RobFPGA
Oct 10 2011, 08:30
Приветствую!
Судя по всему из за использования отдельных сигналов WE (write enable ) для каждого байта.
Успехов! Rob
Andrey Pesoshin
Oct 10 2011, 16:01
спасибо, посмотрел, действительно WE для каждого байта отдельный.
А не знаете причину, по которой генератор создает именно такой код? Чтобы независимо работать с 4 BRAM'ами?
RobFPGA
Oct 13 2011, 20:27
Приветствую!
Именно поэтому - так как процессору иногда требуется записать отдельный байт/2 байта/4 байта.
Если уж Вам очень жмет такое расточительство то можно сгенерить блок памяти (без отдельных WE) в Coregene (или описать на любимом HDL) и подключить его к интерфейсу bram_ctrl ручками как внешнюю память. Естественно при обращении к такой памяти из процессора Вы будете лишены радостей записи отдельных байт в слове.
Успехов! Rob.
Andrey Pesoshin
Oct 14 2011, 13:34
вот оно как. спасибо!
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.