CATEGORII DOCUMENTE |
AUTOMATE
Realizarea microprogramata a unitatii de comanda a unui sistem numeric se bazeaza pe utilizarea unei memorii PROM. Cuvintele acestei memorii reprezinta fiecare o microinstructiune a programului. Ele sunt compuse in principal din cuvinte de test, de adresa si de comanda.
Se defineste o metoda de sinteza pentru UC a sistemelor numerice, dupa care se aplica diferitele etape ale acestei metode la sinteza UC a sistemului numeric care realizeaza impartirea a 2 numere binare.
1) Metoda
O UC microprogramata este de fapt o unitate de tratare a adreselor din memoria de microprogram. Metoda de sinteza a UC se aseamana cu cea a UE in privinta realizarii si se incheie printr-o etapa de programare.
Realizarea microprogramata a UC a unui sistem numeric care realizeaza un algoritm dat este caracterizata de repertoriul sau de microinstructiuni (microinstructiuni de test si comanda, microinstructiuni de test, microinstructiuni de comanda, microinstructiuni de apel de subprogram, microinstructiuni de retur dintr-un subprogram etc.). Ea se efectueaza plecand de la organigrama originara prin parcurgerea urmatoarelor etape:
Adaptarea eventuala a organigramei la repertoriul de microinstructiuni al UC alese;
Definirea variabilelor de comanda ale UE;
Redactarea programului originar si determinarea formatului si a campurilor microinstructiunilor;
Declararea registrilor si resurselor UC si descrierea functionala a acesteia cu ajutorul unei organigrame;
Construirea schemei UC si declararea eventuala a registrilor si resurselor aditionale;
Realizarea UC cu ajutorul unor componente combinationale si secventiale disponibile pe piata;
Adaptarea programului originar si programarea memoriei.
2) UC cu 2 microinstructiuni cu registru de adrese
2.1. Caiet de sarcini
Repertoriul de microinstructiuni constituie caietul de sarcini al UC. El permite determinarea formatului si a campurilor microinstructiunilor specificand totodata asocierea lor cu elementele organigramei.
Repertoriul propus in fig. 4 asociaza o microinstructiune de test binar fiecarui romb si o microinstructiune de comanda fiecarui dreptunghi. El se aplica direct organigramei originare a sistemului numeric care realizeaza impartirea a 2 numere binare (fig. 2 - seminar 1).
IF T = 0 THEN GOTO ADR0 ELSE GOTO ADR1 |
0 ADR T 1 ADR0 ADR1 |
DO OP AND GOTO ADR1 |
ADR OP ADR1 |
Figura 4.
2.2. Variabilele de comanda a UE
Fiecare dreptunghi al organigramei originare (fig. 2 - seminar 1) contine o operatie a UE. Tinand cont de resursele si de registri adoptati pentru realizarea acestei unitati, se pune problema definirii variabilelor sale de comanda, pentru ca ea sa execute ansamblul operatiilor organigramei. Valorile care trebuie sa li se atribuie sunt precizate in tabela operatiilor UE (fig. 5). Ele rezulta din tabelele operatiilor proprii resurselor si registrilor utilizati.
Operatie |
Descriere |
OP0 |
NOP |
OP1 |
F |
OP2 |
A 0; B X; C Y; F 0; I |
OP3 |
(A,B) (A,B) 2; B0 |
OP4 |
B0 |
OP5 |
A A + C |
OP6 |
A A - C |
OP7 |
A A + C; I I + 1 |
OP8 |
A A - C; I I + 1 |
Figura 5.
Op |
AA |
SHA |
LDA |
GB |
SB |
SHB |
LDB |
WSC |
JF |
KF |
CLRI |
LDI |
PI |
AAV |
OP0 | ||||||||||||||
OP1 | ||||||||||||||
OP2 | ||||||||||||||
OP3 | ||||||||||||||
OP4 |
|
|||||||||||||
OP5 | ||||||||||||||
OP6 | ||||||||||||||
OP7 | ||||||||||||||
OP8 |
Figura 6.
Fiecare romb al organigramei corespunde unei instructiuni de test. In cursul executiei unei asemenea instructiuni, UE trebuie sa ramana inactiva. Ea efectueaza atunci o instructiune neutra NOP. Pentru a simplifica mai mult conceptia UC, admitem in plus ca toate variabilele sale de iesire (adica toate variabilele de comanda ale UE) sunt egale cu 0 in timpul unei instructiuni de test. Tabela operatiilor UE (fig. 5 si 6) contine deci in mod obligatoriu operatia NOP pe langa celelalte operatii deduse din organigrama.
Determinarea ansamblului minimal al variabilelor distincte C care trebuie sa fie generate de UC se face cu ajutorul unui graf de compatibilitati.
AA
AAV SHA
PI LDA
CLRI SB
KF SHB
JF LDB
WSC
Figura 7.
Procedam dupa cum urmeaza:
a. Cautam variabilele de comanda care pot ramane constante. Atribuirea unor valori particulare conditiilor indiferente din tabela operatiilor UE (fig. 5 si 6) reduce 2 variabile la starea de constante:
GB = 0
LDI = 0
b. Fiecare variabila care ramane va constitui un nod in graf.
c. Compatibilitatea a 2 variabile (faptul ca au valori egale pentru fiecare operatie in care sunt ambele specificate) e indicata printr-un arc neorientat care uneste cele 2 noduri.
d. Un poligon complet = un ansamblu de noduri care sunt toate conectate 2 cate 2.
e. Ansamblul minimal al poligoanelor complete corespunde ansamblului minimal al variabilelor distincte C. Cele 2 ansambluri minimale de poligoane complete din graful de compatibilitati din fig. 7 determina 2 ansambluri minimale de 8 variabile distincte.
C0 = AAV C0 = PI
C1 = PI C1 = JF
C2 = JF C2 = WSC = KF = CLRI
C3 = WSC = KF = CLRI C3 = LDB
C4 = LDB C4 = SB = AAV
C5 = LDA C5 = LDA
C6 = SHA = SHB C6 = SHA = SHB
C7 = AA = SB C7 = AA
Alegem prima solutie. In tabelul de mai jos sunt date valorile hexazecimale corespunzatoare cazului cand toate conditiile indiferente sunt alese 0.
Operatie |
C7:0 |
OP0 | |
OP1 | |
OP2 | |
OP3 | |
OP4 | |
OP5 |
A0 |
OP6 |
A1 |
OP7 |
A2 |
OP8 |
A3 |
Figura 8.
2.3. Programul originar si definirea microinstructiunilor
Redactarea acestui program se face transcriind organigrama originara a UC (fig. 2 - seminar 1) cu ajutorul repertoriului de microinstructiuni. Programul este cel ce va fi inscris in PROM.
Fiecare din etichetele NEXT specifica adresa microinstructiunii care ocupa linia urmatoare.
WAIT: DO OP1 AND GOTO NEXT
IF E = 0 THEN GOTO WAIT
ELSE GOTO EXECUTE
EXECUTE: DO OP2 AND GOTO NEXT
DO OP3 AND GOTO NEXT
DO OP6 AND GOTO LOOP
LOOP: IF A7 = 0 THEN GOTO SUBC
ELSE GOTO ADDC
ADDC: DO OP3 AND GOTO NEXT
DO OP7 AND GOTO TEST
TEST: IF I7 = 0 THEN GOTO LOOP
ELSE GOTO NEXT
IF A7 = 0 THEN GOTO INCB
ELSE GOTO NEXT
DO OP5 AND GOTO WAIT
SUBC: DO OP4 AND GOTO NEXT
DO OP3 AND GOTO NEXT
DO OP8 AND GOTO TEST
INCB: DO OP4 AND GOTO WAIT
Formatul si campurile celor 2 microinstructiuni din fig. 9 este determinat de:
numarul microinstructiunilor din repertoriu;
numarul variabilelor de test ale organigramei;
ansamblul minimal de variabile de comanda;
dimensiunea programului originar.
0 TEST ADR0 ADR1
12 11 10 9 8 7 6 5 4 3 2 1 0
Figura 9. Microinstructiunile
1 OP ADR1
12 11 10 9 8 7 6 5 4 3 2 1 0
Microinstructiunea de test binar este definita de un bit de cod MC = 0, un camp TEST pentru selectia variabilei de test continuta in romb si 2 campuri ADR0 si ADR1 care dau, respectiv, adresa instructiunii urmatoare pentru valoarea 0 si pentru valoarea 1a variabilei de test.
Microinstructiunea de comanda este definita de un bit de cod MC = 1, un camp OP care da starea variabilelor de comanda a UE pentru efectuarea operatiei continute in dreptunghi si un camp ADR1 care da adresa microinstructiunii urmatoare.
2.4. Declararea si descrierea functionala
Pentru a executa cele 2 microinstructiuni din fig. 9, UC face apel la:
registru: AR1x4 - ca registru de adresa (Address Register) al PROM-ului
resurse: M15x13 - memorie de microprogram;
T1x1 - multiplexor de test;
C1x8 - registru pentru anularea variabilelor de comanda la iesire.
Organigrama din fig. 10 descrie functionarea UC pentru fiecare din microinstructiuni, in functie de codul lor MC si pentru initializarea efectuata atunci cand variabila I = 1.
I, MC
00 01 1
T AR M(AR)ADR1 AR : = 0
C = M(AR)OP C =
AR M(AR)ADR1
C = 0
AR M(AR)ADR0
C = 0
M(AR)ADR1 - Continutul locatiei din memoria M de la adresa data de AR, partea ADR1 din aceasta locatie
Figura 10.
2.5. Schema si declaratie aditionala
Pe langa elementele anterioare schema UC mai are nevoie de:
AM1x4 - MUX de adresa, pentru a selecta una sau cealalta dintre cele 2 adrese furnizate de memorie (fig. 11).
M
I7 A7 E 12 0
7-4 3-0 11-4
T AM C
3 0 7 0
(selecteaza AM) AR
3 0
Figura 11.
2.6. Realizarea
Tabelul din figura 12 exprima operatiile descrise in organigrama UC tinand cont de AM. Realizarea UC se reduce la alegerea unui ansamblu de registri si resurse capabile sa execute aceste operatii.
Operatie |
Descriere |
OP1 |
AR AM; AM = M(AR)ADR1; C = 0 |
OP2 |
AR AM; AM = M(AR)ADR0; C = 0 |
OP3 |
AR AM; AM = M(AR)ADR1; C = M(AR)OP |
OP4 |
AR : = 0; AM = ; C = |
Figura 12.
AR - se foloseste registru de deplasare bidirectional (74194).
R A B C D L
CK
S0
S1 74194
CLR
QA QB QC QD
Operatie |
Descriere |
CLR |
S1 |
S0 |
CLEAR |
(QA, QB, QC, QD) | |||
HOLD |
(QA, QB, QC, QD) (QA, QB, QC, QD) | |||
SHIFT RIGHT |
(QA, QB, QC, QD) (R, QA, QB, QC) | |||
SHIFT LEFT |
(QA, QB, QC, QD) (QB, QC, QD, L) | |||
LOAD |
(QA, QB, QC, QD) (A, B, C, D) |
AM si C - se foloseste MUX 2:1 pe 4 biti (74157) si 2 circuite SI cu 2 intrari (7408).
M - se folosesc 2 EPROM de 2048x8 biti (2516).
A = (A10, ., A0)
S 2516
PD
Q = (Q8, ., Q1)
Operatie |
Descriere |
PD |
S |
READ |
Q = EPROM(A) | ||
3-STATE |
Q = | ||
3-STATE POWER DOWN |
Q = |
Conform figurilor 10 si 12 si tinand cont de registrul si resursele alese vom defini starea variabilelor de comanda pentru executia fiecareia dintre operatii (figura 13).
Operatie |
CLRAR |
S1AR |
S0AR |
GAM |
SAM |
AC |
I |
MC |
T |
OP1 | |||||||||
OP2 | |||||||||
OP3 | |||||||||
OP4 |
Figura 13.
Valorile corespunzatoare variabilei de initializare I, bitului de cod MC si variabilei de test T conduc la urmatoarele relatii logice:
CLRAR = I
S1AR = S0AR = 1
GAM = 0
SAM = MC + T
AC = MC
toate fiind functii de I, MC si T.
Multiplexorul de test T selecteaza variabilele E, A7 si I7 relative la microinstructiunile de test binar ale programului. Aceste operatii apar in detaliu in tabelul din figura 14, care precizeaza starea variabilelor de comanda ale MUX 8:1 de tip (74151), utilizat pentru efectuarea lor.
D0
D1
D2 Y
D3
D4 W = Y
D5
D6 74151
D7
A B C S
Dupa cum se vede din codificarea utilizata in tabel se pune in corespondenta starea campului TEST a microinstructiunii cu cea a variabilelor AT si BT ale MUX.
Operatie |
Descriere |
ST |
CT |
BT |
AT |
TEST |
SELECT E |
T = E | |||||
SELECT A7 |
T = A7 | |||||
SELECT I7 |
T = I7 |
Figura 14.
2.7. Adaptarea si programarea
Adaptarea se reduce la adresare, adica la numerotarea in hexazecimal a microinstructiunilor plecand de la 0. Atribuind adresa 0 microinstructiunii initiale a programului originar si numerotand microinstructiunile in ordine, obtinem un program adaptat posibil pentru sistemul numeric dat.
DO OP1 AND GOTO 1
IF E = 0 THEN GOTO 0
ELSE GOTO 2
DO OP2 AND GOTO 3
DO OP3 AND GOTO 4
DO OP6 AND GOTO 5
IF A7 = 0 THEN GOTO B
ELSE GOTO 6
DO OP3 AND GOTO 7
DO OP7 AND GOTO 8
IF I7 = 0 THEN GOTO 5
ELSE GOTO 9
IF A7 = 0 THEN GOTO E
ELSE GOTO A
A DO OP5 AND GOTO 0
B DO OP4 AND GOTO C
C DO OP3 AND GOTO D
D DO OP8 AND GOTO 8
E DO OP4 AND GOTO 0
In figura 15 se prezinta programul in hexazecimal al memoriei M a UC pentru situatia in care campul nedefinit ( ) al microinstructiunii de test binar este ales egal cu 0. Redactarea acestui program se realizeaza pe baza programului adaptat al sistemului numeric, tinand cont de formatul microinstructiunilor (fig. 9), codificarea variabilelor de test (fig. 14) si codificarea variabilelor de comanda (fig. 8).
Dimensiunea programului este de 15x13 biti = 195 biti.
Adresa (in hexa) |
Continut (in hexa) |
1A15 |
|
01B6 |
|
1A28 |
|
01EA |
|
A |
1A00 |
B |
190C |
C |
140D |
D |
1A38 |
E |
Figura 15.
TEMA: Sa se deseneze schema unitatii de comanda UC cu 2 microinstructiuni cu registru de adresa.
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 1680
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved