ТИПИЧНЫЕ НЕДОСТАТКИ РАБОТ студентов
МОДЕЛИ МИКРОСХЕМ ПАМЯТИ – большинство взятых из библиотек моделей микросхем - подарок потомкам от предыдущих студентов и хотя в большинстве они работоспособны, но требуется их тщательная верификация.
Это чисто функциональные модели и они несинтезабельны.
- как разрабатывать модели микросхем памяти?
Лучше строить модель так .чтобы при нарушениях временных соотношений шла печать сообщений и на выходе был Х- двойная индикация ошибок !!!.
А) алфавит 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-описание проекта и тестирующей программы, протокол работы с САПР, временные диаграммы ,выводы, включающие найденные ошибки, результаты сравнения ожидаемых результатов с полученными фактическими.
Пример модели УУ ЗУ
ТЕХНИЧЕСКОЕ ЗАДАНИЕ НА КУРСОВУЮ РАБОТУ ПРОЕКТИРОВАНИЕ МОДУЛЯ ЗУ