Составители:
56
Декодер DC2 декодирует номер бита в унитарный 8 битовый код, если
бит С равен единице. DC1 также декодирует номер бита, полученный
инверсный унитарный код сбрасывает выбранный бит в регистре Wrk.
Восемь параллельных двухвходовых схем ИЛИ формируют слово, в
котором устанавливается значение бита С.
Функциональная микропрограмма:
0
WRK1=Code[PC++]; RAMM++;
1 if(WRK1&0x80) {WRK=Ram[WRK1&0xF8]; RAMM++;}
2 if(!(WRK1&0x80)) {WRK=Ram[0x20|(WRK1&0x78); RAMM++;}
3 If(PSW>>7) { WRK= WRK |(1<<(WRK1&0x7); RAMM++;}
4 If(!(PSW>>7)) {WRK= WRK | (~(1<<(WRK1&0x7)); RAMM++;}
5 if (!(WRK1&0x80)) {Ram[0x20|(WRK1& 0x78)=WRK; RAMM=0;}
6 if (WRK1&0x80) {Ram[WRK1&0xF8]=WRK; RAMM=0;}
Демонстрационный проект в MaxPlus состоит из следующих графических
файлов .gdf
– alb – схема всего проекта из 6 функциональных блоков
- 16mem – блок 16-разрядных регистров PC, DPTR и памяти Crom и Xdata
- reg8 - блок 8-разрядных регистров-Acc,B,Wrk1,Wrk,SP и памяти Ram
- bas - управление шинами BasB, BasC
- ralu - арифметико-логическое устройство
- bit - выполнение операций с битами и регистр PSW
- control - устройство управления CU
VII. Микропрограммирование в Си
7.1. Функциональное моделирование в Borland C++
Ниже приведено окно, отображающее элементы структурной схемы
рис.3.1.
Такты формируются в пошаговом режиме, в каждом такте выполняется
одна микрокоманда. Состояние регистров отображаются в окнах. Пример
программы моделирования с демонстрацией результатов в окне.
Страницы
- « первая
- ‹ предыдущая
- …
- 54
- 55
- 56
- 57
- 58
- …
- следующая ›
- последняя »