Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Утилизация BRAM коркой
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Системы на ПЛИС - System on a Programmable Chip (SoPC)
Andrey Pesoshin
Приветствую!

Ситуация: Проект для 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
Приветствую!

Судя по всему из за использования отдельных сигналов WE (write enable ) для каждого байта.

Успехов! Rob

Andrey Pesoshin
спасибо, посмотрел, действительно WE для каждого байта отдельный.
А не знаете причину, по которой генератор создает именно такой код? Чтобы независимо работать с 4 BRAM'ами?
RobFPGA
Приветствую!

Именно поэтому - так как процессору иногда требуется записать отдельный байт/2 байта/4 байта.
Если уж Вам очень жмет такое расточительство то можно сгенерить блок памяти (без отдельных WE) в Coregene (или описать на любимом HDL) и подключить его к интерфейсу bram_ctrl ручками как внешнюю память. Естественно при обращении к такой памяти из процессора Вы будете лишены радостей записи отдельных байт в слове.

Успехов! Rob.
Andrey Pesoshin
вот оно как. спасибо!
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.