胡宏梅
(蘇州健雄職業(yè)技術(shù)學(xué)院 電氣工程學(xué)院,江蘇 太倉(cāng) 215411)
?
基于VHDL語言的數(shù)字鐘層次化設(shè)計(jì)與實(shí)現(xiàn)
胡宏梅
(蘇州健雄職業(yè)技術(shù)學(xué)院 電氣工程學(xué)院,江蘇太倉(cāng)215411)
EDA技術(shù)的關(guān)鍵就是用硬件描述語言來描述數(shù)字系統(tǒng),簡(jiǎn)化了數(shù)字系統(tǒng)的設(shè)計(jì)過程。利用VHDL語言描述數(shù)字鐘系統(tǒng),采用自頂向下的方式設(shè)計(jì),詳述了數(shù)字鐘底層文件中每個(gè)模塊的設(shè)計(jì)思路,及頂層文件的生成,并通過下載仿真,最終實(shí)現(xiàn)了系統(tǒng)的設(shè)計(jì),具有一定的可行性。
EDA技術(shù);VHDL語言;數(shù)字鐘;邏輯電路圖;層次化設(shè)計(jì)
現(xiàn)代電子設(shè)計(jì)技術(shù)的核心是電子設(shè)計(jì)自動(dòng)化技術(shù),即EDA技術(shù)。利用EDA技術(shù),電子設(shè)計(jì)師可以方便地實(shí)現(xiàn)IC設(shè)計(jì)、電子電路設(shè)計(jì)和PCB設(shè)計(jì)等工作,使電子系統(tǒng)設(shè)計(jì)更為簡(jiǎn)化和方便。它是以大規(guī)??删幊踢壿嬈骷樵O(shè)計(jì)載體,以硬件描述語言為系統(tǒng)邏輯描述的主要方式,其中,VHDL語言已成為系統(tǒng)描述的國(guó)際公認(rèn)標(biāo)準(zhǔn),得到眾多EDA公司的支持,越來越多的硬件設(shè)計(jì)者使用VHDL描述數(shù)字系統(tǒng),綜合效率和效果較好[1]。
本文詳述使用VHDL語言實(shí)現(xiàn)對(duì)數(shù)字鐘的層次化設(shè)計(jì),將文本編輯和圖形編輯兩種方式混合使用,設(shè)計(jì)和實(shí)現(xiàn)數(shù)字鐘對(duì)時(shí)、分、秒的計(jì)時(shí)。顯示滿刻度為23時(shí)59分59秒,再來一個(gè)脈沖,重新開始計(jì)時(shí),最終通過將CPLD/FPGA開發(fā)系統(tǒng)上實(shí)現(xiàn)下載仿真。
數(shù)字鐘是一種用數(shù)字電子技術(shù)實(shí)現(xiàn)秒、分、時(shí)計(jì)時(shí)的鐘表,實(shí)際上就是對(duì)標(biāo)準(zhǔn)頻率(1 Hz)計(jì)數(shù)的計(jì)數(shù)電路[2]。
本文采用自頂向下的設(shè)計(jì)方法,底層文件為實(shí)現(xiàn)功能的模塊設(shè)計(jì),在文本編輯器中完成,各模塊由VHDL語言編程實(shí)現(xiàn)。底層模塊包括分頻模塊、分/秒模塊、時(shí)模塊及動(dòng)態(tài)掃描模塊組成,具體設(shè)計(jì)框圖如圖1所示。頂層文件是在圖形編輯器中通過添加每個(gè)模塊的邏輯符號(hào),根據(jù)其邏輯關(guān)系進(jìn)行連線,最終形成,如圖2所示,F(xiàn)REQUENCY 是分頻模塊,SECOND_FEN是分/秒模塊,HOUR是小時(shí)模塊,DISPLAY為譯碼模塊,SAOMIAO為掃描間隔模塊,DONG_DISPLAY為掃描顯示模塊[3]。
分頻模塊:輸入脈沖信號(hào)由石英晶體振蕩器產(chǎn)生,由于晶振輸出頻率較高,為了得到1 Hz的秒信號(hào),需要對(duì)振蕩器的輸出信號(hào)進(jìn)行分頻,作為數(shù)字鐘的時(shí)間基準(zhǔn),然后經(jīng)過分頻器輸出標(biāo)準(zhǔn)的秒脈沖;
秒模塊:振蕩信號(hào)經(jīng)分頻模塊后產(chǎn)生秒信號(hào),激勵(lì)秒模塊進(jìn)行加1計(jì)數(shù),計(jì)數(shù)60次開始向分模塊產(chǎn)生進(jìn)位;
分模塊:秒模塊的進(jìn)位脈沖作為分模塊的輸入,計(jì)數(shù)60次開始向時(shí)模塊產(chǎn)生進(jìn)位;
時(shí)模塊:小時(shí)模塊接受到分模塊產(chǎn)生的進(jìn)位開始計(jì)數(shù),計(jì)數(shù)24次歸0;
譯碼顯示模塊:將秒、分、時(shí)的計(jì)數(shù)通過數(shù)碼管進(jìn)行譯碼顯示,由七段譯碼器完成。
圖2給出了該系統(tǒng)頂層設(shè)計(jì)文件。
圖1 系統(tǒng)設(shè)計(jì)框圖
2.1分頻模塊
在數(shù)字邏輯電路設(shè)計(jì)中,分頻器是一種基本電路,通過分頻可以得到需要的時(shí)鐘頻率。常見的分頻器有二進(jìn)制分頻器、偶數(shù)次分頻器、奇數(shù)次分頻器、占空比可調(diào)的分頻器和小數(shù)分頻器。分頻的方法很多,最常見的就是利用加法器對(duì)時(shí)鐘信號(hào)進(jìn)行分頻,當(dāng)然也可以利用一些專用的電路結(jié)構(gòu)來實(shí)現(xiàn)。
圖2 系統(tǒng)邏輯電路圖
N分頻器是指產(chǎn)生的輸出信號(hào)頻率fout為輸入信號(hào)頻率fin的 1/N,即:
分頻的實(shí)現(xiàn)是通過對(duì)輸入信號(hào)脈沖計(jì)數(shù),每計(jì)數(shù)N/2個(gè)脈沖,輸出信號(hào)反相而的得到的。
圖3 分頻模塊設(shè)計(jì)
本實(shí)驗(yàn)平臺(tái)上有22.118 4 M ,10 M晶振,4 M(可分頻至1 000 Hz)晶振,分別接在CPLD芯片的管腳P80,P183,P184,為實(shí)驗(yàn)器提供時(shí)鐘信號(hào)。本文選擇采用對(duì)10 M時(shí)鐘信號(hào)進(jìn)行脈沖法計(jì)數(shù),計(jì)到4 999 999次,輸出信號(hào)反相,即可產(chǎn)生頻率為1 Hz的輸出信號(hào)。具體分頻思路如圖3(a)所示,檢查編譯后,生成的邏輯符號(hào)如圖3(b)所示。
2.2分/秒計(jì)數(shù)模塊
分/秒計(jì)數(shù)為60進(jìn)制的計(jì)數(shù),分為個(gè)位和十位,其中,十位實(shí)現(xiàn)的是0到5的計(jì)數(shù),個(gè)位是0到9的計(jì)數(shù),在計(jì)數(shù)到59時(shí),產(chǎn)生進(jìn)位信號(hào),如圖4所示。
圖4 分/秒模塊設(shè)計(jì)
2.3時(shí)計(jì)數(shù)模塊
時(shí)信號(hào)的計(jì)數(shù)規(guī)律是當(dāng)十位為0和1時(shí),個(gè)位計(jì)數(shù)為0~9,個(gè)位計(jì)數(shù)到9,則往十位進(jìn)位,個(gè)位歸0;而十位計(jì)數(shù)到2時(shí),個(gè)位只能為0~3,計(jì)數(shù)到3,則十位和個(gè)位共同歸0,具體設(shè)計(jì)思路如圖5(a)所示,所生成的邏輯符號(hào)為圖5(b)所示。
圖5 時(shí)模塊設(shè)計(jì)
2.4譯碼模塊
圖6 譯碼顯示模塊
將秒計(jì)數(shù)、分計(jì)數(shù)、時(shí)計(jì)數(shù)編譯成數(shù)碼管的段碼,送給動(dòng)態(tài)掃描模塊,供數(shù)碼管顯示。秒/分計(jì)數(shù)的個(gè)位共可顯示0~9的數(shù),需用4位二進(jìn)制表示;而秒/分計(jì)數(shù)的十位可顯示的是0~5的數(shù)字,需用3位二進(jìn)制表示;而時(shí)計(jì)數(shù)的個(gè)位與十位只需2位二進(jìn)制表示;所以會(huì)有三種譯碼模塊,如圖6所示。
2.5動(dòng)態(tài)掃描模塊
圖7 動(dòng)態(tài)掃描模塊邏輯符號(hào)
動(dòng)態(tài)掃描模塊中包括掃描間隔模塊和掃描顯示模塊,如圖7所示。其中,掃描間隔模塊作用是產(chǎn)生掃描時(shí)間,控制掃描模塊的掃描時(shí)間;掃描顯示模塊即輪流向各位數(shù)碼管送出字形碼和相應(yīng)的位選,利用發(fā)光管的余輝和人眼視覺暫留作用,使人的感覺好像每個(gè)數(shù)碼管同時(shí)都在顯示[4]。
本平臺(tái)有10個(gè)數(shù)碼管(SEG1~SEG10),采用共陰極8段LED顯示。其中,SEG1—SEG6采用靜態(tài)顯示方式,SEG7—SEG10采用動(dòng)態(tài)掃描顯示方式。所以本文選擇秒的顯示采用靜態(tài)顯示方式,時(shí)、分的顯示采用動(dòng)態(tài)掃描顯示[5-6]。
本文將按上述的設(shè)計(jì)思路編程、下載、仿真,開發(fā)環(huán)境為MAXPLUSII,檢查編譯,分配管腳,生成可以下載的后綴名為.pof的文件。選擇的目標(biāo)器件為EP1K30QC208-3,為ACEX1K系列,在KHF-1型CPLD/FPGA實(shí)驗(yàn)開發(fā)系統(tǒng)中實(shí)現(xiàn)仿真,最終可以實(shí)現(xiàn)時(shí)、分、秒正常顯示。
[1] 廖超平. EDA技術(shù)與VHDL實(shí)用教程[M].北京:高等教育出版社, 2007.
[2] 李彥強(qiáng),趙淑明. 用VHDL語言實(shí)現(xiàn)數(shù)字鐘設(shè)計(jì)[J]. 山西電子技術(shù), 2014,42(5):38-39.
[3] 紀(jì)欣然,丁一,梁致源. 基于FPGA的多功能數(shù)字鐘設(shè)計(jì)[J]. 電子設(shè)計(jì)工程, 2012,19(16):177-179.
[4] 劉艷昌,王娜. 基于FPGA的多功能數(shù)字鐘設(shè)計(jì)[J].河南科技學(xué)院學(xué)報(bào):自然科學(xué)報(bào), 2013,41(2):89-94.
[5] 郭小芳, 佘明輝. 基于單片機(jī)的多功能數(shù)字鐘系統(tǒng)設(shè)計(jì)與分析[J]. 電子技術(shù), 2012,39(6):35-38.
[6] 樊清海, 劉培培, 耿娟平. 基于單片機(jī)的數(shù)字時(shí)鐘C語言設(shè)計(jì)[J]. 北華航天工業(yè)學(xué)院學(xué)報(bào), 2010, 20(6):4-6.
Hierarchical Design and Implementation of a Digital Clock Based on VHDL Language
HU Hong-mei
(College of Electrical Engineering, Suzhou Chien-shiung Vocational Technical Institute, Taichang Jiangsu 215411, China)
One of the keys to EDA technology is to use a hardware description language (HDL) to describe the digital system, thus simplifying the design process of the digital system. VHDL is used to describe the digital clock system, and the design is completed in the top-down method. This paper describes in detail the design thought for each module in the bottom document of the digital clock as well as the generation of the top document. After downloading and emulation, the design of the system is completed finally. It has a certain reference value and is feasible to some extent.
EDA technology; VHDL language; digital clock; logic circuit diagram; hierarchical design
10.3969/j.issn.1000-3886.2016.01.036
TN79
A
1000-3886(2016)01-0113-03
胡宏梅(1982-),江蘇太倉(cāng)人,講師,碩士生,研究方向:電子信息技術(shù)、通信與信息系統(tǒng)。
定稿日期: 2015-05-26