Начало работы с ОЗУ и ПЗУ в Simulink

®

В этом примере показано, как использовать ресурсы оперативной памяти в проекте FPGA с помощью HDL- Coder™.

Введение

Выделенные блоки оперативной памяти в FPGA являются ценными ресурсами для цифровых проектов. Легко проектировать с помощью ОЗУ и ПЗУ в Simulink ®, и использовать выделенные блоки ОЗУ, доступные в вашем FPGA с помощью HDL Coder.

Блоки оперативной памяти в библиотеке примеров

HDL Coder обеспечивает следующие типы блоков оперативной памяти в библиотеке блоков HDL RAM. Использование hdllib чтобы отобразить блоки, совместимые с HDL- Coder™, а затем выберите HDL RAMs библиотека под HDL Coder:

  • Однопортовая ОЗУ

  • Однопортовая система ОЗУ

  • Простая двухпортовая оперативная память

  • Простая двухпортовая система ОЗУ

  • Двухпортовая ОЗУ

  • Двухпортовая система ОЗУ

  • Двухфазная двухпортовая ОЗУ

% Run this command navigate to RAM blocks in HDL library
% hdllib

Блоки ОЗУ являются маскированными подсистемами, созданными с помощью блоков Simulink для поведенческой симуляции. Для генерации кода HDL Coder генерирует предопределенные шаблоны, которые описывают структуры оперативной памяти в HDL. Большинство инструментов синтеза распознают структуры оперативной памяти в шаблонах, и сопоставляют их с ресурсами оперативной памяти на FPGA. Для получения дополнительной информации см. HDL Coder Block Library - Блоки оперативной памяти в документации.

Использование типового стиля кодирования ОЗУ для блоков ОЗУ

По умолчанию HDL Coder предоставляет шаблон ОЗУ, который использует разрешение синхроимпульса для структур ОЗУ. В качестве альтернативы HDL Coder также предоставляет стиль типового шаблона, который не использует активацию синхроимпульса. Типовой шаблон стиля ОЗУ реализует включение часов с логикой в обертке вокруг ОЗУ. Управлять этим можно с помощью опции 'RAM Architecture' на панели глобальных настроек HDL Coder.

Вы можете захотеть использовать типовой стиль оперативной памяти, если ваш инструмент синтеза не поддерживает структуры оперативной памяти с поддержкой синхроимпульса и не может в результате сопоставить HDL с ресурсами оперативной памяти FPGA.

Пример hdlcoderfirram является примером использования типового стиля оперативной памяти для проекта.

open_system('hdlcoderfirram');
open_system('hdlcoderfirram/FIR_RAM');

Выбор стиля кодирования ОЗУ

Стиль кодирования ОЗУ выбирается путем выбора требуемой Архитектуры ОЗУ на вкладке «Стиль кодирования» страницы Генерации HDL-кода Global Settings строения.

Создание ПЗУ с использованием блоков Simulink

HDL Coder не предоставляет блок ROM, но можно легко создать его с помощью блока Интерполяционная таблица и блока Unit Delay из Simulink, как показано в следующем примере.

open_system('hdlcoderrom');
open_system('hdlcoderrom/ROM');

Следуйте этим руководствам по моделированию при построении ПЗУ из Simulink:

  • Для n-битного адреса задайте все$2^n$ записи данных Интерполяционной таблицы. В противном случае ваш инструмент синтеза может не сопоставить сгенерированный код с ОЗУ, и код может не совпадать с вашей моделью Simulink.

  • Поместите блоки Интерполяционная таблица и Unit Delay в одну иерархию модели.

  • Поддержка логики сброса ОЗУ варьируется между устройствами ПЛИС и инструментами синтеза. Для наилучшего результата синтеза подавьте генерацию логики сброса для блока Unit Delay, задав для его свойства 'ResetType' значение 'none' в диалоговом окне HDL Block Properties. Также установите свойство 'IgnoreDataChecking' равным 1 в параметрах конфигурации HDL- Испытательного стенда, чтобы игнорировать начальное несоответствие симуляции, вызванное подавлением логики сброса.

Если вы следуете предыдущим рекомендациям, большинство инструментов синтеза реализуют ПЗУ с помощью выделенных блоков ОЗУ в ПЛИС.

Минимальное требование к размеру ОЗУ

Если размер ОЗУ или ПЗУ в вашем проекте небольшой, ваши инструменты синтеза могут сопоставить сгенерированный код с регистрами вместо выделенных блоков ОЗУ для лучшей эффективности. Проверьте ваш инструмент синтеза на любое требование к минимальному размеру ОЗУ, и при желании, как вы можете переопределить это требование.