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