
ПЛИС / FPGA Sixth Flash / Флеш-память
.pdfЛабораторная работа №4
Разработка конечного автомата для обмена информацией с внешней
flash-памятью
Цель работы: Разработать Verilog-описание и промоделировать работу конечного автомата для обмена информацией с внешней flash-памятью с по-
следующей проверкой работы на учебном стенде.
Продолжительность работы: 4 часа.
Оборудование, приборы, инструментарий: Учебный стенд AlteraStarterKitDE 2.
Теоретическая часть.
Относительно новый вид полупроводниковой памяти - это флэш-память
(название flash можно перевести как «вспышка молнии», что подчеркивает относительно высокую скорость перепрограммирования). Впервые анонсиро-
ванная в середине 80-х годов, флэш-память во многом похожа на EEPROM (электрически стираемая программируемая постоянная память), но использует особую технологию построения запоминающих элементов. Во флэш-памяти стирание информации производится электрическими сигналами, но не побай-
тово, а по блокам или полностью. Здесь следует отметить, что существуют микросхемы флэш-памяти с разбивкой на очень мелкие блоки (страницы) и
автоматическим постраничным стиранием.Микросхемы флэш-памяти выпус-
каются в вариантах с последовательным и параллельным доступом.
Принцип работы полупроводниковой технологии flash-памяти основан на изменении и регистрации электрического заряда в изолированной области
(кармане) полупроводниковой структуры.
Изменение заряда («запись» и «стирание») производится приложением между затвором и истоком большого потенциала, чтобы напряженность элек-
1
трического поля в тонком диэлектрике между каналом транзистора и карма-
ном оказалась достаточна для возникновения туннельного эффекта. Для уси-
ления эффекта туннелирования электронов в карман при записи применяется небольшое ускорение электронов путем пропускания тока через канал полево-
го транзистора.
По организации массива запоминающих элементов различают микросхе-
мы типа:
BulkErase(тотальная очистка) – стирание допустимо только для все-
го массива запоминающих элементов;
BootLock– массив разделен на несколько блоков разного размера,
содержимое которых может очищаться независимо. У одного из блоков есть аппаратные средства для защиты от стирания;
FlashFile– массив разделен на несколько равноправных блоков оди-
накового размера, содержимое которых может стираться независи-
мо.
Полностью содержимое флэш-памяти может быть очищено за одну или несколько секунд. Программирование (запись) байта занимает время порядка
10 мкс, а время доступа при чтении составляет 35-200 нс.
Описание работы чипа flash-памяти.
Flash-память имеет несколько инвертированных входов, среди которых:
разрешение на запись (WE), разрешение на выход (OE), разрешающий сигнал
(CE), сброс (RESET), одна входная шина адреса и одна двунаправленная шина
данных (рис. 1). |
|
|
inout |
[7:0] FL_DQ; |
// FLASH 8-битная шина данных |
output |
[21:0]FL_ADDR; |
// FLASH 22-битная адресная шина |
output |
FL_WE_N; |
// FLASH Разрешение на запись |
output |
FL_RST_N; |
// FLASH Сброс |
2

