




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、專業(yè):_電子信息工程_姓名:_陳華杰_學(xué)號:_日期:_4月4日_地點:應(yīng)電樓303桌號2組 實驗報告課程名稱:_FPGA實驗_指導(dǎo)老師:_竺紅衛(wèi)/陳宏_成績:_實驗名稱:_液晶屏的顯示設(shè)計_實驗類型:_FPGA實驗_同組學(xué)生姓名:_一、 實驗?zāi)康?. 熟悉實驗板上液晶屏的工作原理;2. 熟悉驅(qū)動電路的源代碼。二、實驗裝置1. 電腦一臺;2. 實驗板一塊;3. 實驗板電源一只;4. 實驗板連接電腦的下載線一根。三、實驗原理實驗板顯著的特征是2 線16 字符液晶顯示器LCD。盡管LCD 支持8 位的數(shù)據(jù)接口,為了與其它的XILINX 的開發(fā)板保持兼容并且盡可能減少針腳數(shù), FPGA 僅通過4 位的
2、數(shù)據(jù)接口線控制LCD, LCD 通過使用ASCII 標準和自定義字符可以有效地顯示多種信息。但是,這些顯示速度并不是很快。每半秒掃描一次以測試實際清晰度的界限。與50MHz 時鐘頻率相比,這樣的顯示速度是慢的。 PicoBlaze 處理器可以有效地控制顯示時間和顯示內(nèi)容。字符 LCD 的供電電壓是5V。 FPGA 的I/O 口信號的電壓是3.3V。但是, FPGA 的輸出電平是通過LCD 來識別是有效的低電平還是高電平。 LCD 控制器接收5V TTL 信號電平, FPGA輸出3.3V 的LCMOS 以滿足5V TTL 電壓要求。數(shù)據(jù)線上的390 歐串聯(lián)電阻,當LCD 驅(qū)動一個邏輯高電平時,其
3、用來防止了FPGA 和SrtataFlsah I/O 管腳的超負載。當LCD_RW 為高時, LCD驅(qū)動數(shù)據(jù)線。在絕大多數(shù)應(yīng)用中, LCD作為只讀外圍設(shè)備,幾乎沒有從顯示器讀數(shù)據(jù)。四、操作方法和實驗步驟對于程序的各個步驟,如新建項目、新建Verilog HDL、新建.ucf文件、Synthesize、Implement Design、Generate Programming File、Configure Target Device等等,在實驗一中已經(jīng)展示過,每一次實驗的基本操作步驟都是差不多的,故這里不再重復(fù)闡述。本次實驗總共需要做三份程序并觀察現(xiàn)象:1)例程2)設(shè)計按鍵撥動時顯示小時、分鐘和
4、秒,中間分別空一格。3)按鍵撥動開始顯示,10秒鐘顯示結(jié)束,結(jié)束時LCD上顯示ABCDEF,同時八只LED燈亮。五、實驗源代碼和現(xiàn)象1)例程UCF文件如下:NET "CLK_50MHZ" LOC="C9"NET "LCD_D<0>" LOC="R15"NET "LCD_D<1>" LOC="R16"NET "LCD_D<2>" LOC="P17"NET "LCD_D<3>&quo
5、t; LOC="M15"NET "LCD_E" LOC="M18"NET "LCD_RS" LOC="L18"NET "LCD_RW" LOC="L17"源代碼如下:module lcd_write_number_test(input CLK_50MHZ,output LCD_E,output LCD_RS,output LCD_RW,output 3:0 LCD_D);wire if_ready;reg if_write;reg 31:0 if_data
6、;reg 1:0 state;reg 31:0 cntr;parameter IDLE = 2'b00,IF_WRITE_1 = 2'b01,SET_IF_WRITE_0 = 2'b10,WAIT = 2'b11;/ Instantiate the Unit Under Test (UUT)lcd_write_number uut(.CLK_50MHZ(CLK_50MHZ),.LCD_E(LCD_E),.LCD_RS(LCD_RS),.LCD_RW(LCD_RW),.LCD_D(LCD_D),.if_data(if_data),.if_write(if_writ
7、e),.if_ready(if_ready);initial beginif_data <= 32'habba0123;state <= IDLE;if_write <= 1'b0;cntr <= 32'b0;endalways (posedge CLK_50MHZ) begincase (state)IDLE:if (if_ready) beginif_data <= if_data + 1'b1;if_write <= 1'b1;state <= IF_WRITE_1;cntr <= 32'b0
8、;endIF_WRITE_1: / this state to keep if_write up for 2 cyclesstate <= SET_IF_WRITE_0;SET_IF_WRITE_0: / set if_write 0 and start the counterbeginif_write <= 1'b0;state <= WAIT;cntr <= 32'b0;endWAIT:if (cntr < 25000000) / wait for 0.5 secondscntr <= cntr + 32'b1;elsestate
9、 <= IDLE;endcaseendendmoduletimescale 1ns / 1psmodule lcd_write_number(input CLK_50MHZ,output LCD_E,output LCD_RS,output LCD_RW,output 3:0 LCD_D,input 31:0 if_data,input if_write,output if_ready);reg 7:0 disp_data;reg disp_rs;reg 31:0 disp_delay;reg disp_write;wire disp_ready;reg disp_b8;reg 7:0
10、char;reg 1:0 state;reg 31:0 number;reg init_done;reg running;reg 4:0 shift_cntr;reg if_ready_r;assign if_ready = if_ready_r;lcd_display display(.clk(CLK_50MHZ),.rst(1'b0),.lcd_e(LCD_E),.lcd_rw(LCD_RW),.lcd_rs(LCD_RS),.lcd_d(LCD_D),.if_data(disp_data),.if_rs(disp_rs),.if_delay(disp_delay),.if_wri
11、te(disp_write),.if_ready(disp_ready),.if_8bit(disp_b8);parameter NB_CHARS = 8'd12;parameter START = 2'b00,WAIT_WRITE_0 = 2'b01,WRITE_1 = 2'b10,WAIT_WRITE_1 = 2'b11;initial beginstate <= 2'b00;char <= 8'b0;init_done <= 1'b0;if_ready_r <= 1'b0;shift_cntr
12、 <= 5'b0;endalways (posedge CLK_50MHZ) beginif (init_done && char > 8'd16) beginif (disp_ready)if_ready_r <= 1'b1;if (if_write) beginchar <= 4'd8; / reset the displayendend else if (char <= 8'd16) beginif_ready_r <= 1'b0;case (state)START:if (disp_re
13、ady) begindisp_write <= 1'b1;state <= WAIT_WRITE_0;endWAIT_WRITE_0:state <= WRITE_1;WRITE_1:begindisp_write <= 1'b0;state <= 2'b11;endWAIT_WRITE_1:beginstate <=START;char <= char + 8'b1;endendcase / case (state)end / else: !if(!running)end / always (posedge CLK_5
14、0MHZ)always (negedge CLK_50MHZ) begin/ these next steps initialize the LCD display:case (char)0:begindisp_b8 <= 1'b0;disp_data <= 8'h30;disp_delay <= 32'd10000000;disp_rs <= 1'b0;end1: disp_data <= 8'h30;2:begindisp_data <= 8'h30;disp_delay <= 32'd100
15、0000;end3:begindisp_data <= 8'h20;disp_delay <= 32'd20000;end4:begindisp_b8 <= 1'b1;disp_data <= 8'h28;end5: disp_data <= 8'h06;6: disp_data <= 8'h0C;7:begindisp_data <= 8'h01;disp_delay <= 32'd1000000;init_done <= 1'b1;shift_cntr <=
16、5'd9;end8: / this state provides an entry point to reset the display and then/ go on to the default state that writes the numberbegindisp_rs <= 1'b0;disp_data <= 8'h01;disp_delay <= 32'd1000000;shift_cntr <= 5'b0;number <= if_data;enddefault:/ state machine to prin
17、t a 32-bit number outif (disp_ready && state = START) beginif (shift_cntr < 5'd8) begindisp_rs <= 1'b1;disp_delay <= 32'd20000;if (number31:28 < 4'b1010)disp_data <= number31:28 + 8'h30;elsedisp_data <= number31:28 + 8'h37;number <= number <<
18、; 4;shift_cntr <= shift_cntr + 5'b1;endendendcase / case (char)end / always (negedge CLK_50MHZ)endmoduletimescale 1ns / 1psmodule lcd_display(input clk,input rst,output lcd_e,output lcd_rw,output lcd_rs,output 3:0 lcd_d,input 7:0 if_data,input if_rs,input 31:0 if_delay,input if_write,output i
19、f_ready,input if_8bit);reg 2:0 state;reg lcdr_e;reg 3:0 lcdr_d;reg 31:0 wait_cntr;reg ready;reg init_done;parameter IDLE = 3'b000,WAIT_PULSE_E_0 = 3'b001,LOAD_LOWER_NIBBLE = 3'b010,WAIT_PULSE_E_1 = 3'b011,WAIT_COMMAND = 3'b100;parameter PULSE_E_DLY = 32'd12;parameter INIT_TIM
20、E = 32'd20000000;assign lcd_d = lcdr_d;assign lcd_rs = if_rs;assign lcd_rw = 1'b0;assign lcd_e = lcdr_e;assign if_ready = ready;initial beginstate <= IDLE;ready <= 1'b0;lcdr_e <= 1'b0;init_done <= 1'b0;endalways (posedge clk) beginif (rst) beginstate <= IDLE;end el
21、se if (!init_done) beginif (wait_cntr < INIT_TIME)wait_cntr <= wait_cntr + 1;else begininit_done <= 1'b1;ready <= 1'b1;endend else begincase (state)IDLE:beginif (if_write) beginlcdr_e <= 1'b1;lcdr_d <= if_data7:4; / upper nibble firstready <= 1'b0;wait_cntr <=
22、 32'b0;state <= WAIT_PULSE_E_0;endendWAIT_PULSE_E_0:if (wait_cntr < PULSE_E_DLY) beginwait_cntr <= wait_cntr + 1;end else beginlcdr_e <= 1'b0;wait_cntr <= 0;if (if_8bit)state <= LOAD_LOWER_NIBBLE;elsestate <= WAIT_COMMAND;endLOAD_LOWER_NIBBLE:if (wait_cntr < PULSE_E_D
23、LY) beginwait_cntr <= wait_cntr + 1;end else beginwait_cntr <= 0;lcdr_e <= 1'b1;lcdr_d <= if_data3:0; / lower nibblestate <= WAIT_PULSE_E_1;endWAIT_PULSE_E_1:if (wait_cntr < PULSE_E_DLY) beginwait_cntr <= wait_cntr + 1;end else beginlcdr_e <= 1'b0;wait_cntr <= 0;st
24、ate <= WAIT_COMMAND;endWAIT_COMMAND:if (wait_cntr < if_delay) beginwait_cntr <= wait_cntr + 32'b1;end else beginwait_cntr <= 0;if (!if_write) beginstate <= IDLE;ready <= 1'b1;endendendcase / case (state)endendendmodule共有三個module,它們的包含關(guān)系為lcd_write_number_test包含lcd_write_numb
25、er,lcd_write_number包含lcd_display,下同。實驗現(xiàn)象:如下圖,剛燒錄程序完時,LCD前8位依次顯示十六進制數(shù)“ABBA0123”,然后每過0.5秒,該數(shù)值增一,滿十六進位。2)設(shè)計按鍵撥動時顯示小時、分鐘和秒,中間分別空一格。UCF文件如下:NET "CLK_50MHZ" LOC="C9"NET "LCD_D<0>" LOC="R15"NET "LCD_D<1>" LOC="R16"NET "LCD_D<2&
26、gt;" LOC="P17"NET "LCD_D<3>" LOC="M15"NET "LCD_E" LOC="M18"NET "LCD_RS" LOC="L18"NET "LCD_RW" LOC="L17"NET "SW1" LOC="L14"源代碼如下:module lcd_write_number_test(input SW1,input CLK_50
27、MHZ,output LCD_E,output LCD_RS,output LCD_RW,output 3:0 LCD_D);wire if_ready;reg if_write;reg 31:0 if_data;reg 1:0 state;reg 31:0 cntr;parameter IDLE = 2'b00,IF_WRITE_1 = 2'b01,SET_IF_WRITE_0 = 2'b10,WAIT = 2'b11;/ Instantiate the Unit Under Test (UUT)lcd_write_number uut(.SW1(SW1),.
28、CLK_50MHZ(CLK_50MHZ),.LCD_E(LCD_E),.LCD_RS(LCD_RS),.LCD_RW(LCD_RW),.LCD_D(LCD_D),.if_data(if_data),.if_write(if_write),.if_ready(if_ready);initial beginif_data <= 32'h19044012;state <= IDLE;if_write <= 1'b0;cntr <= 32'b0;endalways (posedge CLK_50MHZ) begincase (state)IDLE:if
29、(if_ready) beginif(if_data31:0=32'h23059059)if_data <= 32'h0;else if(if_data27:0=28'h9059059)if_data <= if_data + 32'h6fa6fa7;else if(if_data19:0=20'h59059)if_data <= if_data + 32'hfa6fa7;else if(if_data15:0=16'h9059)if_data <= if_data + 32'h6fa7;else if(i
30、f_data7:0=8'h59)if_data <= if_data + 32'hfa7;else if(if_data3:0=4'h9)if_data <= if_data + 32'h7;else if_data <= if_data + 1'b1;if_write <= 1'b1;state <= IF_WRITE_1;cntr <= 32'b0;endIF_WRITE_1: / this state to keep if_write up for 2 cyclesstate <= SET_
31、IF_WRITE_0;SET_IF_WRITE_0: / set if_write 0 and start the counterbeginif_write <= 1'b0;state <= WAIT;cntr <= 32'b0;endWAIT:if (cntr < 50000000) / wait for 1 secondscntr <= cntr + 32'b1;elsestate <= IDLE;endcaseendendmoduletimescale 1ns / 1psmodule lcd_display(input clk,
32、input rst,output lcd_e,output lcd_rw,output lcd_rs,output 3:0 lcd_d,input 7:0 if_data,input if_rs,input 31:0 if_delay,input if_write,output if_ready,input if_8bit);reg 2:0 state;reg lcdr_e;reg 3:0 lcdr_d;reg 31:0 wait_cntr;reg ready;reg init_done;parameter IDLE = 3'b000,WAIT_PULSE_E_0 = 3'b0
33、01,LOAD_LOWER_NIBBLE = 3'b010,WAIT_PULSE_E_1 = 3'b011,WAIT_COMMAND = 3'b100;parameter PULSE_E_DLY = 32'd12;parameter INIT_TIME = 32'd20000000;assign lcd_d = lcdr_d;assign lcd_rs = if_rs;assign lcd_rw = 1'b0;assign lcd_e = lcdr_e;assign if_ready = ready;initial beginstate <
34、= IDLE;ready <= 1'b0;lcdr_e <= 1'b0;init_done <= 1'b0;endalways (posedge clk) beginif (rst) beginstate <= IDLE;end else if (!init_done) beginif (wait_cntr < INIT_TIME)wait_cntr <= wait_cntr + 1;else begininit_done <= 1'b1;ready <= 1'b1;endend else begincas
35、e (state)IDLE:beginif (if_write) beginlcdr_e <= 1'b1;lcdr_d <= if_data7:4; / upper nibble firstready <= 1'b0;wait_cntr <= 32'b0;state <= WAIT_PULSE_E_0;endendWAIT_PULSE_E_0:if (wait_cntr < PULSE_E_DLY) beginwait_cntr <= wait_cntr + 1;end else beginlcdr_e <= 1'
36、b0;wait_cntr <= 0;if (if_8bit)state <= LOAD_LOWER_NIBBLE;elsestate <= WAIT_COMMAND;endLOAD_LOWER_NIBBLE:if (wait_cntr < PULSE_E_DLY) beginwait_cntr <= wait_cntr + 1;end else beginwait_cntr <= 0;lcdr_e <= 1'b1;lcdr_d <= if_data3:0; / lower nibblestate <= WAIT_PULSE_E_1;
37、endWAIT_PULSE_E_1:if (wait_cntr < PULSE_E_DLY) beginwait_cntr <= wait_cntr + 1;end else beginlcdr_e <= 1'b0;wait_cntr <= 0;state <= WAIT_COMMAND;endWAIT_COMMAND:if (wait_cntr < if_delay) beginwait_cntr <= wait_cntr + 32'b1;end else beginwait_cntr <= 0;if (!if_write) b
38、eginstate <= IDLE;ready <= 1'b1;endendendcase / case (state)endendendmoduletimescale 1ns / 1psmodule lcd_write_number(input CLK_50MHZ,input SW1,output LCD_E,output LCD_RS,output LCD_RW,output 3:0 LCD_D,input 31:0 if_data,input if_write,output if_ready);reg 7:0 disp_data;reg disp_rs;reg 31:
39、0 disp_delay;reg disp_write;wire disp_ready;reg disp_b8;reg 7:0 char;reg 1:0 state;reg 31:0 number;reg init_done;reg running;reg 4:0 shift_cntr;reg if_ready_r;assign if_ready = if_ready_r;lcd_display display(.clk(CLK_50MHZ),.rst(1'b0),.lcd_e(LCD_E),.lcd_rw(LCD_RW),.lcd_rs(LCD_RS),.lcd_d(LCD_D),.
40、if_data(disp_data),.if_rs(disp_rs),.if_delay(disp_delay),.if_write(disp_write),.if_ready(disp_ready),.if_8bit(disp_b8);parameter NB_CHARS = 8'd12;parameter START = 2'b00, WAIT_WRITE_0 = 2'b01, WRITE_1 = 2'b10, WAIT_WRITE_1 = 2'b11; initial beginstate <= 2'b00;char <= 8&
41、#39;b0;init_done <= 1'b0;if_ready_r <= 1'b0;shift_cntr <= 5'b0;endalways (posedge CLK_50MHZ) beginif (init_done && char > 8'd16) begin if (disp_ready) if_ready_r <= 1'b1; if (if_write) begin char <= 4'd8; / reset the display endend else if (char <
42、= 8'd16) begin if_ready_r <= 1'b0; case (state) START:if (disp_ready) begindisp_write <= 1'b1;state <= WAIT_WRITE_0;endWAIT_WRITE_0:state <= WRITE_1;WRITE_1:begindisp_write <= 1'b0;state <= 2'b11;endWAIT_WRITE_1:beginstate <= START;char <= char + 8'b1;
43、endendcase / case (state)end / else: !if(!running)end / always (posedge CLK_50MHZ)always (negedge CLK_50MHZ) begin/ these next steps initialize the LCD display:case (char)0:begindisp_b8 <= 1'b0;disp_data <= 8'h30;disp_delay <= 32'd10000000;disp_rs <= 1'b0;end1: disp_data
44、<= 8'h30;2:begindisp_data <= 8'h30;disp_delay <= 32'd1000000;end3:begindisp_data <= 8'h20;disp_delay <= 32'd20000;end4:begindisp_b8 <= 1'b1;disp_data <= 8'h28;end5: disp_data <= 8'h06;6: disp_data <= 8'h0C;7:begindisp_data <= 8'h0
45、1;disp_delay <= 32'd1000000;init_done <= 1'b1;shift_cntr <= 5'd9;end8: / this state provides an entry point to reset the display and then/ go on to the default state that writes the numberbegindisp_rs <= 1'b0;disp_data <= 8'h01;disp_delay <= 32'd1000000;shif
46、t_cntr <= 5'b0;number <= if_data;enddefault:/ state machine to print a 32-bit number outif (SW1)beginif (disp_ready && state = START) begin if (shift_cntr < 5'd8) begin disp_rs <= 1'b1; disp_delay <= 32'd20000; if(shift_cntr = 5'd2) | (shift_cntr = 5'd5
47、) begin disp_data <= 8'h20; endelse begin if (number31:28 < 4'b1010) disp_data <= number31:28 + 8'h30; else disp_data <= number31:28 + 8'h37; endnumber <= number << 4; shift_cntr <= shift_cntr + 5'b1;endendendendcase / case (char)end / always (negedge CLK_
48、50MHZ)endmodule實驗現(xiàn)象:當SW1為低電平時,LCD無顯示。SW1向上撥后,如下圖,LCD顯示小時、分鐘和秒,中間分別空一格,且該輸出顯示會按照時鐘的樣式計時、刷新,每過一秒鐘秒位進一,秒的個位滿10進位,秒數(shù)滿60則分數(shù)增一當SW1再次向下?lián)?,LCD顯示關(guān)閉,但始終仍然在計時。程序剛燒進板子時,時鐘的初始時間是人為設(shè)定的19時44分12秒。3)按鍵撥動開始顯示,10秒鐘顯示結(jié)束,結(jié)束時LCD上顯示ABCDEF,同時八只LED燈亮。UCF文件如下:NET "CLK_50MHZ" LOC="C9"NET "LCD_D<0>
49、;" LOC=R15;NET "LCD_D<1>" LOC=R16;NET "LCD_D<2>" LOC=P17;NET "LCD_D<3>" LOC=M15;NET "LCD_E" LOC=M18;NET "LCD_RS" LOC=L18;NET "LCD_RW" LOC=L17;NET "SW1" LOC=L14;NET "LED0" LOC=F12;NET "LED1&quo
50、t; LOC=E12;NET "LED2" LOC=E11;NET "LED3" LOC=F11;NET "LED4" LOC=C11;NET "LED5" LOC=D11;NET "LED6" LOC=E9;NET "LED7" LOC=F9;源代碼如下:module lcd_write_number_test(input CLK_50MHZ,input SW1,output LCD_E,output LCD_RS,output LCD_RW,output 3:0 LCD_
51、D,output LED0,output LED1,output LED2,output LED3,output LED4,output LED5,output LED6,output LED7);wire if_ready;reg if_write;reg 31:0 if_data;reg 1:0 state;reg 31:0 cntr;parameter IDLE = 2'b00,IF_WRITE_1 = 2'b01,SET_IF_WRITE_0 = 2'b10,WAIT = 2'b11;/ Instantiate the Unit Under Test (
52、UUT)lcd_write_number uut(.SW1(SW1),.CLK_50MHZ(CLK_50MHZ),.LCD_E(LCD_E),.LCD_RS(LCD_RS),.LCD_RW(LCD_RW),.LCD_D(LCD_D),.if_data(if_data),.if_write(if_write),.if_ready(if_ready),.LED0(LED0),.LED1(LED1),.LED2(LED2),.LED3(LED3),.LED4(LED4),.LED5(LED5),.LED6(LED6),.LED7(LED7);initial beginif_data <= 32
53、'h19044012;state <= IDLE;if_write <= 1'b0;cntr <= 32'b0;endalways (posedge CLK_50MHZ) begincase (state)IDLE:if (if_ready) beginif(if_data31:0=32'h23059059)if_data <= 32'h0;else if(if_data27:0=28'h9059059)if_data <= if_data + 32'h6fa6fa7;else if(if_data19:0=
54、20'h59059)if_data <= if_data + 32'hfa6fa7;else if(if_data15:0=16'h9059)if_data <= if_data + 32'h6fa7;else if(if_data7:0=8'h59)if_data <= if_data + 32'hfa7;else if(if_data3:0=4'h9)if_data <= if_data + 32'h7;else if_data <= if_data + 1'b1;if_write <
55、;= 1'b1;state <= IF_WRITE_1;cntr <= 32'b0;endIF_WRITE_1: / this state to keep if_write up for 2 cyclesstate <= SET_IF_WRITE_0;SET_IF_WRITE_0: / set if_write 0 and start the counterbeginif_write <= 1'b0;state <= WAIT;cntr <= 32'b0;endWAIT:if (cntr < 50000000) / wa
56、it for 1 secondscntr <= cntr + 32'b1;elsestate <= IDLE;endcaseendendmoduletimescale 1ns / 1psmodule lcd_write_number(input CLK_50MHZ,input SW1,output LCD_E,output LCD_RS,output LCD_RW,output 3:0 LCD_D,output LED0,output LED1,output LED2,output LED3,output LED4,output LED5,output LED6,outpu
57、t LED7,input 31:0 if_data,input if_write,output if_ready);reg 7:0 disp_data;reg disp_rs;reg 31:0 disp_delay;reg disp_write;wire disp_ready;reg disp_b8;reg 7:0 char;reg 1:0 state;reg 31:0 number;reg init_done;reg running;reg 4:0 shift_cntr;reg if_ready_r;reg 28:0 cnt;reg cnt_state;reg light;assign if
58、_ready = if_ready_r;lcd_display display(.clk(CLK_50MHZ),.rst(1'b0),.lcd_e(LCD_E),.lcd_rw(LCD_RW),.lcd_rs(LCD_RS),.lcd_d(LCD_D),.if_data(disp_data),.if_rs(disp_rs),.if_delay(disp_delay),.if_write(disp_write),.if_ready(disp_ready),.if_8bit(disp_b8);parameter NB_CHARS = 8'd12;parameter START =
59、2'b00, WAIT_WRITE_0 = 2'b01, WRITE_1 = 2'b10, WAIT_WRITE_1 = 2'b11; initial beginstate <= 2'b00;char <= 8'b0;init_done <= 1'b0;if_ready_r <= 1'b0;shift_cntr <= 5'b0;cnt_state <= 1'b0;cnt <= 29'b0;light <= 1'b0;endalways (posedge CLK_50MHZ) beginif (init_done && char > 8'd16) begin if (disp_ready) if_ready_r <= 1'b1; if (if_write) begin char <= 4'd8; / reset the display endend else if (char <= 8'd16) begi
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 修建贊助合同范本
- 勞務(wù)時間合同范本
- 內(nèi)外架合同范例
- 化肥合作合同范例
- 專項經(jīng)理聘用合同范本
- 農(nóng)業(yè)購貨合同范本
- 化工產(chǎn)品購銷服務(wù)合同范本
- 醫(yī)院購銷合同范本
- 出口布料銷售合同范例
- 養(yǎng)殖水車出租合同范例
- DB34∕T 3247-2018 井采煤礦綠色礦山建設(shè)要求
- 2024至2030年中國小模數(shù)齒輪市場調(diào)查與行業(yè)前景預(yù)測專題研究報告
- DB32T-公路橋梁水下結(jié)構(gòu)檢測評定標準
- 小學(xué)語文教師讀書筆記范文(5篇)
- 2023年部編人教版六年級道德與法治下冊全冊課件【全套】
- 《茉莉花》(課件)人音版音樂六年級上冊
- 肌肉注射的常見并發(fā)癥及預(yù)防處理措施
- 景觀模型設(shè)計與制作:第7章 建筑模型制作基本技法
- 關(guān)愛婦女防治兩癌講座課件
- DL∕T 584-2017 3kV~110kV電網(wǎng)繼電保護裝置運行整定規(guī)程
- (正式版)FZ∕T 80018-2024 服裝 防靜電性能要求及試驗方法
評論
0/150
提交評論