Лабораторная работа No2-4 по дисциплине "Схемотехника ЭВМ"
Вариант 5. «Разработка контроллера FLASH памяти M25P16»
Цель работы
Изучить основные принципы разработки и подключения периферийных устройств к микропроцессорной системе на базе процессорного ядра MIPS32.
Задание
Разработать контроллер FLASH памяти M25P16, входящей в состав отладочной платы Spartan-3AN. Контроллер должен являться ведомым устройством на шине WISHBONE. Контроллер следует подключить вместо контроллера портов ввода/вывода
Со стороны шины WISHBONE должны быть доступны следующие регистры:
-
WADDR
-- регистр адреса для записи данных. Регистр хранит значение адреса, по которому будет записано содержимое буфера записи WRITE BUFFER . При обновлении значения регистра происходит очищение буфера записи. Разрядность р егистра - 4 байта. -
WDATA
-- регистр данных для записи. При записи значения в данный регистр они попадают в буфер записи. Разрядность регистра - 4 байта. -
WLEN
-- регистр данных, хранящий количество данных, которые будут перемещены в память из буфера записи. О бновление регистра интерпретируется контроллером как команда начала записи данных в память. Разрядность регистра - 4 байта. -
RADDR
-- регистр адреса для чтения данных. Регистр хранит значение адреса, по которому будет производится считывание данных из памяти в буфер чтения READ BUFFER . При обновлении регистра происходит очищение буфера чтения . Разрядность регистра 4 байта. -
RDATA
-- регистр данных для чтения. Предоставляет доступ к содержимому буфера чтения. При чтении данных из регистра происходит чтение данных и вершины очереди буфера чтения. Разрядность регистра 4 байта. -
RLEN
-- регистр данных, хранящий количество байтов, которые необходимо считать из памяти с адреса RADDR . Обновление регистра интерпретируется как команда на чтения данных из памяти в бу фер READ BUFFER . Разрядность регистра 4 байта. -
SEC_ADDR_ERASE
-- регистр данных, используемый для осуществления операции стирания сектора. В регистр записывается адрес сектора. Обновление регистра интерпретируется как команда стирания сектора. Разрядность регистра 4 байта. -
BULK_ERASE
-- регистр данных, который используется для осуществления полного стирания FLASH памяти. Запись любого значения в данный регистр интерпретируется как команда стирания памяти. Разрядность регистра 1 байт. -
STATUS
-- регистр статуса. При записи данных в регистр производится запись данных в регистр статуса FLASH памяти. При чтении данных производится чтение данных из регистра статуса FLASH памяти. Разрядность регистра 1 байт.
Контроллер имеет два блока памяти: буфер чтения и записи. Размер буферов 256 байт 1 страница. Буферная память реализуется как очередь. Буфер записи очищается при записи регистра адреса WADDR. Буфер чтения очищается при записи регистра адреса RADDR.