Один из способов, который не использует конфигурации:
помните, что вы можете создать несколько архитектур для каждой сущности.
Поэтому вы можете создать экземпляр единицы в своем тестовом стенде как
Controller_1 : entity work.DRAM_controller(simple)
port map ( ...
or
Controller_2 : entity work.DRAM_controller(rtl)
port map ( ...
где «простой» и «rtl» — две архитектуры. Для этой цели вам, возможно, придется иметь объект и обе архитектуры в разных файлах; Инструменты Xilinx не очень хорошо справляются с необычными случаями (в свое время мне сказали, что конфигурации не являются единицами проектирования!)
Затем вы можете создать экземпляр контроллера DRAM с любой архитектурой в тестовом стенде.
Как говорит vermaete, вы также должны протестировать упрощенную архитектуру. Один из способов — запустить на нем модульные тесты, создав экземпляры обоих контроллеров в другом тестовом стенде, по одному для каждой архитектуры, и сравнив их выходные данные для каждой операции.
Как ни странно, пример Эшендена для прямого создания объекта (Designer's Guide to VHDL ch 5.4, p.136 в моем издании 1996 года) — это контроллер DRAM!
РЕДАКТИРОВАТЬ: (это был комментарий, но он становится слишком длинным)
Для модульного теста оба контроллера могут быть созданы в тестовом стенде, и все в порядке.
Что касается системного теста, я не понял, что контроллер DRAM находится внутри проверяемого оборудования (дизайн верхнего уровня) — вам нужен один экземпляр (настоящий) для синтезатора и простых тестов DRAM, а другой (простой) — для полных тестов DRAM. Да, конфигурация - правильный и самый чистый способ сделать это. Создайте экземпляр контроллера ENTITY в проекте верхнего уровня (UUT) и выберите архитектуры в конфигурации.
Однако есть менее чистая альтернатива в качестве резервного плана на случай, если конфигурации не работают. Создайте 2 архитектуры для объекта верхнего уровня; отличаясь ТОЛЬКО аркой, которую они выбирают для контроллера. Вы можете выбрать любую архитектуру при создании экземпляра объекта верхнего уровня в тестовом стенде. Однако это неприятно, потому что вам нужно синхронизировать две версии.
person
user_1818839
schedule
11.02.2013