Моделирование цифровых устройств
Содержание
Введение
Целью
данного курсового проекта
Задание
Разработать
цифровое устройство, выполняющее заданную
обработку данных. В памяти, начиная
с адреса 00, записан массив из 16 однобайтовых
чисел со знаком, представленных в дополнительном
коде. Подсчитать количество чисел, удовлетворяющих
условию х1, результат записать в память
по адресу 1016. Числа, удовлетворяющие
условию х2, модифицировать и записать
в память по исходному адресу.
Таблица
1
| Бригада | 1 |
| x1 | 0 |
| x2 | 1 |
| Модиф. | 0 |
- Условие x1=1 для следующих чисел:
число
>0
- Условие x2=1 для следующих чисел:
число
кратно 4
- Модификация данных:
представить число в обратном коде
Структура цифрового устройства обработки данных
Цифровое устройство обработки данных (процессор) можно представить в виде системы, состоящей из операционного устройства (ОУ) и управляющего устройства (УУ) (Рис.1). Операционное устройство принимает входные данные, выполняет их обработку в соответствии с кодом операции (КОП) и формирует выходные данные. Оно содержит функциональные блоки, выполняющие обработку входных данных, предусмотренную заданным алгоритмом, и выдачу выходных данных. Управляющее устройство генерирует последовательность управляющих сигналов Y на основе анализа состояния устройства и признаков результатов X, поступающих из ОУ. Моменты выдачи управляющих сигналов определяют импульсы частоты синхронизации C.
Любая
операция, выполняемая в ОУ, описывается
микропрограммой, реализуемой одной,
или несколькими
Архитектура
операционного устройства
Архитектура, или регистровая модель операционного устройства отображает устройства, способные воспринимать, хранить и выдавать слово информации. Такими элементами являются регистры и память. Связи между элементами и комбинационные схемы, выполняющие логические операции, в архитектуре не изображаются. Они учитываются при составлении функциональной схемы.
Рассмотрим обобщенную архитектуру применительно к заданиям проекта.
Память. Для хранения массива исходных данных необходимо оперативное запоминающее устройство ОЗУ, с разрядностью – 8 бит, емкостью – не менее 17 ячеек. Емкость может быть увеличена с учетом потребностей устройств, работающих в системе совместно с разрабатываемым устройством.
Счетчик адреса. Для адресации ячеек памяти необходим счетчик адреса разрядности К, соответствующей равенству 2К=N, где N – емкость памяти. При N=256 получим К=8.
Счетчик чисел. По условию задачи в ОА необходимо выполнить подсчет количества чисел, удовлетворяющих заданному условию, при этом максимальное число равно 16. Учитывая, что результат подсчета будет записываться в память с байтовой организацией, выбираем счетчик с разрядностью 8 бит. На счетчик чисел необходимо подать сигналы, обеспечивающие режимы сброса и инкремента.
Алгоритм решения задачи
Обобщенная схема алгоритма для задач проекта приведена на рис. 3. Каждой операторной вершине алгоритма при выполнении будет соответствовать один такт, в котором выдается управляющий сигнал (команда). Начальной вершине q0 соответствует сигнал начального сброса Y0. Микрооперации начального сброса регистра адреса и счетчика чисел объединены в одну микрокоманду, так как эти действия выполняются разными устройствами и могут быть выполнены одновременно.
По команде Y1 выполняется чтение кода числа из памяти в регистр данных, в котором этот код будет сохраняться при выполнении его обработки. Если устройство памяти имеет асинхронный вывод и буферный регистр на выходе, то сигнал Y1 на устройство памяти не подается, но такт чтения числа необходим.
ТактY2 предусмотрен для задержки выполнения алгоритма на 1 такт, что является гарантией готовности данных, прочитанных из памяти.
Проверка условия Х1 определяет необходимость инкремента счетчика чисел, если условие выполняется.
При Х1=0 инкремент счетчика не выполняется, соответствующая команда Y3 не выдается и такт попускается.
Условие X2 определяет необходимость выполнения модификации числа и записи его в память по исходному адресу по команде Y4.
Такт Y4 необходим для записи числа в память, а для выполнения модификации, которую выполняет простейшее АЛУ комбинационного типа с высоким быстродействием, дополнительный такт не нужен.
В такте Y5 содержимое счетчика адреса увеличивается на 1. выполняется подготовка к циклической обработке следующего числа. Команда Y6 - пропуск одного такта для формирования признака Х3.
Условие выхода из цикла обработки чисел Х3 принимает значение 1, когда адрес, полученный после инкремента, выходит за диапазон адресов, в которых хранятся числа массива.
В такте Y7 выполняется запись кода, полученного в счетчике чисел, в память. Работа алгоритма заканчивается.
Функциональная схема операционного устройства
Функциональная схема (рис.4.) отображает набор функциональных устройств, связи и управляющие сигналы. Набор функциональных узлов ОУ производится в соответствии с заданием и архитектурой.
Память имеет два режима работы: чтение и запись. Выбор режима выполняет управляющий сигнал WE (Write Enable), равный «0» для режима чтения и «1» – для записи. ОЗУ имеет 8-разрядные шины данных - данных записи- DI (Data Input) и данных чтения- DO (Data Output). Шина адреса A имеет 9 разрядов, что обеспечивает адресное пространство ОЗУ, равное 512 байт.
Счетчик адреса
8-разрядный, должен обеспечивать режимы
начального сброса
сигналом Y0 и инкремента адреса (+1) сигналом Y5. Код адреса подается также на комбинационную схему формирования признака конца массива Х3. В общем случае необходим режим параллельной загрузки в счетчик фиксированного адреса, по которому следует записать код из счетчика чисел. В задании на проектирование предусмотрен упрощенный вариант, когда запись кода производится в ячейку, адрес которой на 1 больше последнего адреса массива.
Счетчик чисел. Разрядность – 8, хотя максимальное количество чисел 16. Выбор разрядности счетчика обусловлен байтовой организацией памяти. На счетчик чисел поданы сигналы, обеспечивающие режимы сброса Y0 и инкремента Y3.
Мультиплексор – комбинационная схема, управляемая сигналом Y4. При Y4=0 (по умолчанию) в качестве данных записи подключается выход АЛУ, а при Y4=1 – код счетчика чисел N.
АЛУ – комбинационная схема, выполняющая модификацию данных, поступающих по шине DO и выдачу результата на шину D. В блоке АЛУ также содержится формирователь признаков числа Х1 и Х2, входами которого являются биты шины DO.
Преобразование
данных в АЛУ выполняется постоянно
и безусловно. На шине D всегда присутствуют
данные, полученные путем модификации
сигналов с шины DO. Модифицированные данные
при Х2=1 записываются в память, а при Х2=0
- не используются.
Синтез управляющего автомата
Цифровой
автомат – это устройство, которое
содержит элементы памяти и
имеет некоторое конечное
В проекте будет использован автомат Мура. В автомате Мура за состояния принимают исполняемые операторы графа, выходные сигналы при этом получаются как функции состояний. В автомате Мура каждому состоянию графа qJ соответствует команда yJ. Представим микропрограмму разрабатываемого устройства в виде графа. Каждой микрокоманде ставится в соответствие состояние автомата, отображаемое вершиной графа.
Начало и конец микропрограммы отображаются начальным состоянием q0. В результате получим циклический автомат, допускающий повторение рабочего цикла. Условия перехода из одного состояния в другое записываются на дугах графа в виде конъюнкций входных сигналов, принимающих единичное значение, когда данный переход происходит. При безусловном переходе дуга графа отмечается константой 1.
Схема управляющего автомата должна содержать N триггеров, при этом 2 N ≥ n, где n – количество состояний автомата. Для рассматриваемого примера N=3. При построении схем на ПЛИС в качестве элемента памяти автомата предпочтение отдают D-триггеру.
Функция переходов для D-триггера имеет вид: Q(t+1)=D(t). Состояние, в которое переходит триггер в (t+1)-м такте определяется входным сигналом в предыдущем (t) такте.
По графу составим описание микропрограммы в форме таблицы, где: Q(t) – исходное состояние автомата; Q(t+1) – следующее состояние автомата; X– условия перехода; D2 D1 D0 – двоичный код, подаваемый на входы триггеров, равный коду состояния Q(t+1), в которое должен перейти автомат в следующем такте. Таблица 1 упорядочена по значениям Q(t+1).
Таблица переходов
С целью
упрощения настройки схемы
Каждому состоянию QJ, отображенному 3-разрядным двоичным кодом, однозначно соответствует сигнал YJ, представленный в виде 8-разрядного единичного кода. При формировании функций возбуждения, подаваемых на входы D, целесообразно использовать сигналы Y.
Анализируя столбцы таблицы для d0, d1, d2, составим функции возбуждения триггеров.
По приведенным выражениям составляется схема второй ступени дешифратора функций возбуждения.
Кроме сигналов Y управляющий автомат должен выдать сигнал управления записью в память WE. В соответствии с алгоритмом этот сигнал соответствует дизъюнкции:
Разработка цифрового устройства в графическом редакторе
Разработка и моделирование УА
Рисунок 7 - Схема управляющего автомата
Тестирование управляющего автомата
Для
тестирования управляющего автомата необходимо
по графу составить таблицу изменений
состояний автомата при всех возможных
комбинациях управляющих сигналов. Подчеркнуты
состояния, повторяющиеся циклически.
Последовательность состояний, формируемая
при х1=1, х2=1 и х3=0 (строка выделена) соответствует
основному циклу алгоритма, и будет использоваться
при отладке операционного устройства.
Таблица тестирования управляющего автомата
| х3 х2 х1 | Q | Y |
| 0 0 0 | 0-1-2-5-6-1- | 01-02-04-20-40-02- |
| 0 0 1 | 0-1-2-3-5-6-1- | 01-02-04-08-20-40-02- |
| 0 1 0 | 0-1-2-4-5-6-1- | 01-02-04-10-20-40-02- |
| 0 1 1 | 0-1-2-3-4-5-6-1- | 01-02-04-08-10-20-40-02- |
| 1 0 0 | 0-1-2-5-6-7-0- | 01-02-04-20-40-80-01- |
| 1 0 1 | 0-1-2-3-5-6-7-0- | 01-02-04-08-20-40-80-01- |
| 1 1 0 | 0-1-2-4-5-6-7-0- | 01-02-04-10-20-40-80-01- |
| 1 1 1 | 0-1-2-3-4-5-6-7-0- | 01-02-04-08-10-20-40-80-01- |
Рисунок 8 – Тестирование управляющего автомата
Разработка и моделирование АЛУ
Рисунок
9 – Схема АЛУ
Рисунок
10 – Тестирование АЛУ
Разработка и моделирование Device 1
Рисунок
11 – Device 1
Рисунок
12 – Моделирование Device 1
Разработка и моделирование Device 2
Рисунок
13 – Device 2
Рисунок 14 – Массив чисел для тестирования
Рисунок
15 – Тест Device 2, фрагмент 1
Рисунок
16 – Тест Device 2, фрагмент 2
Рисунок
17 – Тест Device 2, фрагмент 3
Рисунок 18 - Массив чисел после тестирования
Описание устройства на языке Verilog
Управляющий автомат
module aum_ver(c,x1,x2,x3,we,q,y);
input c,x1,x2,x3;
output we;
output [2:0]q;
reg [2:0]q;
output [7:0]y;
wire d0,d1,d2;
assign y[0]=~q[2]&~q[1]&~q[0];
assign y[1]=~q[2]&~q[1]&q[0];
assign y[2]=~q[2]&q[1]&~q[0];
assign y[3]=~q[2]&q[1]&q[0];
assign y[4]=q[2]&~q[1]&~q[0];
assign y[5]=q[2]&~q[1]&q[0];
assign y[6]=q[2]&q[1]&~q[0];
assign y[7]=q[2]&q[1]&q[0];
assign d0=y[2]&~x1&~x2|y[0]|y[4]|y[6]
assign d1=y[2]&x1|y[1]|y[5]|y[6]&x3;
assign d2=y[2]&~x1|y[3]|y[4]|y[5]|y[
assign we=y[4]|y[7];
always @(posedge c)
begin
if(d0==1) q[0]=1;
else q[0]=0;
if(d1==1) q[1]=1;
else q[1]=0;
if(d2==1) q[2]=1;
else q[2]=0;
end
endmodule
Таблица тестирования управляющего автомата
| х3 х2 х1 | Q | Y |
| 0 0 0 | 0-1-2-5-6-1- | 01-02-04-20-40-02- |
| 0 0 1 | 0-1-2-3-5-6-1- | 01-02-04-08-20-40-02- |
| 0 1 0 | 0-1-2-4-5-6-1- | 01-02-04-10-20-40-02- |
| 0 1 1 | 0-1-2-3-4-5-6-1- | 01-02-04-08-10-20-40-02- |
| 1 0 0 | 0-1-2-5-6-7-0- | 01-02-04-20-40-80-01- |
| 1 0 1 | 0-1-2-3-5-6-7-0- | 01-02-04-08-20-40-80-01- |
| 1 1 0 | 0-1-2-4-5-6-7-0- | 01-02-04-10-20-40-80-01- |
| 1 1 1 | 0-1-2-3-4-5-6-7-0- | 01-02-04-08-10-20-40-80-01- |
Рисунок 19 – Схема управляющего автомата
Рисунок
20 – Тестирование управляющего автомата
АЛУ
module alu_ver(in,out,x1,x2);
input [7:0]in;
output x1,x2;
output [7:0]out;
assign x1=((in[7]==0)
& (in[6]|in[5]|in[4]|in[3]|in[2]
assign x2=((in!=0) & ~(in[0]|in[1]))? 1:0;
assign out[7]=in[7];
assign out[6]=(in[7]==1)? ~in[6]:in[6];
assign out[5]=(in[7]==1)? ~in[5]:in[5];
assign out[4]=(in[7]==1)? ~in[4]:in[4];
assign out[3]=(in[7]==1)? ~in[3]:in[3];
assign out[2]=(in[7]==1)? ~in[2]:in[2];
assign out[1]=(in[7]==1)? ~in[1]:in[1];
assign out[0]=(in[7]==1)? ~in[0]:in[0];
endmodule
Рисунок
21 – Схема АЛУ
Рисунок 22 - Тестирование АЛУ
Счетчик
module count8_ver(c,en,clr,q);
input c,en,clr;
output [7:0]q;
reg [7:0]q;
always @(posedge c)
if (clr==0 & en==1) q=q+1'b1;
else if (clr==1) q=0;
endmodule
Рисунок
23 – Схема счетчика
Рисунок
24 – Моделирование счетчика
Мультиплексор
module mux_ver(sel,a,b,y);
input [7:0]a,b;
input sel;
output [7:0]y;
assign y=(sel==1)? a:b;
endmodule
Рисунок
25 – Схема мультиплексора
Рисунок
26 – Моделирование мультиплексора
Схема и моделирование устройства описанного на Verilog
Рисунок
27 – Схема устройства Device_ver
Рисунок
28 – моделирование Device_ver, фрагмент 1
Рисунок
29 – моделирование Device_ver, фрагмент 2
Рисунок
30 – моделирование Device_ver, фрагмент 3
Рисунок 31 – моделирование Device_ver, фрагмент 4
Рисунок 32 - Массив чисел после тестирования
Заключение
В данной курсовой работе мной была описана цифровая схема, на языке описания цифровых устройств Verilog. В ходе выполнения курсовой работы мною были получены базовые знания языка Verilog, навыки работы со средой Max Plus 2, навыки описания микросхем на языке Verilog. Знания и навыки, полученные в результате выполнения работы, являются очень ценными и позволяют работать программистом в области описания цифровых схем.
Список использованной литературы
1. Е.
П. Угрюмов Цифровая
2. Ю. В. Новиков Основы цифровой схемотехники. Базовые элементы и схемы.
Методы проектирования – М:Мир,2001 – 379с.
3. В. Л. Шило Справочник. Популярные цифровые микросхемы.
4. Под ред. Б. Н. Файзулаева, Б. В. Тарабрина Справочник. Применение инте-
гральных
микросхем в электронной

- Моделирование школьной формы
- Моделирование экономических процессов
- Моделирование экономических процессов
- Моделирование экономических процессов
- Моделирование экономических процессов
- Моделирование экономических процессов
- Моделирование экономических процессов
- Моделирование хозяйственной деятельности и ведение бухгалтерского учета на предприятии ООО «Элком-Оптим»
- Моделирование хозяйственной деятельности. Постановка и ведение бухгалтерского учета на примере ООО «Итальянский десерт»
- Моделирование хозяйственных операций в ООО « Золушка»
- Моделирование хозяйственных операций и подтверждение их бухгалтерскими проводками
- Моделирование цен в нефтедобывающей отрасли с применением информационных технологий
- Моделирование цен неликвидных акций на финансовых рынках
- Моделирование цепей поставок на примере компании «Кока-Кола»