Sunteți pe pagina 1din 10

Ministerul Educaţiei și Cercetării al Republicii Moldova

Universitatea Tehnică a Moldovei

Departamentul Informatică și Ingineria Sistemelor

RAPORT
Lucrarea de laborator nr. 3
la AA

A efectuat: Preguza Cristian

st. gr. CR-201

A verificat:

Lector Universitar Cărbune Viorel

Chişinău 2023
Lucrarea de laborator nr. 3

1. SCOPUL LUCRĂRII

Proiectarea, implementarea sinteza și simularea arhitecturii Multiple-Bus a unității


artmetico-logice orientate pe acumulator și a setului specific de instrucțiuni, utilizând una din
metodele de proiectare oferite de mediul de proiectare Intel Quartus Prime.

2. DESFĂȘURAREA LUCRĂRII

1. Se va modifica proiectul din lucrarea de laborator Nr. 2 în care se vor implementa


instrucțiunile LD, ST, BRN, în baza arhitecturii Multiple-Bus a unității aritmetico-
logice orientate pe acumulator, conform codurilor instrucțiunilor prezentate în
Tabelul 1.
2. Se vor implementa instrucțiunile opționale (Tabelului 2), în baza arhitecturii
Multiple-Bus a unității aritmetico-logice orientate pe acumulator.
3. Se va compila circuitul implementat și se va analiza reprezentarea grafică a
rezultatului compilării RTL (register trasfer level).
4. Se va construi diagrama de timp pentru fiecare instrucțiune.

3. Circuitul pentru arhitectura cu 3 magistrale realizată în Quartus.

Figura 1. Circuitul pentru arhitectura cu 3 magistrale (Multiple-Bus)

4. Codul programului pentru unitatea aritmetică logică


Varianta propusă spre realizare

library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.numeric_std.all;
entity UAL_PART is
generic( OPCODE_WIDTH : integer := 4;
DATA_WIDTH : integer := 8);
port( OPCODE : in std_logic_vector(OPCODE_WIDTH-1 downto 0);
OPERAND_A : in std_logic_vector(DATA_WIDTH-1 downto 0);
OPERAND_B : in std_logic_vector(DATA_WIDTH-1 downto 0);
RESULT : out std_logic_vector(DATA_WIDTH-1 downto 0));
end UAL_PART;

architecture UAL_arch of UAL_PART is


signal INT_OPCODE : integer;
signal INT_OPERAND_A : integer;
signal INT_OPERAND_B : integer;
signal INT_RESULT : integer;
begin

INT_OPCODE <= to_integer(unsigned(OPCODE));


INT_OPERAND_A <= to_integer(unsigned(OPERAND_A));
INT_OPERAND_B <= to_integer(unsigned(OPERAND_B));
process(INT_OPCODE)
begin
case INT_OPCODE is
when 0 => INT_RESULT <= INT_OPERAND_B;
when 1 => INT_RESULT <= INT_OPERAND_A;
when 2 => INT_RESULT <= INT_OPERAND_A + INT_OPERAND_B;
when 3 => INT_RESULT <= INT_OPERAND_A;
when 6 => INT_RESULT <= INT_OPERAND_A - 1;
when others => INT_RESULT <= 0;
end case;
RESULT <= std_logic_vector(to_unsigned(INT_RESULT, RESULT'length));
end process;
end UAL_arch;

5. Rezultatul compilării circuitului pentru arhitectura cu 3 magistrale:


Figura 2. Rezultatul compilării fișierului ce conține circuitul pentru arhitectura cu 3
magistrale (Multiple Bus

6. RTL:
Figura 3. RTL Viewer-ul circuitului pentru arhitectura cu 3 magistrale (Multiple Bus)

7. Diagrama de timp:
7.1 Operația de încărcare (LOAD)

Conținutul memoriei pentru operația LD (LOAD)

Figura 4. Diagrama de timp pentru generarea semnalelor de comandă pentru realizarea


operației de încărcare (LOAD) în UAL

Figura 5. Diagrama de timp funcțională a operației de încărcare (LOAD)

7.2 Operația de stocare (STORE)

Figura 6. Conținutul memorie pentru operația ST (STORE)


Figura 7. Diagrama de timp pentru generarea semnalelor de comandă pentru realizarea
operației de stocare (STORE) în UAL

Figura 8. Diagrama de timp funcțională a operației de stocare (STORE)

7.3 Operația de adunare (ADD)

Figura 9. Conținutul memoriei pentru operația de ADD(Adunare)


Figura 10. Diagrama de timp pentru generarea semnalelor de comandă pentru realizarea
operației de adunare (ADD) în UAL

A
Figura 11. Diagrama de timp funcțională a operației de adunare (ADD)

7.4 Operația de salt necondiționat (BRN)

Figura 12. Conținutul memoriei pentru operația de salt necondiționat (BRN)


Figura 13. Diagrama de timp pentru generarea semnalelor de comandă pentru realizarea
operației de salt necondiționat (BRN) în UAL

Figura 14. Diagrama de timp funcțională a operației de salt necondiționat (BRN)

7.5 Operația de decrement (DEC)

Figura 15. Conținutul memoriei pentru operația de scădere (SUB)


Figura 16. Diagrama de timp pentru generarea semnalelor de comandă pentru realizarea
operației de decrement (DEC) în UAL

Figura 17. Diagrama de timp funcțională a operației de decrement (DEC)

Concluzii:

În cadrul Lucrării de laborator nr. 3, s-a proiectat și simulat arhitectura Multiple-Bus a unității aritmetico-
logice orientate pe acumulator folosind Intel Quartus Prime. S-au implementat instrucțiunile LD, ST și
BRN, precum și cele opționale. După compilare, a fost analizată reprezentarea RTL și s-au creat diagrame
de timp pentru fiecare instrucțiune. Această lucrare a consolidat cunoștințele privind optimizarea și
funcționarea arhitecturilor digitale.

S-ar putea să vă placă și