AvtVgaFpga1.2.pdf

(425 KB) Pobierz
PROJEKTY
Tester monitorów VGA
Tester monitorów VGA,
część 1
AVT–979
W dobie powszechnego
korzystania z komputerów PC
równie powszechne stało się
użycie współpracujących z nimi
monitorów VGA. Podczas
wszelkich prac serwisowych
związanych z ich naprawą
i regulacją, zarówno tradycyjnych
CRT, jak i LCD, szczególnie
przydatny może być specjalny
tester. Przedstawiona niżej
konstrukcja takiego przyrządu
zwraca uwagę m.in. ze względu
na wykorzystanie układów
programowalnych i języków opisu
sprzętu.
Rekomendacje:
tester trudno jest polecić
komuś, kto chce jednorazowo
wykonać naprawę monitora
komputerowego, dla serwisantów
robiących to na co dzień będzie
natomiast cennym wyposażeniem
stanowiska pracy.
Przedstawiony tutaj tester umoż-
liwia uzyskanie 7 rodzajów obra-
zów testowych wyświetlanych w 5
różnych trybach pracy. Możliwe
jest uzyskanie obrazu kolorowych
pasów (8 kolorów) z możliwością
zmiany kolejności kolorów, obrazu
kraty o regulowanej gęstości węzłów,
obrazu kropek oraz obrazu jednoli-
tego tła o trzech kolorach podsta-
wowych oraz w kolorze białym. Te-
ster obsługuje rozdzielczości obrazu
640x480 (VGA), 800x600 (SVGA)
oraz 1024x768 (XGA) dla często-
tliwości odświeżania 60 i 85 Hz.
Oprócz sygnalizacji bieżącego trybu
pracy w postaci zapalonych diod
LED obok odpowiedniego opisu na
płytce drukowanej, tester umożliwia
również wyświetlanie tej informa-
cji w postaci tekstowej na ekranie
monitora (funkcja OSD). Dostępny
jest również specjalny tryb pracy,
w którym poszczególne rodzaje ob-
razów testowych dla różnych roz-
dzielczości obrazu i częstotliwości
odświeżania powtarzane są kolejno
w pętli.
Projekt testera zrealizowano
w oparciu o układy Xilinx FPGA
z rodziny Spartan 3 i środowisko
projektowe WebPack ISE dostępne
bezpłatnie na stronie producenta.
Jako język opisu sprzętu wybrano
Verilog. Pomimo, że do budowy te-
stera użyto układy Xilinx FPGA, to
udostępnione opisy w języku Verilog
poszczególnych bloków funkcjonal-
nych testera (wirtualne komponen-
ty) w większości (tj. tam gdzie nie
odwołują się one do specyficznych
właściwości architektury wybranej
rodziny układów PLD) można bez-
pośrednio wykorzystać dla układów
CPLD i FPGA innych producentów.
W dalszej części artykułu krót-
ko opisano budowę sygnału VGA,
następnie przedstawiono ideę kon-
strukcji testera z podziałem na po-
szczególne bloki funkcjonalne i ich
opisem w języku Verilog, omówiono
układ elektryczny testera i opisano
sposób obsługi urządzenia.
Sygnał VGA
Sygnał wizji w standardzie VGA,
podobnie jak np. sygnał telewizyj-
ny, składa się z szeregu kolejnych
ramek obrazu. Każda ramka jest
złożona z ciągu poziomych linii,
a każda linia składa się z szere-
gu punktów. Linie w każdej ramce
są przesyłane w porządku od góry
do dołu, a punkty w linii od lewej
strony do prawej. W standardzie
VGA wykorzystuje się wybieranie
progresywne ( non–interlaced ). W ce-
lu określenia zakończenia transmi-
sji każdej linii i każdej ramki sto-
suje się dwa niezależne sygnały
synchronizacji poziomej i synchro-
nizacji pionowej. Dodatkowo złożo-
ny sygnał synchronizacji, powstały
w wyniku operacji logicznej XOR
obydwu wymienionych wyżej sy-
gnałów synchronizacji, zazwyczaj
jest kodowany również w zielonej
(G) składowej sygnału kolorów pod-
stawowych RGB.
Każda linia obrazu rozpoczyna
się od aktywnego obszaru, w któ-
rym trzy sygnały barw podstawo-
wych RGB, przesyłane na wyjście,
określają wypadkowy kolor dla każ-
dego punktu w linii (przedział A,
na rys. 1 ). Za obszarem aktywnym
następuje obszar wygaszania (suma
przedziałów B, C i D na rys. 1),
w którym przesyłane są punkty
o kolorze czarnym. Wewnątrz ob-
szaru wygaszania
przesyłany jest
impuls synchro-
nizacji poziomej
(aktywny poziom
niski). Impuls ten
jest poprzedzony
tzw. przednim
PODSTAWOWE PARAMETRY
• Płytka o wymiarach 95x74 mm
• Zasilanie: 6...8 VDC
• Pobór prądu: 118 mA/6 V
• Obrazy testowe: kolorowe pasy (8 kolo-
rów), krata, kropki, tło: czerwone, zielone,
niebieski, białe
• Rozdzielczości obrazu: 640x480, 800x600,
1024x768
• Częstotliwości odświeżania: 60 i 85 Hz
• Wyświetlanie dodatkowych informacji na
ekranie (OSD)
• Możliwość zmiany kolejności kolorów
w obrazie pasów
• Regulowana gęstość węzłów kraty
• Możliwość zmiany koloru obrazu kraty
i kropek (czerwony, zielony, niebieski, biały)
• Automatyczny tryb pracy (sekwencyjna
zmiana poszczególnych obrazów testowych)
A
B C D
A-liniaobrazu
B-przedniprzedziałwyrównawczy
C-impulssynchronizacji
D-tylnyprzedziałwyrównawczy
G
HSync
Rys. 1. Budowa linii obrazu VGA
24
Elektronika Praktyczna 4/2007
886696819.075.png 886696819.086.png 886696819.097.png 886696819.108.png 886696819.001.png 886696819.011.png 886696819.022.png 886696819.029.png 886696819.030.png 886696819.031.png 886696819.032.png 886696819.033.png 886696819.034.png 886696819.035.png 886696819.036.png 886696819.037.png 886696819.038.png 886696819.039.png 886696819.040.png 886696819.041.png 886696819.042.png 886696819.043.png 886696819.044.png
 
