Professional Documents
Culture Documents
Gjuha VHDL
Gjuha VHDL
Gjuha VHDL
Gjuha VHDL
1
Përshkrimi me Gjuhën “VHDL”
________________________________________________________________
Gjuha VHDL është zhvilluar nga programi VHSIC (Very High Speed
Integrated Circuits) në fund të viteve 1970 dhe fillim të viteve 1980
- Programi VHSIC është financuar nga Departamenti i Mbrojtjes së SHBA
- Mjetet ekzistuese të kohës ishin të pamjaftueshme për projektimet e hard-
eve komplekse
4
Terminologji të rëndësishme
_____________________________________________________
5
Terminologji të rëndësishme (vazhdim)
_____________________________________________________
FPGA (Field Programmable Gate Arrays) janë elementë
logjikë të programueshëm, tek të cilët, në bazë të programimit,
realizohet shpejt prototipi i qarkut digital, që kërkohet të projektohet.
6
Komente mbi Sintezën VHDL
_______________________________________________________________
7
Bazat e gjuhës VHDL
________________________________________________________________
Rregullat mbi emërtimet
Në këtë tutorial përdoren këto rregulla mbi emërtimet:
8
Bibliotekat dhe paketat
________________________________________________________________
LIBRARY ieee;
USE ieee.std_logic_1164.ALL
9
Entitetet, Arkitekturat dhe Konfigurimet
________________________________________________________________
1 Co
nf
Configuration 2
n ig
io ur
at at
gur io
i n
nf n
Co
Architecture 2
10
Entitet-et1
_____________________________________________________
1. Emrin e entitetit.
2. Një komplet (seri) deklaratash të përgjithëshme2 që specifikojnë
parametrat specifike të projektimit.
3. Një komplet deklarime portash, që definojnë (përcaktojnë) hyrjet dhe
daljet e qarkut që projektohet.
1
Entity (ang) = Entitet, qënie, njësi, objekt
2
Generic Declarations
11
Deklarimet e Entitet-eve
______________________________________________________________
ENTITY entity_name IS
GENERIC (
generic_1_name : generic_1_type;
generic_2_name : generic_2_type;
generic_n_name : generic_n_type
);
PORT (
Port_1_name : port_1_dir port_1_type;
Port_2_name : port_2_dir port_2_type;
Port_n_name : port_n_dir port_n_type
);
END entity_name;
12
Shembull i deklarimit të Entitetit
_____________________________________________________
ENTITY andgate IS
PORT ( a : IN std_logic;
b : IN std_logic;
c : OUT std_logic );
END andgate;
SHËNIM:
Në deklarimin e PORTËS,
pikëpresja përdoret si
ndarëse
13
Portat
_____________________________________________________
Emri i Portës :
Drejtimet e portës:
SHËNIM:
IN Input port
Një buffer është një dalje, që
OUT Output port
mund të ‘lexojë” nga
INOUT Bidirectional port
arkitektura e entitetit
BUFFER Buffered output port
3
(ang) underscore
14
Portat (vazhdim)
_____________________________________________________
Std_logic
4
(ang) Data types
15
Arkitektirat
_____________________________________________________
- Performancës,
- Sipërfaqes së integrimit,
- Konsumit të energjisë
- lehtësisë në simulim
16
Deklarimet e Arkitekturës
_____________________________________________________
17
Shembull i deklarimit të Arkitekturës
_____________________________________________________
SHËNIM:
Fjala kyçe AND shënon
përdorimin e një porte AND
18
Konfigurimet
_____________________________________________________
Një konfigurim është një specifikim për të planifikuar lidhjen5 midis një
arkitekture dhe entitetit.
5
(Ang) Mapping
19
Sinjalet
_____________________________________________________
6
(ang) wires and storage elements
20
Përfaqësitë e sinjalit
_____________________________________________________
Binary
Forcing 1 ‘1’ Forcing 0 ‘0’
21
Përfaqësitë e logjikës me vlera të shumëfishta
_____________________________________________________
- MVL - 4
- MVL – 9
22
MVL – 4
_____________________________________________________
MVL – 4 shton dy vlera (‘X’ dhe ‘Z’) për të modeluar gjendjen apo
vlerën e sinjaleve me më shumë saktësi:
MVL - 4
Forcing 1 ‘1’ Forcing Unknown ‘X’
Forcing 0 ‘0’ High Impedance ‘Z’
23
MVL - 9
_____________________________________________________
MVL - 9
Uninicialized ‘U’ Weak 1 ‘H’
Don’t Care ‘-‘ Weak 0
Forcing 1 ‘1’ Forcing Unknown ‘X’
Forcing 0 ‘0’ High Impedance ‘Z’
Forcing Unknown ‘X’
24
Më shumë për përfaqësinë MVL-9
____________________________________________________
Katër tipe të standartizuara përdorin MVL-9:
Std_ulogic
Std_ulogic_vector ( <max> DOWNTO <min> )
Tipet e përcaktuara
Std_logic
Std_logic_vector ( <max> DOWNTO <min> )
7
(ang) Unresolved Types
8
(ang) resolution functions
25
Tipet e të dhënave
____________________________________________________
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
ENTITY simple_boffer IS
PORT ( din : std_logic;
Dout : std_logic );
END simple_buffer;
27
Sintetizimi në raport me simulimin (vazhdim)
____________________________________________________
28
Operatorët logjikë
____________________________________________________
29
Operatorë të tjerë
____________________________________________________
= (Equal)
/= (Not equal)
< (Less Than)
> (Grater Than)
+ (Addition)
- (Subtraction)
* (Multiplication)
/ (Division)
30
Instruksionet e dhënies së vlerës9
____________________________________________________
SIGNAL a, b, c :std_logic;
SIGNAL avec, bvec, cvec : std_logic_VECTOR ( 7 DOWNTO 0);
9
(ang) Assignment Statements
31
Instruksionet e dhënies së vlerës (vazhdim)
____________________________________________________
SIGNAL a, b, c, d : std_logic;
SIGNAL avec : std_logic_vector (1 DOWNTO 0);
SIGNAL bvec : std_logic_vector (2 DOWNTO 0);
32
Instruksionet e dhënies së vlerës (vazhdim)
____________________________________________________
SIGNAL a :std_logic;
SIGNAL avec, bvec :std_logic_VECTOR ( 7 DOWNTO 0);
WITH a SELECT
avec <= “01010101” WHEN ‘1’,
Bvec WHEN OTHERS;
33
Instruksionet Process
___________________________________________________
VHDL mbështet proceset.
Proceset përmbledhin pjesë të projektimit
Proceset përmbajnë një listë të ndjeshme10 që specifikon sinjalet dhe
portat, të cilat shkaktojnë ndryshime në daljet e procesit.
P.sh. një flip-flop (FF) i trigeruar nga kërcimet është i ndjeshëm ndaj frontit të
përparmë apo të prapëm të kërcimit të impulsit clock.
10
(ang) Sensitivity List
34
Instruksionet Process
____________________________________________________
Fjalët kyçe të përdorura për dhënien e vlerave të kushtëzuara11 dhe të
selektuara12 ndryshojnë nga ato të përdorura brënda një procesi.
11
(ang) conditional assignments
12
(ang) selected assignments
35
Instruksionet process (vazhdim)
____________________________________________________
SIGNAL reset, clock, d, q :std_logic;
36
Instruksionet process (vazhdim)
____________________________________________________
SIGNAL a, b, c, d :std_logic;
PROCESS (a, b, d)
-- a, b and d are in the sensitivity list to indicate that
-- the outputs of the process are sensitive to changes in them
BEGIN
-- CASE keyëord is only valid in a process
CASE d IS
When ‘0’ =>
C <= a AND b;
WHEN OTHERS =>
C <= ‘1’;
AND CASE;
END PROCESS;
SHËNIM
Programi Implementon
një qark kombinator.
37
Shembulli i realizimit të një flip-flopi
____________________________________________________
Një flip-flop mund të specifikohet duke përdorur një proces dhe atributin
EVENT të një sinjali
Atributi EVENT mund të përdoret për të kontrolluar kërcimin e sinjalit
(impulsit) clock.
Simboli i një flip-flop-i tregohet më poshtë:
38
Specifikimi VHDL I një flip-flopi
______________________________________________________
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
ENTITY dffe IS
PORT (rst,clk,ena,d : IN std_logic;
q : out std_logic );
END dffe;
39
Qarqet sekuenciale komplekse
______________________________________________________
13
(ang) Finite State Machines
40
Shembulli i një makine gjendjesh të fundme
______________________________________________________
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
ENTITY vending IS:
PORT (
reset :IN std_logic;
clock :IN std_logic;
buttons :IN std_logic_vector_(1 DOWNTO 0);
lights :OUT std_logic_vector_(1 DOwNTO 0)
);
END vending
41
Shembulli i një makine gjendjesh të fundme (vazhdim)
_________________________________________________________________
42
Shembulli i një makine gjendjesh të fundme (vazhdim)
_________________________________________________________________
43
Shembulli i një makine gjendjesh të fundme (vazhdim)
_________________________________________________________________
44
Shembuj të VHDL
_________________________________________________________________
45
Shembulli 1a
(logjikë kombinatore)
_________________________________________________________________
46
Zgjidhja e shembullit 1a
_________________________________________________________________
ENTITY andnand IS
PORT ( a :IN std_logic;
b :IN std_logic;
q :OUT std_logic;
qbar :OUT std_logic );
END endnand;
47
Shembulli 1b
(logjikë kombinatore)
_________________________________________________________________
48
Zgjidhja e shembullit 1b
_________________________________________________________________
49
Shembulli 2a
(logjikë kombinatore)
_________________________________________________________________
Projektoni një entitet VHDL të quajtur quadmux për të specifikuar
ndërfaqen e katër multiplekserave me dy hyrje, bllokskema e të cilit jepet
në figurën e mëposhtëme:
50
Zgjidhja e shembullit 2a
_________________________________________________________________
ENTITY quadmux IS
PORT ( a : IN std_logic_vector (3 DOWNTO 0);
b : IN std_logic_vector (3 DOWNTO 0);
sel IN std_logic;
c : IN std_logic_vector (3 DOWNTO 0);
END quadmux;
51
Shembulli 2b
(logjikë kombinatore)
_________________________________________________________________
sel c [3…0]
0 a [3…0]
1 b [3…0]
53
Shembulli 3
(logjikë kombinatore)
_________________________________________________________________
Projekto dhe sintetizo specifikimin e një qarku për kontrollin e një display
me 7 segmente 14.
Bllokskema e këtij qarku tregohet në figurën e mëposhtëme:
14
(ang) Seven Segment Display Controller
54
Zgjidhja e shembullit 3
_________________________________________________________________
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
ENTITY seven_seg IS
PORT ( dataIn :IN std_logic_vector_(3 DOWNTO 0);
sements :OUT std_logic_vector_(7 DOWNTO 0) );
END seven_seg;
55
Shembulli 1
(Logjikë sekuenciale)
_________________________________________________________________
56
Zgjidhja e shembullit 1
_________________________________________________________________
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
ENTITY dregister IS
PORT ( rst, clk, ena :IN std_logic;
d :IN std_logic_vector_(7 DOWNTO 0);
q :IN std_logic_vector_(7 DOWNTO 0);
END dregister;
57
Shembulli 2
(Logjikë sekuenciale)
_________________________________________________________________
58
Zgjidhja e shembullit 2
_________________________________________________________________
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
ENTITY counter IS
PORT (
reset :IN std_logic;
clock :IN std_logic;
enable :IN std_logic;
value :out std_logic_vector (31 DOWNTO 0)
);
END counter;
59
Zgjidhja e shembullit 2 (vazhdim)
_________________________________________________________________
ARCHITECTURE synthesis1 of counter IS
BEGIN
PROCESS (rst, clk)
BEGIN
IF (reset = ‘1’) THEN
count <= X“00000000”;
ELSIF (clock’EVENT) AND (clock = ‘1’) THEN
IF (enable = ‘1’) THEN
count <= count + 1;
END IF;
END IF;
END PROCESS;
-- Here,the count value
Value <= std_logicvector (count) -- is converted to
-- std_logic_vector
-- using a conversion function
END SYNTHESIS1
60
FUND
_______________________________________________________
Faleminderit
61