МОДЕЛИ МИКРОСХЕМ ПАМЯТИ – большинство взятых из библиотек моделей микросхем - подарок потомкам от предыдущих студентов и хотя в большинстве они работоспособны, но требуется их тщательная верификация.
Это чисто функциональные модели и они несинтезабельны.
- как разрабатывать модели микросхем памяти?
Лучше строить модель так.чтобы при нарушениях временных соотношений шла печать сообщений и на выходе был Х- двойная индикация ошибок!!!.
А) алфавит std_logic-1064, имена сигналов- заглавные буквы, инверсных сигналов- суффикс n- например cs _n.
замена в именах кириллицы латиницей (RU6A и тд.
Операторы HDL следует набирать на отдельной строчке.
Комментарий нужен не только в заголовке- автор, файл, модель и тип микросхемы и тп.,
но и через каждые 4-5 операторов
Б) Временные параметры микросхем, размеры массива памяти и слова следует вынести в параметры настройки
В) Функцию преобразования типа данных- лучше взять из пакета(std_logic_unsigned- CONV_INTEGER), а не самим делать.
Г) Контроль временных параметров сигналов в модели обязателен- нужны сообщения о нарушениях и на выход микросхем желательно Х при нарушениях.
Способ организации контроля- использовать операторы контроля(assert), атрибуты cигналов и вспомогательные переменные,либо пакет VITAL_TIMING
Д) Вы в проекте ЗУ возможно использовали только один из возможных режимов работы микросхемы памяти- например основной цикл по импульсному CS, но возможны и другие- например адресным входом при установленном ранее CS.Но Ваша модель микросхемы должна отражать ВСЕ ВОЗМОЖНЫЕ РЕЖИМЫ!!! и ТЕСТ микросхемы тоже должен их проверять!
Надо хорошо представлять внутреннюю организацию микросхемы. Если элемент памяти асинхронный- реализован на D-триггерах-защелках и чтение по фронту, запись по срезу CS-одно, но если синхронный- защелкивает входные сигналы(адрес например) во внутренних регистрах микросхемы-то – другое.
.Е)Чтобы не очень путаться в больших временных диаграммах полезно
вставить в модель микросхемы отладочную печать- включив в модель параметр debug
ТИПИЧНЫЕ ОШИБКИ в моделях
а) НЕУЧЕТ ВСЕХ ВОЗМОЖНЫХ СИТУАЦИЙ со значениями сигналов!!!!
Алфавит std_logic_1164- 9 значный а не 4-значный!!!!!
ПРИМЕРЫ-
запись mem(i)<=Di при Di=’Z’;приведет к сохранению в ячейке памяти высокоимпедансного значения. В жизни это невозможно!
Выражение CS’event and CS=’0’ лучше заменить на rising_edge(CS) т.к. первое даст true и при переходе CS из ‘X’ в ‘0’.
ВЫХОД- либо как пытаться делать свои собственные функции проверок, либо
использовать to_x01 и др. функции преобразования типа std_logic в 3-значный тип Х01 и тогда число проверок у ВАС в модели резко уменьшится
Б) НЕПОНИМАНИЕ ОТЛИЧИЙ СИНХРОННЫХ МИКРОСХЕМ памяти типа РУ6 а, которые защелкивают адрес по срезу CS от АСИНХРОННЫХ типа РУ 17, которые пишут пo фронту CS.
Асинхронные микросхемы описывать гораздо сложнее т.к у них обычно есть два режима записи(по CS и по WR),а еще если есть вход CEO.
В) Не все ВХОДЫ МИКРОСХЕМЫ памяти в в ее модели ЗАДЕЙСТВОВАНЫ, а надо делать такие модели, которые учитывают все, что есть в справочниках!!
Г) НЕ ВСЕ РЕЖИМЫ МИКРОСХЕМЫ памяти ОТРАЖЕНЫ в ее модели.
Д) ТЕСТЫ микросхемы- лучше всего сделать самопроверяющимися – записал- считал проверил на совпадение и далее.
Е) Все комбинации входных сигналов должны быть описаны в одном файле теста, а не как у многих- - проверил одно, переправил файл- проверил другое и т.д..
ЛАБОРАТОРНАЯ РАБОТА №3
Верификация VHDL модели устройства управления ЗУ
Цель работы состоит в изучении HDL- моделей УУ ЗУ, методов их тестирования на примере УУ из проекта ЗУ выполненного на 3 курсе.
Приобретаемые навыки ─ умение реализовать простейшие модели УУ на HDL.
Домашняя подготовка
Ознакомиться с описанием данной лабораторной работы.
Изучить соответствующие разделы конспекта лекций, вспомнить свой КП ЗУ. Подготовить модель УУ. Подготовить программу тестирования.
Дома можно выполнить моделирование и отладить модель. Это непростая задача. Дело в том, что модели УУ ЗУ, выполненные в 6 семестре с помощью системы МИКРОКАП неточны. Например, МИКРОКАП предполагает начальное состояние всех сигналов равное 0, а модели на HDL более точные- начальное состояние неопределенное. Кроме того модель УУ на 3-м курсе отлаживалась автономно, а в данном случае возможно подключение к ней всех блоков ЗУ- регистров, памяти и т.п., тестирование которых было выполнено в предыдущих лабораторных работах. Как минимум в данной работе предполагается автономное тестирование модели УУ и сравнение результатов с моделированием,выполненным на 3 курсе.
В лаборатории при коллоквиуме показать результаты домашней
подготовки. Ответить на контрольные вопросы
При защите работы - показать краткий отчет и продемонстрировать результаты работы УУ на примере нескольких записей и чтения из различных ячеек памяти.!
.
Лабораторное задание
Перед началом работы проводится коллоквиум.
По итогам работы составляется отчет, который включают домашнюю подготовку, VHDL-описание проекта и тестирующей программы, протокол работы с САПР, временные диаграммы,выводы, включающие найденные ошибки, результаты сравнения ожидаемых результатов с полученными фактическими.
Пример модели УУ ЗУ
ТЕХНИЧЕСКОЕ ЗАДАНИЕ НА КУРСОВУЮ РАБОТУ ПРОЕКТИРОВАНИЕ МОДУЛЯ ЗУ