output |
FL_OE_N; |
// FLASH Разрешение на выход |
output |
FL_CE_N; |
// FLASH Разрешающий сигнал |
Сигнал BYTE# является средством управления сигналов DQ15 – DQ0 вво-
да/вывода данных, конфигурируя устройство использовать слова (word) или байты (byte). Если сигнал BYTE# установлен в логической 1, то устройство сконфигурировано для слов (word), DQ15–DQ0 являются активными и управ-
ляются CE# и OE#.
|
FLASH_A16 |
1 |
|
FLASH_A15 |
2 |
|
FLASH_A14 |
3 |
|
FLASH_A13 |
4 |
|
FLASH_A12 |
5 |
|
FLASH_A11 |
6 |
|
FLASH_A10 |
7 |
|
FLASH_A9 |
8 |
|
FLASH_A20 |
9 |
|
FLASH_A21 |
10 |
FLASH_WE |
11 |
|
FLASH_RESET |
12 |
|
|
|
13 |
|
|
14 |
|
FLASH_A19 |
15 |
|
16 |
|
|
FLASH_A18 |
17 |
|
FLASH_A8 |
18 |
|
FLASH_A7 |
19 |
|
FLASH_A6 |
20 |
|
FLASH_A5 |
21 |
|
FLASH_A4 |
22 |
|
FLASH_A3 |
23 |
|
FLASH_A2 |
24 |
|
|
|
A15 |
|
A16 |
|||
A14 |
|
BYTE |
|||
A13 |
|
GND |
|||
A12 |
|
DQ15/A-1 |
|||
A11 |
|
DQ7 |
|||
A10 |
|
DQ14 |
|||
A9 |
|
DQ6 |
|||
A8 |
|
DQ13 |
|||
A19 |
|
DQ5 |
|||
A20 |
|
DQ12 |
|||
WE |
|
DQ4 |
|||
RST |
|
VCC |
|||
NC |
S29AL032D70TFI04 |
DQ11 |
|||
NC |
|
|
DQ3 |
||
RY/BY |
|
DQ10 |
|||
A18 |
|
DQ2 |
|||
A17 |
|
DQ9 |
|||
A7 |
|
DQ1 |
|||
A6 |
|
DQ8 |
|||
A5 |
|
DQ0 |
|||
A4 |
|
|
|
|
|
|
|
OE |
|||
A3 |
|
GND |
|||
A2 |
|
|
CE |
|
|
A1 |
|
|
A0 |
48 |
FLASH_A17 |
|
|
|
47 |
|
GND |
|
|
46 |
|
|
||
FLASH_A0 |
GND |
|
||
45 |
|
|||
|
|
|||
44 |
FLASH_D7 |
|
|
|
43 |
|
|
|
|
42 |
FLASH_D6 |
|
|
|
41 |
|
|
|
|
40 |
FLASH_D5 |
|
|
|
39 |
|
|
|
|
38 |
FLASH_D4 |
|
|
|
37 |
F_VCC33 |
|
|
|
36 |
FLASH_D3 |
|
|
|
35 |
|
|
||
34 |
FLASH_D2 |
|
|
|
33 |
|
|
||
32 |
FLASH_D1 |
|
|
|
31 |
|
|
||
30 |
FLASH_D0 |
|
|
|
29 |
|
|
||
28 |
FLASH_OE |
|
|
|
27 |
|
GND |
F_VCC33 |
|
26 |
FLASH_CE |
|||
|
||||
25 |
FLASH_A1 |
|
|
FLASH_D[0..8]
FLASH_A[0..21]
FLASH_CE
FLASH_OE
Рис.1. Схематический вид flash-памяти
Если сигнал BYTE# установлен в логическом 0, то устройство сконфигу-
рировано для работы с байтами (byte), а шиной ввода/вывода данных является
DQ0–DQ7 и управляется CE# и OE#. Шина DQ8–DQ14 переводится в третье состояние «z», а сигнал DQ15 используется в качестве входа для LSB (A-1),
как функция адреса.
3

В данной лабораторной работе сигнал BYTE всегда установлен в логиче-
ский ноль.
Ниже, на рисунке 2, приведена структурная схема работы flash-памяти.
Как видно из рисунка, для организации работы необходимо разработать некий конечный автомат, который в соответствии с таблицей 1 подавал на входы оп-
ределенную последовательность команд для получения соответствующего ре-
зультата.
RY/BY#
RESET#
Контроль WE# состояний
BYTE#
Регистр
команд
CE#
OE#
VСС Детектор
A0-A20
DQ0 – DQ15 (A-1)
Переключатель
секторов
Буфер вхоГенератор напря- да\выхода жения стирания
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
PGM генератор |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
Логический |
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
Регистр |
|
|
|||||||||||||
|
напряжения |
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
блок разреше- |
|
|
|
|
|
|||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
данных |
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
ния работы чипа |
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
адреса |
|
|
|
Y- |
|
|
|
Y- |
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Декодер |
|
|
|
Селекция |
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Таймер |
|
|
|
|
|
|
|
Регистр |
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
X- |
|
|
|
Матрица |
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Декодер |
|
|
|
ячеек |
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Рис.2. Структурная схема flash-памяти
Например, для чтения из памяти необходимо подать на вход шины адреса необходимый адрес ячейки памяти, из которой будет происходить чтение, то-
гда на шине DQ[7:0] появятся интересующие нас данные.
4

