Открыть Электронные книги
Категории
Открыть Аудиокниги
Категории
Открыть Журналы
Категории
Открыть Документы
Категории
Кафедра ЭВМ
К защите
Руководитель проекта
______________________
дата, подпись
ПОЯСНИТЕЛЬНАЯ ЗАПИСКА
К КУРСОВОМУ ПРОЕКТУ
по дисциплине
«Проектирование цифровых устройств»
по теме
«Разработка процессора в системе Quartus»
Руководитель проекта
к.т.н., доцент кафедры ЭВМ
Кистрин А.В. _____________ ____________________
оценка дата защиты, подпись
Рязань 2020
Задание
Разработайте синтезированный процессор на основе ПЛИС семейства
FLEX 10K, выполните отладку, тестирование и индивидуальные задания в
соответствие с заданным вариантом.
Технические требования
1. Требование по быстродействию. Любая команда должна
выполняться за один период синхроимпульсов.
2. Разрядность команд - 16 бит, разрядность данных – 8 бит.
3. Методы адресации и состав системы команд.
3.1. Команды с непосредственной адресацией. Операнды -
содержимое регистра и константа из команды. Состав команд: пересылка,
суммирование, суммирование с учетом переноса, логическиеоперацииИ,
ИЛИ, сумма по модулю два.
3.2. Двухадресные команды с регистровой адресацией. Операнды
- содержимое двух регистров. Состав команд подобен п.3.1.
3.3. Одноадресные команды циклических сдвигов.
3.4. Команды обращения к памяти с косвенной адресацией.
3.5. Команды безусловных и условных переходов по
признакамнуля - zf и переноса - cf с прямой адресацией.
Вариант индивидуального задания.
Задание А. Разработать программу для тестирования команд сдвигов.
Выполнить моделирование. Определить временные задержки
формирования адреса команд, чтения кода команды, а также формирования
результата операции на шине данных.
Задание Б. Создать в памяти, начиная с адреса 00, массив из 8 чисел
W0 – W7 , которые вычисляются в соответствии с заданной
формулой:Wk=2k+4.Определить экспериментально максимальную частоту
синхронизации.
2
Задание В. Включить дополнительную команду инкремента
содержимого регистра incrx, представить в отчете результаты
тестирования.
3
Содержание
Введение...........................................................................................................................4
1. Архитектура микропроцессорной системы и процессора.......................................5
2. Система синхронизации процессора.........................................................................7
3. Регистровая модель процессора.................................................................................9
4. Разработка системы команд.....................................................................................11
4.1. Команды с непосредственной адресацией.....................................................11
4.2. Двухадресные команды с регистровой адресацией.......................................13
4.3. Одноадресные команды с регистровой адресацией......................................15
4.4. Команды обращения к памяти с косвенной адресацией...............................16
4.5. Команды переходов с прямой адресацией.....................................................18
5. Разработка процессора в САПР...............................................................................20
5.1. Разработка функциональной схемы процессора............................................20
5.2. Модуль управления переходами – control......................................................21
5.3. ПЗУ команд.......................................................................................................23
5.4. Блок РОН...........................................................................................................24
5.5. Модуль АЛУ......................................................................................................27
5.6. Устройство синхронизации записи данных (sync_wr)..................................31
6. Разработка схемы процессора..................................................................................32
7. Задание А...................................................................................................................34
8. Задание Б....................................................................................................................36
9. Задание В....................................................................................................................38
Заключение.....................................................................................................................39
Библиографический список..........................................................................................40
4
Введение
5
1. Архитектура микропроцессорной системы и процессора.
Процессор
С
ПЗУкома ak Устройствоупр Устройствао ad ОЗУданн
нд авленияперехо бработкидан ых
k дами d-bus
ных
6
В зависимости от числа операций системы команд процессоры делятся на
две группы: CISC (Complex Instruction Set Computer) – процессоры со сложной
системой команд и RISC (Reduce Instruction Set Computer) – процессоры с
сокращенной системой команд. Основная идея построения RISC - процессоров –
это тщательный подбор часто используемых простейших команд одинаковой
длины, которые процессор может выполнить за один период сигнала
синхронизации. Основной выигрыш от такого подхода – упрощение аппаратной
реализации процессора и возможность значительно повысить его
производительность.
7
2. Система синхронизации процессора.
8
поступать все необходимые сигналы для выполнения операции. Результат
операции формируется на шине данных d_bus.
9
3. Регистровая модель процессора.
Для модуля ОЗУ выбрана разрядность 8 бит, а емкость – 256 байт, при этом
адрес ячейки памяти должен иметь разрядность 8 бит. Модуль ОЗУ, подобно
блоку РОН, должен обеспечивать асинхронное чтение и синхронную запись
данных.
10
Блок ОЗУ данных ПЗУ команд Счетчик команд
РОН 7 0 15 0 7 0
7 0
ak
0 00 00 Команда
1 01 01 15 0
07 07
k
7
Признаки
F FF FF cf zf
11
4. Разработка системы команд.
12
от 0 до 7, а максимально возможное количество команд с непосредственной
адресацией составит 8.
k1 rx dd
13
содержимое регистра r3 будет равно 2F16 независимо от кода, содержащегося в
этом регистре до выполнения команды.
14
4.2. Двухадресные команды с регистровой адресацией.
k1 rx ry k2
15
8 rx ry and rx, ry rx=rx⋅ry Логическая операция И
3
8 rx ry or rx, ry rx=rx ∨ry Логическая операция ИЛИ
4
8 rx ry xor rx, ry rx=rx ⊕ry Операция Исключающее ИЛИ
5
16
Первый код Адрес регистра Данные
операции 11 8 7 0
15 12
k1 rx K2
k1 rx ry k2
Команда ld r1, (r2), например, будет иметь 16-ричный код a120 или
двоичный код 1010 0001 0010 0000. Она загрузит в регистр r1 содержимое ячейки
памяти, адрес которой заблаговременно был записан в регистр r2.
Команда st (r4), r3 будет иметь 16-ричный код a341 или двоичный код 1010
0011 0100 0001. Она запишет в ячейку памяти, адрес которой заблаговременно
был записан в регистр r4, содержимое регистра r3.
k1 k2 aa
Команда jz 20, например, имеющая код f12016 или 1111 0001 0010 00002 ,
выполняет условный переход к команде, адрес которой в ПЗУ команд равен 20 16,
если после выполнения предыдущей команды получен флаг fz = 1.
20
5. Разработка процессора в САПР.
c
zl zf
F Модуль управления и ak ПЗУкоманд k
сl сf счетчик команд
x zl
БлокРОН АЛУ
y сl
d_bus
c wr dm
22
5.2. Модуль управления переходами – control.
jmp = 1, если
k[15:8] = 111100102 и fc = 1.
23
В заголовке описания модуля управления переходами с именем control
(пример 1) перечислены все
// Пример 1 Модуль управления
входные и выходные сигналы.
module control (c, k, cf, zf, jmp, ak);
Входные сигналы c, cf, zf по
input c, cf, zf; input [15:0] k; умолчанию будут назначены как
output [7:0] ak; reg [7:0] ak; output jmp; одноразрядные типа wire, а
24
выбрать из меню Assign/Device и указать семейство FLEX10K и тип устройства
AUTO.
Для записи данных, поданных на вход dx, используют один из этих адресов
(ax). Чтение должно выполняться асинхронно, а запись – синхронно по фронту
синхроимпульса.
26
шины. Данные на выходах мультиплексоров x и y появляются после подачи
адресов ax и ay. Запись данных, поданных на 8-разрядную шину данных dx,
выполняется синхронно в один из регистров в соответствии с адресом ax. Данные,
предназначенные для записи, подаются по шине dx параллельно на входы данных
всех регистров. Запись данных произойдет только в один из регистров, на вход
синхронизации которого в соответствии с адресом ax поступит синхросигнал с
дешифратора – демультиплексора d_mux.
27
функционирования демультиплексора. Так, например, ca = 1 при с = 1 и при ах =
= 0002.
28
//Пример 5. АЛУ двоеточия вместо ветви «Нет»
записано условие и следующий
module alu (x, y, k, cf, dm, q, cl, zl);
input [7:0 ] x; input [7:0] y; input cf; условный оператор и так далее.
input [15:0] k; input [7:0] dm;
output [7:0] q; reg [7:0] q; Для всех модулей, приведенных
output cl; reg cl; output zl; в виде описаний, необходимо создать
always
if ( k [15]==0) case (k [14:12]) проекты, выполнить компиляцию и
0: {cl,q}= {1'b0, k [7:0]}; создать символы, из которых строится
1: {cl,q} = x + k [7:0];
2: {cl,q} = x + k [7:0] + cf; схема блока РОН (рисунок 11) с
3: {cl,q} ={1'b0,( x & k [7:0])}; именем block_ron.
4:{cl,q} ={1'b0,( x | k [7:0])};
5: {cl,q} ={1'b0,( x ^ k [7:0])};
endcase else 5.5. Модуль АЛУ.
if (k[15:12] == 8) case (k [2:0])
0:{cl,q}={1'b0, y}; Модуль АЛУ совместно с
1:{cl,q} = x + y; блоком РОН выполняет все команды
2:{cl,q} = x + y+cf;
3:{cl,q} ={1'b0,( x & y)}; обработки данных. Кроме того, через
4:{cl,q} ={1'b0,( x | y)}; данный модуль выполняется команда
5: {cl,q} ={1'b0,( x ^ y)};
endcase else загрузки регистра данными из ОЗУ.
if (k[15:12] == 9) case (k [2:0])
0:{q,cl}={cf,x}; В соответствии с
1:{cl,q}={x,cf};
endcase else функциональной схемой процессора
if (k[15:12]==4'b1010)case (k [0]) входными сигналами АЛУ являются
0:q=dm; 1:q=x;
endcase код текущей команды k, сигналы x и y,
else q=0; представляющие собой содержимое
assign zl=(q==0);
endmodule регистров rx и ry блока РОН, флаг
переноса cf, сохраненный в регистре
после выполнения предыдущей
команды, а также данные с выхода
ОЗУ dm (Data Memory).
29
значениями входных сигналов. В схеме процессора этот сигнал через шину
данных d_bus подается на входы устройств памяти (регистры, ОЗУ) для
запоминания. В модуле АЛУ также формируются логические сигналы – признаки
нуля zl и переноса cl, полученные в результате выполнения текущей команды.
30
указанные сигналы объединены в 9-разрядный вектор {cl,q} для того, чтобы
использовать поведенческое описание операции суммирования.
31
в разрядах 2 – 0, используемая как селектор варианта во вложенном операторе
case.
32
Устройство синхронизации записи (пример 6) содержит подобно
дешифратору набор логических схем «И», на входы которых поступают
импульсы синхронизации и кодовые комбинации, соответствующие командам,
для которых должна выполняться запись. Выходами комбинационных схем
являются сигнал записи результата в РОН (wr_ron) и сигнал записи в память
(we_mem).
33
6. Разработка схемы процессора.
34
данных), LPM_WidthAd – 8 (разрядность адреса). В строке LPM_File
впоследствии необходимо указать путь к файлу инициализации памяти.
Выбранные сигналы определяют разрядность и емкость памяти, а также
асинхронное чтение из памяти, при котором изменение данных на выходе
происходит сразу же после смены адреса.
35
7. Задание А.
36
Временные диаграммы, отражающие результаты моделирования, позволяют
выполнить анализ работы программы. Они представлены на рисунке 13.
37
8. Задание Б.
№ Мнемоника Код
0 mvi r0, 00 0000
1 mvi r1, 00 0100
2 mvi r2, 08 0208
3 mov r1, r0 8100
4 add r1, r0 8101
5 addi r1, 04 1104
6 st (r0), r1 a101
7 addi r0, 01 1001
8 addi r2, ff 12ff
9 jz 0b f10b
a jmp 03 f003
b jmp 0b f00b
38
Программа содержит цикл. Счетчиком цикла является сигнал y
(содержимое регистра ry). Для упрощения программы выход из цикла не
предусмотрен. Количество повторений цикла, а, следовательно, и количество
элементов в массиве определяет параметр End Time (в данном примере это 10
мкс). Работу программы отображают временные диаграммы, приведенные на
рисунке 14.
39
Рисунок 15. Массив данных в ОЗУ.
40
9. Задание В.
0:{q,cl}={cf,x};
1:{cl,q}={x,cf};
2: {cl,q}=x + 1;
41
Заключение
42
Библиографический список
43