Programowalne układy przetwarzania sygnałów Projektowanie

Transkrypt

Programowalne układy przetwarzania sygnałów Projektowanie
Programowalne układy
przetwarzania sygnałów
Projektowanie układów
generujących ciągi pseudolosowe
z użyciem automatów komórkowych
LHCA
Automaty komórkowe
Automaty komórkowe LHCA (Linear Hybrid Cellular
Automata) używane są do generowania wektorów
testowych (np. w technice BIST).
Automat składa się z komórek, które komunikują się
tylko z sąsiednimi komórkami, nie ma długich linii
sygnałowych jak w LFSR.
2004
Projektowanie programowalnych układów scalonych
2
Automaty komórkowe
Można zbudować automat z komórek o regule 150 i 90
który będzie wytwarzał sekwencję o maksymalnej
długości:
• okres o długości 1 dla stanu początkowego 00...0
• okres o długości 2n-1 dla każdego innego stanu
początkowego
Reguła 90:
Reguła 150:
2004
s’i = si-1 ⊕ si+1
s’i = si-1 ⊕ si ⊕ si+1
Projektowanie programowalnych układów scalonych
3
Automaty komórkowe
Można zbudować automat z komórek o regule 150 i 90 o
minimalnym koszcie – zbudowany z jednej lub dwóch
komórek 150 a pozostałe o regule 90
Przykładowy automat: (10) 2, 7
oznacza automat o długości 10 komórek, w którym
komórki o indeksie 2 i 7 (licząc od lewej strony)
posiadają regułę 150 a pozostałe regułę 90. Ten sam
automat zapisany w postaci wektora [0, 1, 0, 0, 0, 0,
1, 0, 0, 0], gdzie 1 oznacza regułę 150, a symbol 0
oznacza regułę 90.
Można otrzymać automat o tych samych własnościach
licząc od prawej strony,
np. [0, 0, 0, 1, 0, 0, 0, 0, 1, 0].
2004
Projektowanie programowalnych układów scalonych
4
Automaty komórkowe
Tabelę opisującą automaty komórkowe o minimalnym
koszcie dla n<500 (n – liczba komórek) można znaleźć w
artukule:
KEVIN CATTELL AND SHUJIAN ZHANG: Minimal Cost OneDimensional Linear Hybrid Cellular Automata of Degree
Through 500, JOURNAL OF ELECTRONIC TESTING: Theory
and Applications,6,255-258 (1995), 1995 Kluwer Academic
Publishers, Boston.
2004
Projektowanie programowalnych układów scalonych
5
Fragment tablicy CA dla n<500
Deg.
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
(13)
(14)
(15)
(16)
(17)
(18)
(19)
(20)
(21)
(22)
(23)
2004
LHCA
1
1
1
13
1
1
3
23
1
27
1
37
5
1
3
1 15
5
1 17
3
23
1 10
5
1
Deg.
(51)
(52)
(53)
(54)
(55)
(56)
(57)
(58)
(59)
(60)
(61)
(62)
(63)
(64)
(65)
(66)
(67)
(68)
(69)
(70)
(71)
(72)
(73)
LHCA
1
2 29
1
9
17
4 14
9
17
4 15
2 38
1 10
5
31
35
1
1 19
15
8
1
1 37
17
6 55
9
Deg.
(101)
(102)
(103)
(104)
(105)
(106)
(107)
(108)
(109)
(110)
(111)
(112)
(113)
(114)
(115)
(116)
(117)
(118)
(119)
(120)
(121)
(122)
(123)
LHCA
1 20
33
15
2 40
1
30
19
1 35
14
13
27
25
1
22
41
16
33
30
1
3 73
45
14
51
Deg.
(151)
(152)
(153)
(154)
(155)
(156)
(157)
(158)
(159)
(160)
(161)
(162)
(163)
(164)
(165)
(166)
(167)
(168)
(169)
(170)
(171)
(172)
(173)
LHCA
27
40
13
66
1
2 24
33
1
61
1 151
1 116
73
1 24
26
3 130
72
1 60
1 113
81
22
37
3
1
Deg.
(201)
(202)
(203)
(204)
(205)
(206)
(207)
(208)
(209)
(210)
(211)
(212)
(213)
(214)
(215)
(216)
(217)
(218)
(219)
(220)
(221)
(222)
(223)
LHCA
1 26
24
7
1 103
57
1 71
1 130
74
1
1
17
2 169
1 56
59
29
4 26
53
50
49
47
1
2 12
9
Deg.
(251)
(252)
(253)
(254)
(255)
(256)
(257)
(258)
(259)
(260)
(261)
(262)
(263)
(264)
(265)
(266)
(267)
(268)
(269)
(270)
(271)
(272)
(273)
Projektowanie programowalnych układów scalonych
LHCA
1
4 31
93
1
55
1 127
49
1 181
21
4 89
1
3 189
95
2 173
69
46
103
1 73
1 210
81
5
3 109
1
6
Przykład realizacji CA (8) 2,3
LIBRARY ieee;
BEGIN
USE ieee.std_logic_1164.ALL;
Reg: PROCESS (clk)
ENTITY lhca6 IS
BEGIN -- [0,1,1,0,0,0,0,0]
PORT (clk : IN STD_LOGIC;
IF clk'event AND (clk = '1') THEN
x_in : IN STD_LOGIC;
r(1) <= r(2) XOR x_in; -- r90
y : OUT STD_LOGIC);
r(2) <= r(1) XOR r(2) XOR r(3); -- r150
END lhca6;
r(3) <= r(2) XOR r(3) XOR r(4); -- r150
ARCHITECTURE lhca_arch OF lhca6 IS
r(4) <= r(3) XOR r(5); -- r90
SIGNAL r : STD_LOGIC_VECTOR(1 TO 8);
r(5) <= r(4) XOR r(6); -- r90
r(6) <= r(5) XOR r(7); -- r90
r(7) <= r(6) XOR r(8); -- r90
r(8) <= r(7); -- r90
END IF;
END PROCESS Reg;
y <= r(1);
END lhca_arch;
2004
Projektowanie programowalnych układów scalonych
7
Przykład realizacji CA (8) 2,3
2004
Projektowanie programowalnych układów scalonych
8
Automaty CA w FPGA
W niektórych układach FPGA przerzutniki inicjowane są
wartością 0, stąd rejestr CA zbudowany na bramkach
XOR ma wówczas okres = 1.
Aby zawartość rejestru 0..00 była jedną z sekwencji 2n-1,
należy użyć bramek XNOR (not XOR).
2004
Projektowanie programowalnych układów scalonych
9
Programowalne układy
przetwarzania sygnałów
Przykład projektu filtru cyfrowego
o skończonej odpowiedzi impulsowej
z wykorzystaniem dekompozycji
funkcjonalnej
Zastosowanie
dekompozycji funkcjonalnej
Opis w języku HDL
RTL opis
Synteza funkcjonalna
Części projektu
Sieć logiczna
Optymalizacja logiczna
DEKOMPOZYCJA
Odwzorowanie
technologiczne
FPGA
2004
Projektowanie programowalnych układów scalonych
11
Filtr cyfrowy FIR
Filtr cyfrowy FIR 15-rzędu o współczynnikach:
h(n) = {-6,0,33,0,-116,0,490,802,490,0,-116,0,33,0,-6}
Próbki wejściowe 8-bitowe ze znakiem
2004
Projektowanie programowalnych układów scalonych
12
Porównanie realizacji
Realizacja dla układu Flex10K70 EPF10K70RC240-4
2004
realizacja FIR
komórek
przerzutników
f [MHz]
o stałych
współczynnikach
576
139
5,02
ww.
i kodowanie CSD
494
139
6,06
ww. i symetria
374
139
9,32
o stałych
współczynnikach
i DA
1314
140
16,58
o stałych
współczynnikach i
zdekomponawanej
tablicy DA
746
140
17,8
Projektowanie programowalnych układów scalonych
13
Porównanie realizacji
Realizacja przykładowych firltów z artykułu:
Goodman D.J., Carey M.J., (1977). Nine Digital Filters for Decimation and Interpolation,
IEEE Trans. on Acoustics, Speech and Signal Processing 25(2), pp.121-126.
FIR
wejść/
komórek logicznych potrzebnych
wyjść
do realizacji jednej tablicy DA
bez dekompozycji
z dekompozycją
F4
7/8
12
9
F5
11 / 11
45
32
F6
11 / 11
66
45
F7
11 / 12
48
35
F8
15 / 12
136
64
F9
19 / 16
279
159
2004
Projektowanie programowalnych układów scalonych
14
Porównanie realizacji
FIR
filtr bez dekompozycji DA
LCs(FFs) fmax [MHz]
filtr z dekompozycją DA
LCs(FFs) fmax [MHz]
F4
224(71)
25.25
204(71)
26.60
F5
527(106)
21.05
444(106)
22.03
F6
710(106)
19.27
551(106)
19.61
F7
576(107)
20.62
476(107)
20.96
F8
1314(140)
22.73
746(140)
22.73
F9
2533(175)
14.47
1564(175)
20.92
123,39
3985
132,85
1
0,67726
1,076667
Suma 5884
1
2004
Projektowanie programowalnych układów scalonych
15
Literatura do wykładu
Również wydanie 2:
2004
Projektowanie programowalnych układów scalonych
16

Podobne dokumenty