![基于FPGA的數(shù)字鐘控制器設(shè)計(jì)_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-7/5/d177abb1-f257-429e-9830-3244679735d1/d177abb1-f257-429e-9830-3244679735d11.gif)
![基于FPGA的數(shù)字鐘控制器設(shè)計(jì)_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-7/5/d177abb1-f257-429e-9830-3244679735d1/d177abb1-f257-429e-9830-3244679735d12.gif)
![基于FPGA的數(shù)字鐘控制器設(shè)計(jì)_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-7/5/d177abb1-f257-429e-9830-3244679735d1/d177abb1-f257-429e-9830-3244679735d13.gif)
![基于FPGA的數(shù)字鐘控制器設(shè)計(jì)_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-7/5/d177abb1-f257-429e-9830-3244679735d1/d177abb1-f257-429e-9830-3244679735d14.gif)
![基于FPGA的數(shù)字鐘控制器設(shè)計(jì)_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-7/5/d177abb1-f257-429e-9830-3244679735d1/d177abb1-f257-429e-9830-3244679735d15.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、四川理工學(xué)院畢業(yè)設(shè)計(jì)論文 基于FPGA的數(shù)字鐘控制器設(shè)計(jì)學(xué) 生:史凱學(xué) 號(hào):10021050117專 業(yè):電子信息科學(xué)與技術(shù)班 級(jí): 2010.1指導(dǎo)教師:徐金龍 四川理工學(xué)院自動(dòng)化與電子信息學(xué)院二O一四年六月四川理工學(xué)院畢業(yè)設(shè)計(jì)論文基于FPGA的數(shù)字鐘控制器設(shè)計(jì)摘要:本設(shè)計(jì)采用EDA技術(shù),利用硬件描述語言VHDL為系統(tǒng)邏輯描述手段設(shè)計(jì)電路,以Quartus II 軟件為設(shè)計(jì)平臺(tái),進(jìn)行基于FPGA的數(shù)字時(shí)鐘電路的方案設(shè)計(jì)、程序設(shè)計(jì)輸入、編譯和仿真。該時(shí)鐘由分頻模塊、鍵盤輸入模塊、控制模塊、計(jì)時(shí)模塊、譯碼顯示模塊、鬧鈴模塊以及報(bào)時(shí)模塊組成。在可編程邏輯器件FPGA上實(shí)現(xiàn)電路設(shè)計(jì),該時(shí)鐘使用千分頻
2、產(chǎn)生1HZ的時(shí)鐘源,具有時(shí)、分、秒計(jì)數(shù)顯示功能,以24小時(shí)循環(huán)計(jì)時(shí)并且具有清零、調(diào)節(jié)小時(shí)、分鐘、整點(diǎn)報(bào)時(shí)和鬧鈴功能。本設(shè)計(jì)的電路簡(jiǎn)單,但功能齊全, FPGA的設(shè)計(jì)改動(dòng)非常方便,只用改變程序設(shè)計(jì)出相應(yīng)的內(nèi)部模塊就可以實(shí)現(xiàn)一些基本門電路的功能。根據(jù)需要可以增添日歷、溫度顯示等功能,所以本設(shè)計(jì)具有很強(qiáng)的升級(jí)前景。關(guān)鍵詞:數(shù)字時(shí)鐘;EDA;VHDL;FPGA;可編程邏輯器件Design of digital clock controller based on FPGASHI Kai(Sichuan University of Science and Engineering, Zigong, China
3、, 643000)Abstract: This design uses EDA technology, using hardware description language VHDL description of the means for the system logic design file to Quartus II design software platform for FPGA-based design digital clock circuits, program design entry, compilation and simulation operation, the
4、clock by the control module, the timing module, data decoding module, display and timekeeping module on FPGA programmable logic device testing system to achieve the functional design requirements, the design of a multi-functional digital clock, using thousands divider 1HZ clock source, with hours, m
5、inutes, seconds count display features a 24-hour cycle time and has cleared, adjust the hours, minutes, hourly chime and alarm function. The design of the circuit is simple, but fully functional, FPGA design changes is very convenient, just by changing the appropriate internal procedures designed to
6、 achieve functional modules can be some basic gates. According to need can add a calendar, temperature display and other functions, so the design has a strong outlook upgrade.Keywords: Digital clock; EDA; VHDL; FPGA; programmable logic device目錄摘要IAbstractII第1章 引言11.1 課題研究的意義11.2 方案的比較21.3 設(shè)計(jì)方案的概述31.
7、4 畢業(yè)設(shè)計(jì)任務(wù)3第2章 EDA技術(shù)簡(jiǎn)介42.1 EDA技術(shù)的發(fā)展42.2 FPGA概述52.2.1 什么是可編程邏輯器件62.2.2 工作原理62.2.3 FPGA基本結(jié)構(gòu)62.2.4 FPGA系統(tǒng)設(shè)計(jì)流程82.3 QuartusII設(shè)計(jì)平臺(tái)102.3.1 軟件開發(fā)環(huán)境及基本流程102.3.2 具體設(shè)計(jì)流程12第3章 數(shù)字鐘的整體設(shè)計(jì)方案153.1 數(shù)字鐘的構(gòu)成153.2 數(shù)字鐘的工作原理16第4章 電路程序設(shè)計(jì)與仿真174.1 分頻模塊電路設(shè)計(jì)與仿真174.1.1 分頻模塊的程序設(shè)計(jì)174.1.2 分頻模塊的仿真184.2 鍵盤控制設(shè)計(jì)與仿真194.2.1 鍵盤接口電路原理194.2.2
8、按鍵消抖模塊的程序設(shè)計(jì)204.2.3 按鍵消抖模塊的仿真224.2.4 鍵掃描模塊的程序設(shè)計(jì)224.2.5 鍵掃描模塊的仿真254.2.6 碼轉(zhuǎn)換模塊的程序設(shè)計(jì)264.2.7 碼轉(zhuǎn)換模塊的仿真284.2.8 按鍵連接模塊的程序設(shè)計(jì)284.2.9 按鍵連接模塊的仿真304.3 計(jì)數(shù)模塊設(shè)計(jì)與仿真314.3.1 秒(分)計(jì)數(shù)模塊的程序設(shè)計(jì)314.3.2 秒(分)模塊的仿真324.3.3 小時(shí)計(jì)數(shù)模塊程序設(shè)計(jì)334.3.4 小時(shí)計(jì)數(shù)模塊的仿真354.4 鬧鐘模塊設(shè)計(jì)與仿真364.4.1 鬧鐘模塊的程序設(shè)計(jì)364.4.2 鬧鐘模塊的仿真374.5 整點(diǎn)報(bào)時(shí)模塊設(shè)計(jì)與仿真384.5.1 整點(diǎn)報(bào)時(shí)模塊的程
9、序設(shè)計(jì)384.5.2 整點(diǎn)報(bào)時(shí)模塊的仿真394.6 動(dòng)態(tài)掃描顯示模塊設(shè)計(jì)與仿真394.6.1 動(dòng)態(tài)掃描顯示模塊的程序設(shè)計(jì)394.6.2 動(dòng)態(tài)掃描顯示模塊的仿真42第5章 總結(jié)435.1 實(shí)驗(yàn)結(jié)論435.2 研究展望44致謝45參考文獻(xiàn)4649第1章 引言1.1 課題研究的意義人們很早以前便有了時(shí)間的概念,并發(fā)明了一系列技術(shù)裝置,三千多年前,我國(guó)祖先最早發(fā)明了用土和石片刻制成的“土圭”和“日規(guī)”兩種計(jì)時(shí)器,成為世界上最早發(fā)明計(jì)時(shí)器的國(guó)家之一,可見時(shí)鐘的重要性,現(xiàn)在更是一個(gè)注重時(shí)間的社會(huì),所以研究數(shù)字時(shí)鐘能夠給人們帶來極大的便利,對(duì)時(shí)鐘的數(shù)字化研究有利于人們更準(zhǔn)確的了解時(shí)間,更有條不紊的完成工作,
10、智能化數(shù)字時(shí)鐘的研究對(duì)豐富人們的生活具有重要意義。近些年,隨著科技的發(fā)展和社會(huì)的進(jìn)步,人們對(duì)數(shù)字鐘的要求也越來越高,傳統(tǒng)的時(shí)鐘已不能滿足人們的需求。多功能數(shù)字鐘不管在性能還是在樣式上都發(fā)生了質(zhì)的變化,有電子鬧鐘、數(shù)字鬧鐘等等。時(shí)間的寶貴是個(gè)亙古不變的真理,然而工作的忙碌性和繁雜性很容易讓人忘記當(dāng)前的時(shí)間或是工作中不能及時(shí)方便地知曉時(shí)間。交通上,火車汽車要準(zhǔn)時(shí)到達(dá),航班要準(zhǔn)時(shí)起飛;在日常生活中,學(xué)校要求上學(xué)準(zhǔn)時(shí),公司召開的會(huì)議要求參加準(zhǔn)時(shí),重要約會(huì)要求到達(dá)準(zhǔn)時(shí);在工業(yè)生產(chǎn)中,許多工作環(huán)節(jié)都規(guī)定了精準(zhǔn)的時(shí)間、間隔以及次序。所以說,隨時(shí)準(zhǔn)確地知道時(shí)間并且利用時(shí)間是學(xué)習(xí)、工作、生活的必要要求。FPGA
11、是一種集成電路芯片,它將各種功能集成到一塊硅片上并且內(nèi)含完善的微型計(jì)算機(jī)系統(tǒng)。FPGA的優(yōu)點(diǎn)有集成度高、功能強(qiáng)、可靠性高、體積小、功耗低、使用方便、價(jià)格低廉等,所以本設(shè)計(jì)討論的電子時(shí)鐘系統(tǒng)就是利用FPGA制成。電子時(shí)鐘與機(jī)械時(shí)鐘相比具有很多優(yōu)越性。首先,其主要特點(diǎn)是直觀性,電子時(shí)鐘可以通過數(shù)字顯示反映出當(dāng)前的時(shí)間。其次在使用壽命方面,因?yàn)殡娮隅姴皇菣C(jī)械驅(qū)動(dòng),所以使用壽命更長(zhǎng)。然后在準(zhǔn)確度方面,由于應(yīng)用了電子集成電路和石英晶體振蕩器,數(shù)字時(shí)鐘的精準(zhǔn)度遠(yuǎn)遠(yuǎn)超過了老式石英鐘的石英機(jī)芯驅(qū)動(dòng)。最后,電子時(shí)鐘還能大大擴(kuò)展老式鐘表的功能,在準(zhǔn)確顯示時(shí)間得基礎(chǔ)上,還可借助FPGA實(shí)現(xiàn)諸如鬧鈴、定時(shí)、自動(dòng)報(bào)警等
12、功能。電子時(shí)鐘的意義不僅僅在于反應(yīng)時(shí)間本身,這個(gè)時(shí)間系統(tǒng)還可以當(dāng)做一個(gè)單位模塊應(yīng)用于其他設(shè)備中,比如定時(shí)廣播、定時(shí)開關(guān)烤箱、定時(shí)關(guān)閉路燈,以及其他各種定時(shí)電氣的自動(dòng)啟用等設(shè)備,都是內(nèi)嵌了電子時(shí)鐘而實(shí)現(xiàn)其時(shí)間功能的。因此,研究電字時(shí)鐘及其拓展電路的應(yīng)用,將會(huì)對(duì)以后研究其他自動(dòng)化設(shè)備產(chǎn)生積極意義。隨著現(xiàn)場(chǎng)可編程門陣列(FPGA)的出現(xiàn),電子系統(tǒng)向集成化,大規(guī)模和高速度等方向發(fā)展的趨勢(shì)更加明顯,F(xiàn)PGA是特殊的ASIC芯片,ASIC是專用的系統(tǒng)集成電路,是一種帶有邏輯處理的加速處理器,F(xiàn)PGA與其他的ASIC芯片相比,它具有設(shè)計(jì)開發(fā)周期短、設(shè)計(jì)制造成本低、開發(fā)工具先進(jìn)、標(biāo)準(zhǔn)產(chǎn)品無需測(cè)試、質(zhì)量穩(wěn)定以及
13、可實(shí)時(shí)在線檢測(cè)等優(yōu)點(diǎn),故利用FPGA這一新技術(shù)手段倆研究電子鐘具有重要意義。1-81.2 方案的比較時(shí)鐘的實(shí)現(xiàn)具體有三種方法。一是通過單純的數(shù)字電路來實(shí)現(xiàn);二是使用單片機(jī)來控制實(shí)現(xiàn);三是使用可編程邏輯器件(CPLD/FPGA)來實(shí)現(xiàn)。由于純數(shù)字電路實(shí)現(xiàn)不僅造價(jià)很高、設(shè)計(jì)麻煩,且后期的調(diào)試與驗(yàn)證會(huì)有很多連線與布局的問題,此方法已經(jīng)很不實(shí)用了,所以放棄此方法;而第二種和第三種方法均是采用一個(gè)主控芯片來控制時(shí)鐘電路,再外接不同的模塊來實(shí)現(xiàn)完整的功能,需進(jìn)一步說明兩種方法的不同。1單片機(jī)單片機(jī)是一種集成在電路芯片,是采用超大規(guī)模集成電路技術(shù)把具有數(shù)據(jù)處理能力的中央處理器CPU隨機(jī)存儲(chǔ)器RAM、只讀存儲(chǔ)
14、器ROM、多種I/O口和中斷系統(tǒng)、定時(shí)器/計(jì)時(shí)器等功能(可能還包括顯示驅(qū)動(dòng)電路、脈寬調(diào)制電路、模擬多路轉(zhuǎn)換器、A/D轉(zhuǎn)換器等電路)集成到一塊硅片上構(gòu)成的一個(gè)小而完善的計(jì)算機(jī)系統(tǒng)。2可編程邏輯器件可編程邏輯器件PLD(Programmable Logic Device) :PLD是做為一種通用集成電路生產(chǎn)的,他的邏輯功能按照用戶對(duì)器件編程來搞定。一般的PLD的集成度很高,足以滿足設(shè)計(jì)一般的數(shù)字系統(tǒng)的需要。這樣就可以由設(shè)計(jì)人員自行編程而把一個(gè)數(shù)字系統(tǒng)“集成”在一片PLD上,而不必去請(qǐng)芯片制造廠商設(shè)計(jì)和制作專用的集成電路芯片了。相比較而言,單片機(jī)一般用于操作控制,PLD一般用于組合邏輯,功能各不相同
15、,但PLD功能比普通的單片機(jī)更強(qiáng)、速度更快、價(jià)格也越來越便宜。并且PLD更加高端一些,靈活性更強(qiáng),近來發(fā)展很快,之后的電子技術(shù)發(fā)展PLD的應(yīng)用將會(huì)非常廣泛。選擇PLD進(jìn)行設(shè)計(jì)會(huì)對(duì)以后的專業(yè)發(fā)展有很大的幫助,所以選擇第三種方法即采用可編程邏輯器件進(jìn)行設(shè)計(jì)。1.3 設(shè)計(jì)方案的概述本方案以FPGA芯片為核心,將外接時(shí)鐘信號(hào)送至FPGA作為時(shí)鐘基準(zhǔn)信號(hào)和動(dòng)態(tài)掃描信號(hào)。在芯片內(nèi)部分別設(shè)計(jì)出數(shù)字鐘的各個(gè)模塊,如分頻模塊、計(jì)時(shí)模塊、鬧鐘模塊、整點(diǎn)報(bào)時(shí)模塊和動(dòng)態(tài)掃描模塊等。將各位信號(hào)送出至數(shù)碼管顯示。本方案的電路比較簡(jiǎn)單,只用外接一個(gè)穩(wěn)壓電源為主控芯片和數(shù)碼管供電,再接一個(gè)晶振和一個(gè)數(shù)碼管即可。本設(shè)計(jì)的電路簡(jiǎn)
16、單,但功能齊全,可以設(shè)置鬧鐘、時(shí)間校對(duì)和整點(diǎn)報(bào)時(shí),F(xiàn)PGA的設(shè)計(jì)改動(dòng)非常方便,只用改變程序設(shè)計(jì)出相應(yīng)的內(nèi)部模塊就可以實(shí)現(xiàn)一些基本門電路的功能。根據(jù)需要可以增添日歷、溫度顯示等功能,所以本設(shè)計(jì)具有很強(qiáng)的升級(jí)前景。9-141.4 畢業(yè)設(shè)計(jì)任務(wù)本設(shè)計(jì)主要研究基于FPGA的數(shù)字鐘,要求時(shí)間以24小時(shí)為一個(gè)周期,顯示時(shí)、分、秒。具有校時(shí)、設(shè)鬧鐘及整點(diǎn)報(bào)時(shí)的功能,可以對(duì)時(shí)、分、秒進(jìn)行單獨(dú)校對(duì),使其校正到標(biāo)準(zhǔn)時(shí)間。第2章 EDA技術(shù)簡(jiǎn)介20世紀(jì)90年代,國(guó)際上電子和計(jì)算機(jī)技術(shù)較為先進(jìn)的國(guó)家,一直在積極探索新的電子電路設(shè)計(jì)方法,并在設(shè)計(jì)方法、工具等方面進(jìn)行了徹底的變革,取得了巨大成功。在電子技術(shù)設(shè)計(jì)領(lǐng)域,可編
17、程邏輯器件(如CPLD、FPGA)的應(yīng)用,已得到廣泛的普及,這些器件為數(shù)字系統(tǒng)的設(shè)計(jì)帶來了極大的靈活性。這些器件可以通過軟件編程而對(duì)其硬件結(jié)構(gòu)和工作方式進(jìn)行重構(gòu),從而使得硬件的設(shè)計(jì)可以如同軟件設(shè)計(jì)那樣方便快捷。這一切極大地改變了傳統(tǒng)的數(shù)字系統(tǒng)設(shè)計(jì)方法、設(shè)計(jì)過程和設(shè)計(jì)觀念,促進(jìn)了EDA技術(shù)的迅速發(fā)展。EDA技術(shù)就是以計(jì)算機(jī)為工具,設(shè)計(jì)者在EDA軟件平臺(tái)上,用硬件描述語言VHDL完成設(shè)計(jì)文件,然后由計(jì)算機(jī)自動(dòng)地完成邏輯編譯、化簡(jiǎn)、分割、綜合、優(yōu)化、布局、布線和仿真,直至對(duì)于特定目標(biāo)芯片的適配編譯、邏輯映射和編程下載等工作。EDA技術(shù)的出現(xiàn),極大地提高了電路設(shè)計(jì)的效率和可操作性,減輕了設(shè)計(jì)者的勞動(dòng)強(qiáng)
18、度。2.1 EDA技術(shù)的發(fā)展EDA是電子設(shè)計(jì)自動(dòng)化(Electronic Design Automation)的縮寫,在20世紀(jì)60年代中期從計(jì)算機(jī)輔助設(shè)計(jì)(CAD)、計(jì)算機(jī)輔助制造(CAM)、計(jì)算機(jī)輔助測(cè)試(CAT)和計(jì)算機(jī)輔助工程(CAE)的概念發(fā)展而來的。20世紀(jì)90年代,國(guó)際上電子和計(jì)算機(jī)技術(shù)較先進(jìn)的國(guó)家,一直在積極探索新的電子電路設(shè)計(jì)方法,并在設(shè)計(jì)方法、工具等方面進(jìn)行了徹底的變革,取得了巨大成功。在電子技術(shù)設(shè)計(jì)領(lǐng)域,可編程邏輯器件(如CPLD、FPGA)的應(yīng)用,已得到廣泛的普及,這些器件為數(shù)字系統(tǒng)的設(shè)計(jì)帶來了極大的靈活性。這些器件可以通過軟件編程而對(duì)其硬件結(jié)構(gòu)和工作方式進(jìn)行重構(gòu),從而
19、使得硬件的設(shè)計(jì)可以如同軟件設(shè)計(jì)那樣方便快捷。這一切極大地改變了傳統(tǒng)的數(shù)字系統(tǒng)設(shè)計(jì)方法、設(shè)計(jì)過程和設(shè)計(jì)觀念,促進(jìn)了EDA技術(shù)的迅速發(fā)展。EDA技術(shù)就是以計(jì)算機(jī)為工具,設(shè)計(jì)者在EDA軟件平臺(tái)上,用硬件描述語言VHDL完成設(shè)計(jì)文件,然后由計(jì)算機(jī)自動(dòng)地完成邏輯編譯、化簡(jiǎn)、分割、綜合、優(yōu)化、布局、布線和仿真,直至對(duì)于特定目標(biāo)芯片的適配編譯、邏輯映射和編程下載等工作。EDA技術(shù)的出現(xiàn),極大地提高了電路設(shè)計(jì)的效率和可操作性,減輕了設(shè)計(jì)者的勞動(dòng)強(qiáng)度。利用EDA工具,電子設(shè)計(jì)師可以從概念、算法、協(xié)議等開始設(shè)計(jì)電子系統(tǒng),大量工作可以通過計(jì)算機(jī)完成,并可以將電子產(chǎn)品從電路設(shè)計(jì)、性能分析到設(shè)計(jì)出IC版圖或PCB版圖的
20、整個(gè)過程的計(jì)算機(jī)上自動(dòng)處理完成?,F(xiàn)在對(duì)EDA的概念或范疇用得很寬。包括在機(jī)械、電子、通信、航空航天、化工、礦產(chǎn)、生物、醫(yī)學(xué)、軍事等各個(gè)領(lǐng)域,都有EDA的應(yīng)用。目前EDA技術(shù)已在各大公司、企事業(yè)單位和科研教學(xué)部門廣泛使用。例如在飛機(jī)制造過程中,從設(shè)計(jì)、性能測(cè)試及特性分析直到飛行模擬,都可能涉及到EDA技術(shù)。EDA技術(shù)的概念EDA技術(shù)是指以計(jì)算機(jī)為工作平臺(tái),融合了應(yīng)用電子技術(shù)、計(jì)算機(jī)技術(shù)、信息處理及智能化技術(shù)的最新成果,進(jìn)行電子產(chǎn)品的自動(dòng)設(shè)計(jì)。利用EDA工具,電子設(shè)計(jì)師可以從概念、算法、協(xié)議等開始設(shè)計(jì)電子系統(tǒng),大量工作可以通過計(jì)算機(jī)完成,并可以將電子產(chǎn)品從電路設(shè)計(jì)、性能分析到設(shè)計(jì)出IC版圖或PCB
21、版圖的整個(gè)過程的計(jì)算機(jī)上自動(dòng)處理完成。現(xiàn)在對(duì)EDA的概念或范疇用得很寬。包括在機(jī)械、電子、通信、航空航天、化工、礦產(chǎn)、生物、醫(yī)學(xué)、軍事等各個(gè)領(lǐng)域,都有EDA的應(yīng)用。目前EDA技術(shù)已在各大公司、企事業(yè)單位和科研教學(xué)部門廣泛使用。例如在飛機(jī)制造過程中,從設(shè)計(jì)、性能測(cè)試及特性分析直到飛行模擬,都可能涉及到EDA技術(shù)。設(shè)計(jì)方法:(1) 前端設(shè)計(jì)(系統(tǒng)建模RTL 級(jí)描述)后端設(shè)計(jì)(FPGAASIC)系統(tǒng)建模。(2) IP復(fù)用。(3) 前端設(shè)計(jì)。(4) 系統(tǒng)描述:建立系統(tǒng)的數(shù)學(xué)模型。(5) 功能描述:描述系統(tǒng)的行為或各子模塊之間的數(shù)據(jù)流圖。(6) 邏輯設(shè)計(jì):將系統(tǒng)功能結(jié)構(gòu)化,通常以文本、原理圖、邏輯圖、布
22、爾表達(dá)式來表示設(shè)計(jì)結(jié)果。(7) 仿真:包括功能仿真和時(shí)序仿真,主要驗(yàn)證系統(tǒng)功能的正確性及時(shí)序特性。2.2 FPGA概述FPGA(Field Programmable Gate Array)現(xiàn)場(chǎng)可編程邏輯門陣列,它是在PAL、GAL、CPLD等可編程器件的基礎(chǔ)上進(jìn)一步發(fā)展的產(chǎn)物。它是作為專用集成電路(ASIC) 領(lǐng)域中的一種半定制電路而出現(xiàn)的,既解決了定制電路的不足,又克服了原有可編程器件門電路數(shù)有限的缺點(diǎn)。它是當(dāng)今數(shù)字系統(tǒng)設(shè)計(jì)的主要硬件平臺(tái),其主要特點(diǎn)就是完全由用戶通過軟件進(jìn)行配置和編程,從而完成某種特定的功能,且可以反復(fù)擦寫。在修改和升級(jí)時(shí),不需額外地改變PCB 電路板,只是在計(jì)算機(jī)上修改和
23、更新程序,使硬件設(shè)計(jì)工作成為軟件開發(fā)工作,縮短了系統(tǒng)設(shè)計(jì)的周期,提高了實(shí)現(xiàn)的靈活性并降低了成本。2.2.1 什么是可編程邏輯器件在數(shù)字電子系統(tǒng)領(lǐng)域,存在三種基本的器件類型:存儲(chǔ)器、微處理器和邏輯器件。存儲(chǔ)器用來存儲(chǔ)隨機(jī)信息,如數(shù)據(jù)表或數(shù)據(jù)庫(kù)的內(nèi)容。微處理器執(zhí)行軟件指令來完成范圍廣泛的任務(wù),如運(yùn)行字處理程序或視頻游戲。邏輯器件提供特定的功能,包括器件與器件間的接口、數(shù)據(jù)通信、信號(hào)處理、數(shù)據(jù)顯示、定時(shí)和控制操作、以及系統(tǒng)運(yùn)行所需要的所有其它功能。邏輯器件又分為固定邏輯和可編程邏輯,固定邏輯是器件復(fù)雜性不同,從設(shè)計(jì)、原型到最終生產(chǎn),當(dāng)應(yīng)用發(fā)生變化時(shí)就要從頭設(shè)計(jì),可編程邏輯器件較固定的優(yōu)點(diǎn)就在于當(dāng)應(yīng)用
24、發(fā)生變化和器件工作不合適時(shí)不用從頭設(shè)計(jì),直接從新編寫邏輯器件后就可以了,這樣就節(jié)省了前期的開發(fā)費(fèi)用和周期。2.2.2 工作原理FPGA采用了邏輯單元陣列LCA(Logic Cell Array)這樣一個(gè)概念,內(nèi)部包括可配置邏輯模塊CLB(Configurable Logic Block)、輸入輸出模塊IOB(Input Output Block)和內(nèi)部連線(Interconnect)三個(gè)部分。 現(xiàn)場(chǎng)可編程門陣列(FPGA)是可編程器件,與傳統(tǒng)邏輯電路和門陣列(如PAL,GAL及CPLD器件)相比,F(xiàn)PGA具有不同的結(jié)構(gòu)。FPGA利用小型查找表(16×1RAM)來實(shí)現(xiàn)組合邏輯,每個(gè)查找
25、表連接到一個(gè)D觸發(fā)器的輸入端,觸發(fā)器再來驅(qū)動(dòng)其他邏輯電路或驅(qū)動(dòng)I/O,由此構(gòu)成了既可實(shí)現(xiàn)組合邏輯功能又可實(shí)現(xiàn)時(shí)序邏輯功能的基本邏輯單元模塊,這些模塊間利用金屬連線互相連接或連接到I/O模塊。FPGA的邏輯是通過向內(nèi)部靜態(tài)存儲(chǔ)單元加載編程數(shù)據(jù)來實(shí)現(xiàn)的,存儲(chǔ)在存儲(chǔ)器單元中的值決定了邏輯單元的邏輯功能以及各模塊之間或模塊與I/O間的聯(lián)接方式,并最終決定了FPGA所能實(shí)現(xiàn)的功能,F(xiàn)PGA允許無限次的編程15-17。2.2.3 FPGA基本結(jié)構(gòu)FPGA一般由3種可編程電路和一個(gè)用于存放編程數(shù)據(jù)的靜態(tài)存儲(chǔ)器SRAM組成。這3種可編程電路是:可編程邏輯模塊(CLB-Configurable Logic Bl
26、ock)、輸入/輸出模塊(IOB-I/O Block)和互連資源(IRInterconnect Resource)??删幊踢壿嬆KCLB是實(shí)現(xiàn)邏輯功能的基本單元,它們通常規(guī)則的排列成一個(gè)陣列,散布于整個(gè)芯片;可編程輸入/輸出模塊(IOB)主要完成芯片上的邏輯與外部封裝腳的接口,它通常排列在芯片的四周;可編程互連資源包括各種長(zhǎng)度的連接線段和一些可編程連接開關(guān),它們將各個(gè)CLB之間或CLB、IOB之間以及IOB之間連接起來,構(gòu)成特定功能的電路。1.CLB是FPGA的主要組成部分。圖2-1是CLB基本結(jié)構(gòu)框圖,它主要由邏輯函數(shù)發(fā)生器、觸發(fā)器、數(shù)據(jù)選擇器等電路組成。CLB中3個(gè)邏輯函數(shù)發(fā)生器分別是G、
27、F和H,相應(yīng)的輸出是G 、F和H。G有4個(gè)輸入變量G1、G2、G3和G4;F也有4個(gè)輸入變量F1、F2、F3和F4。這兩個(gè)函數(shù)發(fā)生器是完全獨(dú)立的,均可以實(shí)現(xiàn)4輸入變量的任意組合邏輯函數(shù)。邏輯函數(shù)發(fā)生器H有3個(gè)輸入信號(hào);前兩個(gè)是函數(shù)發(fā)生器的輸出G和F,而另一個(gè)輸入信號(hào)是來自信號(hào)變換電路的輸出H1。這個(gè)函數(shù)發(fā)生器能實(shí)現(xiàn)3輸入變量的各種組合函數(shù)。這3個(gè)函數(shù)發(fā)生器結(jié)合起來,可實(shí)現(xiàn)多達(dá)9變量的邏輯函數(shù)。可編程開關(guān)矩CLBCLBCLBCLBCLBCLBBCLBCLBCLBCLB矩CLBCLBCLB塊CLBCLBBCLBCLBCLBCLBCLBCLB輸入輸出模塊互連資源圖2-1 CLB基本結(jié)構(gòu)CLB中有許多
28、不同規(guī)格的數(shù)據(jù)選擇器(四選一、二選一等),通過對(duì)CLB內(nèi)部數(shù)據(jù)選擇器的編程,邏輯函數(shù)發(fā)生器G、F和H的輸出可以連接到CLB輸出端X或Y,并用來選擇觸發(fā)器的激勵(lì)輸入信號(hào)、時(shí)鐘有效邊沿、時(shí)鐘使能信號(hào)以及輸出信號(hào)。這些數(shù)據(jù)選擇器的地址控制信號(hào)均由編程信息提供,從而實(shí)現(xiàn)所需的電路結(jié)構(gòu)。CLB中的邏輯函數(shù)發(fā)生器F和G均為查找表結(jié)構(gòu),其工作原理類似于ROM。F和G的輸入等效于ROM的地址碼,通過查找ROM中的地址表可以得到相應(yīng)的組合邏輯函數(shù)輸出。另一方面,邏輯函數(shù)發(fā)生器F和G還可以作為器件內(nèi)高速RAM或小的可讀寫存儲(chǔ)器使用,它由信號(hào)變換電路控制。輸入/輸出模塊IOB。IOB提供了器件引腳和內(nèi)部邏輯陣列之間
29、的連接。它主要由輸入觸發(fā)器、輸入緩沖器和輸出觸發(fā)/鎖存器、輸出緩沖器組成。每個(gè)IOB控制一個(gè)引腳,它們可被配置為輸入、輸出或雙向I/O功能。當(dāng)IOB控制的引腳被定義為輸入時(shí),通過該引腳的輸入信號(hào)先送入輸入緩沖器。緩沖器的輸出分成兩路:一路可以直接送到MUX,另一路經(jīng)延時(shí)幾納秒(或者不延時(shí))送到輸入通路D觸發(fā)器,再送到數(shù)據(jù)選擇器。通過編程給數(shù)據(jù)選擇器不同的控制信息,確定送至CLB陣列的I1和I2是來自輸入緩沖器,還是來自觸發(fā)器。當(dāng)IOB控制的引腳被定義為輸出時(shí),CLB陣列的輸出信號(hào)OUT也可以有兩條傳輸途徑:一條是直接經(jīng)MUX送至輸出緩沖器,另一條是先存入輸出通路D觸發(fā)器,再送至輸出緩沖器。IO
30、B輸出端配有兩只MOS管,它們的柵極均可編程,使MOS管導(dǎo)通或截止,分別經(jīng)上拉電阻接通Vcc、地線或者不接通,用以改善輸出波形和負(fù)載能力。可編程互連資源IR??删幊袒ミB資源IR可以將FPGA內(nèi)部的CLB和CLB之間、CLB和IOB之間連接起來,構(gòu)成各種具有復(fù)雜功能的系統(tǒng)。IR主要由許多金屬線段構(gòu)成,這些金屬線段帶有可編程開關(guān),通過自動(dòng)布線實(shí)現(xiàn)各種電路的連接。2.2.4 FPGA系統(tǒng)設(shè)計(jì)流程一般說來,一個(gè)比較大的完整的項(xiàng)目應(yīng)該采用層次化的描述方法:分為幾個(gè)較大的模塊,定義好各功能模塊之間的接口,然后各個(gè)模塊再細(xì)分去具體實(shí)現(xiàn),這就是自頂向下的設(shè)計(jì)方法。目前這種高層次的設(shè)計(jì)方法已被廣泛采用。高層次設(shè)
31、計(jì)只是定義系統(tǒng)的行為特征,可以不涉及實(shí)現(xiàn)工藝,因此還可以在廠家綜合庫(kù)的支持下,利用綜合優(yōu)化工具將高層次描述轉(zhuǎn)換成針對(duì)某種工藝優(yōu)化的網(wǎng)絡(luò)表,使工藝轉(zhuǎn)化變得輕而易舉。CPLD/FPGA系統(tǒng)設(shè)計(jì)的工作流程如圖2-2所示系統(tǒng)劃分編譯器代碼級(jí)功能仿真綜合器適配前時(shí)序仿真適配器CPLD/FPGA實(shí)現(xiàn)適配后仿真模型適配后時(shí)序仿真適配報(bào)告ASIC實(shí)現(xiàn)VHDL代碼或圖形方式輸入仿真綜合器件編程文件圖2-2 CPLD/FPGA系統(tǒng)設(shè)計(jì)流程流程說明:1.工程師按照“自頂向下”的設(shè)計(jì)方法進(jìn)行系統(tǒng)劃分。2.輸入VHDL代碼,這是設(shè)計(jì)中最為普遍的輸入方式。此外,還可以采用圖形輸入方式(框圖、狀態(tài)圖等),這種輸入方式具有直
32、觀、容易理解的優(yōu)點(diǎn)。3.將以上的設(shè)計(jì)輸入編譯成標(biāo)準(zhǔn)的VHDL文件。4.進(jìn)行代碼級(jí)的功能仿真,主要是檢驗(yàn)系統(tǒng)功能設(shè)計(jì)的正確性。這一步驟適用于大型設(shè)計(jì),因?yàn)閷?duì)于大型設(shè)計(jì)來說,在綜合前對(duì)源代碼仿真,就可以大大減少設(shè)計(jì)重復(fù)的次數(shù)和時(shí)間。一般情況下,這一仿真步驟可略去。5.利用綜合器對(duì)VHDL源代碼進(jìn)行綜合優(yōu)化處理,生成門級(jí)描述的網(wǎng)絡(luò)表文件,這是將高層次描述轉(zhuǎn)化為硬件電路的關(guān)鍵步驟。綜合優(yōu)化是針對(duì)ASIC芯片供應(yīng)商的某一產(chǎn)品系列進(jìn)行的,所以綜合的過程要在相應(yīng)的廠家綜合庫(kù)的支持下才能完成。6.利用產(chǎn)生的網(wǎng)絡(luò)表文件進(jìn)行適配前的時(shí)序仿真,仿真過程不涉及具體器件的硬件特性,是較為粗略的。一般的設(shè)計(jì),也可略去這一
33、步驟。7.利用適配器將綜合后的網(wǎng)絡(luò)表文件針對(duì)某一具體的目標(biāo)器件進(jìn)行邏輯映射操作,包括底層器件配置、邏輯分割、邏輯優(yōu)化和布局布線。8.在適配完成后,產(chǎn)生多項(xiàng)設(shè)計(jì)結(jié)果:(a)適配報(bào)告,包括芯片內(nèi)部資源利用情況,設(shè)計(jì)的布爾方程描述情況等;(b)適配后的仿真模型;(c)器件編程文件。根據(jù)適配后的仿真模型,可以進(jìn)行適配后時(shí)序仿真,因?yàn)橐呀?jīng)得到器件的實(shí)際硬件特性(如時(shí)延特性),所以仿真結(jié)果能比較精確的預(yù)期未來芯片的實(shí)際性能。如果仿真結(jié)果達(dá)不到設(shè)計(jì)要求,就修改VHDL源代碼或選擇不同速度和品質(zhì)的器件,直至滿足設(shè)計(jì)要求。最后將適配器產(chǎn)生的器件編程文件通過編程器或下載電纜載入到目標(biāo)芯片CPLD/FPGA中。2.
34、3 QuartusII設(shè)計(jì)平臺(tái)2.3.1 軟件開發(fā)環(huán)境及基本流程本設(shè)計(jì)所用軟件主要是QuartusII,在此對(duì)它做一些介紹。QuartusII是Altera提供的FPGA/CPLD開發(fā)集成環(huán)境,Altera是世界上最大的可編程邏輯器件供應(yīng)商之一。QuartusII提供了一種與結(jié)構(gòu)無關(guān)的設(shè)計(jì)環(huán)境,使設(shè)計(jì)者能方便地進(jìn)行設(shè)計(jì)輸入、快速處理和器件編程。Altera公司的QuartusII 開發(fā)工具人機(jī)界面友好、易于使用、性能優(yōu)良,并自帶編譯、仿真功能。QuartusII軟件完全支持VHDL設(shè)計(jì)流程,其內(nèi)部嵌有VHDL邏輯綜合器。QuartusII 也可以利用第三方的綜合工具,如FPGA Compile
35、r II,并能直接調(diào)用這些工具。同樣,QuartusII具備仿真功能,同時(shí)也支持第三方的仿真工具。此外,QuartusII與MATLAB和DSP Builder結(jié)合,可以進(jìn)行基于FPGA的DSP系統(tǒng)開發(fā),是DSP硬件系統(tǒng)實(shí)現(xiàn)的關(guān)鍵EDA技術(shù)。QuartusII包括模塊化的編譯器。編譯器包括的功能模塊有分析/綜合器、適配器、裝配器、時(shí)序分析器、設(shè)計(jì)輔助模塊、EDA網(wǎng)表文件生成器、編輯數(shù)據(jù)接口等??梢酝ㄟ^選擇Start Compilation來運(yùn)行所有的編譯器模塊,也可以通過選擇Start單獨(dú)運(yùn)行各個(gè)模塊。在Compiler Tool窗口中,可以打開該模塊的設(shè)置文件或報(bào)告文件,或者打開其它相關(guān)窗口
36、。圖2-3上排所示的是QuartusII編譯設(shè)計(jì)主控界面,它顯示了QuartusII自動(dòng)設(shè)計(jì)的各主要處理環(huán)節(jié)和設(shè)計(jì)流程,包括設(shè)計(jì)輸入編輯、設(shè)計(jì)分析與綜合、適配、編程文件匯編、時(shí)序參數(shù)提取以及編程下載幾個(gè)步驟。圖2-3下排的流程框圖是與上面的QuartusII設(shè)計(jì)流程相對(duì)照的標(biāo)準(zhǔn)的EDA開發(fā)流程。圖2-3 Quartus II 設(shè)計(jì)流程在設(shè)計(jì)輸入之后,QuartusII的編譯器將給出設(shè)計(jì)輸入的錯(cuò)誤報(bào)告。QuartusII擁有性能良好的設(shè)計(jì)錯(cuò)誤定位器,用于確定文本或圖形設(shè)計(jì)中的錯(cuò)誤。在進(jìn)行編譯后,可對(duì)設(shè)計(jì)進(jìn)行時(shí)序仿真。在仿真前,需要利用波形編輯器編輯一個(gè)波形激勵(lì)文件。編譯和仿真檢測(cè)無誤后,便可將下
37、載信息通過QuartusII提供的編程器下載入目標(biāo)器件中了。QuartusII圖形用戶界面的基本設(shè)計(jì)流程如下:1.使用New Project Wizard(File菜單)建立新工程并指定目標(biāo)器件或器件系列。2.使用Text Editor(文本編輯器)建立 Verilog HDL、VHDL或Altera硬件描述語言(AHDL)設(shè)計(jì)??梢允褂肂lock Editor(原理圖編輯器)建立流程圖或原理圖。流程圖中可以包含代表其它設(shè)計(jì)文件的符號(hào);還可以使用MegaWizard Plug-In Manager生成宏功能模塊和IP內(nèi)核的自定義變量,在設(shè)計(jì)中將它們實(shí)例化。3.(可選)使用 Assignment
38、 Editor、Settings 對(duì)話框(Assignments 菜單)、Floorplan Editor或LogicLock功能指定初始設(shè)計(jì)的約束條件。4.(可選)使用SOPC Builder或DSP Builder建立系統(tǒng)級(jí)設(shè)計(jì)。5.(可選)使用Software Builder為Excalibur器件處理器或Nios嵌入式處理器建立軟件和編程文件。6.使用Analysis & Synthesis對(duì)設(shè)計(jì)進(jìn)行綜合。7.(可選)使用仿真器對(duì)設(shè)計(jì)執(zhí)行功能仿真。8.使用Fitter對(duì)設(shè)計(jì)執(zhí)行布局布線。在對(duì)源代碼進(jìn)行少量更改之后,還可以使用增量布局布線。9.使用Timing Analyzer對(duì)
39、設(shè)計(jì)進(jìn)行時(shí)序分析。10.使用仿真器對(duì)設(shè)計(jì)進(jìn)行時(shí)序仿真。 11.(可選)使用物理綜合、時(shí)序底層布局圖、LogicLock功能、Settings對(duì)話框和 Assignment Editor進(jìn)行設(shè)計(jì)優(yōu)化,實(shí)現(xiàn)時(shí)序關(guān)閉。12.使用Assembler為設(shè)計(jì)建立編程文件。 13.使用編程文件、Programmer 和Altera硬件編程器對(duì)器件進(jìn)行編程;或?qū)⒕幊涛募D(zhuǎn)換為其它文件格式以供嵌入式處理器等其它系統(tǒng)使用。14.(可選)使用SignalTap II Logic Analyzer、SignalProbe功能或Chip Editor對(duì)設(shè)計(jì)進(jìn)行調(diào)試。15.(可選)使用Chip Editor、Resour
40、ce Property Editor和Change Manager進(jìn)行工程更改管理。2.3.2 具體設(shè)計(jì)流程1.建立工作庫(kù)文件夾和編輯設(shè)計(jì)文件首先建立工作庫(kù)目錄,以便存儲(chǔ)工程項(xiàng)目設(shè)計(jì)文件。任何一項(xiàng)設(shè)計(jì)都是一項(xiàng)工程(Project),都必須首先為此工程建立一個(gè)放置與此工程相關(guān)的所有設(shè)計(jì)文件的文件夾。此文件夾將被EDA軟件默認(rèn)為工作庫(kù)。一般來說,不同的設(shè)計(jì)項(xiàng)目最好放在不同的文件夾中,而同一工程的所有文件都必須放在同一文件夾中。2.創(chuàng)建工程使用New Project Wizard可以為工程指定工作目錄、分配工程名稱以及指定最高層設(shè)計(jì)實(shí)體的名稱,還可以指定要在工程中使用的設(shè)計(jì)文件、其它源文件、用戶庫(kù)和
41、EDA工具,以及目標(biāo)器件系列和具體器件等。3.編譯前設(shè)置在對(duì)工程進(jìn)行編譯處理前,必須做好必要的設(shè)置。步驟如下:a.選擇FPGA目標(biāo)芯片b.選擇配置器件的工作方式c.選擇配置器件和編程方式d.選擇輸出設(shè)置e.選擇目標(biāo)器件閑置引腳的狀態(tài)4.全程編譯QuartusII編譯器是由一系列處理模塊構(gòu)成的,這些模塊負(fù)責(zé)對(duì)設(shè)計(jì)項(xiàng)目的檢錯(cuò)、邏輯綜合、結(jié)構(gòu)綜合、輸出結(jié)果的編輯配置,以及時(shí)序分析。在這一過程中,將設(shè)計(jì)項(xiàng)目適配到FPGA目標(biāo)器中,同時(shí)產(chǎn)生多種用途的輸出文件。編譯器首先檢查出工程設(shè)計(jì)文件中可能的錯(cuò)誤信息,供設(shè)計(jì)者排除。然后產(chǎn)生一個(gè)結(jié)構(gòu)化的以網(wǎng)表文件表達(dá)的電路原理圖文件。圖2-4 全編譯成功后出現(xiàn)信息提示
42、如果編譯成功,可以見到如圖2-4所示的工程管理窗口左上角顯示了工程(例如工程div)的層次結(jié)構(gòu)和其中結(jié)構(gòu)模塊耗用的邏輯宏單元數(shù);在此欄下是編譯處理流程,包括數(shù)據(jù)網(wǎng)表建立、邏輯綜合、適配、配置文件裝配和時(shí)序分析等;最下欄是編譯處理信息;中欄式編譯報(bào)告項(xiàng)目選擇菜單,單擊其中各項(xiàng)可以詳細(xì)了解編譯與分析結(jié)果。 5.時(shí)序仿真工程編譯通過后,必須建立VWF文件對(duì)其功能和時(shí)序性質(zhì)進(jìn)行仿真測(cè)試,以了解設(shè)計(jì)結(jié)果是否滿足原設(shè)計(jì)要求。18-21 第3章 數(shù)字鐘的整體設(shè)計(jì)方案3.1 數(shù)字鐘的構(gòu)成數(shù)字鐘實(shí)際上是一個(gè)對(duì)標(biāo)準(zhǔn)頻率( 1Hz)進(jìn)行計(jì)數(shù)的計(jì)數(shù)電路。由于計(jì)數(shù)的起始時(shí)間不可能與標(biāo)準(zhǔn)時(shí)間(如北京時(shí)間)一致,故需要在電
43、路上加一個(gè)校時(shí)電路,同時(shí)標(biāo)準(zhǔn)的1Hz時(shí)間信號(hào)必須做到準(zhǔn)確穩(wěn)定。通常使用石英晶體振蕩器電路構(gòu)成數(shù)字鐘。圖3-1所示為數(shù)字鐘的一般結(jié)構(gòu)框圖。主要包括時(shí)問基準(zhǔn)電路、計(jì)數(shù)器電路、控制電路、譯碼和顯示電路。其中的控制邏輯電路是比較靈活多樣的,不斷完善它可以增強(qiáng)數(shù)字鐘的功能。輸入調(diào)試和設(shè)鬧秒計(jì)數(shù)六十進(jìn)制分計(jì)數(shù)六十進(jìn)制時(shí)計(jì)數(shù)二十四進(jìn)制動(dòng)態(tài)掃描顯示晶振分頻整點(diǎn)報(bào)時(shí)六位數(shù)碼管圖3-1 數(shù)字鐘的結(jié)構(gòu)框圖控制開關(guān)有五個(gè),分別為復(fù)位開關(guān)(用于系統(tǒng)復(fù)位清零)、設(shè)鬧與時(shí)鐘切換開關(guān)(用于設(shè)置鬧鐘和時(shí)鐘的切換)、調(diào)秒開關(guān)(用于調(diào)整鬧鐘或時(shí)鐘的秒位)、調(diào)分開關(guān)(用于調(diào)整鬧鐘或時(shí)鐘的分鐘位)、調(diào)時(shí)開關(guān)(用于調(diào)整鬧鐘或時(shí)鐘的小時(shí)位
44、)。晶振為1KHz石英晶體振蕩器,產(chǎn)生穩(wěn)定的頻率為1KHz的時(shí)鐘信號(hào),接至芯片內(nèi)的分頻模塊,分成1Hz信號(hào),1KHz信號(hào)接至動(dòng)態(tài)掃描模塊作為掃描信號(hào),1Hz信號(hào)接至秒計(jì)數(shù)模塊作為時(shí)鐘基準(zhǔn)信號(hào)。動(dòng)態(tài)掃描模塊輸出時(shí)、分、秒的顯示信號(hào)和位選信號(hào)接至六位數(shù)碼管,作為動(dòng)態(tài)掃描顯示信號(hào)。掃描的頻率由分頻電路從外接晶振分頻得到,且六位數(shù)碼管的電源有外接穩(wěn)壓電源提供。3.2 數(shù)字鐘的工作原理晶體振蕩器產(chǎn)生穩(wěn)定的高頻脈沖信號(hào),作為數(shù)字鐘的時(shí)間基準(zhǔn),然后經(jīng)過分頻器分別輸出標(biāo)準(zhǔn)秒脈沖(1Hz)。秒計(jì)數(shù)器滿60后向分計(jì)數(shù)器進(jìn)位,分計(jì)數(shù)器滿60后向小時(shí)計(jì)數(shù)器進(jìn)位,小時(shí)計(jì)數(shù)器按照“24翻l”的規(guī)律計(jì)數(shù)。計(jì)滿后各計(jì)數(shù)器清零
45、,重新計(jì)數(shù)。計(jì)數(shù)器的輸出分別經(jīng)譯碼器送數(shù)碼管顯示。計(jì)時(shí)出現(xiàn)誤差時(shí),可以用校時(shí)電路校小時(shí)、校分或校秒。在控制信號(hào)中除了一般的校時(shí)信號(hào)外,還有時(shí)鐘清零信號(hào)、設(shè)鬧與計(jì)時(shí)顯示的切換信號(hào)??刂菩盘?hào)由矩陣按鍵輸入并加有按鍵去抖電路。時(shí)基電路可以由石英晶體振蕩電路構(gòu)成,如果晶振頻率為1KHz,經(jīng)過10000分頻就可以得到秒脈沖信號(hào)。顯示由六位七段數(shù)碼管構(gòu)成,通過動(dòng)態(tài)掃描譯碼顯示,可節(jié)省I/O資源。第4章 電路程序設(shè)計(jì)與仿真4.1 分頻模塊電路設(shè)計(jì)與仿真晶體振蕩器是構(gòu)成數(shù)字式時(shí)鐘的核心,振蕩器的穩(wěn)定度及頻率的精度決定了數(shù)字鐘計(jì)時(shí)的準(zhǔn)確程度,它保證了時(shí)鐘的走時(shí)準(zhǔn)確及穩(wěn)定。石英晶體的選頻特性非常好,只有某頻率點(diǎn)的
46、信號(hào)可以通過它,其它頻率段的信號(hào)均會(huì)被它所衰減,而且,振蕩信號(hào)的頻率與振蕩電路中的R、C元件的數(shù)值無關(guān)。因此,這種振蕩電路輸出的是準(zhǔn)確度極高的信號(hào)。然后再利用分頻電路,將其輸出信號(hào)轉(zhuǎn)變?yōu)槊胄盘?hào)和掃描信號(hào),其組成框圖如圖4-1所示。晶振分頻電路圖4-1 秒信號(hào)產(chǎn)生電路框圖4.1.1 分頻模塊的程序設(shè)計(jì)本系統(tǒng)使用的晶體振蕩器電路給數(shù)字鐘提供了一個(gè)頻率穩(wěn)定準(zhǔn)確的1KHz的方波信號(hào),其輸出至分頻電路。分頻電路的邏輯框圖如圖4-2所示:圖4-2 分頻邏輯框圖分頻電路的程序如下:LIBRARY IEEE; -庫(kù)說明USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGI
47、C_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY fenpin IS PORT (clk1k:in std_logic; -分頻輸入 ft:out std_logic); -分頻輸出END fenpin;ARCHITECTURE a OF fenpin ISSIGNAL fm:STD_LOGIC;BEGINPROCESS(clk1k) -分頻進(jìn)程VARIABLE num:integer range 0 to 500;BEGINIF clk1k'event AND clk1k='1' THEN -時(shí)鐘上升沿有效 IF n
48、um<500 THEN -對(duì)晶振進(jìn)行1HZ分頻 num:=num+1; ELSE num:=1; fm<=not fm; END IF ;END IF;ft<=fm;END PROCESS;END a;1KHz晶振的信號(hào)接至去抖模塊和動(dòng)態(tài)掃描模塊作為掃描信號(hào);此分頻電路輸出頻率為1Hz的信號(hào),輸出至秒計(jì)數(shù)模塊作為時(shí)鐘計(jì)時(shí)的秒基準(zhǔn)信號(hào)。當(dāng)然秒信號(hào)必須非常精確,否則時(shí)鐘會(huì)出現(xiàn)較大的誤差,所以必須對(duì)秒信號(hào)進(jìn)行測(cè)試,直至符合要求。4.1.2 分頻模塊的仿真仿真結(jié)果如圖4-3示:(1)輸入clkln: 1KHz晶振產(chǎn)生的穩(wěn)定頻率 輸出 ft: 為分頻產(chǎn)生的1Hz頻率率(2)由仿真波形可
49、看出分頻模塊產(chǎn)生了一個(gè)1S的信號(hào),即1HZ頻率,滿足程序要求圖4-3 分頻電路仿真波形4.2 鍵盤控制設(shè)計(jì)與仿真4.2.1 鍵盤接口電路原理圖4-4 鍵盤接口電路校時(shí)控制模塊在本系統(tǒng)中也就是鍵盤接口電路部分。下面先介紹鍵盤接口電路的工作原理,如圖4-4本系統(tǒng)采用的就是這種行列式鍵盤接口,相對(duì)個(gè)按鍵的鍵盤接口來說節(jié)省了I/O接口。行線通過一個(gè)電阻被上拉到+5V電壓。行線與按鍵的一個(gè)引腳相連,列線與按鍵的另一個(gè)引腳相連。平時(shí)列線被置成低電平,沒有按鍵被按下的時(shí)候,行線保持高電平,而有按鍵被按下的時(shí)候,行線被拉成低電平,這時(shí)候控制器就知道有按鍵被按下,但只能判斷出在哪一行,不能判斷出在哪一列,因此接
50、下來就要進(jìn)行鍵盤掃描,以確定具體是哪個(gè)按鍵被按下。鍵盤掃描的過程事將列線逐列置成低電平,然后讀取行線狀態(tài),直到行線中出現(xiàn)低電平,可知這時(shí)哪一列是低電平,然后將行線與列線的狀態(tài)裝入鍵碼寄存器,進(jìn)行按鍵譯碼,得到按下的按鍵的相應(yīng)編碼,這樣就完成了按鍵掃描的過程。當(dāng)然,一個(gè)完整的按鍵掃描過程還需要配合相應(yīng)的鍵盤去抖手段才能正確的識(shí)別按鍵,不會(huì)發(fā)生重鍵和錯(cuò)誤判斷等情況。4.2.2 按鍵消抖模塊的程序設(shè)計(jì)按鍵消抖的邏輯框圖如圖4-5所示:圖4-5 按鍵消抖邏輯框圖本模塊用于當(dāng)有按鍵按下時(shí),采用軟件消抖的辦法去除按鍵抖動(dòng)。模塊的實(shí)現(xiàn)方法是先判斷是否有按鍵按下,如有按鍵按下則延時(shí)一段時(shí)間,待抖動(dòng)過去之后再讀
51、行線狀態(tài),如果仍有低電平行線,則確定有按鍵按下,然后產(chǎn)生一個(gè)有按鍵按下的信號(hào)。該模塊有一個(gè)時(shí)鐘輸入端口,輸入時(shí)鐘信號(hào)是分頻出來的1KHZ的時(shí)鐘;有一個(gè)輸入端口與行線相連,用于輸入行線狀態(tài);一個(gè)輸出端口,用于輸出有按鍵按下的信號(hào)。這段程序是實(shí)現(xiàn)按鍵消抖,在這里實(shí)現(xiàn)的比較簡(jiǎn)單,原理是當(dāng)有按鍵按下的時(shí)候,temp1會(huì)變成低電平,這時(shí)把sig2 變成高電平,如果此時(shí)counter不為“1111”時(shí),內(nèi)部計(jì)數(shù)器計(jì)數(shù),從“0000”直到“1111”,當(dāng)計(jì)數(shù)到“1111”時(shí),key_pre輸出高電平,同時(shí)計(jì)數(shù)器清零。由于計(jì)數(shù)脈沖為1KHZ,故從有按鍵按下到輸入信號(hào)產(chǎn)生大概需要15ms。如果有按鍵抖動(dòng)的話,t
52、em1會(huì)在“0”和“1”之間變動(dòng)多次,但是計(jì)數(shù)過程不會(huì)停止,原因是計(jì)數(shù)由sig2的電平?jīng)Q定,而sig2一旦變成高電平,再要變成低電平,需要計(jì)數(shù)完成即counter等于“1111”時(shí)。所以計(jì)數(shù)過程不會(huì)受抖動(dòng)影響。一旦計(jì)數(shù)完成,抖動(dòng)已經(jīng)過去,不會(huì)發(fā)生重鍵現(xiàn)象了,這樣就去除了抖動(dòng)。該電路的VHDL程序如下:LIBRARY IEEE; -庫(kù)說明USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY qudou ISPORT(clk1:IN STD_LOGIC; -系統(tǒng)
53、時(shí)鐘 row:IN STD_LOGIC_VECTOR(3 DOWNTO 0); -延時(shí)時(shí)間 key_pre:OUT STD_LOGIC); -按鍵標(biāo)志位END QUDOU;ARCHITECTURE behav OF qudou IS SIGNAL sig1,counter:STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL tmp1,sig2:STD_LOGIC;BEGIN sig1<=row; tmp1<=sig1(0)and sig1(1)and sig1(2)and sig1(3); key_pre<=counter(0)and counter(1
54、)and counter(2)and counter(3);PROCESS(clk1) -啟動(dòng)進(jìn)程BEGIN IF(clk1'event and clk1='1')THEN -上升沿有效 IF(tmp1='0')THEN IF(sig2='0')THEN sig2<='1' END IF; END IF;IF(sig2='1')THEN -延時(shí)消抖 IF(counter="1111")THEN sig2<='0' counter<="0000" ELSE counter<=counter+'1' END IF; END IF;END IF;END PROCESS;END behav;4.2.3 按鍵消抖模塊的仿真去抖模塊的仿真波形圖如圖4-6示圖4-6 按鍵消抖邏輯仿真波形(1)輸入 clk1:為1KHZ的時(shí)鐘信號(hào) row:為計(jì)時(shí)模塊,設(shè)定時(shí)間輸出 key_pre:判斷是否有鍵按下(2)當(dāng)計(jì)時(shí)達(dá)到15ms時(shí),輸出產(chǎn)生高電平,表示有鍵按下,能夠?qū)崿F(xiàn)按鍵消抖功能。4.2.4 鍵掃描模塊的程序設(shè)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年流動(dòng)式空氣質(zhì)量監(jiān)測(cè)車合作協(xié)議書
- 2025年個(gè)人門面買賣合同格式版(2篇)
- 2025年個(gè)人貨車租賃合同常用版(2篇)
- 2025年九年級(jí)英語下學(xué)期教學(xué)工作總結(jié)(二篇)
- 2025年個(gè)人貨運(yùn)汽車租賃合同(4篇)
- 2025年個(gè)人雇傭協(xié)議參考范文(三篇)
- 2025年九年級(jí)教學(xué)管理工作總結(jié)樣本(2篇)
- 2013-2022年北京市中考真題物理試題匯編:電功和電功率章節(jié)綜合
- 2025年中介行業(yè)保密協(xié)議(五篇)
- 2025年個(gè)人成交租賃合同模板(三篇)
- 2024年度-脛腓骨骨折
- 2024年職業(yè)衛(wèi)生技術(shù)人員評(píng)價(jià)方向考試題庫(kù)附答案
- 應(yīng)用密碼學(xué)課件
- 紅樓夢(mèng)詩詞全集
- 礦井通風(fēng)安全培訓(xùn)課件
- 2024年中國(guó)國(guó)際投資促進(jìn)中心限責(zé)任公司招聘高頻考題難、易錯(cuò)點(diǎn)模擬試題(共500題)附帶答案詳解
- 苯胺合成靛紅工藝
- 質(zhì)量保證發(fā)展史和國(guó)外相關(guān)標(biāo)準(zhǔn)簡(jiǎn)介
- 三年級(jí)上冊(cè)數(shù)學(xué)脫式計(jì)算大全600題及答案
- 魯教版(五四制)七年級(jí)數(shù)學(xué)上冊(cè)期末考試卷-附帶答案
- 南京大學(xué)儀器分析習(xí)題集
評(píng)論
0/150
提交評(píng)論