Tester monitorów VGA
Tab. 1. Zestawienie parametrów czasowych sygnału VGA dla kilku wybranych rozdzielczości obrazu i częstotliwości odświe-
żania
Poziomo [punkty]
Pionowo [linie]
Częstotliwość
punktu
[MHz]
przedni
przedział
wyrównaw-
czy
przedni
przedział
wyrównaw-
czy
obszar
aktywny
tylny prze-
dział wyrów-
nawczy
Tylny prze-
dział wyrów-
nawczy
impuls syn-
chronizacji
obszar
aktywny
impuls syn-
chronizacji
Format
f p
A H
F H
S H
B H
A V
F V
S V
B V
640x480, 60Hz
25,175
640
16
96
48
480
11
2
31
640x480, 72Hz
31,500
640
24
40
128
480
9
3
28
640x480, 75Hz
31,500
640
16
96
48
480
11
2
32
640x480, 85Hz
36,000
640
32
48
112
480
1
3
25
800x600, 56Hz
38,100
800
32
128
128
600
1
4
14
800x600, 60Hz
40,000
800
40
128
88
600
1
4
23
800x600, 72Hz
50,000
800
56
120
64
600
37
6
23
800x600, 75Hz
49,500
800
16
80
160
600
1
2
21
800x600, 85Hz
56,250
800
32
64
152
600
1
3
27
1024x768, 60Hz
65,000
1024
24
136
160
768
3
6
29
1024x768, 70Hz
75,000
1024
24
136
144
768
3
6
29
1024x768, 75Hz
78,750
1024
16
96
176
768
1
3
28
1024x768, 85Hz
94,500
1024
48
96
208
768
1
3
36
przedziałem wyrównawczym ( front
porch ). Z kolei przedział czasu na-
stępujący za impulsem synchroniza-
cji określa się jako tylny przedział
wyrównawczy ( back porch ).
Budowa ramki obrazu ( rys. 2 )
jest analogiczna do budowy poje-
dynczej linii. Początek ramki obrazu
(obszar aktywny) zawiera wszyst-
kie linie obrazu, które powinny
zostać wyświetlone na ekranie. Za
obszarem aktywnym następuje rów-
nież obszar wygaszania (wszystkie
punkty w transmitowanych liniach
mają kolor czarny), składający się
z przedniego przedziału wyrów-
nawczego, impulsu synchronizacji
pionowej oraz tylnego przedziału
wyrównawczego. Złożony sygnał
synchronizacji przesyłany w kana-
le zielonym ma postać z anegowaną
w czasie trwania impulsu synchro-
nizacji pionowej (działanie funkcji
XOR dla obydwu sygnałów syn-
chronizacji).
W tab. 1 podano parametry cza-
sowe sygnału wizyjnego VGA dla
kilku popularnych rozdzielczości
ekranu i częstotliwości odświeżania
ramki (źródło: http://www–mtl.mit.
edu/Courses/6.111/labkit/vga.shtml).
W praktyce różni producenci mo-
nitorów podają nieco różniące się
wartości niektórych parametrów
czasowych. Podane w tab. 1 war-
tości nie są jednak krytyczne. Dla
przykładu, szerokość przedniego
i tylnego przedziału wyrównawcze-
go związana jest z położeniem ob-
razu na ekranie. Obraz na ekranie
monitora można przesuwać w lewo
lub w prawo oraz w górę lub w dół
właśnie poprzez zmianę szerokości
odpowiednich przedziałów wyrów-
nawczych zarówno dla linii jak
i dla ramki obrazu.
Dysponując danymi zawartymi
w tab. 1 dla danej rozdzielczości
obrazu i częstotliwości odświeżania
ramki f V , nominalną częstotliwość
punktu f p (czyli częstotliwość z ja-
ką powinny być wybierane kolejne
punkty w transmitowanej linii obra-
zu) można wyznaczyć z zależności:
odświeżania ramki, którą można wy-
znaczyć na podstawie zależności (1).
Taka sytuacja zachodzi w przypadku
danych w tab. 1, gdzie wartości czę-
stotliwości punktu (druga kolumna)
są podane w sposób przybliżony po
odpowiednim zaokrągleniu (lub też
inaczej można powiedzieć, że to
częstotliwość odświeżania, widniejąca
obok rozdzielczości obrazu, podana
jest w sposób przybliżony). Dodatko-
wym skutkiem (nieznacznej) zmiany
częstotliwości punktu, przy niezmie-
nionych pozostałych parametrach,
może być zmiana rozmiarów wyświe-
tlanego na ekranie obrazu.
Od strony elektrycznej w standar-
dzie VGA sygnały barw podstawo-
wych RGB są sygnałami analogowy-
mi o amplitudzie 0,7 V pp i impedancji
charakterystycznej 75 V, zaś sygnały
synchronizacji poziomej i pionowej to
typowe sygnały o poziomach TTL.
f
(
A
F
S
B
)
p
H
H
H
H
(1)
Z kolei częstotliwość linii (czę-
stotliwość impulsów synchronizacji
poziomej) określa zależność:
(
A
F
S
B
)
f
V
V
V
V
V
f
p
f
H
A
F
S
B
(2)
W przypadku, gdy rzeczywista
częstotliwość punktu jest zadana
z góry (np. poprzez zastosowanie re-
zonatora kwarcowego o wybranej war-
tości w generatorze taktującym) i róż-
ni się od częstotliwości nominalnej,
wówczas zmianie ulega częstotliwość
H
H
H
H
Budowa testera
Schemat blokowy testera przed-
stawiono na rys. 3 . Układy logicz-
ne urządzenia zostały zgrupowane
w kilku blokach funkcjonalnych,
przedni
przedział
wyrównawczy
tylny
przedział
wyrównawczy
aktywny
obszarobrazu
impuls
synchronizacji
kolejna
ramkaobrazu
G
HSync
VSync
Rys. 2. Budowa ramki obrazu VGA
Elektronika Praktyczna 4/2007
25
886696819.045.png 886696819.046.png 886696819.047.png 886696819.048.png 886696819.049.png 886696819.050.png 886696819.051.png 886696819.052.png 886696819.053.png 886696819.054.png 886696819.055.png 886696819.056.png 886696819.057.png 886696819.058.png 886696819.059.png 886696819.060.png 886696819.061.png 886696819.062.png 886696819.063.png 886696819.064.png 886696819.065.png 886696819.066.png 886696819.067.png 886696819.068.png 886696819.069.png 886696819.070.png 886696819.071.png 886696819.072.png 886696819.073.png 886696819.074.png 886696819.076.png 886696819.077.png 886696819.078.png 886696819.079.png 886696819.080.png 886696819.081.png 886696819.082.png 886696819.083.png 886696819.084.png 886696819.085.png 886696819.087.png 886696819.088.png 886696819.089.png 886696819.090.png 886696819.091.png 886696819.092.png 886696819.093.png 886696819.094.png 886696819.095.png 886696819.096.png 886696819.098.png 886696819.099.png 886696819.100.png 886696819.101.png 886696819.102.png 886696819.103.png 886696819.104.png 886696819.105.png 886696819.106.png 886696819.107.png 886696819.109.png 886696819.110.png 886696819.111.png 886696819.112.png 886696819.113.png 886696819.114.png 886696819.115.png 886696819.116.png 886696819.117.png 886696819.118.png
 
