- PVSM.RU - https://www.pvsm.ru -
На этой неделе я закончил работу по добавлению поддержки SDRAM в проект MIPSfpga-plus [1]. Теперь при работе с MIPSFpga [2] помимо блочной памяти, ограниченной ресурсами ПЛИС, доступно еще и внешнее ОЗУ.
Данная статья состоит из 2 частей:
Часть 1. [3] Краткое описание модуля доступа к SDRAM. Пример использования.
Часть 2. [4] Подробное описание работы с памятью, достаточное для того, чтобы в работе модуля смог разобраться человек, ранее не имевший дела с микросхемами ОЗУ. Список литературы.
Предполагается, что читатель как минимум:
Если вы уже опытный разработчик, то Часть 1 стоит пробежать глазами по диагонали, Часть 2 — не содержит для вас ничего нового. При этом вы можете принести несомненную пользу обществу, если добавите поддержку SDRAM для еще одной отладочной платы. На текущий момент она реализована только для Terasic DE10-Lite [6] — одной из 9 плат, на которые в рамках проекта MIPSfpga-plus было портировано ядро MIPSfpga.
MIPSfpga — это доступное под академической лицензией (бесплатно лицензируемое для образовательных и исследовательских проектов) промышленное микропроцессорное ядро MIPS microAptiv. О том, как получить доступ к исходным кодам этого ядра, в свое время подробно писал Юрий Панчул [2].
MIPSfpga-plus — это выполненный на основе MIPSfpga проект системы на кристалле, помимо ядра включающий некоторую дополнительную периферийную обвязку. Изначально он создавался для проведения лабораторных работ по работе с MIPSfpga, но ничто не мешает вам взять его за основу своей системы. Одна из основных "фишек" проекта: возможность заливки программы в память системы с использованием usb-uart преобразователей ($5), которые более доступны, чем Bus Blaster ($50).
Предполагается, что у вас уже есть развернутые и компилируемые MIPSfpga и MIPSfpga-plus. Если это так, то для использования SDRAM необходимо:
Моей целью было создание максимально простого работающего решения, прозрачного и легко переносимого на другие платы. Модуль несколько примитивен по сравнению со своими "взрослыми" аналогами, это оставляет простор для модернизации и повышения его производительности:
Буду признателен за пулреквесты с исправлением багов и новой функциональностью.
Автор выражает благодарность коллективу переводчиков учебника Дэвида Харриса и Сары Харрис «Цифровая схемотехника и архитектура компьютера» [5], компании Imagination Technologies, а также персонально Юрию Панчулу YuriPanchul [17].
Автор: SparF
Источник [18]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/verilog/241842
Ссылки в тексте:
[1] MIPSfpga-plus: https://github.com/MIPSfpga/mipsfpga-plus
[2] MIPSFpga: https://habrahabr.ru/post/275215/
[3] Часть 1.: https://habrahabr.ru/post/321530/
[4] Часть 2.: https://habrahabr.ru/post/321532/
[5] Харрис-энд-Харрис [1]: https://habrahabr.ru/post/259505/
[6] Terasic DE10-Lite: http://de10-lite.terasic.com/
[7] mfp_ahb_ram_sdram.v: https://github.com/MIPSfpga/mipsfpga-plus/blob/master/mfp_ahb_ram_sdram.v
[8] clock domain crossing: https://github.com/zhelnio/ahb_lite_sdram/blob/master/doc/20161129_clocl%20domains%20sync.pdf
[9] Verilog модель от компании Micron: https://www.micron.com/resource-details/d13af47e-2644-45bf-80d4-f56756b9ad03
[10] IS42S16320D: https://github.com/zhelnio/ahb_lite_sdram/blob/master/doc/IS42S16320D.pdf
[11] 04_memtest: https://github.com/MIPSfpga/mipsfpga-plus/tree/master/programs/04_memtest
[12] ahb_lite_sdram: https://github.com/zhelnio/ahb_lite_sdram
[13] standalone модуль: https://github.com/zhelnio/ahb_lite_sdram/blob/master/src/debug/ahb_lite_rw_master.v
[14] mfp_ahb_lite_matrix_config.vh: https://github.com/MIPSfpga/mipsfpga-plus/blob/master/mfp_ahb_lite_matrix_config.vh
[15] main.c: https://github.com/MIPSfpga/mipsfpga-plus/blob/master/programs/04_memtest/main.c
[16] 02_compile_and_link.bat: https://github.com/MIPSfpga/mipsfpga-plus/blob/master/programs/04_memtest/02_compile_and_link.bat
[17] YuriPanchul: https://habrahabr.ru/users/yuripanchul/
[18] Источник: https://habrahabr.ru/post/321530/?utm_source=habrahabr&utm_medium=rss&utm_campaign=best
Нажмите здесь для печати.