Проектирование памяти с использованием Verilog | Полный проект электроники
Проектирование памяти с использованием Verilog | Полный проект электроники
Здесь представлена память дизайн-проект с использованием языка описания оборудования Verilog (HDL). Этот проект моделируется с помощью программного обеспечения ModelSim, а конструкция тестируется в процессе моделирования. Моделирование проводится для проверки и обеспечения того, что желаемое соответствует описанию.
Моделирование осуществляется с помощью специальных инструментов. При каждом моделировании результаты изучаются для выявления ошибок в описании конструкции. Ошибки исправляются, а затем проводится еще одно моделирование. Моделирование и изменения в описании конструкции вместе образуют циклический итерационный процесс, повторяющийся до тех пор, пока не будет разработан безошибочный дизайн.
Описание дизайна — это деятельность, независимая от целевой технологии или производителя. В результате получается описание цифровой схемы. Чтобы преобразовать это в осязаемую схему, нужно пройти процесс физического проектирования.
То же представляет собой комплекс мероприятий, тесно связанных с производителем и целевой технологией. Для разработки проектов на HDL вам необходимо следовать порядку проектирования очень крупномасштабной интеграции (СБИС) и этапам проверки, необходимым на каждом этапе.
Однопортовая память
Однопортовая память в основном имеет конструкцию, соответствующую заданным вами спецификациям. Затем в соответствии с указанной шириной и глубиной определите блок памяти, который также можно проверить с помощью плат программируемой вентильной матрицы (FPGA). Иерархия проектирования также играет важную роль в разработке основных строительных блоков, необходимых на каждом этапе проверки.
В этом проекте мы разрабатываем 64-битную 8-битную версию, которая представляет собой однопортовую конструкцию с общими адресами чтения и записи в Verilog.
При разработке этого проекта в ModelSim и тестовых стендах следуйте приведенным ниже рекомендациям:
1. При моделировании последовательной логики используйте неблокирующие присваивания
2. При моделировании защелок используйте неблокирующие назначения
3. При моделировании комбинационной логики с помощью блока Always используйте назначения блоков
4. При моделировании последовательной и комбинационной логики в одном и том же блоке всегда используйте неблокирующие присваивания
5. Не смешивайте блокирующие и неблокирующие назначения в одном всегда блоке
6. Не делайте присвоения одной и той же переменной из более чем одного блока Always
7. Используйте $strobe для отображения значений, присвоенных с помощью неблокирующих присвоений
8. Не выполняйте назначения с задержками #0
Дизайн памяти
Блок-схема памяти показана на рис. 1. Для упрощения работы схемы необходимо принять во внимание несколько допущений. Хотя контакт ввода данных и контакт адреса могут иметь любое значение в зависимости от характеристик используемой памяти и ваших потребностей, тактовый сигнал, используемый в схеме, активен на высоком уровне.
Рис. 1: Блок-схема памяти 64×8 бит
Вывод включения запускает схему, когда он активен на высоком уровне, и операция чтения выполняется, когда на выводе чтения/записи высокий уровень, операция while записи выполняется, когда на выводе чтения/записи активен низкий уровень.
Программное обеспечение
Verilog использовался для кодирования и проверки логики передачи регистров. В этом проекте использован принцип «снизу вверх», чтобы облегчить отладку различных модулей. ModelSim — простой в использовании, но универсальный симулятор от Mentor Graphics. Он поддерживает поведенческое моделирование, моделирование на уровне регистров и шлюзов.
Чтобы запустить моделирование проектирования памяти (64-разрядной версии), установите ModelSim V 10.4a на ПК с Windows и выполните шаги, указанные ниже:
1. Запустите ModelSim с рабочего стола; вы увидите диалоговое окно ModelSim10.4a
2. Создайте проект, нажав кнопку «Старт» на экране приветствия 3. Откроется окно «Создать проект» (рис. 2). Выберите подходящее имя для вашего проекта. Укажите местоположение проекта, а остальное оставьте как default и нажмите «ОК».
Рис. 2. Окно «Создать проект»
4. Появится окно Добавление элементов в проект (рис. 3). Выберите опцию «Создать новый файл».
Рис. 3. Добавьте элементы в окно проекта
5. Появится окно «Создать файл проекта». Укажите подходящее имя файла (скажем, Memory_SP.v) для файла, который вы хотите добавить, и выберите Verilog в качестве типа «Добавить файл» и «Верхний уровень» в качестве папки (рис. 4)
Рис. 4. Окно «Создать файл проекта»
6. В разделе рабочей области главного окна (рис. 5) дважды щелкните только что созданный файл (Memory_SP.v в этом case)
Рис. 5: Окно рабочей области
7. Введите свой код Verilog (Memory_SP.v) в новом окне. Поскольку здесь рассматривается 64-битная х 8-битная память, рассматривается 64-битный адрес, и основная цель — ввести 8-битные данные, которые должны быть записаны в эту ячейку адреса. Обратите внимание, что эти входные данные произвольны, и вы можете вводить любые 8-битные данные 8. Сохраните свой код из меню «Файл»
Примечание. Как правило, внутренняя архитектура памяти может включать D-триггер, мультиплексор, базовую ячейку, 8-битное слово, ядро и т. д.
Компиляция/отладка файлов проекта
1. Выберите «Компилировать» → «Компилировать все». 2. Результат компиляции отображается в главном окне. Если вы получите сообщение «Компиляция памяти-SP.V прошла успешно», это означает, что в проекте нет ошибок (рис. 6)
Рис. 6: Окно компиляции
Имитация 64-битной × 8-битной памяти
1. Нажмите меню «Библиотека» в главном окне, а затем нажмите знак плюса (+) рядом с рабочей библиотекой. Вы увидите только что скомпилированный Memory_SP (рис. 7)
Рис. 7: Окно запуска моделирования
2. В рабочей библиотеке выберите, как показано на рис. 7, и нажмите ОК. Откроется окно sim-Default, как показано на рис. 8.
Рис. 8: окно Sim-Default
3. Перейдите в «Добавить»→В «Волну»→Все элементы в вариантах дизайна (рис. 9)
Рис. 9. Добавление волны в проект
4. Выберите сигналы, которые вы хотите отслеживать в целях моделирования. Выберите их, как показано на рис. 10.
Рис. 10: Выбор и мониторинг сигналов
5. Выбранные сигналы используются для проверки операций записи данных в память. Смоделируйте свой проект, нажав «Выполнить» в строке меню «Имитация», как показано на рис. 11.
Рис. 11: Окно волны
Здесь, чтобы проверить реализацию памяти, заполните память по выбранному адресу от 0 до 63. Выполните операцию записи случайных данных. Включите и прочитайте данные из этого конкретного адреса.
Чтобы прочитать о других интересных проектах по программному обеспечению: нажмите здесь
Арнав Бансал — любитель электроники, который любит возиться с схемотехникой
Все ссылки на книги и журналы, представлены на этом сайте, исключительно для ознакомления, авторские права на эти публикации принадлежат авторам книг и издательствам журналов!
Подробно тут! Жалоба