Limbaje de dezvoltare hardware

Previzualizare laborator:

Extras din laborator:

Implementarea circuitelor logice combinaţionale cu circuite CPLD impune descrierea lor funcţională în limbaj VHDL. Se va utiliza pachetul de programe WARP6.3 care permite sinteza circuitelor logice cu circuite CPLD de tip Cypress: PLD, MAX340EPLD, FLASH370 etc.

Scopul lucrării

Se va sintetiza cu CPLD şi simula funcţional un multiplexor de tip 4:1 (4 intrări şi o ieşire). Se va generaliza metoda de implementare pentru un circuit logic combinaţional de complexitate mai mare. Schema bloc şi tabelul de adevăr asociat multiplexorului sunt prezentate în figura 1.

Fig.1: Schema bloc şi tabelul de adevăr al multiplexorului 4:1

Desfăşurarea lucrării

1. Folosind programul Galaxy din cadrul pachetului de programe WARP6.3 se va descrie în limbaj VHDL funcţionarea multiplexorului. Se vor parcurge următoarele etape:

1.1. Start Programs => WARP6.3 => Galaxy

1.2. File => New => Project [Target – device] - - sinteza MUX se va face cu un circuit CPLD

precizat în etapa 2.5

1.3. Project name: MUX4_1 -- se introduce numele proiectului

1.4. Project Path: c:warpstudent... -- se precizeă locţia unde va fi salva proiectul

1.5. Next => Next=>Select Target Device =>

=> CPLD => Flash 370I => C372i –66JC -- se selectează circuitul CPLD care va conţine multiplexorul ;

1.6. Finish

1.7. File => New => Text files =>

=> Save as: MUX.vhd -- se deschide un fişier-text în care se va descrie în limbaj VHDL multiplexorul;

1.8. Project => Add Files To Project =>

=> MUX.vhd => Add => OK -- se ataşează fisierul text MUX.vhd la proiect

1.9. În fişierul MUX.vhd se editează sursa VHDL :

------------------------------------------------------------------------------------------------------------------------------

library ieee; --se apelează bibliotecile necesare

use IEEE.std_logic_1164.all; -- pentru descrierea circuitului

entity mux4_1 is -- se declară entitatea logică mux4_1

port ( X : in std_logic_vector(3 downto 0); -- portul cuprinde semnalele

S : in std_logic_vector(2 downto 1); -- aplicate pinilor circuitului

Y: out std_logic );

end mux4_1;

architecture arch_of_mux4_1 of mux4_1 is -- se declartă arhitectura

-- asociată entităţii logice

begin

mux4_1: process (X,S) -- portul corespunde

begin

if S="00" then Y<=X(0);

elsif S="01" then Y<=X(1);

elsif S="10" then Y<=X(2);

else Y<=X(3);

end if;

end process mux4_1;

end arch_of_mux4_1;

------------------------------------------------------------------------------------------------------------------------------

1.10. Project => Compiler Options =>

=> Timing Model => 1164/VHDL => OK -- Se va selecta opţiunea de compilare pentru simulare

funcţională a multiplexorului cu programul

Active –HDL Sim;

1.11. Compile => Project -- Se vor compila fişierele ataşate aplicaţiei MUX4_1;

1.12. Analizând fişierul MUX.rep (Wiew => Report File) determinaţi cum au fost alocate semnalele de intrare şi ieşire din multiplexor pinilor circuitului CPLD.

2. Se va simula funcţionarea multiplexorului cu programul Active – HDL Sim din pachetul de programe Warp5.1. Se vor parcurge următoarele etape:

2.1. Start Programs => Warp5.1 => Active – HDL Sim

2.2. File => New Waveform => Open VHDL => c:WARPstudentvhdMUX.vhd

–- se deschide fişierul care va fi simulat

2.3. Simulation => Initialize

2.4. Waveform => Add Signals => Name => S =>Add

Waveform => Add Signals => Name => X =>Add

Waveform => Add Signals => Name => Y =>Add -- se selectează semnalele în vederea afişării

semnalelor

2.5. Se configurează semnalele de intrare ca stimuli (generatoare de semnal) în vederea simulării:

• se selectează semnalul S (tip bus de semnale), efectuându-se dublu clic-stânga. Pe ecran vor apărea componentele busului: S(2), S(1);

• se selectează S(1), se execută clic-dreapta după care se selectează opţiunea Stimulators;

• Stimulator type => formula => enter formula (…..) =>

=> Apply => Close -- se editează stimulul S(1);

Se completează rubrica “enter formula” astfel: <value> <time>, <value> <time>,..etc. “Value” poate fi 0 sau 1. “Time” reprezintă momentul de timp în care stimulul îşi schimbă valoarea (unitatea de măsura este picosecunda).

Pentru semnalul S(1) se completeaza rubrica “enter formula” astfel:

0 0, 1 100000, 0 200000, 1 300000, 0 400000

S(1) este reprezentat grafic în figura 2.

Observații:

Curs la Limbaje de descriere hardware la dl Diaconescu la ULBS SIBIU

Download gratuit

Documentul este oferit gratuit,
trebuie doar să te autentifici in contul tău.

Structură de fișiere:
  • Limbaje de dezvoltare hardware.doc
Alte informații:
Tipuri fișiere:
doc
Nota:
8/10 (1 voturi)
Nr fișiere:
1 fisier
Pagini (total):
156 pagini
Imagini extrase:
156 imagini
Nr cuvinte:
30 821 cuvinte
Nr caractere:
189 782 caractere
Marime:
759.21KB (arhivat)
Publicat de:
NNT 1 P.
Nivel studiu:
Facultate
Tip document:
Laborator
Domeniu:
Calculatoare
Predat:
la facultate
Materie:
Calculatoare
Profesorului:
Diaconescu C-tin
Sus!