【摘要】本文主要通過比較數(shù)字時(shí)鐘的計(jì)數(shù)部分的設(shè)計(jì)方法,介紹了用Altera公司的QuartusⅡ軟件設(shè)計(jì)數(shù)字系統(tǒng)的方法。
【關(guān)鍵字】EDA;QuartusⅡ;數(shù)字鐘
引言
當(dāng)今電子產(chǎn)品正在向功能化、體積最小化、功耗最低化的方向發(fā)展。EDA(電子設(shè)計(jì)自動(dòng)化)技術(shù)正是為了適應(yīng)現(xiàn)代電子設(shè)計(jì)的要求,吸收多學(xué)科最新成果形成的一門新技術(shù)。可以利用EDA技術(shù)進(jìn)行電子系統(tǒng)的設(shè)計(jì),并且具有以下優(yōu)點(diǎn):1、采用自頂向下的設(shè)計(jì)方法;2、使用軟件的方式設(shè)計(jì)硬件;3、使用軟件方式設(shè)計(jì)的系統(tǒng)到硬件的轉(zhuǎn)換是由開關(guān)自動(dòng)完成;4、設(shè)計(jì)過程中可以是由有關(guān)軟件信息仿真;5、系統(tǒng)可現(xiàn)場(chǎng)編程,在線升級(jí);6、整個(gè)系統(tǒng)可以集成在一個(gè)芯片上,體積小、功耗低、可靠性高。因此,EDA技術(shù)是現(xiàn)代電子設(shè)計(jì)的發(fā)展趨勢(shì)。
本文結(jié)合EDA技術(shù)完成數(shù)字鐘的CPLD設(shè)計(jì),分別用Verilog HDL語言進(jìn)行編程和原理圖輸入方式實(shí)現(xiàn),并在QuartusⅡ軟件下進(jìn)行仿真,給出了仿真結(jié)果,從而驗(yàn)證了數(shù)字鐘CPLD設(shè)計(jì)的正確性。
1、數(shù)字鐘的功能
數(shù)字鐘的功能主要包括:
能夠?qū)uthor(小時(shí))、outmin(分)、outsec(秒)進(jìn)行計(jì)時(shí),每日按24小時(shí)計(jì)時(shí)制。
outhor(小時(shí))、outmin(分)、outsec(秒)位能夠分別被調(diào)整。
能同時(shí)對(duì)outhor(小時(shí))、outmin(分)、outsec(秒)位進(jìn)行清零。
2、數(shù)字鐘框圖
本電路采用模塊化設(shè)計(jì),主要分為脈沖產(chǎn)生模塊、計(jì)數(shù)模塊和顯示驅(qū)動(dòng)模塊,各部分電路分別完成相應(yīng)功能,并通過門電路使相應(yīng)模塊進(jìn)行聯(lián)系和控制,最終完成全部電路的設(shè)計(jì),實(shí)現(xiàn)整個(gè)電路的全部功能。
數(shù)字鐘七段數(shù)碼顯示電路的設(shè)計(jì)要求為:秒顯示數(shù)字為00-59;分顯示數(shù)字為00-59;小時(shí)顯示數(shù)字為00-23。整個(gè)數(shù)字時(shí)鐘電路由振蕩脈沖發(fā)生器、計(jì)數(shù)電路、顯示譯碼/驅(qū)動(dòng)電路和七段顯示器組成,具體框圖如下圖所示:
振蕩脈沖發(fā)生器將脈沖信號(hào)進(jìn)行分頻以產(chǎn)生秒脈沖。計(jì)數(shù)電路由秒計(jì)數(shù)器、分計(jì)數(shù)器以及時(shí)計(jì)數(shù)器組成,實(shí)現(xiàn)秒、分、時(shí)的計(jì)數(shù)。顯示譯碼驅(qū)動(dòng)器驅(qū)動(dòng)七段顯示器,使其正確顯示秒、分、時(shí)。本文主要介紹計(jì)數(shù)電路的實(shí)現(xiàn)。
3、模塊介紹
3.1脈沖發(fā)生器模塊
晶振電路產(chǎn)生2M標(biāo)準(zhǔn)脈沖經(jīng)分頻電路進(jìn)行8192分頻得到256Hz的信號(hào)永遠(yuǎn)控制動(dòng)態(tài)掃描顯示,然后再經(jīng)256分頻得到標(biāo)準(zhǔn)秒信號(hào)。
3.2計(jì)數(shù)模塊
QuartusⅡ軟件的輸入方法有很多種,包括圖形設(shè)計(jì)輸入、文本設(shè)計(jì)輸入、波形設(shè)計(jì)輸入、底層設(shè)計(jì)輸入等。在設(shè)計(jì)電路時(shí),應(yīng)該考慮各種輸入方法的優(yōu)點(diǎn),發(fā)揮各自的長(zhǎng)處來選擇不同的實(shí)現(xiàn)方法。本文分別用原理圖輸入方法和文本設(shè)計(jì)輸入方法來實(shí)現(xiàn)計(jì)數(shù)電路。具體流程圖如圖所示:
3.2.1原理圖輸入法
圖形方式的設(shè)計(jì)輸入主要是使用EDA軟件進(jìn)行原理圖、狀態(tài)圖、波形圖等圖形的編輯和修改。QuartusⅡ提供了大量的基本邏輯塊電路;宏功能;兆功能高級(jí)模塊等庫(kù)。如果用戶知道庫(kù)中的元件名,就可以直接輸入所需要的元件名,比如,如果需要2輸入與門可以直接鍵入AND2,然后單擊OK,工作區(qū)鼠標(biāo)所在位置則出現(xiàn)需要的元件符號(hào),如果不知道元件名稱,則可以選擇對(duì)應(yīng)庫(kù),從中選擇所需元件。
本文選擇用3個(gè)74390,集成了兩個(gè)二—五—十進(jìn)制計(jì)數(shù)器,分別被連接成60進(jìn)制計(jì)數(shù)器和24進(jìn)制計(jì)數(shù)器。第一個(gè)和第二個(gè)74390被連接成60進(jìn)制計(jì)數(shù)器,分別將二—五—十進(jìn)制計(jì)數(shù)器連接成8421碼十進(jìn)制計(jì)數(shù)器,再連接成100進(jìn)制計(jì)數(shù)器,最后實(shí)現(xiàn)計(jì)數(shù)到60清零。第三個(gè)74390被連接成24進(jìn)制計(jì)數(shù)器,分別將二—五—十進(jìn)制計(jì)數(shù)器連接成8421碼十進(jìn)制計(jì)數(shù)器,再連接成100進(jìn)制計(jì)數(shù)器,最后實(shí)現(xiàn)計(jì)數(shù)到24清零。
原理圖設(shè)計(jì)輸入方法是一種最直接的設(shè)計(jì)描述方式,使用元件庫(kù)中的元件畫出系統(tǒng)或電路的原理圖,符合人們的思維習(xí)慣。但是需要設(shè)計(jì)人員具有豐富的硬件知識(shí)、熟悉CPLD器件的結(jié)構(gòu)。
3.2.2文本設(shè)計(jì)輸入法
硬件描述語言HDL是一種用形式化方法來描述數(shù)字電路和系統(tǒng)的語言。數(shù)字電路系統(tǒng)的設(shè)計(jì)者利用這種語言可以從上層到下層逐層描述自己的設(shè)計(jì)思路,用一些列分層次的模塊來表示及其復(fù)雜的數(shù)字系統(tǒng);然后利用電子設(shè)計(jì)自動(dòng)化工具逐層進(jìn)行仿真驗(yàn)證;最后再用專用集成電路或現(xiàn)場(chǎng)可編程門陣列自動(dòng)布局布線工具,把網(wǎng)表轉(zhuǎn)化為具體電路布線結(jié)構(gòu)的實(shí)現(xiàn)。
HDL輸入方式為文本格式,所以比原理圖輸入簡(jiǎn)單,使用EDA的文本編輯器即可完成。有些編輯器還帶有語法提示功能。目前廣泛使用的有AHDL、VHDL、和Verilog HDL,其中VHDL和Verilog HDL都是IEEE標(biāo)準(zhǔn)的硬件描述語言。VHDL語言的語法嚴(yán)謹(jǐn),適合復(fù)雜系統(tǒng)的設(shè)計(jì)。Verilog HDL的語法近似C語言,可讀性強(qiáng)、容易掌握,對(duì)底層電路的描述功能更強(qiáng),適合ASIC設(shè)計(jì)。
本文使用的是Verilog HDL語言。數(shù)字鐘的三個(gè)計(jì)數(shù)部分分別通過調(diào)用模塊實(shí)現(xiàn),先編寫根據(jù)標(biāo)志位bz可實(shí)現(xiàn)60或24進(jìn)制計(jì)數(shù)模塊,如果標(biāo)志位bz值為0,進(jìn)行60進(jìn)制計(jì)數(shù),否則,進(jìn)行24進(jìn)制計(jì)數(shù)。主要程序如下:
if (clrl = = 1’ d1)
Out [7:0] =8’d0;
else
out[3:0] =out[3:0]+4’d1;
if(out[3:0] = =4’d10)
begin
out[7:4]= out[7:4]+4’d1;
out[3:0]=4’d0;
end
if(bz = =1’d0)
begin
co=1’d0;
if(out[7:4] = =4’d3out[3:0] = =4’d0)
begin
co=1’d1;
out[7:0]=8’d0;
end
end
else
begin
co=1’d0;
if(out[7:4]= =4’d2out[3:0]= =4’d4)
begin
co=1’d1;
out[7:0]=8’d0;
end
end
end
在模塊clock1中,調(diào)用三次clock2模塊,分別實(shí)現(xiàn)60進(jìn)制,60進(jìn)制和24進(jìn)制計(jì)數(shù)。程序如下:
clock2 clocksec(clk,0,clr,addsec,outsec,secco);
clock2 clockmin(secco,0,clr,addmin,outmin,minco);
clock2 clockhor(minco,1,clr,addhor,outhor,horco);
HDL語言描述在狀態(tài)機(jī)、控制邏輯、總線功能方面較強(qiáng),使其描述的電路能在特定綜合器作用下以具體硬件單元較好地實(shí)現(xiàn)。
3.3顯示驅(qū)動(dòng)模塊
采用動(dòng)態(tài)掃描顯示,將計(jì)數(shù)模塊輸出的BCD碼轉(zhuǎn)換為7段碼,在掃描頻率作用下動(dòng)態(tài)循環(huán)點(diǎn)亮8個(gè)數(shù)碼管。動(dòng)態(tài)顯示的優(yōu)點(diǎn)是每次只點(diǎn)亮一個(gè)數(shù)碼管,功率只是8個(gè)數(shù)碼管靜態(tài)顯示的1/8,同時(shí)輸入電流小,只要保證每個(gè)掃描頻率超過人的眼睛視覺暫留頻率以上,就可以達(dá)到點(diǎn)亮單個(gè)七段顯示器,能享有8個(gè)同時(shí)顯示的視覺效果,而且顯示也不閃爍抖動(dòng)。
4編譯和下載
本文采用分模塊編譯,使用QuartusⅡ中的Compiler編譯器進(jìn)行編譯。各個(gè)模塊編譯成功后,在連接成完整的系統(tǒng)。編譯過程中,如果出現(xiàn)信息、錯(cuò)誤和警告,將在編輯器窗口提示,設(shè)計(jì)者可以根據(jù)對(duì)設(shè)計(jì)進(jìn)行修改。當(dāng)編譯通過時(shí),建網(wǎng)表、邏輯綜合、適配、劃分、時(shí)域分析、裝配等自動(dòng)完成,生成多個(gè)后續(xù)工作要用的文件。然后用QuartusⅡ的Simulator仿真器和TimingAnalyzer工具分別進(jìn)行功能仿真和時(shí)序仿真,驗(yàn)證設(shè)計(jì)是否符合要求,如出現(xiàn)問題,須返回原設(shè)計(jì)進(jìn)行修改。當(dāng)編譯通過后,調(diào)出底層設(shè)計(jì)的所有模塊符號(hào)、元件及IO端口,用連線的方法將它們組合起來,形成頂層文件。再進(jìn)行編譯和仿真,驗(yàn)證設(shè)計(jì)是否符合要求。最后將編譯后的文件下載到所選的芯片中,制成ASIC。
5結(jié)語
從本文對(duì)數(shù)字鐘計(jì)數(shù)電路的兩種設(shè)計(jì)方法中可以看出,用原理圖輸入和文本輸入各有優(yōu)勢(shì),原理圖比較直觀,語言設(shè)計(jì)比較方便存檔,常用方式以HDL語言為主,原理圖為輔。此外,借助QuartusⅡ軟件構(gòu)成EDA系統(tǒng),開發(fā)周期較短、設(shè)計(jì)較靈活、實(shí)現(xiàn)功能多、穩(wěn)定性高,同時(shí)可以節(jié)省開發(fā)費(fèi)用,能有效實(shí)現(xiàn)電路的數(shù)字化和微型化。
參考文獻(xiàn)
[1]王鎖萍.電子設(shè)計(jì)自動(dòng)化(EDA)教程.成都:電子科技大學(xué)出版社,2000.
[2]譚會(huì)生,張昌凡.EDA技術(shù)及其應(yīng)用.西安:西安電子科技大學(xué)出版社,2001.
[3]宋萬杰.CPLD技術(shù)及其應(yīng)用.西安:西安電子科技大學(xué)出版社,1999.
[4]徐志軍.大規(guī)模可編程器件及其應(yīng)用.成都:電子科技大學(xué)出版社,2000.
[5]李景華,杜玉遠(yuǎn).可編程邏輯器件與EDA技術(shù).沈陽:東北大學(xué)出版社.
注:本文中所涉及到的圖表、注解、公式等內(nèi)容請(qǐng)以PDF格式閱讀原文