基于FPGA和硬件描述語(yǔ)言Verilog的液晶顯示控制器的設計
2 設計與實(shí)現
本設計的液晶顯示器刷新頻率為70Hz,每一幀周期為14.28ms,每一行周期為60μs,時(shí)鐘信號CP的頻率為2 MHz,將一行數據輸入列移位寄存器的時(shí)間為40μs,因此每一行設計了20μs的空白時(shí)間。
液晶控制器系統原理如圖2所示。時(shí)鐘模塊采用Xilinx公司的Coregen IP工具定制,數字時(shí)鐘管理器DCM模塊將FPGA 50 MHz時(shí)鐘信號CLK_IN 25分頻為2 MHz控制器時(shí)鐘信號CLK。DCM采用了數字延遲鎖相環(huán)技術(shù)來(lái)消除時(shí)鐘相位的位移,提供比自行分頻更穩定的時(shí)鐘信號,以滿(mǎn)足控制系統要求。CONTROLLER模塊為L(cháng)CM提供滿(mǎn)足圖l所示時(shí)序要求的控制信號CP、LP、FLM、M、DISPOFF,并且同步產(chǎn)生SRAM的讀地址ADDRA[14:0]。
SRAM為內存模塊。為了提高輸入LCD的數據流速度.設計了32K×4位的艤端口內存,可同時(shí)實(shí)現讀/寫(xiě),并實(shí)現數據格式的轉化,由上位機MCU輸入的8位數據轉為輸入LCM列驅動(dòng)器的4位數據;B端口由MCU_INTERFACE與上位機MCU連接,由MCU微控制器將顯示數據寫(xiě)入內存SRAM。其中,ADDRB[13:0]控制16K×8位的寫(xiě)地址,DINB[7:O]為寫(xiě)入數據,WEB為寫(xiě)有效控制,CLKB為寫(xiě)時(shí)鐘;A端口由CONTROLLER模塊控制讀地址ADDRA[14:0],讀時(shí)鐘CLKA由系統時(shí)鐘信號CLK控制,DOUTA[3:0]將數據寫(xiě)入LCM列驅動(dòng)器。2.2 控制模塊設計
應用狀態(tài)機的方法,用Verilog硬件描述語(yǔ)言設計控制模塊CONTROLLER。CLK為2 MHz輸入時(shí)鐘信號。LP和內部控制信號DEN由狀態(tài)機1控制產(chǎn)生,FLM由狀態(tài)機2控制產(chǎn)生,M由狀態(tài)機3控制產(chǎn)生,CP信號和ADDRA[14:0]根據CLK和DEN信號控制得到。狀態(tài)機1有3個(gè)狀態(tài):狀態(tài)1,LP為O,DEN為1,持續80個(gè)CLK脈沖后轉向狀態(tài)2;狀態(tài)2,LP為l,DEN為0,持續1個(gè)CLK脈沖后轉向狀態(tài)3;狀態(tài)3,LP為O,DEN為O,持續39個(gè)CLK脈沖后轉向狀態(tài)1。狀態(tài)機2有2個(gè)狀態(tài):狀態(tài)1,FLM為l,持續1個(gè)LP周期時(shí)間,即120個(gè)CLK脈沖;狀態(tài)2,FLM為O,持續剩下的239個(gè)LP周期,即28 680個(gè)CLK脈沖。狀態(tài)機3有2個(gè)狀態(tài),狀態(tài)l,M為1。持續1個(gè)FLM周期時(shí)間,即28800個(gè)CLK脈沖;狀態(tài)2,M為0,也持續1個(gè)FLM周期時(shí)間。CP信號和ADDRA由于含有空白信號,所以由內部控制信號DEN和時(shí)鐘信號CLK得到。以下為設計的源代碼初始化部分:
/Script> 3 仿真、下載測試分析
評論