7 szegmenses kijelzo meghajtasa FPGA-val

hoyuka hoyuka at c2.hu
Sun Jan 29 21:05:45 CET 2006


Sziasztok,

Probalkoztam a dologgal, azt vettem eszre, hogyha megfeleloen leosztom az
orajelet, akkor a
3210 sokkal dominansabban (kb. 95%-os fenyero) latszik, mint a
0321  (kb. 5%-os fenyero)

Most az osztas ilyen:
      reg [10:0] clkCnt;
	wire clk;
	assign clk=clkCnt[10];
	always @(posedge clk0) clkCnt<=clkCnt+1;

clk0 frekije 50Mhz.

Mi a bubanattol lehet ez? Olyasmire gondolok, hogy amikor a selCnt erteke
megvaltozik, akkor az uj erteke joval hamarabb kikerul az adott 7
szegmenses cuccosra, mint az uj, szinten selCnt alapjan eloallitott
szelektalo jel.
Vagy valami kapacitiv moka lehet? Ugy ertem, hogy a szelektalo labak
vmiert nagy kapaitasuak, ezert lassu a szelektalas?

A design report szerint 13 flip-flop van felhasznalva, ebbol 11 az
orajelosztas, 2 a selCnt, tehat ezekken kivul elvileg minden kombinacios
halozattal van megvalositva.

udv.
hoyuka

hoyuka said:
> Sziasztok!
>
> Jo egyszerunek kinezo feladat, megis szopok vele vagy fel napja. A
> Spartan3 starter kit-en talalhato 4db. 7 szegmenses kijelzorol van szo.
> Biztosan megint valami nagyon alapveto dolgot neztem el.
> Itt a forras, utanna leirom, hogy hogyan mukodik (hibasan):
>
> module Seven(clk0, select, seven, dot);
> 	input wire clk0;
> 	output wire [3:0] select;   // ez valasztja ki a 7 szegmenses kijelzot
> 	output wire [6:0] seven;    // ez van rakotve a szegmensekre
> 	output wire dot;            // ez a pont szegmensre
>
>       // itt orajelet osztok le, hogy konyebb legyen merni
> 	reg [3:0] clkCnt;
> 	wire clk;
> 	assign clk=clkCnt[3];
> 	always @(posedge clk0) clkCnt<=clkCnt+1;
>
>       // ez a szamlalo cimzi meg az adott 7 szegmensest
>       reg [1:0] selCnt;
>
>       // ez a dekoder selCnt alapjan kivalasztja a 4 kijelzo egyiket
> 	decoder dd(selCnt, select);
>
>       // ez meg a selCnt erteket (0,1,2,3) konvertalja 7 szegmenses
> ertekke
>       BCD2Seven b2s({2'b00,selCnt},seven);
>
>       assign dot=1;   // a tizedespont sosem vilagit (aktiv 0-as
> meghajtas)
>
>       // selCnt-et minden orajelben novelem, ez cimzi meg az adott 7
>       // szegmensest
> 	always @(posedge clk) selCnt<=selCnt+1;
>
> 	initial begin
> 		selCnt=0;   // nullazom, bar felesleges szerintem
> 	end
>
> endmodule
>
> // dekoder, az adott 7 szegmenses kijelzo szelektalasara szolgal
> module decoder(in,out);
> 	input  wire[1:0] in;
> 	output reg [3:0] out;
>
> 	always @(in) begin
> 		case (in)
> 			0: out='b1110;
> 			1: out='b1101;
> 			2: out='b1011;
> 			3: out='b0111;
> 		endcase
> 	end
> endmodule
>
> // kombinacios halo: 4bit binaris -> 7 szegmenses hexa szam
> module BCD2Seven(BCD, seven);
>
>     input wire [3:0] BCD;
>     output reg [6:0] seven;
>
>     always @(BCD) begin
>         case (BCD)
>                        //gfedcba
>             0:  seven=~'b0111111;
>             1:  seven=~'b0000110;
>             2:  seven=~'b1011011;
>             3:  seven=~'b1001111;
>             4:  seven=~'b1100110;
>             5:  seven=~'b1101101;
>             6:  seven=~'b1111101;
>             7:  seven=~'b0100111;
>                        //gfedcba
>             8:  seven=~'b1111111;
>             9:  seven=~'b1101111;
>             10: seven=~'b1110111;	// a
>             11: seven=~'b1111100;	// b
>             12: seven=~'b0111001;	// c
>             13: seven=~'b1011110;	// d
>             14: seven=~'b1111001;	// e
>             15: seven=~'b1110001;	// f
>         endcase
>     end
> endmodule
>
> Ok, ennyi a kod. Ennek szerintem azt kellene csinalnia, hogy a 7szegmenses
> kijelzokon megjeleniti ezt:
> 3210
>
> Es szerintem azt csinalja, hogy nagyon gyorsan valtogatva ezt a ket
> erteket jeleniti meg:
> 3210
> 0321
> Na ez mi a bubanattol lehet??????
>
> udv.
> hoyuka
>
> --
> http://hoyuka.myip.hu
> -------------------------------------
> C2 MAIL: Levelezés felsõfokon. http://mail.c2.hu
>
> -----------------------------------
>  Szponzorunk: http://tonerbolt.hu/
>


-- 
http://hoyuka.myip.hu
-------------------------------------
C2 MAIL: Levelezés felsõfokon. http://mail.c2.hu




More information about the Elektro mailing list