VHDL_3_2005.pdf
(
568 KB
)
Pobierz
Język VHDL
Wykład w ramach przedmiotu
Projektowanie systemów cyfrowych
Telekomunikacja III rok
J.Kasperek P.J.Rajda
Sygnały w VHDL
U0
U1
A
X
I
XR2
INV
Z
X
Z
C
B
Y
entity
COMPARE
is
port
(A, B:
in
bit; C:
out
bit);
end
COMPARE;
architecture
STRUCTURAL
of
COMPARE
is
signal
I: bit;
--
sygnał wewnętrzny - brak deklaracji trybu !
component
XR2
port
(X, Y:
in
bit; Z:
out
bit);
end component
;
component
INV
port
(X:
in
bit; Z:
out
bit);
end component
;
begin
U0: XR2
port map
(A, B, I);
U1: INV
port map
(I, C);
end
STUCTURAL;
Język VHDL
J.Kasperek P.J.Rajda © 2005 Katedra Elektroniki AGH Kraków
Komunikacja między procesami
architecture
FIRST
of
ST_UNIT
is
signal
A_DONE: bit :=
‘0’
;
begin
.....
A: process
B: process
signal
A_DONE
A:
process
begin
if
S1
then
A_DONE <= ‘1’;
.....
B:
process
begin
wait until
A_DONE = ‘1’;
.....
Język VHDL
J.Kasperek P.J.Rajda © 2005 Katedra Elektroniki AGH Kraków
Komunikacja między procesami
•
Procesy mogą się ze sobą komunikować poprzez
nadawanie wartości sygnałom.
•
Proces może zawiesić swoje działanie w
oczekiwaniu na zmianę w sygnale wejściowym.
•
Zmienne zadeklarowane w procesie nie mogą
przekazywać swych wartości do innych procesów.
•
VHDL‘92 definiuje zmienne globalne, które mogą
zostać użyte do celów synchronizacji procesów.
Język VHDL
J.Kasperek P.J.Rajda © 2005 Katedra Elektroniki AGH Kraków
Deklaracja sygnałów w VHDL
•
Sygnały mogą być zadeklarowane w:
¾
pakietach - sygnały globalne
¾
sekcji deklaracji
entity
-sygnały globalne
dla
entity
- porty:
in
,
out
,
inout
,
buffer
- inne deklaracje
¾
sekcji deklaracji architektury - sygnały lokalne dla
architektury
•
Sygnały są inicjalizowane przy użyciu operatora
:=
•
Wartość jest przypisywana sygnałom przy użyciu
operatora
<=
Język VHDL
J.Kasperek P.J.Rajda © 2005 Katedra Elektroniki AGH Kraków
Deklaracja sygnałów w VHDL
W deklaracji sygnału jako portu dla
entity
należy wyszczególnić:
nazwę sygnału, jego kierunek, typ i opcjonalnie jego wartość
początkową.
Składnia:
port
(
names
:
direction type
[
:=
expression
] [
;
more_ports
]
);
Kierunek
Użycie
in
Prawa strona przypisania wartości zmiennej lub sygnałowi
out
Lewa strona przypisania wartości sygnałowi
inout
Obydwa powyższe
buffer
Jak wyżej (tylko jedno źródło)
Przykład:
port
(DATA_IN:
in
bit; DATA_OUT:
out
bit);
port
(B, A:
in
MyLib.MyPkg.MyType);
Język VHDL
J.Kasperek P.J.Rajda © 2005 Katedra Elektroniki AGH Kraków
Sygnały w VHDL
Nadawanie wartości sygnałom jest
sekwencyjne
w obrębie
procesów, a
współbieżne
na zewnątrz nich.
W obrębie procesu nadawanie wartości sygnałom jest
wstrzymywane do momentu uruchomienia cyklu symulacji,
wyzwalanego przez wykonanie instrukcji
wait
.
Przykład:
process
begin
sys_clk <=
not
(sys_clk)
after
50
ns;
int_bus <= data_in
after
10
ns;
data_out <= my_function (int_bus)
after
10
ns;
wait
.....
end process
;
Język VHDL
J.Kasperek P.J.Rajda © 2005 Katedra Elektroniki AGH Kraków
Sygnały w VHDL
Instrukcje przypisania wartości sygnałom mogą zawierać kilka wartości
dla różnych momentów czasowych. Własność ta jest użyteczna przy
opisywaniu sygnałów zegarowych i innych przebiegów powtarzalnych.
Przykład:
S <=
‘1’
after
4
ns,
‘0’
after
7
ns;
T <=
1
after
1
ns,
3
after
2
ns,
6
after
8
ns;
Wewnątrz procesu sygnał powinien mieć tylko jedno źródło w danym
czasie. W przeciwnym wypadku pod uwagę brane jest jedynie ostatnie
przypisanie
.
Przykład:
process
begin
xyz <=
1
after
4
ns;
pqr <=
10
after
5
ns;
xyz <=
2
after
4
ns;
wait
.....
Język VHDL
J.Kasperek P.J.Rajda © 2005 Katedra Elektroniki AGH Kraków
Sygnały w VHDL
W poniższym przykładzie
X
przyjmuje nową wartość dokładnie po 10
ns (nie 9.9999 lub 10.0001 ns). Deklaracja opóźnień jest nieprzydatna
dla narzędzi do syntezy.
signal
X, Y: integer;
process
begin
wait on
Y;
X <= Y +
1
after
10
ns;
signal
X: integer;
process
.....
begin
.....
X <= X +
1
after
10
ns;
.....
1
x
Język VHDL
J.Kasperek P.J.Rajda © 2005 Katedra Elektroniki AGH Kraków
Sygnały w VHDL
Przykład
:
entity
VAR
is
port
(A:
in
bit_vector (
0
to
7
);
INDEX:
in
integer
range
0
to
7
;
OUTPUT:
out
bit);
end
VAR;
architecture
VHDL_1
of
VAR
is
begin
process
begin
OUTPUT <= A(INDEX);
--
opóźnienie 0 ns
wait
.....;
--
wait inicjuje przypisanie
.....
end
VHDL_1;
Język VHDL
J.Kasperek P.J.Rajda © 2005 Katedra Elektroniki AGH Kraków
Plik z chomika:
atari666
Inne pliki z tego folderu:
VHDL_1_2005.pdf
(1812 KB)
VHDL_2_2005.pdf
(695 KB)
VHDL_4_2005.pdf
(1585 KB)
VHDL_3_2005.pdf
(568 KB)
_vhdl - wyklad.txt
(0 KB)
Inne foldery tego chomika:
Zgłoś jeśli
naruszono regulamin