Здесь мы приведем
простой модели памяти, написанная в стиле, который максимизирует его
полезность. Для достижения этой цели, нет сигнала размеры устанавливаются в
описании; безусловной портов и использование массива атрибутов позволяет легко
повторного использования этой памяти. Концептуально, адрес памяти используется
в качестве индекса в памяти массива. Массив объявлен как целое-индексированный
массив, но адрес порта моделируется как std_logic_vector сигнала.
Несоответствие типа! Чтобы обойти это мы используем
to_integer функции из пакета IEEE numeric_std. Но это требует аргумент либо
знаком или без знака типа, поэтому мы сначала преобразовать std_logic_vector значение
без знака. Эта память также отображает записи до чтения поведения, общие в
статической памяти.
Что это такое? Это означает, что во время записи цикла
данных, возвращаемых же, как пишется. Без этого, данные возвращаются по данным
из порта будут данные только перезаписи.
Не идеал. Эта модель синтезирует во внутренние воспоминания
блока в большинстве архитектуры FPGA. Подводя итог ключевые моменты кода из
этой памяти модели, мы имеем: Безграничный портов std_logic_vector в целое
преобразование
Создать-до-читать. Вы можете использовать исходный код мы
предоставляем, но вы должны держать уведомления об авторском праве с кодом (см.
Уведомления странице для деталей). Атрибут VHDL синтеза, который определяет
начальное содержимое выводится блок памяти в виде памяти инициализация файла (.
MIF). Атрибут принимает строковое значение, содержащее имя файла инициализации
памяти (. РИФ).
Для использования ram_init_file атрибут синтеза в VHDL
Дизайн файл (. VHD), сначала объявить синтеза атрибут строку типа с использованием
атрибутов декларации. Затем с помощью атрибутов Спецификация связать
ram_init_file атрибут синтеза сигнала или переменной декларации, которая
представляет вывод оперативной памяти. Укажите значение синтеза атрибут как имя
файла, содержащего материалы, используемые для инициализации памяти.
Например, в следующем коде, атрибутов Декларация заявляет
ram_init_file атрибут синтеза, и атрибутов спецификации указано, что вывод
оперативной памяти должен быть инициализирован с содержанием, определенным в
my_init_file.mif:
На-чипе конфигурации памяти Flash (CFM) блок обеспечивает
энергонезависимой памяти для всех информации SRAM конфигурации для устройства
MAX II. CFM сохраняет конфигурацию шаблона дизайна в перепрограммируемой Flash
массива. Данные, загруженные из CFM при включении компьютера настраивает логики
и ввода / вывода, обеспечивая мгновенное на операцию. CFM программируется через
JTAG интерфейс и не могут быть изменены пользователем.
Атрибут VHDL синтеза, который определяет тип блока памяти
TriMatrix для использования при осуществлении вывод оперативной памяти. Этот
синтез атрибут поддерживается только для семейства устройств, которые
поддерживают архитектуру TriMatrix памяти.
Для использования ramstyle атрибут синтез, сначала объявить
синтеза атрибут строку типа с использованием атрибутов декларации. Затем с
помощью атрибутов Спецификация связать ramstyle атрибут синтеза сигнала или
переменной декларации, которая представляет вывод оперативной памяти. Укажите
значение синтеза атрибут, как "логика", "M512",
"M4K", "M9K", "M144K", "MLab",
"М-RAM", или "no_rw_check", в зависимости от типа блока
памяти, что вы хотите программного обеспечения Quartus II для использования при
осуществлении вывод оперативной памяти. Если вы связываете синтеза атрибут с
любым другим объектом VHDL, или если вы укажете неверное значение, программное
обеспечение Quartus II игнорирует, что синтез атрибутов.
Значение no_rw_check означает, что ваш проект не зависит от
поведения вывод оперативной памяти, когда Есть одновременного чтения и записи
по тому же адресу. Если вы укажете этот ramstyle значение, программное
обеспечение Quartus II может выбрать для чтения и записи во время поведения,
вместо использования для чтения и записи во время поведение вашего источника
HDL. В некоторых случаях, оперативной памяти без no_rw_check должна быть
отображена в логике, поскольку она имеет для чтения и записи во время
поведения, которое не поддерживается память TriMatrix блоков в целевом
устройстве. В других случаях, программное обеспечение Quartus II должны
вставить дополнительную логику, чтобы имитировать ваше чтения-записи во время
поведения, увеличивая площадь вашего дизайна и потенциального снижения его
производительности.
Например, в следующем коде, декларации атрибута заявляет
ramstyle атрибут синтеза, и атрибутов спецификации указано, что вывод RAM
my_ram реализуется с помощью M512 блок памяти.
|