Запись в память происходит немного сложнее. Для этого нужно последо-
вательно подать на шину данных и шину адреса четыре команды в соответст-
вии с таблицей 1 и тогда на последней, четвертой, итерации будет произведе-
на запись данных по указанному адресу.
Ниже, на рисунках 3 и 4, приведены примеры временных диаграмм для организации чтения и записи в память.
Адрес |
|
|
Стабильный адрес |
CE#
OE#
WE#
Выходы данные
RESET#
Рис.3. Временная диаграмма чтения из flash-памяти
Порядоккоманд программы (последние 2цикла) |
Чтение данных остатусе |
||||
(последние 2цикла) |
|||||
|
|
|
|||
Адрес |
555h |
PA |
PA |
PA |
|
CE# |
|
|
|
|
|
OE# |
|
|
|
|
|
WE# |
|
|
|
|
|
Выходы |
A0h |
PD |
Status |
DOUT |
Рис.4. Временная диаграмма записи во flash-память
5
|
|
Циклы |
|
|
|
|
Циклы шины |
|
|
|
|
|
|
||
|
|
Addr |
Data |
Addr |
Data |
Addr |
Data |
Addr |
Data |
Addr |
Data |
Addr |
Data |
1Таблица |
|
|
Команда |
|
Первый |
Второй |
Третий |
Четвертый |
Пятый |
Шестой |
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
. |
|
Чтение |
1 |
RA |
RD |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Сброс (reset) |
1 |
XXX |
F0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ID Производителя |
4 |
AAA |
AA |
555 |
55 |
AAA |
90 |
X00 |
01 |
|
|
|
|
|
|
ID Устройства |
4 |
AAA |
AA |
555 |
55 |
AAA |
90 |
X02 |
F9 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6 |
CFI Запрос |
1 |
AAA |
98 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Программировать |
4 |
AAA |
AA |
555 |
55 |
AAA |
A0 |
PA |
PD |
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Разблокировать обход |
3 |
AAA |
AA |
555 |
55 |
AAA |
20 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Разблокировать обход |
2 |
XXX |
A0 |
PA |
PD |
|
|
|
|
|
|
|
|
|
|
программы |
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Разблокировать обход |
2 |
XXX |
90 |
XXX |
00 |
|
|
|
|
|
|
|
|
|
|
сброса |
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Полное стирание |
6 |
AAA |
AA |
555 |
55 |
AAA |
80 |
AAA |
AA |
555 |
55 |
AAA |
10 |
|
|
чипа |
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Стереть сектор |
6 |
AAA |
AA |
555 |
55 |
AAA |
80 |
AAA |
AA |
555 |
55 |
SA |
30 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Прекратить стирание |
1 |
XXX |
B0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Продолжить стирание |
1 |
XXX |
30 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
X – не важно;
RA – адрес для чтения из памяти;
RD – данные прочитанные из адреса RA после операции чтения;
PA – адрес по которому будет происходить запись в память. Адрес запо-
минается на спаде #WE или пульсе CE#, какой бы ни происходил первым; PD – данные для записи по адресу PA.Данные записываются по переднему фронту WE# или пульсе CE#, какой бы ни происходилпервым;
SA – адрес сектора для стирания. Биты адреса A[19:12] являются уникаль-
ными адресами секторов.
Методика выполнения
Предлагается реализовать автомат следующим образом: описать два мо-
дуля, один из которых отвечает за работу с памятью, а второй выполняет функции, описанные в индивидуальном задании. Первый модуль представля-
ет собой конечный автомат, у которого входами являются адрес, данные и ис-
полнительные сигналы на чтение, запись, стирание и т.д. Среди выходных сигналов модуля должен обязательно присутствовать сигнал статуса выпол-
нения операции, который будет сообщать, в каком режиме на данный момент находится устройство: операция выполняется, операция выполнена или ошиб-
ка выполнения операции. Внутри модуля реализован автомат, который в зави-
симости от входных сигналов будет формировать последовательность им-
пульсов для чипа flash-памяти необходимую для выполнения той или иной операции. Оформить данный модуль предлагается так же, как и в предыдущей лабораторной работе – последовательно переключать состояния устройства с помощью конструкции caseи счетчика состояний.
Второй модуль так же представляет собой конечный автомат, который взаимодействует с первым модулем и модулем организующим работу прото-
7

