132 5. Języki specyfikacji dla układów programowalnych
C) (a,b,c)•id.e, f) oznacza (ald.ble.clf) d) a4b[3. . 1 i oznacza (a4b3.a4b2.a4bl) c) (318) oznacza b"0011" or B"1000"
0 (a,b, c) 41 oznacza (a&0,b&0,c«l)
g) (a,b,c)4l - (0.0,1)
h) (a.b.c)tvcc c (a.b.c)
Należy pamiętać, żc jest dopuszczalna operacja sygnału grupowego i pojedynczych zmiennych (przykład d). jak też sygnału grupowego i liczby (przykład f). W tym ostatnim przypadku liczba jest interpretowana binarnie, a liczba jej bitów jest dostosowywana do liczby pozycji sygnału grupowego.
Operatory arytmetyczne i relacyjne
Podstawowe operatory arytmetyczne (suma. różnica), a także operatory relacyjne (tabl. 5 3) ułatwiają zapisy skomplikowanych wyrażeń boolowskich zgodnie z zasadami sygnałów prcdykatowych i „symboli logicznych”. Na przykład sygnał CS opisany wyrażeniem boolowskim:
CS - !addr i !addr& addr & addr 4 addr 4 !addr4 addr 4 !addr można, po deklaracji sygnału grupowego: addr (7. .0] zapisać jako (por. przykład 5.9):
* CS - (addr[7..0)--H"3A“)
Tablica 5.3
Operator |
Przykład |
♦1 -a(4..1] | |
count[7..01 ♦ delta(7•-0] | |
_ |
xl) - yll |
addr[19..4) — B-B800" | |
BI !- b3 | |
< |
famę[J < power[J |
<. |
moneyt] <- power[J |
> |
love[] > moneyd |
>- |
delta!) >- 0 |
5.2. Język AUDI.
133
5.2.3. Zasady specyfikacji w języku AHDL
W niniejszym punkcie omówimy podstawowe zasady specyfikacji posługując się zestawem odpowiednio dobranych przykładów, które pozwolą lepiej zilustrować i wyjaśnić główne konstrukcje języka AHDL i sposoby ich użycia do tworzenia bardziej złożonych struktur hierarchicznych. Przykłady i zasady są uporządkowane i prezentowane według następującego schematu:
- równania i wyrażenia boolowskie.
- tablice prawdy.
- instrukcje 1F oraz CASE,
- deklarowanie i odwołanie się do rejestrów.
- definiowanie automatów oraz
- liczniki.
Równania i wyrażenia boolowskie
Wyrażenia boolowskie są wyrażeniami algebraicznymi, które służą do opisu I funkcji logicznych. Mogą składać się z nazw węzłów, liczb, stałych oraz innych wyrażeń t rozdzielonych przez operatory, również arytmetyczne i relacyjne. W skomplikowanych wyrażeniach można grupować poszczególne fragmenty z użyciem nawiasów.
Kolejność wyrażeń boolowskich w części opisu projektu nic ma znaczenia, f- ponieważ stanowią one jako całość opis działania układu, a nie kolejne instrukcje, jak to f ma miejsce w językach programowania. W przykładzie 5.11 przedstawione są dwa proste | wyrażenia. Na uwagę zasługuje fakt, iż możliwe jest umieszczenie węzła typu output ['(outl) po prawej stronie wyrażenia out2 - outl I b.
Przykład 5.11
SUBDESIGN boolel
END;