Начало работы с RAM и ROM в Simulink®

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

Введение

Специализированные блоки RAM в FPGA являются ценными ресурсами для цифровых проектов. Легко спроектировать с RAM и ROM в Simulink®, и использовать специализированные блоки RAM, доступные в вашем FPGA с помощью HDL Coder.

Блоки RAM в библиотеке HDL в качестве примера

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

  • Один порт RAM

  • Один порт система RAM

  • Простой двухпортовый RAM

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

  • Двухпортовый RAM

  • Двухпортовая система RAM

  • Двойной уровень двухпортовый RAM

hdllib
### Generating view of HDL Coder compatible blocks in Library Browser.
### To restore the Library Browser to the default Simulink view, enter "<a href="matlab:hdllib('off')">hdllib off</a>".

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

Используя типовой стиль кодирования RAM для блоков RAM

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

Можно хотеть использовать типовой стиль RAM, если инструмент синтеза не поддерживает структуры RAM с часами, включают и не может сопоставить HDL с FPGA ресурсы RAM в результате.

Пример hdlcoderfirram пример того, как использовать типовой стиль RAM в вашем проекте.

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

Выбор стиля кодирования RAM

Стиль кодирования RAM выбран путем выбора желаемой Архитектуры RAM на вкладке "Coding Style" Глобальной страницы настройки Настроек генерации HDL-кода.

Создание ROM Используя блоки Simulink

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

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

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

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

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

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

Если вы будете следовать предыдущим инструкциям, большинство инструментов синтеза реализует ROM с помощью, выделил блоки RAM в FPGA.

Минимальное требование размера RAM

Если размер RAM или ROM в вашем проекте мал, ваши инструменты синтеза могут сопоставить сгенерированный код с регистрами вместо специализированных блоков RAM для лучшего быстродействия. Проверяйте свой инструмент синтеза для любого минимального требования размера RAM, и при желании, как можно заменить то требование.