用EDA設(shè)計LED漢字滾動顯示器
關(guān)鍵詞:虛擬器件 VHDL語言及應(yīng)用 EDA技術(shù)
采用傳統(tǒng)方法設(shè)計的漢字滾動顯示器,通常需要使用單片機、存儲器和制約邏輯電路來進行PCB(印制電路板)板級的系統(tǒng)集成。盡管這種方案有單片機軟件的支持較為靈活,但是由于受硬件資源的限制,未來對設(shè)計的變更和升級,總是難以避免要付出較多研發(fā)經(jīng)費和較長投放市場周期的代價。
隨著電子設(shè)計自動化(EDA)技術(shù)的進展,基于可編程ASIC器件的數(shù)字電子系統(tǒng)設(shè)計的完整方案越來越受到人們的重視,并且以EDA技術(shù)為核心、的能在可編程ASIC器件上進行系統(tǒng)芯片集成的新設(shè)計方法,也正在快速地取代基于PCB板的傳統(tǒng)設(shè)計方式。
如何使用EDA工具設(shè)計電子系統(tǒng)是人們普遍關(guān)心的問題。在EDA工具軟件MAX+PLUSⅡ的支持下,本設(shè)計通過了編譯、適配和軟件仿真驗證。最后用載入真實實驗系統(tǒng)的硬件實驗證明了它的正確性。
硬件設(shè)計
為了簡化討論,本文只研究在單個8×8 LED 發(fā)光二極管點陣上滾動顯示多漢字信息的問題。
圖1給出的就是一個使用美國ALTERA公司10K系列FPGA設(shè)計的可支持滾動顯示多漢字信息的通用硬件電路。
在圖中,標準JTAG接口與PC機并口相連,用于下載設(shè)計數(shù)據(jù)至FPGA中;LED點陣的data線由FPGA的I/O線串300Ω限流電阻后驅(qū)動,而sw線直接由FPGA的I/O線驅(qū)動。LED點陣采用掃描式工作方式,控制sw線的循環(huán)掃描信號為低電平有效,顯示數(shù)據(jù)data為高電平有效。
由于ALTERA的10K10LC84-4芯片內(nèi)部有足夠的RAM資源,所以本設(shè)計沒有采用外部RAM。
另外,圖中的配置EPROM為可選件,只有當(dāng)要求漢字滾動顯示器脫機運行時才需要采用。
滾動顯示多漢字信息的原理
為在8×8 LED 發(fā)光二極管點陣上顯示漢字,首先要把漢字表示成為如圖2所示的8×8像素點圖。
在圖2中,data0~data7分別為按列抽取依序排列的漢字像素信息,均具有8位字長。
然后,依次對多漢字抽取像素信息,并按序排隊存放于ROM之中,便可得到一個待顯示數(shù)據(jù)序列。進一步通過尋址的方法來控制該數(shù)據(jù)序列的釋放過程,就可實現(xiàn)在8×8 LED 發(fā)光二極管點陣上滾動顯示多漢字信息的目的。圖3給出的就是實現(xiàn)滾動顯示多漢字信息的原理示意圖。
由圖3可知,某一時刻能在顯示數(shù)據(jù)序列中定位待顯示數(shù)據(jù)的地址指針可用下式計算:
addr=n+m (1)
顯然,n的取值范圍應(yīng)為0~N,并由它控制漢字顯示的滾動速度;m的取值范圍應(yīng)為0~7,并由它決定LED點陣的列開關(guān)sw的掃描速度。因此,控制n掃遍全部待顯示數(shù)據(jù)的時間,可調(diào)節(jié)漢字信息的滾動速度;改變m的重復(fù)掃描周期,可改善在LED點陣上顯示完整漢字信息的穩(wěn)定性。
另外還需指出,由于式(1)的運算要靠硬件實現(xiàn),故地址指針addr的模應(yīng)取為N,而且為實現(xiàn)全部漢字信息滾過LED點陣,必須在數(shù)據(jù)N前補充8個空數(shù)據(jù)字節(jié)。
根據(jù)圖3給出的顯示原理,我們可以構(gòu)造出它所對應(yīng)的硬件實現(xiàn)結(jié)構(gòu)如圖4所示。
根據(jù)圖4示出的原理,我們設(shè)計了描述FPGA內(nèi)核硬件功能的VHDL語言程序。本設(shè)計使用了ALTERA公司的MAX+PLUSⅡ PLD研發(fā)工具中的參數(shù)化模型庫,并采取了結(jié)構(gòu)化的描述方式。
下面就是我們設(shè)計的VHDL程序:
顯示數(shù)據(jù)文件的加方法
在VHDL設(shè)計中,ROM單元的初始化數(shù)據(jù)要由顯示數(shù)據(jù)文件data.hex提供,而且該文件的數(shù)據(jù)存放要符合Intel HEX格式。由于從漢字直接抽取的顯示數(shù)據(jù)為二進制代碼,故不能直接用于生成data.hex文件,因此需要借助其它EDA工具來幫助加工data.hex文件。下面就給出加工顯示數(shù)據(jù)文件data.hex的具體步驟:
1、對多漢字抽取像素信息,形成按序排列的待顯示數(shù)據(jù)序列;
2、使用河洛公司的萬用編程器ALL03或ALL07的應(yīng)用軟件,將待顯示數(shù)據(jù)加工成為BIN格式的二進制數(shù)據(jù)文件data.bin;
3、使用萬利公司的單片機仿真器軟件,將二進制數(shù)據(jù)文件data.bin轉(zhuǎn)換成為Intel HEX格式的顯示數(shù)據(jù)文件data.hex。
當(dāng)然,我們也可以使用單片機仿真器的應(yīng)用軟件來直接加工顯示數(shù)據(jù)文件data.hex,但是這需要對具有二進制代碼的顯示數(shù)據(jù)進行軟件編程,因此不如上述方法簡潔。
實驗驗證
為了驗證設(shè)計的正確性,我們使用EDA工具軟件MAX+PLUSⅡ中的模擬仿真器,對通過編譯的漢字滾動顯示器的VHDL設(shè)計進行了模擬仿真驗證, 實驗證明漢字滾動和顯示掃描情況均正常,也就是說FPGA的內(nèi)核硬件工作良好,可以正確地實現(xiàn)設(shè)計功能。
此外,漢字滾動顯示器的VHDL軟核設(shè)計也被載入了根據(jù)圖1建造的真實硬件系統(tǒng)之中。對硬件系統(tǒng)的實驗驗證也獲得了與軟件模擬仿真結(jié)論相吻合的結(jié)果。
因此,我們可以得出下列結(jié)論:
1、EDA技術(shù)不僅能降低數(shù)字電子系統(tǒng)設(shè)計的復(fù)雜性和難度,而且也能顯著地增強設(shè)計的靈活性;
2、多種EDA工具的聯(lián)合應(yīng)用,有助于提高設(shè)計效率和縮短設(shè)計周期;
3、利用EDA工具獲取的軟件模擬仿真結(jié)果具有同傳統(tǒng)硬件實驗數(shù)據(jù)一樣的重要性和可信度。