кола PS/2. В данном случае предлагается подойти к решению задачи творче-
ски, т.е. на ваше усмотрение.
Ниже, на рисунке 5, приведена структурная схема взаимодействия моду-
лей данной лабораторной работы, а на рисунке 6 результаты моделирования блока формирования импульсов для работы с flash-памятью.
Внешние уст- |
|
Управляющий |
|
PS/2 |
ройства |
|
автомат |
|
|
|
|
|
||
|
|
|
|
|
Модуль |
Flash-память |
работы с Flash
Рис. 5.Структурная схема взаимодействия модулей для работы с flashпамятью.
Индивидуальное задание
В качестве индивидуального задания для четных вариантов предлагается написать Verilog-описание автомата, который производил бы запись во flash-
память по следующему алгоритму: вы нажимаете комбинацию клавиш из предыдущей лабораторной работы, далее вводите адрес с помощью клавиату-
ры, после чего, по нажатию клавиши Space, вводятся данные (нажимается клавиша). Затем, по нажатию клавиши Enter, данные записываются по задан-
ному адресу.
Для нечетных вариантов должны быть реализованы операции получения
ID чипа, его записи по заданному адресу, чтению из памяти, а так жеполное стирания памяти. Комбинации клавиш выбираются на ваше усмотрение.
8

Рис.6.Результаты моделирования работы
Требование к отчету
В качестве отчета о выполнении лабораторной работы вы должны пред-
ставить проект в Quartus, содержащий схемы, Verilog-описания, тестовые воз-
действия и результаты моделирования схемы устройства, выполняющей один из вариантов индивидуального задания, а также продемонстрировать его ра-
боту на учебном стенде.
Контрольные вопросы
1.Объясните особенности программирования flash-памяти.
2.Каким способом можно увеличить адресное пространство flash-памяти описанной в данной лабораторной работе?
9
3.В чем разница между flash-памятью и другими типами энергонезави-
симой полупроводниковой памяти?
4.Какие команды задействуют наибольшее количество циклов шины flash-памяти и почему?
Задание длясамостоятельной работы
Необходимо самостоятельно ознакомиться с материалами лабораторной работы, списком рекомендуемой литературы и, в особенности, с технической документацией на микросхему S29AL032D70TFI04 используемую в данной лабораторной работе. Изучить основные моменты программирования flash-
памяти: чтение, запись, полное и посекторное стирание чипа. Подготовить во внеурочное время алгоритм работы устройства, по средствам которого будет осуществляться программирование чипа памяти.
Самостоятельно ознакомьтесь с параметрами flash-памяти, которые не были освещены в данной лабораторной работе.
Список рекомендуемой литературы
1.Курс лекций по дисциплине «Электротехника, электроника и схемо-
техника. Программируемыелогическиеинтегральныесхемы»
2.Техническая документация на чип Spansion S29AL032D70TFI04
3.Б. Я. Цилькер, С. А. Орлов. Организация ЭВМ и систем. М. –Питер, 2004. Глава 5. Многократно программируемые ПЗУ.Стр. 227 – 229.
4.А. В. Кузьмин. Flash-память и другие современные носители информа-
ции. М. – Горячая линия – Телеком, 2005. Глава 1, 2. Стр. 6 – 59.
10