2 Алгоритм алу
АЛУ - блок который служит для выполнения арифметических и логических преобразований над словами, называемыми в этом случае операндами.
Введем обозначения. Пусть:
- Data [15..0] – входное слово A;
- W [15..0] – входное слово B;
- СOP[1..0] – управляющая команда;
- OVF – признак переполнения разрядной сетки;
- ZF – признак получения нулевого результата;
- RES [15..0] – выходное слово.
Примем, что старшим байтом является байт с наибольшим индексом. С выхода ПЗУ на вход АЛУ подается управляющее слово COP[1..0], которое определяет код операции. О перации реализуемые в АЛУ представлены в таблице 2.
Таблица 2.
-
СОР[1..0]
Операция
Действия АЛУ
00
Mov
RES[]=DATA[]
ZF=(RES[]==0)
01
CMP
(OVF,RES[])=(b”1”,DATA[]) – (b”0”,W[])
ZF=(RES[]==0)
10
SBB
(OVF,RES[])=(b”1”,DATA[])-(b”0,W[])-(x”0000”,OVF)
ZF=(RES[]==0)
11
SWAP
RES[]=(DATA[7..0],DATA[15..8])
ZF=(RES[]==0)
AHDL описание модуля АЛУ:
Subdesign alu
(
w[15..0]:input;
data[15..0]:input;
c,cop[1..0]:input;
zr,cr,res[15..0]:output;
)
begin
case cop[1..0] is
when 0 => res[]=data[];
when 1=>
(cr,res[])=(b"1",data[])-(b"0",w[]);
when 2 =>
(cr,res[])=(b"1",data[])-(b"0",w[])-(x"0000",c);
when 3 =>
res[]=(data[7..0],data[15..8]);
end case;
zr=(res[]==0);
end;
- Курсовой проект
- Задание на курсовой проект
- Аннотация
- Содержание
- 1 Структура цву
- 2 Алгоритм алу
- 3 Разработка основных функциональных блоков и узлов
- 4 Функциональная схема операционного автомата
- 5 Разработка управляющего автомата
- 6 Компиляция и верификация проекта в среде Quartus II
- Приложение в (справочное) ahdl-описание цву