【正文】
ed the FPGA in the design of digital systems, FPGAbased digital system design methods and processes。系統(tǒng)程序基于VHDL語(yǔ)言,采用模塊化設(shè)計(jì)方法。它突破了并行處理、流水級(jí)數(shù)的限制,具有反復(fù)的可編程能力,從而有效的地利用了片上資源,加上高效的硬件描述語(yǔ)言(VHDL),從而為數(shù)字系統(tǒng)設(shè)計(jì)提供了極大的方便。xx大學(xué)學(xué)士學(xué)位論文基于FPGA的數(shù)字電子鐘系統(tǒng)設(shè)計(jì)摘要隨著電子技術(shù)的飛速發(fā)展,現(xiàn)代電子產(chǎn)品滲透到了社會(huì)的各個(gè)領(lǐng)域,并有力地推動(dòng)著社會(huì)生產(chǎn)力的發(fā)展和社會(huì)信息化程度的提高。本文較系統(tǒng)地介紹了FPGA的基本結(jié)構(gòu)、基本原理、功能特點(diǎn)及其應(yīng)用;闡述了數(shù)字系統(tǒng)設(shè)計(jì)的基本思想及設(shè)計(jì)流程,同時(shí),也概述了FPGA在數(shù)字系統(tǒng)設(shè)計(jì)中的作用,基于FPGA的數(shù)字系統(tǒng)設(shè)計(jì)方法和流程;簡(jiǎn)要介紹了VHDL語(yǔ)言的發(fā)展歷程,VHDL語(yǔ)言的功能特點(diǎn)等。系統(tǒng)設(shè)計(jì)包含8個(gè)子程序模塊:分頻組件、六十進(jìn)制計(jì)數(shù)器組件、二十四進(jìn)制計(jì)數(shù)器組件、鬧鐘設(shè)定組件、校時(shí)組件、i60BCD組件、i24BCD組件、以及二進(jìn)制轉(zhuǎn)換成七段碼組件。 gave a briefing on the development of VHDL language, VHDL language and other features. The main work is based on the principles and methods, design an electronic clock system to the adoption of the system, embodied in the FPGA data processing of applications. The electronic clock system is fully functional, designed clear ideas. Based on VHDL system procedures, The system is modular in design methods. It includes 8 subsystem design process modules:frequency division system, 60 M counter system, 24 M counter system, Alarm clock settings system, timing system, i60BCD system, i24BCD system, and convert binary into SevenSegment code system. each subroutine have been simulated by EDA tools, with a simulation map. The modules will be the final assembly as a whole the electronic clock.Key words EDA。在目錄上點(diǎn)右鍵“更新域”,然后“更新整個(gè)目錄”。第二代EDA主要以計(jì)算機(jī)仿真和自動(dòng)布局布線技術(shù)為核心,與此同時(shí),還引出了以半定制概念為特征的專用集成電路概念。設(shè)計(jì)者只需依據(jù)電路所要完成的具體邏輯功能,然后設(shè)法用軟件描述出來(lái)即可。當(dāng)今社會(huì)是數(shù)字化的社會(huì),是數(shù)字集成電路廣泛應(yīng)用的社會(huì)。系統(tǒng)設(shè)計(jì)師們更愿意自己設(shè)計(jì)專用集成電路(ASIC)芯片,而且希望ASIC的設(shè)計(jì)周期盡可能短,最好是在實(shí)驗(yàn)室里就能設(shè)計(jì)出合適的ASIC芯片,并且立即投入實(shí)際應(yīng)用之中,因而出現(xiàn)了現(xiàn)場(chǎng)可編程邏輯器件(FPLD),其中應(yīng)用最廣泛的當(dāng)屬現(xiàn)場(chǎng)可編程門陣列(FPGA)和復(fù)雜可編程邏輯器件(CPLD)。邏輯器件提供特定的功能,包括器件與器件間的接口、數(shù)據(jù)通信、信號(hào)處理、數(shù)據(jù)顯示、定時(shí)和控制操作、以及系統(tǒng)運(yùn)行所需要的所有其它功能[1]。另一方面,可編程邏輯器件(PLD)是能夠?yàn)榭蛻籼峁┓秶鷱V泛的多種邏輯容量、特性、速度和電壓參數(shù)的標(biāo)準(zhǔn)成品部件,而且,如果器件工作不合適,或者如果應(yīng)用要求發(fā)生了變化,那么就必須開(kāi)發(fā)全新的設(shè)計(jì)。 對(duì)于可編程邏輯器件,設(shè)計(jì)人員可利用價(jià)格低廉的軟件工具快速開(kāi)發(fā)、仿真和測(cè)試其設(shè)計(jì)。其后,出現(xiàn)了一類在結(jié)構(gòu)上稍復(fù)雜的可編程芯片,即可編程邏輯器件(PLD),它能夠完成各種數(shù)字邏輯功能。PAL器件是現(xiàn)場(chǎng)可編程的,它的實(shí)現(xiàn)工藝有反熔絲技術(shù)、EPROM技術(shù)和EEPROM技術(shù)。在PAL的基礎(chǔ)上,又發(fā)展了一種通用陣列邏輯GAL (Generic Array Logic),如GAL16V8,GAL22V10 等。對(duì)一些需要極高性能的應(yīng)用,固定邏輯也可能是最佳的選擇。 2.PLD不需要漫長(zhǎng)的前導(dǎo)時(shí)間來(lái)制造原型或正式產(chǎn)品PLD供應(yīng)商在設(shè)計(jì)其可編程器件時(shí)已經(jīng)支付了這些成本,并且可通過(guò)PLD產(chǎn)品線延續(xù)多年的生命期來(lái)分?jǐn)傔@些成本。 5.Array)這樣一個(gè)新概念,內(nèi)部包括可配置邏輯模塊CLB(ConfigurableBlock)和內(nèi)部連線(Interconnect)三個(gè)部分。 3.FPGA內(nèi)部有豐富的觸發(fā)器和I/O引腳。現(xiàn)在最新的FPGA器件,如XilinxPower 與此相比,CPLD提供的邏輯資源少得多而且CPLD器件(如Xilinx換句話說(shuō), FPGA更適合于觸發(fā)器豐富的結(jié)構(gòu),而CPLD更適合于觸發(fā)器有限而乘積項(xiàng)豐富的結(jié)構(gòu)。 FPGA可在邏輯門下編程,而CPLD是在邏輯塊下編程。而FPGA的編程信息需存放在外部存儲(chǔ)器上,使用方法復(fù)雜。CPLD又可分為在編程器上編程和在系統(tǒng)編程兩類。9.一般情況下, FPGA的功耗要比CPLD大,且集成度越高越明顯[5]。先進(jìn)的工藝技術(shù)在一系列關(guān)鍵領(lǐng)域?yàn)镻LD提供了幫助:更快的性能、集成更多功能、降低功耗和成本等。過(guò)去的FPGA也相對(duì)較貴,當(dāng)時(shí)最先進(jìn)的FPGA器件大約要150美元。 本文首先介紹了FPGA相關(guān)的背景知識(shí)以及FPGA的基本結(jié)構(gòu)和工作原理,闡述了數(shù)字系統(tǒng)的構(gòu)造方法和流程,從而為應(yīng)用FPGA構(gòu)建數(shù)字系統(tǒng)打下基礎(chǔ)。在這20多年的發(fā)展過(guò)程中,以FPGA為代表的數(shù)字系統(tǒng)現(xiàn)場(chǎng)集成技術(shù)取得了驚人發(fā)展:FPGA從最初的1200個(gè)可利用門,發(fā)展到20世紀(jì)90年代的25萬(wàn)個(gè)可利用門,進(jìn)入2000年以后,國(guó)際上著名的FPGA廠商Altera公司和Xilinx公司相繼推出了數(shù)百萬(wàn)個(gè)可利用門的單片F(xiàn)PGA芯片,將FPGA的集成度提高到了一個(gè)新的水平。FPGA內(nèi)部寄存器可配置為帶同步/異步復(fù)位和置位、時(shí)鐘使能的觸發(fā)器,也可以配置成為鎖存器。由于FPGA內(nèi)部除了基本可編程邏輯單元外,還有嵌入式的RAM、PLL或者是DLL,專用的Hard IP Core等,這些模塊也能等效出一定規(guī)模的系統(tǒng)門,所以簡(jiǎn)單科學(xué)的方法是用器件的Register或LUT的數(shù)量衡量。寫(xiě)入CAM的數(shù)據(jù)會(huì)和其內(nèi)部存儲(chǔ)的每一個(gè)數(shù)據(jù)進(jìn)行比較,并返回與端口數(shù)據(jù)相同的所有內(nèi)部數(shù)據(jù)的地址。布線資源的劃分:(1) 全局性的專用布線資源:以完成器件內(nèi)部的全局時(shí)鐘和全局復(fù)位/置位的布線;(2) 長(zhǎng)線資源:用以完成器件Bank間的一些高速信號(hào)和一些第二全局時(shí)鐘信號(hào)的布線。 (5) 底層嵌入功能單元[7] 查找表(LookUpTable)簡(jiǎn)稱為L(zhǎng)UT,LUT本質(zhì)上就是一個(gè)RAM。圖22 基于查找表(LUT)的FPGA的結(jié)構(gòu)由于LUT主要適合SRAM工藝生產(chǎn),所以目前大部分FPGA都是基于SRAM工藝的,而SRAM工藝的芯片在掉電后信息就會(huì)丟失,一定需要外加一片專用配置芯片,在上電的時(shí)候,由這個(gè)專用配置芯片把數(shù)據(jù)加載到FPGA中,然后FPGA就可以正常工作,由于配置時(shí)間很短,不會(huì)影響系統(tǒng)正常工作。 該電路中D觸發(fā)器是直接利用LUT后面D觸發(fā)器來(lái)實(shí)現(xiàn)。(以上這些步驟都是由軟件自動(dòng)完成的,不需要人為干預(yù))這個(gè)電路是一個(gè)很簡(jiǎn)單的例子,只需要一個(gè)LUT加上一個(gè)觸發(fā)器就可以完成。存儲(chǔ)單元中的編程數(shù)據(jù)一旦確定,門陣列的邏輯關(guān)系也就確定了。數(shù)字系統(tǒng)能夠完成存儲(chǔ)、處理、和傳輸數(shù)字信息的功能??刂破鹘邮芡獠枯斎胄盘?hào)和各個(gè)邏輯功能部件或子系統(tǒng)的反饋輸入信號(hào),進(jìn)行處理后,發(fā)出各種控制命令,用來(lái)控制各邏輯功能部件或子系統(tǒng)(對(duì)于由若干字系統(tǒng)組成的數(shù)字系統(tǒng)而言)協(xié)調(diào)的工作,實(shí)現(xiàn)整個(gè)數(shù)字系統(tǒng)的復(fù)雜功能。傳統(tǒng)的數(shù)字系統(tǒng)設(shè)計(jì)方法是利用真值表、卡諾圖、狀態(tài)方程組、狀態(tài)轉(zhuǎn)換圖等描述工具建立系統(tǒng)模型進(jìn)行系統(tǒng)設(shè)計(jì)的方法。該設(shè)計(jì)方法的具體實(shí)施過(guò)程是:首先根據(jù)系統(tǒng)的總體功能要求,進(jìn)行系統(tǒng)級(jí)設(shè)計(jì);然后按照一定的標(biāo)準(zhǔn)將整個(gè)系統(tǒng)劃分成若干子系統(tǒng);接著將各個(gè)子系統(tǒng)劃分為若干功能模塊,針對(duì)各模塊進(jìn)行邏輯電路設(shè)計(jì)。數(shù)據(jù)處理模塊的設(shè)計(jì)一般比較簡(jiǎn)單,子系統(tǒng)設(shè)計(jì)的主要任務(wù)是控制器模塊的設(shè)計(jì)。若采用自頂向下的設(shè)計(jì)方法,則需要先進(jìn)行系統(tǒng)級(jí)設(shè)計(jì),再進(jìn)行邏輯級(jí)。設(shè)計(jì)算法就是尋求一個(gè)解決問(wèn)題的步驟,實(shí)質(zhì)是把系統(tǒng)要實(shí)現(xiàn)的復(fù)雜運(yùn)算分解成一組有序進(jìn)行的子運(yùn)算。雖然不同的算法可以實(shí)現(xiàn)相同的系統(tǒng)功能,但是電路結(jié)構(gòu)是不同的;相同的算法也可能對(duì)應(yīng)不同的電路結(jié)構(gòu)。在每一層次上,都有描述、劃分、綜合和驗(yàn)證四種類型的工作。這樣做大大簡(jiǎn)化了設(shè)計(jì)工作,提高了效率,因此,采用EDA技術(shù)設(shè)計(jì)數(shù)字系統(tǒng)地方法得到了越來(lái)越廣泛的應(yīng)用。本章將結(jié)合數(shù)字系統(tǒng)設(shè)計(jì)相關(guān)知識(shí)對(duì)其中的主要功能模塊組件進(jìn)行設(shè)計(jì)。FPGA一般也比定制芯片運(yùn)行速度慢而且功耗大,同時(shí)相對(duì)較貴,所以,人們認(rèn)為定值芯片較為便宜。當(dāng)在最終設(shè)計(jì)中用到FPGA時(shí),可以更簡(jiǎn)單、更容易完成從樣機(jī)到產(chǎn)品的飛躍?,F(xiàn)在,F(xiàn)PGA被用于組建各種各樣的數(shù)字系統(tǒng):高速電信設(shè)備、家庭個(gè)人視頻錄像機(jī)的視頻加速器。2.功率/能量:芯片通常在一定的能量或功率預(yù)算下工作。它們可以作為樣機(jī),可以快速編程,而且它們可以用作最終設(shè)計(jì)的一部分。通常情況下,F(xiàn)PGA的編程費(fèi)用比ASIC高,但是由于FPGA是標(biāo)準(zhǔn)器件,這有助于降低生產(chǎn)成本。HDL描述語(yǔ)言在狀態(tài)機(jī)、控制邏輯、總線功能方面較強(qiáng),使其描述的電路能在特定綜合工具作用下以具體硬件單元較好地實(shí)現(xiàn);而原理圖輸入在頂層設(shè)計(jì)、數(shù)據(jù)通路邏輯、手工最優(yōu)化電路等方面具有圖形化強(qiáng)、單元節(jié)儉、功能明確等特點(diǎn)。4.設(shè)計(jì)實(shí)現(xiàn)實(shí)現(xiàn)可理解為利用實(shí)現(xiàn)工具把邏輯映射到目標(biāo)器件的資源中,決定邏輯的最佳布局,選擇邏輯與輸入輸出功能連接的布線通道進(jìn)行布線,并產(chǎn)生相應(yīng)的文件。(4) 時(shí)序提取:產(chǎn)生一個(gè)目標(biāo)文件,供后續(xù)的時(shí)序仿真使用。在實(shí)現(xiàn)過(guò)程中應(yīng)設(shè)置默認(rèn)配置的下載形式,以使后續(xù)位流下載正常。時(shí)序分析器不要求用戶產(chǎn)生輸入激勵(lì)或測(cè)試矢量?!猇HDL VHDL語(yǔ)言的特點(diǎn)在傳統(tǒng)的硬件電路設(shè)計(jì)中,主要的設(shè)計(jì)文件時(shí)電路原理圖,而采用HDL設(shè)計(jì)系統(tǒng)硬件電路時(shí)主要使用HDL編寫(xiě)源程序。UDL/I在日本以標(biāo)準(zhǔn)HDL的形式出現(xiàn)?,F(xiàn)在,VHDL和Verilog作為IEEE的工業(yè)標(biāo)準(zhǔn)硬件描述語(yǔ)言,在電子工程領(lǐng)域,從各公司的設(shè)計(jì)人員到大學(xué)的教授、學(xué)生都極其重視對(duì)其的學(xué)習(xí)研究,VHDL已成為事實(shí)上的通用硬件描述語(yǔ)言。VHDL具有比其他硬件描述語(yǔ)言更強(qiáng)的行為描述能力,基于抽象的行為描述風(fēng)格避開(kāi)了具體的硬件結(jié)構(gòu),是設(shè)計(jì)人員能從邏輯行為上描述和設(shè)計(jì)大規(guī)模電子系統(tǒng)。例如,Verilog語(yǔ)言是一種門級(jí)電路描述語(yǔ)言,其風(fēng)格接近于電路原理圖,設(shè)計(jì)者需要搞清楚具體的電路結(jié)構(gòu)的細(xì)節(jié),因此其工作量通常較大。VHDL具有豐富的仿真語(yǔ)句和庫(kù)函數(shù),使得門電路級(jí)功能仿真、檢查成為可能,使設(shè)計(jì)者對(duì)整個(gè)工程設(shè)計(jì)的結(jié)構(gòu)和功能的可行性作出決策。按照文本手冊(cè)定義,VHDL語(yǔ)言的預(yù)定義屬性low、high等存在著不明確性問(wèn)題,為此應(yīng)對(duì)照國(guó)際的測(cè)試碼人為地修訂。VHDL程序設(shè)計(jì)采用自頂向下的模塊化設(shè)計(jì)方法,一個(gè)完整的VHDL程序包括實(shí)體(entity)、結(jié)構(gòu)體(architecture)、配置(configuration)、程序包(package)和庫(kù)(library)五個(gè)部分。其中clk1024表示輸入信號(hào),clk1表示頻率為1的輸出信號(hào)。Use 。 1Hz output signalend div1024。139。 end if。將六十進(jìn)制的計(jì)數(shù)模塊用8bit的數(shù)組用來(lái)表示,高四位為秒鐘的十位,低四位為秒鐘的個(gè)位。LIBRARY IEEE。 CQ0:OUT STD_LOGIC_VECTOR(3 DOWNTO 0)。ARCHITECTURE behav OF CNT60 ISBEGIN PROCESS(CLK,RST,EN) VARIABLE Q0,Q1:STD_LOGIC_VECTOR(3 DOWNTO 0)。039。)。 THENIF EN=39。)。elsif Q0=9 THEN Q0:=(OTHERS=39。ELSE Q0:=Q0+1。IF Q0=9 and Q1=5 THEN COUT=39。END IF。 END behav。模塊如圖36所表示,其中clk為分鐘的時(shí)鐘信號(hào),clr為清零端,HL為秒低位的輸出,HH為秒高位的輸出。 USE 。 CQ3:OUT STD_LOGIC_VECTOR(3 DOWNTO 0)。BEGIN IF RST=39。)。 ELSIF CLK39。139。 Q1:=(OTHERS=39。039。END IF。139。CQ2=Q0。調(diào)整時(shí)間是電子鐘最基本的功能之一,以下為調(diào)整時(shí)鐘記時(shí)模塊。圖38 定時(shí)模塊 BCD七段顯示譯碼器在數(shù)字測(cè)量?jī)x表和各種數(shù)字系統(tǒng)中,都需要將數(shù)字量直觀的顯示出來(lái)。 圖39七段顯示譯碼器模塊七段顯示譯碼器真值表見(jiàn)表310。因此,了解并掌握各個(gè)功能模塊的工作原理及設(shè)計(jì)方法具有重要意義。電子鐘系統(tǒng)框圖如圖41所示。計(jì)分電路和計(jì)時(shí)電路功能動(dòng)作也相類似。所以先將這個(gè)以十進(jìn)制表示的BCD碼改成二進(jìn)制BCD碼。 六十進(jìn)制計(jì)數(shù)器組件為了讓計(jì)算過(guò)程容易閱讀,個(gè)位數(shù)信號(hào)one和十位數(shù)信號(hào)ten先以整數(shù)形式出現(xiàn),計(jì)算完成后再轉(zhuǎn)化成位矢量形式(信號(hào)ones與tens),便于以后轉(zhuǎn)化成七段LED顯示碼,雖然十進(jìn)制僅需要兩位的位矢量,但為了統(tǒng)一以后的七段顯示器輸出顯示的需要,這里是以4位的位矢量表示的。