Составители:
61
7.3. Принципы кодирования микрокоманд в Си
Если микропрограмма проверена, то предполагается, что символическое
описание структурной микрокоманды корректно и микрокоманда может быть
использована для обратного кодирования и формирования файлов загрузки
блоков постоянной памяти, используемых в управляющем устройстве.
Процедура кодирования – наиболее трудоемкий этап при переходе к
реализации микропрограммы в СU.
Фрагмент микропрограммы,
совмещающей моделирование и кодирование, для
команды mov a,ri в BorlandC++.
switch(RAMM&0x7) //номер такта
{ case 0: RA=ACC, RB= Ram[(PSW&0x18)|(IR&0x3)];RAMM++; break;
MicroCodMem(“BasC=ACC, BasB=RAM, BasA=IR, WrB=RA,WrC=RB, RAMM++, WrB,WC”);
case 1: ACC=RA+RB, PSWC(«add»); RAMM++; break;
MicroCodMem(“ BasB=ALU, WrB=ACC, ALU=add, WrSFR, RAMM++, WB “);
case 2: Ram[Acc]=ACC; RAMM++; break;
MicroCodMem(“BasC=ACC, WrC=Ram, BasA=Acc, RAMM++,WC”);
case 3: Ram[Psw]=PSW; RAMM=B;
MicroCodMem(“BasC=PSW, WrC=SFR, BasA=Psw, RAMM++,Wc”);
}
break;
В каждом такте выполняется функциональная микрокоманда и функция
кодирования MicroCodMem( “ “ ), параметром которой является структурная
микрокоманда.
Простым лексическим разбором идентифицируются поля микрокоманды
и символические описания соответствующих кодов микроопераций. Например,
в тексте “BasC=ACC” указано имя поля микрокоманды BasC и ACC- признак
кода микрооперации.
Если представить CU рис.5.2. как многоуровневое обращение к памяти
DCM[ROMM[ADC[IR]]],
то функция кодирования
позволяет сформировать код микрокоманды в DCM и
найти ее адрес в DCM. Этот адрес является кодом функциональной
микрокоманды и хранится в ROMM по известному на стадии исполнения
адресу ADC[IR].
Таким образом, при отладке тестов может быть в любой момент
выполнено полное кодирование микропрограммы в CU и подготовлены файлы
содержимого элементов памяти для MaxPlus.
В разделе 7.1 приведены фрагменты программы моделирования и
кодирования в BorlandC++.
Страницы
- « первая
- ‹ предыдущая
- …
- 59
- 60
- 61
- 62
- 63
- …
- следующая ›
- последняя »