【正文】
致謝參考文獻(xiàn)1 潘松,黃繼業(yè). EDA技術(shù)實用教程. 第三版. 科學(xué)出版社,2006:84~922 歐偉明,周春臨,瞿遂春. 電子信息系統(tǒng)設(shè)計. 西安電子科技大學(xué)出版社,2005:88~1293 褚振勇,翁木云. FPGA設(shè)計及應(yīng)用. 西安電子科技大學(xué)出版社,2002:45~564 羅朝霞,高書莉. CPLD/FPGA及應(yīng)用. 人民郵電出版社,2007:81~975 辛春艷.VHDL硬件描述語言. 國防工業(yè)出版社,2005:49~566 盧毅,. 科學(xué)出版社,2005:34~457 雷雪松. VHDL設(shè)計實例與仿真. 機(jī)械工業(yè)出版社,2007:2~68 雷伏容. VHDL電路設(shè)計. 清華大學(xué)出版社,2006:12~179 王傳新. FPGA設(shè)計基礎(chǔ). 高等教育出版社,2007:9~1410 Stephen Brown ,Zvonko Vranesic . Fundamengtals of Digital Logic with VHDL Design . McGraw—Hill Education(Asia),2002:5~911 Clive Max Maxfield .The Design Warrior’s Guide to FPGA’s Devices, Tools and Flows . Elsevier(Singapore)Pte Ltd,2007:12~1512 Maziar Khosravipour, Herbert Grfinbacher . VHDLbased Rapid Hardware Prototyping Using . Vienna, Austria,2006:3~713 SangJoon Lee and Dr. Kaamran Placement Optimization Methodology Survey. Toronto, Canada,2008:1~814 歐偉明. 基于FPGA電路重構(gòu)技術(shù)的電子系統(tǒng)設(shè)計,2006:2~515 李冬梅. PLD器件與EDA技術(shù)[M] . 北京廣播學(xué)院出版社,2004:47~5216 姜雪松,吳鈺淳. VHDL設(shè)計實例與仿真. 機(jī)械工業(yè)出版社,2007:78~8517 劉嵐,黃秋光,陳適. FPGA應(yīng)用技術(shù)基礎(chǔ)教程. 電子工業(yè)出版社,2009:2~518 王誠,吳建華. Altara FPGA/CPLD設(shè)計. 人民郵電出版社,2008:104~10919 徐志軍,尹延輝. 數(shù)字邏輯原理與VHDL設(shè)計. 機(jī)械工業(yè)出版社,2008:46~5020 [美]克萊茨(Kleitz,W.),李楚軍 譯. VHDL數(shù)字電子學(xué). 科學(xué)出版社,2008:417~42421 孟憲元,錢偉康. FPGA嵌入式系統(tǒng)設(shè)計. 電子工業(yè)出版社,2007:108~11422 李云,侯傳教. VHDL電路設(shè)計實用教程. 機(jī)械工業(yè)出版社,2009:195~196附錄AFPGA Placement Optimization Methodology SurveySangJoon Lee and Dr. Kaamran RaahemifarDepartment of Electrical and Computer Engineering Ryerson UniversityToronto, ON, CanadaABSTRACTField Programmable Gate Array (FPGA) is a programmable chip that can be used to quickly implement any digital circuits. Placement is an important part of FPGA design step which determines physical arrangement of the logic blocks in the FPGA. The quality of placement of logic blocks determines overall performance of the logic implemented in the FPGA. In this paper, a number of placement optimization techniques are reviewed。通過此次設(shè)計的數(shù)字電子鐘系統(tǒng),體現(xiàn)出FPGA在數(shù)據(jù)處理中的作用,從而使以往所學(xué)習(xí)的電子電路、VHDL語言、EDA等知識得到實踐。4.在進(jìn)行系統(tǒng)設(shè)計時,第一次采用模塊化方法。隨著現(xiàn)代電子技術(shù)的發(fā)展,F(xiàn)PGA芯片的性能更加卓越,必將在數(shù)字系統(tǒng)中擔(dān)負(fù)更加重要的角色,通過此次畢業(yè)設(shè)計,我認(rèn)識了FPGA的基本結(jié)構(gòu)和工作原理,為自己又增添了一項基本技能。歸納起來如下:1.對EDA技術(shù)有了更加深刻的了解,這使得我能夠把握本專業(yè)的發(fā)展方向,并結(jié)合個人興趣而有目的地學(xué)習(xí),為以后走上工作崗位打下基礎(chǔ)。本課題主要通過對以往深入學(xué)習(xí)了解FPGA的基本結(jié)構(gòu)、工作原理和性能特點,深入學(xué)習(xí)VHDL語言;理解VHDL語言編寫編碼器、譯碼器、數(shù)據(jù)選擇器、時序邏輯電路和組合邏輯電路的思路和方法;學(xué)習(xí)和掌握模塊化設(shè)計的思想,體會模塊化設(shè)計的優(yōu)點,同時克服模塊化設(shè)計帶來的困難;應(yīng)用Quartus II對功能模塊進(jìn)行調(diào)試、仿真,驗證功能模塊的正確性。 51 結(jié)論電子設(shè)計自動化(EDA)技術(shù)自提出以來,迅速發(fā)展成為電子系統(tǒng)設(shè)計的重要工具,如今,EDA技術(shù)已廣泛應(yīng)用于自動控制、人工智能、工業(yè)生產(chǎn)等眾多領(lǐng)域。千萬不要刪除行尾的分節(jié)符,此行不會被打印。同時對其進(jìn)行仿真分析,以便檢驗各功能模塊是否達(dá)到設(shè)計要求以及運行狀態(tài)正確與否。由此,EDA技術(shù)的高速發(fā)展,將為我們打開一個廣闊的空間。目前我國FPGA論是模擬電路還是數(shù)字電路,將總歸于EDA。因此,F(xiàn)PGA將在EDA基礎(chǔ)上的廣泛應(yīng)用。另外,F(xiàn)PGA可根據(jù)需要用到的軟件改變各引腳的功能,如需要的話,也可在FPGA中設(shè)計出一個或多個CPU,達(dá)到控制的目的。單片機(jī)是用指令排隊形式來執(zhí)行指令的,影響了速度的提高。其次,F(xiàn)PGA本身的速度相對單片機(jī)來顯得十分快捷。所以,使用不同型號的單片機(jī)必須學(xué)會不同的匯編語言。而單片機(jī)為適應(yīng)實時處理的快速要求,它是直接面對硬件的,屬較低級的,大多數(shù)都使用匯編語言。FPGA可使用標(biāo)準(zhǔn)硬件描述語言VHDL,只要學(xué)會一種語言,即可對所有型號的FPGA編程。圖413 電子鐘計時演示圖在查詢資料的時候,我發(fā)現(xiàn)設(shè)計電子鐘不僅僅局限于基于FPGA的一種方法,基于單片機(jī)的設(shè)計是目前大多數(shù)所采用的方法。因此,并不能完全體現(xiàn)出本次設(shè)計的成果。需要說明的是,由于本圖為通過FPGA試驗箱來設(shè)計數(shù)字電子鐘系統(tǒng)。而此時時鐘的時、分、秒均能正常計數(shù),說明設(shè)計達(dá)到了預(yù)期的效果。也就是說在1/32s內(nèi),6個數(shù)字要輪流亮一次,故每個數(shù)字最多可連續(xù)亮1/192秒。圖412為時鐘在正常計時的一個波形圖。此時時鐘暫停計時;同時把sec_tune置為1,即為開始計時,秒鐘將從0持續(xù)增到59,然后自動清零,同時再次開始計時。時鐘的定時功能如圖411所示。1.Led_alarm:表示鬧鐘設(shè)定時間已到;2.Led_stop:表示計時器定時時間已到;3.Seg4:分與秒的4個數(shù)字多路掃描輸出,可顯示在七段顯示器上;4.p1,p2,p3,p4:分與秒的4個數(shù)字多路掃描電源激活輸出線;5.seg2:時鐘的2個數(shù)字多路掃描輸出,可顯示在七段顯示器上;時鐘的復(fù)位功能如圖410所示:圖410復(fù)位功能演示圖可以看到在rst置為1時,系統(tǒng)輸出為零。以下是系統(tǒng)輸入信號。經(jīng)過轉(zhuǎn)換,最終輸出為七段顯示數(shù)碼形式,從而能夠通過控制七段數(shù)碼管的亮暗來最終達(dá)到顯示時間的設(shè)計目的。在一般電路中,數(shù)值均以二進(jìn)制的形式存儲與計算,但是要將其輸出至七段顯示器顯示時,則必須提供一個電路模塊專門將二進(jìn)制轉(zhuǎn)換成十進(jìn)制供輸出使用,仿真圖如圖49所示。圖48a 二十四進(jìn)制數(shù)碼調(diào)整程序仿真圖圖48b 二十四進(jìn)制數(shù)碼調(diào)整程序仿真圖圖48c 二十四進(jìn)制數(shù)碼調(diào)整程序仿真圖由仿真圖可以看出,和六十進(jìn)制數(shù)碼調(diào)節(jié)原理相同。 i24BCD組件同理,設(shè)計一個查表程序?qū)⑿r數(shù)0~23共24個整數(shù)轉(zhuǎn)換成二進(jìn)制編碼的十進(jìn)制(BCD)輸出,以便將來轉(zhuǎn)換成七段顯示器格式輸出。當(dāng)輸入信號計數(shù)到60時,計數(shù)器清零,系統(tǒng)重新計時。圖47a 六十進(jìn)制數(shù)碼調(diào)整程序仿真圖圖47b 六十進(jìn)制數(shù)碼調(diào)整程序仿真圖圖47c 六十進(jìn)制數(shù)碼調(diào)整程序仿真圖由仿真圖可以看到,當(dāng)輸入信號時,計數(shù)器開始計時。圖 46 定時程序的仿真圖 i60BCD組件為了計算方便,前面都以整數(shù)形式來處理時間,但在一般電路中,數(shù)值均以二進(jìn)制的形式存儲,所以需要設(shè)計一個查表程序?qū)⒚霐?shù)或分?jǐn)?shù)的0~59共60個整數(shù)轉(zhuǎn)換成二進(jìn)制編碼的十進(jìn)制(BCD)表示法,以便將來轉(zhuǎn)換成七段顯示器格式輸出。調(diào)分鍵與調(diào)時鍵的動作原理與之類似,此時指撥開關(guān)ok仍在off狀態(tài)。將alarm開關(guān)轉(zhuǎn)成on時,6個數(shù)字即顯示00:00:00,以等待輸入。圖 45 鬧鐘程序的仿真圖 校時組件為了設(shè)定定時器,設(shè)計了一個目標(biāo)時間調(diào)整程序。調(diào)分鍵與調(diào)時鍵的動作原理與之類似,此時OK指撥開關(guān)仍在off狀態(tài)。將alarm開關(guān)轉(zhuǎn)成on時,6個數(shù)字即顯示00:00:00,以等待輸入。為了設(shè)定鬧鐘,設(shè)計了一個目標(biāo)時間調(diào)整程序。設(shè)定rst和時鐘carry的值后,仿真圖如圖44所示。 二十四進(jìn)制計數(shù)器組件24進(jìn)制計數(shù)器組件的結(jié)構(gòu)與60進(jìn)制計數(shù)器組件類似,只是在接收60分進(jìn)位指針carry時,檢查是否同時為23小時,再決定進(jìn)位與否,因此個位數(shù)信號one(0~9)與十位數(shù)信號ten(0~2)先以整數(shù)形式出現(xiàn),計算完成后再轉(zhuǎn)化成位矢量形式(信號ones與tens),便于以后轉(zhuǎn)化成七段LED顯示碼,雖然十進(jìn)制僅需要兩位的位矢量,但為了統(tǒng)一以后的七段顯示器輸出顯示的需要,這里是以4位的位矢量表示的。圖 43 60進(jìn)制計數(shù)器的仿真圖由仿真圖可以看到,當(dāng)時鐘信號輸入時,開始計時。 六十進(jìn)制計數(shù)器組件為了讓計算過程容易閱讀,個位數(shù)信號one和十位數(shù)信號ten先以整數(shù)形式出現(xiàn),計算完成后再轉(zhuǎn)化成位矢量形式(信號ones與tens),便于以后轉(zhuǎn)化成七段LED顯示碼,雖然十進(jìn)制僅需要兩位的位矢量,但為了統(tǒng)一以后的七段顯示器輸出顯示的需要,這里是以4位的位矢量表示的。由于輸出顯示掃描需要1024Hz的時鐘信號,為了簡化設(shè)計,本系統(tǒng)輸入時鐘的信號直接采用信號源發(fā)生器產(chǎn)生的1024Hz的信號,故本系統(tǒng)可以采用一個除以1024的分頻器,用來實現(xiàn)系統(tǒng)輸入信號產(chǎn)生一個1Hz的時鐘信號,仿真圖如圖42所示。所以先將這個以十進(jìn)制表示的BCD碼改成二進(jìn)制BCD碼。4.三個計數(shù)器輸出信號分別為hour、min、sec。計分電路和計時電路功能動作也相類似。電子鐘的工作原理為:1.外部信號源發(fā)生器送出1Hz的時鐘信號,并輸入計數(shù)電路,該時鐘信號即作為計數(shù)脈沖,又作為調(diào)整電子鐘的觸發(fā)信號。電子鐘系統(tǒng)框圖如圖41所示。它將具備計時、鬧鐘、定時等功能,同時可以方便地調(diào)校時間。因此,了解并掌握各個功能模塊的工作原理及設(shè)計方法具有重要意義。表310 BCD七段顯示譯碼器真值表輸入輸出數(shù)字A3A2A1A0YaYbYcYdYeYfYg字形0000011111100100010110000120010110110123001111110013401000110011450101101101156011010111116701111110010781000111111189100111110119 本章主要介紹了基于FPGA的數(shù)字系統(tǒng)設(shè)計,VHDL語言的特點以及構(gòu)成數(shù)字鐘的幾個重要的功能模塊,并且給出其模塊圖,部分功能模塊還給出其電路圖以及編譯程序。 圖39七段顯示譯碼器模塊七段顯示譯碼器真值表見表310。而數(shù)字電子鐘更是需要通過將系統(tǒng)產(chǎn)生的BCD碼轉(zhuǎn)換成七段顯示碼,從而將時間直觀的顯示出來。圖38 定時模塊 BCD七段顯示譯碼器在數(shù)字測量儀表和各種數(shù)字系統(tǒng)中,都需要將數(shù)字量直觀的顯示出來。當(dāng)選擇好所需調(diào)整的位后,此時就需要對該位進(jìn)行調(diào)整,若該位需要調(diào)整,則就加入一個新的時鐘觸發(fā),若不需要調(diào)整,那么就仍然沿用以前的計數(shù)時。調(diào)整時間是電子鐘最基本的功能之一,以下為調(diào)整時鐘記時模塊。END PROCESS。CQ2=Q0。039。139。END IF。END IF。 Q1:=Q1+1。039。)。 Q1:=(OTHERS=39。039。139。139。 ELSIF CLK39。039。)。 THEN Q0:=(OTHERS=39。BEGIN IF RST=39。END CNT24。 CQ3:OUT STD_LOGIC_VECTOR(3 DOWNTO 0)。ENTITY CNT24 IS PORT(CLK,RST,EN:IN STD_LOGIC。 USE 。圖37 二十四進(jìn)制計數(shù)器電路圖二十四進(jìn)制計數(shù)器程序如下。模塊如圖36所表示,其中clk為分鐘的時鐘信號,clr為