CATEGORII DOCUMENTE |
Aeronautica | Comunicatii | Electronica electricitate | Merceologie | Tehnica mecanica |
Proiectarea si simularea in CircuitMaker a unui interpretor de comenzi pentru limbajul L1
1. Obiectivele lucrarii
Dupa parcurgerea acestei lucrari de laborator, studentii vor fi capabili sa proiecteze un automat special, capabil sa interpreteze comenziile specifice limbajului L1. Iar pentru implementarea in Circuit Maker este nevoie ca sa fie parcursi o serie de pasi care presupun realizarea si interpretarea unor organigrame, codificarea variabilelor, realizarea unui microprogram, etc.
2. Desfasurarea lucrarii
Despre Limbajul L1:
Acest limbaj este interpretat de un automat special si anume de o masina de decizie binara. L1 este alcatuit din doua instructiuni:
- o instructiune de test,
definita printr-o adresa ADR si o variabila de test xi fiecare asemenea microinstructiune are o intrare si doua iesiri care
conduc la urmatoarele instructiuni de executat: una la , cand
, cealalta la
, cand
. Acest proces poate fi scris sub forma simbolica
(mnemonica):
IF xi THEN ADR1 ELSE ADR0 |
- o instructiune de asignare este definita
printr-o adresa si o asignare de tip
sincron
. Prin
este desemnat un
registru, iar
este o combinatie
binara de iesire. Fiecare asemenea microinstructiune are o intrare si o iesire
catre adresa instructiunii urmatoare. Mnemonica acestei instructiuni este:
DO REG ← OUT GO TO ADR + |
Figura 13.1 Instructiunile limbajului L1
Realizarea unui comparator pentru doua numere binare de 2 biti:
Figura 13.2 Secventierea ciclului pentru un comparator binar
Pentru a scrie microinstructiunile in memorie trebuie sa avem:
− codificari pentru variabila de test si pentru asignarile
;
− o organizare a elementelor componente din fiecare microinstructiune. Aceasta va fi reprezentata de formatul instructiunii si consta dintr-un anumit numar de campuri.
O codificare minimala binara a celor 4
variabile de test necesita 2 biti
pentru a obtine
indicele (indexul)
, ca in Figura 13.4.
Combinatiile de iesire pot fi reprezentate cu
cel putin 2 biti, dar vom alege o reprezentare 1 din 3 cu 3 biti,
(Figura 13.5).
Cele 9 instructiuni ale programului necesita
cel putin 4 biti de adrese . Trebuie sa distingem cele 2 tipuri de microinstructiuni ale
limbajului L1, iar aceasta se poate
face cu ajutorul codului operatiei
sub forma unui singur
bit
:
identifica o
instructiune de test iar
o asignare.
Acum, putem defini un format pentru fiecare instructiune, ca in Figura 13.6. Utilizand acest format, microprogramul (in binar) pentru comparator este prezentat in Figura 13.7.
Necesitatea ca microinstructiunile sa fie executate de o masina
proiectata special impune anumite restrictii ale formatelor. Astfel, pentru
exemplul nostru, cele doua tipuri de microinstructiuni trebuie sa aiba aceeasi
lungime (11 biti) si trebuie sa existe corespondente intre locatiile campurilor
( si
trebuie sa fie in
aceleasi pozitii in memorie). Rezulta ca, anumiti biti nu vor fi definiti si
vor corespunde variabilelor de tip 'don't care' ( − ). Daca
pentru variabile 'don't care' se considera valoarea 0, atunci
microprogramul convertit in hexazecimal pentru comparatorul anterior este cel
din Figura 13.8.
Aplicatii
a) Sa se implementeze in CircuitMaker un comparator pentru doua numere binare de 2 biti folosind interpretorul pentru limbalul L1 descris in Figura 13.9.
Obs. Tabelul operatiilor pentru INT1 este prezentat in Figura 13.10
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 1445
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2025 . All rights reserved