Tester monitorów VGA
z których każdy został opisany
w języku opisu sprzętu Verilog. Są
to następujące bloki: blok elimina-
cji drgań zestyków klawiatury ( de-
bouncer ), blok sterowania ( cu ), blok
wytwarzania częstotliwości punktu
( vga_clk ), blok wytwarzania impul-
sów synchronizacji ( vga_sync ), blok
generatora obrazu kraty ( cross_
hatch ), blok generatora obrazu ko-
lorowych pasów ( bars ) oraz blok
wyświetlania informacji na ekranie
( osd ). Poniżej zostaną krótko omó-
wione funkcje poszczególnych blo-
ków wraz z ich opisem w języku
Verilog. Pełne kody źródłowe opisu-
jące poszczególne bloki dostępne są
w materiałach dodatkowych.
Blok eliminacji drgań zestyków
klawiatury. Zadaniem tego bloku
jest dostarczenie do bloku steru-
jącego niezakłóconego, stabilnego
sygnału pochodzącego z klawiatury
służącej do wyboru poszczególnych
funkcji testera. Sygnał pochodzący
bezpośrednio z klawiszy może za-
wierać oscylacje powstałe w wyni-
ku mechanicznych drgań zestyków
podczas naciskania klawiszy. Oscy-
lacje te mogą powodować niepożą-
dane działanie układu sterującego.
Dodatkowo w tym bloku zaimple-
mentowano automat sekwencyjny,
który symuluje naciskanie przez
użytkownika odpowiedniej sekwen-
cji klawiszy, w wyniku czego w pę-
tli powtarzane są kolejne obrazy te-
stowe, zmieniana jest rozdzielczość
obrazu, częstotliwość odświeżania
i inne parametry.
Na list. 1 przedstawiono frag-
ment opisu omawianego bloku w ję-
zyku Verilog (pominięty został opis
wspomnianego automatu – pełny
kod znajduje się w materiałach do-
datkowych). W celu realizacji zada-
nia eliminacji drgań zestyków wy-
korzystano prosty pomysł polegający
na kolejnym próbkowaniu w odpo-
wiednich odstępach czasowych sta-
nu poszczególnych klawiszy i prze-
pisaniu go na wyjście modułu
wówczas, gdy wartości kilku kolej-
nych próbek będą identyczne.
Blok wytwarzania częstotliwo-
ści punktu. Blok ten ma kluczo-
we znaczenie z punktu widzenia
liczby trybów pracy (rozdzielczości
obrazu, częstotliwości odświeżania)
obsługiwanych przez tester. W teste-
rze przyjęto założenie, że możliwy
do wykorzystania jest tylko jeden
sygnał zegarowy pochodzący z ze-
wnętrznego generatora kwarcowego.
Rys. 3. Schemat blokowy testera VGA
26
Elektronika Praktyczna 4/2007
886696819.002.png 886696819.003.png 886696819.004.png 886696819.005.png 886696819.006.png 886696819.007.png 886696819.008.png 886696819.009.png 886696819.010.png 886696819.012.png 886696819.013.png 886696819.014.png 886696819.015.png 886696819.016.png 886696819.017.png 886696819.018.png
Tester monitorów VGA
niem instancji) układu zarządzania
sygnałem zegarowym DCM, które-
go działanie jest określone poprzez
wartości parametrów podanych jako
wymuszenia projektanta w kolejnych
liniach, rozpoczynających się od
zapisu // synthesis attribute . Przy-
kładowo dla instancji o nazwie pi-
xel_clk_36M częstotliwość wejściowa
z zewnętrznego generatora o wartości
40 MHz (sygnał clk ) jest mnożona
przez współczynnik CLKFX_MUL-
TIPLY (tutaj równy 9) i dzielona
przez współczynnik CLKFX_DIVIDE
(tutaj równy 10), dając w rezulta-
cie częstotliwość wypadkową (sy-
gnał clk_36M ) o wartości 36 MHz,
co odpowiada częstotliwości punk-
tu dla trybu pracy 640x480, 85 Hz
(por. tab. 1).
Blok wytwarzania sygnałów syn-
chronizacji. Blok ten, oprócz impul-
sów synchronizacji poziomej ( sync_h )
i pionowej ( sync_v ), wytwarza rów-
nież impuls wygaszania ( BLANK )
informujący o tym, że wybierany ak-
tualnie punkt znajduje się poza ob-
szarem aktywnym obrazu. Na wyj-
ściach bloku oznaczonych counterX
i counterY dostępna jest współrzędna
pozioma i pionowa (numer punktu
w linii i numer linii) aktualnie wy-
bieranego punktu. Jak wiemy tester
obsługuje kilka trybów pracy VGA,
a każdy tryb charakteryzuje się róż-
nymi długościami przedziałów cza-
sowych, na podstawie których wy-
twarzane są impulsy synchronizacji,
stąd też potrzebna jest dodatkowa
List. 1. Opis modułu eliminacji drgań zestyków klawiatury
module debouncer(input clk,k1,k2,k3,k4,k5,
output key1,key2,key3,key4,key5);
reg [4:0] m_in,out;
wire [4:0] in;
reg [2:0] cnt;
wire clk2;
reg kk1,kk2,kk3,kk4,kk5;
assign in={k5,k4,k3,k2,k1};
always @(posedge clk) div<=div+1;
//realizacja dzielnika częstotliwości wejściowej
assign clk2=div[14];
//clk2 – częstotliwość próbkowania stanu klawiszy
always @(posedge clk2) m_in<=in;
//zapamiętanie stanu klawiatury
always @(posedge clk2)
begin
if (in==m_in)
//jeżeli brak zmiany stanu wejścia
begin
cnt<=cnt+1;
//zwiększ cnt o 1
if(cnt==3'd3) out<=m_in;
//jeżeli w ciągu 3 taktów clk2 brak zmiany stanu klawiatury
//zapamiętaj ten stan
end
else cnt<=0;
//jeżeli zmiana stanu klawiatury – wyzeruj cnt
end
assign {key5,key4,key3,key2,key1}=~out;
//przepisz na wyjście – aktywny poziom wysoki
endmodule
Wynika z tego, że odpowiednią czę-
stotliwość punktu dla danych pa-
rametrów obrazu testowego należy
wytworzyć w układzie testera. Takie
właśnie zadanie należy do oma-
wianego bloku. Ze względu na to,
że częstotliwości punktu są dość
znaczne (powyżej 25 MHz – por.
tab. 1) oraz wymagają stosunko-
wo dużej dokładności, nie można
ich uzyskać poprzez prosty podział
częstotliwości wejściowej, która
dodatkowo musiałaby być bardzo
duża. Z pomocą przychodzą tutaj,
wykorzystywane w projekcie teste-
ra, układy Xilinx FPGA z rodziny
Spartan 3, które integrują w swojej
strukturze syntezery częstotliwości,
będące częścią składową układów
zarządzania sygnałem zegarowym
(DCM – Digital Clock Manager ).
Na wyjściu syntezera dostępna jest
częstotliwość będąca iloczynem czę-
stotliwości wejściowej i zadanej jako
parametr pewnej liczby wymiernej.
Liczba ta musi być określona już
podczas kompilacji projektu (konfi-
guracji układu FPGA) i nie da się
jej zmienić podczas normalnej pra-
cy układu. W wykorzystywanym do
budowy testera układzie XC3S200
dostępne są 4 niezależne układy
DCM, dlatego też – łącznie z czę-
stotliwością wejściową z zewnętrzne-
go generatora zegara – można uzy-
skać 5 częstotliwości punktu, czyli
możliwa jest obsługa pięciu trybów
pracy w standardzie VGA.
Na list. 2 pokazano kod w języ-
ku Verilog opisujący blok genero-
wania częstotliwości punktu. Linie
rozpoczynające się od identyfikatora
DCM są konkretyzacjami (utworze-
List. 2. Opis bloku wytwarzania częstotliwości punktu
odule vga_clock( input clk,
input [3:0] Mode,
output reg vga_clk);
wire clk36M,clk56M,clk65M,clk25M;
DCM pixel_clk_36M (.CLKIN(clk),.CLKFX(clk56M6M));
// synthesis attribute CLKFX_DIVIDE of pixel_clk_36M is 10
// synthesis attribute CLKFX_MULTIPLY of pixel_clk_36M is 9
// synthesis attribute CLK_FEEDBACK of pixel_clk_36M is NONE
DCM pixel_clk_25M (.CLKIN(clk),.CLKFX(clk25M));
// synthesis attribute CLKFX_DIVIDE of pixel_clk_25M is 16
// synthesis attribute CLKFX_MULTIPLY of pixel_clk_25M is 10
// synthesis attribute CLK_FEEDBACK of pixel_clk_25M is NONE
DCM pixel_clk_56M (.CLKIN(clk),.CLKFX(clk56M));
// synthesis attribute CLKFX_DIVIDE of pixel_clk_56M is 10
// synthesis attribute CLKFX_MULTIPLY of pixel_clk_56M is 14
// synthesis attribute CLK_FEEDBACK of pixel_clk_56M is NONE
DCM pixel_clk_65M (.CLKIN(clk),.CLKFX(clk65M));
// synthesis attribute CLKFX_DIVIDE of pixel_clk_65M is 16
// synthesis attribute CLKFX_MULTIPLY of pixel_clk_65M is 26
// synthesis attribute CLK_FEEDBACK of pixel_clk_65M is NONE
always @(Mode)
case(Mode)
4'b1001: vga_clk=clk36M; //640x480 (VGA), 85Hz
4'b0010: vga_clk=clk; //800x600 (SVGA), 60Hz
4'b1010: vga_clk=clk56M; //800x600 (SVGA), 85Hz
4'b0100: vga_clk=clk65M; //1024x768 (XGA), 60Hz
4'b1100: vga_clk=clk65M; //1024x768 (XGA), 60Hz
default: vga_clk=clk25M; //640x480 (VGA), 60Hz
endcase
endmodule
Elektronika Praktyczna 4/2007
27
886696819.019.png 886696819.020.png 886696819.021.png
Tester monitorów VGA
WYKAZ ELEMENTÓW
Rezystory (0805)
R1, R3, R5: 270 V
R2, R4, R6...R8, R22...R24: 100 V
R9...R13, R25, R26: 4,7 k V
R14...R21: 360 V
Kondensatory
C1: 100 m F/25 V
C2...C7, C11...C14, C16...C21:
100 nF (0805)
C8...C10, C15: 10 m F/10 V tantal
(SMD–A)
Półprzewodniki
D1: 1N4007
D2...D9: LED (0805)
U1: XC3S200 (VQ100)
U2: XCF01S (VO20)
U3: generator kwarcowy 40 MHz
U4: SPX1117–3.3 (TO252)
U5: SPX1117–2.5 (TO252)
U6: SPX1117–1.2 (TO252)
Inne
J1: DB15F trójrzędowe
J2: gniazdo zasilające
J3: goldpin 5x2
J4: goldpin 12x2
List. 3. Opis modułu wytwarzania impulsów synchronizacji
module vga_sync(input vga_clk,
output sync_h, sync_v, BLANK,
output [10:0] counterX,counterY,
input [10:0] TMaxX,TMaxY,HsLow,HsHigh,VsLow,VsHigh,MaxX,MaxY);
reg [10:0] cntx,cnty;
wire cntxMax=(cntx==TMaxX),cntyMax=(cnty==TMaxY);
always @(posedge vga_clk)
begin
if(cntxMax) cntx<=0;
else cntx<=cntx+1;
//jeżeli osiągnięto całkowitą liczbę punktów – wyzeruj licznik punktów
//w przeciwnym przypadku zwiększ zawartość licznika o 1
if(cntxMax)
if(!cntyMax) cnty<=cnty+1;
else cnty<=0;
//jeżeli osiągnięto maksymalną współrzędną punktu, sprawdź numer linii
//jeżeli osiągnięto również maksymalna liczbę linii – wyzeruj licznik linii
//w przeciwnym przypadku zwiększ licznik linii
end
assign BLANK=((cntx>MaxX)|(cnty>MaxY));
//definicja przedziału wygaszania
assign sync_h=~((cntx>HsLow)&&(cntx<HsHigh));
assign sync_v=~((cnty>VsLow)&&(cnty<VsHigh));
//definicja przedziałów dla impulsów synchronizacji
assign counterX=cntx;
assign counterY=cnty;
endmodule
informacja o parametrach czasowych
charakterystycznych dla danego try-
bu pracy. Informacja ta dostarczana
jest z układu sterującego w postaci
11–bitowych sygnałów o następu-
jącym znaczeniu: TMaxX – pozio-
ma współrzędna punktu odpowia-
dająca całkowitej liczbie punktów
w linii ( TMaxX=A H +F H +S H +B H –1 ),
TMaxY – numer linii wyznaczający
całkowitą liczbę linii ( TMaxY=A-
V +F V +S V +B V –1 ), HsLow – pozioma
współrzędna punktu, od której roz-
poczyna się impuls synchroniza-
cji poziomej ( HsLow= A H +F H –1 ),
HsHigh – pozioma współrzęd-
na punktu wyznaczająca koniec
impulsu synchronizacji poziomej
( HsHigh= A H +F H +S H –1 ), VsLow
– numer linii określający początek
impulsu synchronizacji pionowej
( VsLow= A V +F V –1 ), VsHigh – numer
linii wyznaczający koniec impulsu
synchronizacji pionowej ( VsHigh=
A V +F V +S V –1 ), MaxX – pozioma
współrzędna punktu odpowiadająca
liczbie aktywnych punktów obrazu
( MaxX=A H –1 ), MaxY – numer linii
odpowiadający liczbie aktywnych li-
nii obrazu ( MaxY=A V –1 ).
Na list. 3 przedstawiono kod
w języku Verilog opisujący działanie
bloku wytwarzania sygnałów syn-
chronizacji.
Pozostałe bloki testera oraz uwa-
gi dotyczące montażu przedstawimy
w 2 części artykułu.
Zbigniew Hajduk
Politechnika Rzeszowska
arm.ep.com.pl arm.ep.com.pl
arm.ep.com.pl
arm.ep.com.pl
arm.ep.com.pl
28
Elektronika Praktyczna 4/2007
886696819.023.png 886696819.024.png 886696819.025.png 886696819.026.png 886696819.027.png 886696819.028.png
Zgłoś jeśli naruszono regulamin