版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 第 III 頁(yè) 目 錄 1 緒論.1 1.1 課題分析.1 1.2 FPGA 概述 .2 1.3 VHDL 語(yǔ)言和 QUARTUS II 簡(jiǎn)介.4 1.3.1 VHDL 語(yǔ)言簡(jiǎn)介 .4 1.3.2 QUARTUS II 簡(jiǎn)介.6 2 分頻基本原理.8 2.1 等占空比偶數(shù)分頻方法.8 2.2 等占空比的奇數(shù)分頻方法 .8 2.3 分?jǐn)?shù)分頻方法.9 2.4 小數(shù)分頻方法.9 2.5 任意倍數(shù)分頻器.10 3 任意倍數(shù)分頻器設(shè)計(jì).12 3.1 設(shè)計(jì)思想.12 3.2 頂層框圖設(shè)計(jì).13 3.3 頂層文件設(shè)計(jì).13 3.4 模塊設(shè)計(jì).14 3.4.1 偶數(shù)分頻模塊的設(shè)計(jì).14 3.4.2 奇數(shù)分頻
2、模塊的設(shè)計(jì).15 3.4.3 半整數(shù)模塊設(shè)計(jì).16 3.4.4 占空比可調(diào)的分頻模塊設(shè)計(jì).17 3.4.5 小數(shù)分頻模塊設(shè)計(jì).18 3.4.6 encoder_35 模塊的設(shè)計(jì).19 3.4.7 led 模塊的設(shè)計(jì).20 第 IV 頁(yè) 3.4.8 mux51 模塊的設(shè)計(jì) .21 結(jié)論.23 致謝.24 參考文獻(xiàn).25 附錄 A VHDL 源程序.26 附錄 A1:偶數(shù)分頻實(shí)現(xiàn)的程序.26 附錄 A2 奇數(shù)分頻實(shí)現(xiàn)的程序.28 附錄 A3 半整數(shù)分頻實(shí)現(xiàn)的程序.30 附錄 A4 占空比可調(diào)的分頻實(shí)現(xiàn)的程序 .32 附錄 A5 小數(shù)分頻實(shí)現(xiàn)的程序 .34 附錄 A6 ENCODER_35 模塊實(shí)現(xiàn)
3、的程序.42 附錄 A7 LED的實(shí)現(xiàn)程序.43 附錄 A8 MUX51 模塊的實(shí)現(xiàn)程序 .47 附錄 B 頂層文件設(shè)計(jì)原理圖.48 第 1 頁(yè) 1 緒論 1.1 課題分析 隨著電子技術(shù)的高速發(fā)展,F(xiàn)PGA/CPLD 以其高速、高可靠性、串并行工作方式等 突出優(yōu)點(diǎn)在電子設(shè)計(jì)中受到廣泛的應(yīng)用,而且代表著未來 EDA 設(shè)計(jì)的方向。 FPGA/CPLD 的設(shè)計(jì)采用了高級(jí)語(yǔ)言,如 VHDL 語(yǔ)言 AHDL 語(yǔ)言等,進(jìn)一步打破了軟 件與硬件之間的界限,縮短了產(chǎn)品的開發(fā)周期。所以采用先進(jìn)的 FPGA/CPLD 取代傳 統(tǒng)的標(biāo)準(zhǔn)集成電路、接口電路已成為電子技術(shù)發(fā)展的必然趨勢(shì)1。 EDA 技術(shù)代表了當(dāng)今電子設(shè)
4、計(jì)技術(shù)的最新發(fā)展方向,采用 EDA 工具,電子設(shè)計(jì) 師可以從概念、算法、協(xié)議等開始設(shè)計(jì)電子系統(tǒng),大量工作可以通過計(jì)算機(jī)完成,并 可以將電子產(chǎn)品從電路設(shè)計(jì)、性能分析到設(shè)計(jì)出 IC 版圖或 PCB 版圖的整個(gè)過程在計(jì) 算機(jī)上自動(dòng)處理完成。由于現(xiàn)代電子產(chǎn)品的復(fù)雜度和集成度的日益提高,一般分離的 中小規(guī)模集成電路組合已不能滿足要求,電路設(shè)計(jì)逐步地從中小規(guī)模芯片轉(zhuǎn)為大規(guī)模、 超大規(guī)模芯片,具有高速度、高集成度、低功耗的可編程朋 IC 器件已蓬勃發(fā)展起來2。 分頻器是數(shù)字系統(tǒng)設(shè)計(jì)中的一種基本電路,我們往往需要通過分頻器得到我們所 需要的時(shí)鐘頻率,在 FPGA 的設(shè)計(jì)中也是使用頻率非常高的一種基本設(shè)計(jì)。基于
5、 FPGA 實(shí)現(xiàn)的分頻電路一般有兩種方法:一種是使用 FPGA 芯片內(nèi)部提供的鎖相環(huán)電 路進(jìn)行分頻,如 ALTERA 提供的 PLL(Phase Locked Loop) ,Xilinx 提供的 DLL(Delay Locked Loop) ;第二種是使用硬件描述語(yǔ)言,如 VHDL、Verilog HDL 等。 使用鎖相環(huán)電路進(jìn)行分頻有許多的優(yōu)點(diǎn),例如可以實(shí)現(xiàn)倍頻、相位偏移以及占空比可 調(diào)等。但是由于 FPGA 內(nèi)部提供的鎖相環(huán)個(gè)數(shù)極為有限,不能滿足使用時(shí)的要求。因 此使用硬件描述語(yǔ)言實(shí)現(xiàn)分頻電路在數(shù)字電路設(shè)計(jì)較為常用,因?yàn)樗牟欢嗟倪壿?單元就可以實(shí)現(xiàn)對(duì)時(shí)鐘的操作,具有成本低、可編程等優(yōu)點(diǎn)
6、3。 在數(shù)字系統(tǒng)的設(shè)計(jì)中,設(shè)計(jì)人員會(huì)遇到各種形式的分頻需求,如整數(shù)、小數(shù)、 分?jǐn)?shù)分頻等。 在某些數(shù)字系統(tǒng)設(shè)計(jì)中,系統(tǒng)不僅對(duì)頻率有要求,而且對(duì)占空比也有著 很嚴(yán)格的要求。由計(jì)數(shù)器或計(jì)數(shù)器的級(jí)聯(lián)構(gòu)成各種形式的偶數(shù)分頻及非等占空比的奇 第 2 頁(yè) 數(shù)分頻實(shí)現(xiàn)起來較為簡(jiǎn)單,但對(duì)半整數(shù)分頻及等占空比的奇數(shù)分頻實(shí)現(xiàn)較為困難,小 數(shù)分頻和分?jǐn)?shù)分頻更困難。 本論文利用 VHDL 硬件描述語(yǔ)言,通過 Quartus7.2 開發(fā)平臺(tái),設(shè)計(jì)了一種能滿 足偶數(shù)分頻,奇數(shù)分頻,半整數(shù)分頻,占空比可調(diào)的分頻,小數(shù)分頻的任意倍數(shù)分頻 器,并可以通過按鈕來選擇具體由哪一種分頻器進(jìn)行操作,而撥碼開關(guān)則可以預(yù)置一 些分頻系數(shù),發(fā)
7、光二極管則顯示具體由那種分頻實(shí)現(xiàn),數(shù)碼管顯示分頻的系數(shù)。分頻 系數(shù)設(shè)置:偶數(shù)分頻:2,4,6,8,10,12,14 奇數(shù)分頻:1,3,5,7,9,11,13,15 半整數(shù)分頻:1.515.5 占空比可調(diào)的分頻:1:1,1:2,1:3,2:1,2:2,2:3,3:1,3:2,3:3 小數(shù)分頻:1.13.3 1.2 FPGA 概述 FPGA(Field Programmable Gate Array)現(xiàn)場(chǎng)可編程邏輯門陣列,它是在 PAL(Programmable Array Logic) 、GAL(generic array logic)、CPLD(Complex Programmable Log
8、ic Device)等可編程器件的基礎(chǔ)上進(jìn)一步發(fā)展的產(chǎn)物。它是作為專用 集成電路(Application Specific Integrated Circuit)領(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ī)上修改和更新程序,使硬件設(shè)計(jì)工作成為軟件開發(fā)工作,縮短 了系統(tǒng)設(shè)計(jì)的周期,提高了實(shí)現(xiàn)的靈活性并降低了成本 以硬件描述語(yǔ)言(Verilog 或 VHDL
9、)所完成的電路設(shè)計(jì),可以經(jīng)過簡(jiǎn)單的綜合與 布局,快速的燒錄至 FPGA 上進(jìn)行測(cè)試,是現(xiàn)代 IC 設(shè)計(jì)驗(yàn)證的技術(shù)主流。這些可編輯 元件可以被用來實(shí)現(xiàn)一些基本的邏輯門電路(比如 AND、OR、XOR、NOT)或者更 復(fù)雜一些的組合功能比如解碼器或數(shù)學(xué)方程式。在大多數(shù)的 FPGA 里面,這些可編輯 的元件里也包含記憶元件例如觸發(fā)器(Flipflop)或者其他更加完整的記憶塊。 系統(tǒng)設(shè)計(jì)師可以根據(jù)需要通過可編輯的連接把 FPGA 內(nèi)部的邏輯塊連接起來,就 好像一個(gè)電路試驗(yàn)板被放在了一個(gè)芯片里。一個(gè)出廠后的成品 FPGA 的邏輯塊和連接 第 3 頁(yè) 可以按照設(shè)計(jì)者而改變,所以 FPGA 可以完成所需要
10、的邏輯功能。 FPGA 一般來說比 ASIC(專用集成芯片)的速度要慢,無法完成復(fù)雜的設(shè)計(jì),但 是功耗較低。但是他們也有很多的優(yōu)點(diǎn)比如可以快速成品,可以被修改來改正程序中 的錯(cuò)誤和更便宜的造價(jià)。廠商也可能會(huì)提供便宜的但是編輯能力差的 FPGA。因?yàn)檫@ 些芯片有比較差的可編輯能力,所以這些設(shè)計(jì)的開發(fā)是在普通的 FPGA 上完成的,然 后將設(shè)計(jì)轉(zhuǎn)移到一個(gè)類似于 ASIC 的芯片上。另外一種方法是用 CPLD(復(fù)雜可編程邏 輯器件備) 。 FPGA 采用了邏輯單元陣列 LCA(Logic Cell Array)這樣一個(gè)概念,內(nèi)部包括 可配置邏輯模塊 CLB(Configurable Logic Bl
11、ock) 、輸出輸入模塊 IOB(Input Output Block)和內(nèi)部連線( Interconnect)三個(gè)部分。目前主流的 FPGA 仍是基于 查找表技術(shù)的,已經(jīng)遠(yuǎn)遠(yuǎn)超出了先前版本的基本性能,并且整合了常用功能(如 RAM、時(shí)鐘管理和 DSP)的硬核(ASIC 型)模塊:FPGA 芯片主要由 6 部分完成, 分別為:可編程輸入輸出單元、基本可編程邏輯單元、完整的時(shí)鐘管理、嵌入塊式 RAM、豐富的布線資源、內(nèi)嵌的底層功能單元和內(nèi)嵌專用硬件模塊。FPGA 的基 本特點(diǎn)有: 1、采用 FPGA 設(shè)計(jì) ASIC 電路(專用集成電路 ),用戶不需要投片生產(chǎn),就能得到 合用的芯片。 2、FPGA
12、 可做其它全定制或半定制 ASIC 電路的中試樣片。 3、FPGA 內(nèi)部有豐富的觸發(fā)器和 IO 引腳。 4、FPGA 是 ASIC 電路中設(shè)計(jì)周期最短、開發(fā)費(fèi)用最低、風(fēng)險(xiǎn)最小的器件之一。 5、FPGA 采用高速 CHMOS 工藝,功耗低,可以與 CMOS、TTL 電平兼容。 FPGA 是由存放在片內(nèi) RAM 中的程序來設(shè)置其工作狀態(tài)的,因此,工作時(shí)需 要對(duì)片內(nèi)的 RAM 進(jìn)行編程。用戶可以根據(jù)不同的配置模式,采用不同的編程方式。 加電時(shí),F(xiàn)PGA 芯片將 EPROM 中數(shù)據(jù)讀入片內(nèi)編程 RAM 中,配置完成后, FPGA 進(jìn)入工作狀態(tài) 。掉電后,F(xiàn)PGA 恢復(fù)成白片,內(nèi)部邏輯關(guān)系消失,因此,
13、FPGA 能夠反復(fù)使用 。FPGA 的編程無須專用的 FPGA 編程器,只須用通用的 EPROM、PROM 編程器即可。當(dāng)需要修改 FPGA 功能時(shí),只需換一片 EPROM 即 可。這樣,同一片 FPGA,不同的編程數(shù)據(jù),可以產(chǎn)生不同的電路功能。因此, 第 4 頁(yè) FPGA 的使用非常靈活 。 早在 1980 年代中期,F(xiàn)PGA 已經(jīng)在 PLD 設(shè)備中扎根。 CPLD 和 FPGA 包括了 一些相對(duì)大數(shù)量的可編輯 邏輯單元。CPLD 邏輯門的密度在幾千到幾萬(wàn)個(gè) 邏輯單 元之間,而 FPGA 通常是在幾萬(wàn)到幾百萬(wàn)。 CPLD 和 FPGA 的主要區(qū)別是他們的系統(tǒng)結(jié)構(gòu)。 CPLD 是一個(gè)有點(diǎn)限制性
14、的結(jié) 構(gòu)。這個(gè)結(jié)構(gòu)由一個(gè)或者多個(gè)可編輯的結(jié)果之和的邏輯組列和一些相對(duì)少量的鎖定 的寄存器。這樣的結(jié)果是缺乏編輯靈活性,但是卻有可以預(yù)計(jì)的延遲時(shí)間和邏輯 單元對(duì)連接單元高比率的優(yōu)點(diǎn)。而 FPGA 卻是有很多的連接單元,這樣雖然讓它 可以更加靈活的編輯,但是結(jié)構(gòu)卻復(fù)雜的多。 CPLD 和 FPGA 另外一個(gè)區(qū)別是大多數(shù)的 FPGA 含有高層次的內(nèi)置模塊(比如 加法器和乘法器)和內(nèi)置的 記憶體。因此一個(gè)有關(guān)的重要區(qū)別是很多新的FPGA 支持完全的或者部分的系統(tǒng)內(nèi)重新配置。允許他們的設(shè)計(jì)隨著系統(tǒng)升級(jí)或者動(dòng)態(tài)重 新配置而改變。一些 FPGA 可以讓設(shè)備的一部分重新編輯而其他部分繼續(xù)正常運(yùn)行。 CPLD
15、和 FPGA 還有一個(gè)區(qū)別: CPLD 下電之后,原有燒入的邏輯結(jié)構(gòu)不會(huì)消 失;而 FPGA 下電之后,再次上電時(shí),需要重新加載FLASH 里面的邏輯代碼,需 要一定的加載時(shí)間。 FPFA 的主要生產(chǎn)商有: Altera,Xilinx,Actel,Lattice。其中 Altera 作為世 界老牌可編程邏輯器件的廠家,是當(dāng)前世界范圍內(nèi)市場(chǎng)占有率最大的廠家,它和 Xilinx 主要生產(chǎn)一般用途 FPGA,其主要產(chǎn)品采用 RAM 工藝。Actel 主要提供非 易失性 FPGA,產(chǎn)品主要基于反熔絲工藝和 FLASH 工藝。 1.3 VHDL 語(yǔ)言和 QUARTUS II 簡(jiǎn)介 1.3.1 VHDL
16、語(yǔ)言簡(jiǎn)介 VHDL(VHSIC(Very High Speed Integrated Circuit)Hardware Description Language)是超高速集成電路硬件描述語(yǔ)言,是一種用于電路設(shè)計(jì)的高級(jí)語(yǔ)言。它出 現(xiàn)于 80 年代后期,剛開始時(shí)它是由美國(guó)國(guó)防部開發(fā)出來的,是為了供美軍用來提高設(shè) 計(jì)的可靠性和縮減開發(fā)周期的一種使用范圍比較小的設(shè)計(jì)語(yǔ)言 。VHDL 語(yǔ)言主要應(yīng)用 于數(shù)字電路系統(tǒng)的設(shè)計(jì)。目前,國(guó)內(nèi)對(duì)它的應(yīng)用多數(shù)集中在 FPGA/CPLD/EPLD 的設(shè) 第 5 頁(yè) 計(jì)當(dāng)中,除此之外,一些較為有實(shí)力的單位,也將它用來設(shè)計(jì) ASIC。 VHDL 語(yǔ)言具有多層次描述系統(tǒng)硬件功
17、能的能力,既可以描述系統(tǒng)級(jí)電路,又可 以描述門級(jí)電路。而描述既可以采用行為描述、寄存器傳輸描述或結(jié)構(gòu)描述,也可 以采用三者混合的混合級(jí)描述。另外, VHDL 還支持慣性延遲和傳輸延遲,還可 以準(zhǔn)確地建立硬件電路模型。 VHDL 支持預(yù)定義的和自定義的數(shù)據(jù)類型,給硬件描 述帶來較大的自由度,使設(shè)計(jì)人員能夠方便地創(chuàng)建高層次的系統(tǒng)模型。VHDL 語(yǔ) 言具有自頂向下和基于庫(kù)的設(shè)計(jì)特點(diǎn)。其開發(fā)流程:在頂層用方框圖或硬件語(yǔ)言對(duì)電 路的行為進(jìn)行描述后,進(jìn)行系統(tǒng)仿真驗(yàn)證和糾錯(cuò),再用邏輯綜合優(yōu)化工具生成具體的 門級(jí)邏輯電路的網(wǎng)表,然后通過適配器將網(wǎng)表文件配置于指定的目標(biāo)器件,產(chǎn)生最終 下載文件或配置文件。最后把
18、適配后生成的下載或配置文件通過編程器或編程電纜下 載到具體的 FPGA/CPLD 器件中去,以便進(jìn)行硬件調(diào)試和驗(yàn)證,從而實(shí)現(xiàn)可編程的專 用集成電路 ASIC 的設(shè)計(jì)。 VHDL 主要用于描述數(shù)字系統(tǒng)的結(jié)構(gòu),行為,功能和接口,除了含有許多具有硬 件特征的語(yǔ)句外,VHDL 的語(yǔ)言形式和描述風(fēng)格與句法是十分類似于一般的計(jì)算機(jī)高 級(jí)語(yǔ)言。VHDL 系統(tǒng)設(shè)計(jì)與其他硬件描述語(yǔ)言相比,具有比較強(qiáng)的行為描述能力,從 而決定了它成為系統(tǒng)設(shè)計(jì)領(lǐng)域最佳的硬件描述語(yǔ)言之一。強(qiáng)大的行為描述能力是避開 具體的器件結(jié)構(gòu),從邏輯行為上描述和設(shè)計(jì)大規(guī)模電子系統(tǒng)的重要保證4。 VHDL 語(yǔ)言能夠成為標(biāo)準(zhǔn)化的硬件描述語(yǔ)言并獲得廣泛
19、應(yīng)用,它自身必然具有很 多其他硬件描述語(yǔ)言所不具備的優(yōu)點(diǎn)。歸納起來,VHDL 語(yǔ)言主要具有以下優(yōu)點(diǎn): 1、VHDL 語(yǔ)言功能強(qiáng)大,設(shè)計(jì)方式多樣 VHDL 語(yǔ)言具有強(qiáng)大的語(yǔ)言結(jié)構(gòu),只需采用簡(jiǎn)單明確的 VHDL 語(yǔ)言程序就可以描 述十分復(fù)雜的硬件電路。同時(shí),它還具有多層次的電路設(shè)計(jì)描述功能。此外,VHDL 語(yǔ)言能夠同時(shí)支持同步電路、異步電路和隨機(jī)電路的設(shè)計(jì)實(shí)現(xiàn),這是其他硬件描述語(yǔ) 言所不能比擬的。VHDL 語(yǔ)言設(shè)計(jì)方法靈活多樣,既支持自頂向下的設(shè)計(jì)方式,也支 持自底向上的設(shè)計(jì)方法; 既支持模塊化設(shè)計(jì)方法,也支持層次化設(shè)計(jì)方法5。 2、VHDL 語(yǔ)言具有強(qiáng)大的硬件描述能力 VHDL 語(yǔ)言具有多層次的
20、電路設(shè)計(jì)描述功能,既可描述系統(tǒng)級(jí)電路,也可以描述 門級(jí)電路;描述方式既可以采用行為描述、寄存器傳輸描述或者結(jié)構(gòu)描述,也可以采 用三者的混合描述方式。同時(shí),VHDL 語(yǔ)言也支持慣性延遲和傳輸延遲,這樣可以準(zhǔn) 第 6 頁(yè) 確地建立硬件電路的模型。VHDL 語(yǔ)言的強(qiáng)大描述能力還體現(xiàn)在它具有豐富的數(shù)據(jù)類 型。VHDL 語(yǔ)言既支持標(biāo)準(zhǔn)定義的數(shù)據(jù)類型,也支持用戶定義的數(shù)據(jù)類型,這樣便會(huì) 給硬件描述帶來較大的自由度。 3、 VHDL 語(yǔ)言具有很強(qiáng)的移植能力 VHDL 語(yǔ)言很強(qiáng)的移植能力主要體現(xiàn)在: 對(duì)于同一個(gè)硬件電路的 VHDL 語(yǔ)言描 述,它可以從一個(gè)模擬器移植到另一個(gè)模擬器上、從一個(gè)綜合器移植到另一個(gè)綜
21、合器 上或者從一個(gè)工作平臺(tái)移植到另一個(gè)工作平臺(tái)上去執(zhí)行6。 4、VHDL 語(yǔ)言的設(shè)計(jì)描述與器件無關(guān) 采用 VHDL 語(yǔ)言描述硬件電路時(shí),設(shè)計(jì)人員并不需要首先考慮選擇進(jìn)行設(shè)計(jì)的器 件。這樣做的好處是可以使設(shè)計(jì)人員集中精力進(jìn)行電路設(shè)計(jì)的優(yōu)化,而不需要考慮其 他的問題。當(dāng)硬件電路的設(shè)計(jì)描述完成以后,VHDL 語(yǔ)言允許采用多種不同的器件結(jié) 構(gòu)來實(shí)現(xiàn)7。 5、VHDL 語(yǔ)言程序易于共享和復(fù)用 VHDL 語(yǔ)言采用基于庫(kù) ( library) 的設(shè)計(jì)方法。在設(shè)計(jì)過程中,設(shè)計(jì)人員可以建立 各種可再次利用的模塊,一個(gè)大規(guī)模的硬件電路的設(shè)計(jì)不可能從門級(jí)電路開始一步步 地進(jìn)行設(shè)計(jì),而是一些模塊的累加。這些模塊可以預(yù)
22、先設(shè)計(jì)或者使用以前設(shè)計(jì)中的存 檔模塊,將這些模塊存放在庫(kù)中,就可以在以后的設(shè)計(jì)中進(jìn)行復(fù)用。 由于 VHDL 語(yǔ)言是一種描述、模擬、綜合、優(yōu)化和布線的標(biāo)準(zhǔn)硬件描述語(yǔ)言,因 此它可以使設(shè)計(jì)成果在設(shè)計(jì)人員之間方便地進(jìn)行交流和共享,從而減小硬件電路設(shè)計(jì) 的工作量,縮短開發(fā)周期8。 1.3.2 QUARTUS II 簡(jiǎn)介 Quartus II 是 Altera 公司設(shè)計(jì)的綜合性 PLD 開發(fā)軟件,它支持原理圖、 VHDL、VerilogHDL 以及 AHDL 等多種設(shè)計(jì)輸入形式,內(nèi)嵌有綜合器以及仿真器,可 以完成從設(shè)計(jì)輸入到硬件配置的完整 PLD 設(shè)計(jì)流程9。 Quartus II 可以在 XP、Lin
23、ux 以及 Unix 上使用,除了可以使用 Tcl 腳本完成設(shè)計(jì) 流程外,提供了完善的用戶圖形界面設(shè)計(jì)方式。具有運(yùn)行速度快,界面統(tǒng)一,功能集 中,易學(xué)易用等特點(diǎn)。 此外,Quartus II 通過和 DSP Builder 工具與 Matlab/Simulink 相結(jié)合,可以方便地 第 7 頁(yè) 實(shí)現(xiàn)各種 DSP 應(yīng)用系統(tǒng);支持 Altera 的片上可編程系統(tǒng)(SOPC)開發(fā),集系統(tǒng)設(shè)計(jì)、 嵌入式軟件開發(fā)、可編程邏輯設(shè)計(jì)于一體,是一種綜合性的開發(fā)平臺(tái)10。 Quartus II 支持 Altera 的 IP 核,包含了 LPM/MegaFunction 宏功能模塊庫(kù),這樣可 以使用戶充分的利用成
24、熟的模塊,從而簡(jiǎn)化了設(shè)計(jì)的復(fù)雜性,進(jìn)而加快了設(shè)計(jì)的速度。 Quartus II 支持的器件類型非常豐富,其圖形界面也易于操作。Altera 在 Quartus II 中包 含了許多諸如 SignalTap II、Chip Editor 和 RTL Viewer 的設(shè)計(jì)輔助工具,集成了 SOPC 和 HardCopy 的設(shè)計(jì)流程,并且繼承了 Maxplus II 友好的圖形界面及簡(jiǎn)便的使用方法。 Quartus II 作為一種可編程邏輯的設(shè)計(jì)環(huán)境, 由于其強(qiáng)大的設(shè)計(jì)能力和直觀易用的接口, 越來越受到數(shù)字系統(tǒng)設(shè)計(jì)者的喜愛和歡迎11。 Quartus II 提供了完全集成且與電路結(jié)構(gòu)無關(guān)的開發(fā)包環(huán)境
25、,具有數(shù)字邏輯設(shè)計(jì)的 全部特性,包括: 1、可利用原理圖、結(jié)構(gòu)框圖、VerilogHDL、AHDL 和 VHDL 完成電路描述,并將其 保存為設(shè)計(jì)實(shí)體文件; 2、芯片(電路)平面布局連線編輯; 3、LogicLock 增量設(shè)計(jì)方法,用戶可建立并優(yōu)化系統(tǒng),然后添加對(duì)原始系統(tǒng)的性能影 響較小或無影響的后續(xù)模塊; 4、功能強(qiáng)大的邏輯綜合工具; 5、完備的電路功能仿真與時(shí)序邏輯仿真工具; 6、定時(shí)/時(shí)序分析與關(guān)鍵路徑延時(shí)分析; 7、可使用 SignalTap II 邏輯分析工具進(jìn)行嵌入式的邏輯分析; 8、支持軟件源文件的添加和創(chuàng)建,并將它們鏈接起來生成編程文件; 9、使用組合編譯方式可一次完成整體設(shè)計(jì)
26、流程; 10、自動(dòng)定位編譯錯(cuò)誤; 11、高效的期間編程與驗(yàn)證工具; 12、可讀入標(biāo)準(zhǔn)的 EDIF 網(wǎng)表文件、VHDL 網(wǎng)表文件和 Verilog 網(wǎng)表文件; 13、能生成第三方 EDA 軟件使用的 VHDL 網(wǎng)表文件和 Verilog 網(wǎng)表文件。 Altera 的 Quartus II 可編程邏輯軟件屬于第四代 PLD 開發(fā)平臺(tái)。該平臺(tái)支持一個(gè)工 作組環(huán)境下的設(shè)計(jì)要求,其中包括支持基于 Internet 的協(xié)作設(shè)計(jì)。Quartus 平臺(tái)與 Cadence、ExemplarLogic、 MentorGraphics、Synopsys 和 Synplicity 等 EDA 供應(yīng)商的 第 8 頁(yè) 開
27、發(fā)工具相兼容。改進(jìn)了軟件的 LogicLock 模塊設(shè)計(jì)功能,增添了 FastFit 編譯選項(xiàng), 推進(jìn)了網(wǎng)絡(luò)編輯性能,而且提升了調(diào)試能力。支持 MAX7000/MAX3000 等乘積項(xiàng)器件 12。 2 分頻基本原理 2.1 等占空比偶數(shù)分頻方法 在設(shè)計(jì)偶數(shù)倍分頻器時(shí) ,常用的方法是:通過一個(gè)由待分頻時(shí)鐘上升沿所觸發(fā) 的計(jì)數(shù)器循環(huán)計(jì)數(shù)來實(shí)現(xiàn) N 倍(N 為偶數(shù))分頻的實(shí)現(xiàn)方法:通過由待分頻的時(shí)鐘 觸發(fā)的模為(N/2)-1 的計(jì)數(shù)器計(jì)數(shù),當(dāng)計(jì)數(shù)器從 0 計(jì)數(shù)到(N/2)-1 時(shí),輸出時(shí)鐘信號(hào) 進(jìn)行翻轉(zhuǎn),同時(shí)給計(jì)數(shù)器一個(gè)復(fù)位信號(hào) ,使得計(jì)數(shù)器在下一個(gè)時(shí)鐘重新開始計(jì)數(shù), 采用這種方法不斷循環(huán),就可得到
28、所需的N 倍分頻器。這種方法可以實(shí)現(xiàn)占空比 為 50%的任意偶數(shù)分頻 2.2 等占空比的奇數(shù)分頻方法 占空比為 50%的 N 倍(N 為奇數(shù))分頻的實(shí)現(xiàn)方法 :首先通過時(shí)鐘的上升沿觸發(fā) 進(jìn)行計(jì)數(shù),當(dāng)計(jì)數(shù)到某一個(gè)特定值時(shí)對(duì)計(jì)數(shù)輸出進(jìn)行翻轉(zhuǎn),然后經(jīng)過(N-1)/2 個(gè)輸 入時(shí)鐘,再次對(duì)計(jì)數(shù)輸出進(jìn)行翻轉(zhuǎn),從而得到一個(gè)占空比非50%的 N 倍奇數(shù)分 頻時(shí)鐘。在此同時(shí)進(jìn)行時(shí)鐘的下降沿觸發(fā)進(jìn)行計(jì)數(shù),當(dāng)計(jì)數(shù)到和上升沿觸發(fā)輸出時(shí) 鐘翻轉(zhuǎn)時(shí)所選的特定值相同時(shí),對(duì)計(jì)數(shù)輸出進(jìn)行翻轉(zhuǎn),同樣經(jīng)過(N-1)/2 個(gè)時(shí)鐘時(shí), 再次對(duì)計(jì)數(shù)輸出進(jìn)行翻轉(zhuǎn),從而得到另一個(gè)占空比非 50%的 N 倍奇數(shù)分頻時(shí)鐘。 然后對(duì)兩個(gè)占空比非
29、 50%的 N 倍奇數(shù)分頻時(shí)鐘進(jìn)行邏輯或運(yùn)算,就能得到一個(gè)占 空比為 50%的 N 倍奇數(shù)分頻時(shí)鐘。如進(jìn)行三倍分頻時(shí)鐘設(shè)計(jì)時(shí),先通過待分頻時(shí)鐘 上升沿觸發(fā)計(jì)數(shù)器進(jìn)行模三計(jì)數(shù), 當(dāng)計(jì)數(shù)器計(jì)數(shù)到特定值時(shí)進(jìn)行翻轉(zhuǎn),比如可以 在計(jì)數(shù)器計(jì)數(shù)到時(shí),輸出時(shí)鐘進(jìn)行翻轉(zhuǎn),當(dāng)計(jì)數(shù)到2 時(shí)再次進(jìn)行翻轉(zhuǎn) ,這樣實(shí)際上 實(shí)現(xiàn)一個(gè)占空比為 1/3 的三分頻時(shí)鐘。然后通過待分頻時(shí)鐘下降沿觸發(fā)計(jì)數(shù),采用 和上升沿觸發(fā)的計(jì)數(shù)相似的方法,可以產(chǎn)生另外一個(gè)三分頻的時(shí)鐘, 然后下降沿 產(chǎn)生的三分頻時(shí)鐘和上升沿產(chǎn)生的時(shí)鐘進(jìn)行邏輯或運(yùn)算,就可得到占空比為 50% 第 9 頁(yè) 的三分頻時(shí)鐘 6。 2.3 分?jǐn)?shù)分頻方法 數(shù)分頻器的設(shè)計(jì)思想與
30、小數(shù)分頻器類似。假設(shè)進(jìn)行 .分頻,總分頻次數(shù)由分母 j n m m 決定,規(guī)律是進(jìn)行 n 次 j+1 分頻和 m-n 次 j 分頻。兩種分頻交替進(jìn)行的計(jì)算方法也和 小數(shù)分頻類似。究竟是進(jìn)行 j+1 分頻還是 j 分頻就看累加的結(jié)果是大于等于分母還是小 于分母。的分頻計(jì)算過程見表 2.1 可見要進(jìn)行 6 次 4 分頻,5 次 3 分頻,滿足上面 6 311 的規(guī)律。分?jǐn)?shù)分頻器,其中 j、m、n 分別取 3、11、6,故實(shí)現(xiàn)了分頻,參數(shù) 6 311 n1、n2 用來調(diào)節(jié)占空比。 表表 2.1 分頻序列分頻序列 6 311 分頻次數(shù)累加器分頻系數(shù) 163 2124 383 4144 5104 616
31、3 7124 883 9144 10103 11164 2.4 小數(shù)分頻方法 小數(shù)分頻器是通過可變分頻和多次平均的方法得到的4-5。假設(shè)要進(jìn)行 m,n 分頻 (m、n 都是整數(shù),且 n10) ,因?yàn)橹挥幸晃恍?shù),所以總共要進(jìn)行 10 次分頻,總的 第 10 頁(yè) 規(guī)律是進(jìn)行 n 次 m+1 分頻,10-n 次分頻。假設(shè)要進(jìn)行 j,m,n 分頻(j、m、n 都足整 數(shù)且 m、n10) ,由于小數(shù)是 2 位,所以總共要進(jìn)行 100 次分頻,分頻的規(guī)律是進(jìn)行 行 mn 次 j+1 分頻,100-mn 次 j 分頻。不管是幾位小數(shù)總要進(jìn)行兩種系數(shù)的分頻,兩種 分頻究竟如何交義進(jìn)行,可以根據(jù)一定的規(guī)律計(jì)算
32、出來,下面以 3.6 分頻為例進(jìn)行講解。 由上面的分析知道 3.6 分頻要進(jìn)行 6 次 4 分頻,4 次 3 分頻。將小數(shù)部分 6 按倍累加, 假設(shè)累加的值為 a,如果 a10 則進(jìn)行 3 分頻,a10 的話下一次則加上 6,此后,如 果 a10 則進(jìn)行 4 分頻,4 分頻過后再將累加值減去 4 后與 10 比較以決定下一次分頻 是 4 分頻還是 3 分頻,計(jì)算過程見表 2.2。 表表 2.2 3.6 分頻序列分頻序列 分頻次數(shù)累加器分頻系數(shù) 163 2124 383 4144 5104 663 7124 883 9144 10104 從表 2.2 中看出分頻規(guī)律是:首先進(jìn)行 3 分頻,然后進(jìn)
33、行 4 分頻,接著 1 次 3 分頻 和 2 次 4 分頻,如此循環(huán)下去。 2.5 任意倍數(shù)分頻器 加入控制模塊就可以將上述 4 種分頻器集成到一起,變成任意數(shù)值分頻器,頂層 原理見圖 2.1 第 11 頁(yè) 圖 2.1 任意倍數(shù)分頻器框圖 當(dāng)輸入的二進(jìn)制數(shù) a=00 時(shí)實(shí)現(xiàn)偶數(shù)和占空比不等于 50的奇數(shù)分頻,a=01 時(shí)實(shí) 現(xiàn)占空比為 50的奇數(shù)分頻,a=10 和 ll 時(shí)分別實(shí)現(xiàn)小數(shù)和分?jǐn)?shù)分頻。其中 m、j 分別 控制整數(shù)分頻的分頻系數(shù)和占空比。小數(shù)分頻時(shí) m、n 分別調(diào)整整數(shù)部分和小數(shù)部分; 分?jǐn)?shù)分頻時(shí) j 調(diào)整整數(shù)部分,而 m、n 分別控制分母和分子值。nl 和 n2 用于調(diào)節(jié)分?jǐn)?shù) 和小
34、數(shù)分頻的占空比。因?yàn)橛行?shù)和分?jǐn)?shù)分頻,所以預(yù)置端口較多,但是可調(diào)性也達(dá) 到了最大。 任意倍數(shù)分頻器 clk a(1 downto 0) m j n n1 n2 y 第 12 頁(yè) 3 任意倍數(shù)分頻器設(shè)計(jì) 3.1 設(shè)計(jì)思想 本設(shè)計(jì)的設(shè)計(jì)思想是:把偶數(shù)分頻,奇數(shù)分頻,半整數(shù)分頻,占空比可調(diào)的分頻, 小數(shù)分頻這 5 種比較常見的分頻器集成在一塊芯片之上,并可以通過按鈕來選擇具體 由哪一種分頻器進(jìn)行操作,而撥碼開關(guān)則可以預(yù)置一些分頻系數(shù),發(fā)光二極管則顯示 具體由那種分頻實(shí)現(xiàn),數(shù)碼管顯示分頻的系數(shù)。具體功能如下: 1、p,q,v:功能選擇按鈕。f1,f2,f3,f4,f5:表明功能的序號(hào)。 P=0,q=0
35、 ,v =0 :偶數(shù)分頻,f1=1,f2=f3=f4=f5=0; P=0,q=0,v =1 :奇數(shù)分頻,f2=1,f1=f3=f4=f5=0; P=0,q=1 ,v =0:半整數(shù)分頻,f3=1,f1=f2=f4=f5=0; P=0,q=1 ,v =1:可預(yù)置占空比分頻,f4=1,f1=f2=f3=f5=0; P=1,q=0 ,v =0:小數(shù)分頻,f5=1,f1=f2=f3= f4=0; 2、clk:時(shí)鐘信號(hào)。Rst:復(fù)位信號(hào)。 3、a,b,c,d:表明分頻系數(shù) 偶數(shù)分頻:2,4,6,8,10,12,14 奇數(shù)分頻:1,3,5,7,9,11,13,15 半整數(shù)分頻:1.515.5 占空比分頻:1
36、:1,1:2,1:3,2:1,2:2,2:3,3:1,3:2,3:3 小數(shù)分頻:1.13.6 4、y:輸出信號(hào)。 y5:段選擇信號(hào)。 y6:位選擇信號(hào)。 5、y6=fb 選中第三個(gè)數(shù)碼管 y6=fd 選中第二個(gè)數(shù)碼管 y6=fe 選中第一個(gè)數(shù)碼管,數(shù)碼 管顯示分頻系數(shù)。 第 13 頁(yè) 3.2 頂層框圖設(shè)計(jì) 圖3.1 頂層框圖設(shè)計(jì)原理圖 該頂層框圖主要由六個(gè)部分組成:選擇按鈕,撥碼開關(guān),二極管,分頻器種類選擇, 信號(hào)輸出。各部分的功能如下: 選擇按鈕:設(shè)置輸入的方式,選擇需要實(shí)現(xiàn)何種分頻。 撥碼開關(guān):提供分頻的系數(shù)。 發(fā)光二極管:顯示第幾種分頻被選擇。 FPGA:根據(jù)前面的輸入來確定何種分頻器進(jìn)
37、行工作。 數(shù)碼管:顯示分頻系數(shù)。 信號(hào)輸出:把分頻后的信號(hào)進(jìn)行輸出。 3.3 頂層文件設(shè)計(jì) 分頻器的頂層文件是一個(gè)原理圖文件,它包含 8 個(gè)模塊 8 個(gè)模塊 encoder-35 模塊, led 模塊,fenpin-e 模塊,fenpin-o 模塊,fenpin-m 模塊,fenpin-h 模塊,fenpin-x 模塊, mux51 模塊。模塊的正確性已在上面的介紹中進(jìn)行驗(yàn)證了。通過將各個(gè)模塊用具有電 氣性質(zhì)的導(dǎo)線將各個(gè)模塊連接起來,這樣原理圖文件就建好了。保存編譯。在建立一 個(gè).vwf 波形文件,保存并仿真。原理圖見附錄 B 所示,以 8 分頻為例子進(jìn)行仿真,其 仿真結(jié)果如圖 3.3 所示:
38、 選擇按鈕撥碼開關(guān)FPGA輸出信號(hào) 發(fā)光二級(jí) 管 數(shù)碼管 第 14 頁(yè) 圖3.3 頂層文件波形仿真結(jié)果圖 P=0,q=0 ,v =0:偶數(shù)分頻,f1=1(表明第一個(gè)發(fā)光二極管亮) ,f2=f3=f4=f5=0; Rst=0 時(shí),不分頻。 Rst=1 時(shí): 當(dāng) y5=99 時(shí),數(shù)碼管 1 顯示 4。 當(dāng) y5=ff 時(shí),數(shù)碼管 2 不顯示。 當(dāng) y5=c0 時(shí),數(shù)碼管 3 顯示 0。 最終結(jié)果為: 三個(gè)數(shù)碼管顯示為:0,不顯示,4。 3.4 模塊設(shè)計(jì) 3.4.1 偶數(shù)分頻模塊的設(shè)計(jì) 偶數(shù)分頻模塊根據(jù)撥碼開關(guān)選擇分頻系數(shù)(count) ,對(duì)輸入的 clk 信號(hào)進(jìn)行偶數(shù)分 頻。本設(shè)計(jì)偶數(shù)分頻的關(guān)鍵是
39、對(duì) clk 信號(hào)的上升信號(hào)進(jìn)行計(jì)數(shù)(temp) 。當(dāng) temp 小于 count/2 時(shí) clout 輸出 1,否則輸出 0,從而實(shí)現(xiàn)偶數(shù)分頻。只有當(dāng) 35 譯碼器的輸出選中 偶數(shù)分頻且 rst=1 時(shí)偶數(shù)分頻才工作。偶數(shù)分頻實(shí)現(xiàn)的程序見附錄 A1。 偶數(shù)分頻(4 分頻)模塊程序仿真結(jié)果如圖 3.4 所示: 第 15 頁(yè) 圖3.4 偶數(shù)分頻 從仿真結(jié)果可以看出: 本設(shè)計(jì)的優(yōu)點(diǎn)是:當(dāng) rst=0,sel=0 時(shí),輸出信號(hào)為低電平;當(dāng) rst 或者 sel 中有一個(gè) 為低電平時(shí),計(jì)數(shù)器停止計(jì)數(shù),但保持上一狀態(tài)繼續(xù)輸出,當(dāng)恢復(fù) rst=1,sel=1 時(shí)繼續(xù) 計(jì)數(shù),執(zhí)行分頻。 3.4.2 奇數(shù)分頻模
40、塊的設(shè)計(jì) 奇數(shù)分頻模塊根據(jù)撥碼開關(guān)選擇分頻系數(shù)(count1) ,對(duì)輸入的 clk 信號(hào)進(jìn)行偶數(shù)分 頻。本設(shè)計(jì)奇數(shù)分頻的關(guān)鍵是對(duì) clk 信號(hào)的上升沿信號(hào)進(jìn)行計(jì)數(shù)(p)和對(duì) clk 信號(hào)的 下降沿信號(hào)進(jìn)行計(jì)數(shù)(q) 。當(dāng) p (count1-1)/2 或者 q(count1-1)/2 時(shí) clout 輸出 1,否 則輸出 0,從而實(shí)現(xiàn)奇數(shù)分頻。只有當(dāng) 35 譯碼器的輸出選中偶數(shù)分頻且 rst=1 時(shí)奇數(shù) 分頻才工作。奇數(shù)分頻實(shí)現(xiàn)的程序見附錄 A2。 奇數(shù)分頻(7 分頻)模塊程序仿真結(jié)果如圖 3.5 所示: 第 16 頁(yè) 異或門模 N 計(jì)數(shù) 器 二分頻器 f0/(N-0.5)f0/(2N-1)f
41、0 圖 3.5 奇數(shù)分頻 從仿真結(jié)果可以看出: 這種設(shè)計(jì)的優(yōu)點(diǎn)是:當(dāng) rst 與 sel 當(dāng)中任意一個(gè)為 0 時(shí),即放棄對(duì)本次的計(jì)數(shù)并保 持輸出為低電平,在下一次 rst 與 sel 都等于 1 時(shí),重新開始計(jì)數(shù),執(zhí)行分頻。 3.4.3 半整數(shù)模塊設(shè)計(jì) 半整數(shù)分頻模塊根據(jù)撥碼開關(guān)選擇分頻系數(shù)(count1) ,對(duì)輸入的 clk 信號(hào)進(jìn)行偶數(shù) 分頻。本設(shè)計(jì)偶數(shù)分頻的思想如圖 3.6 所示: 圖 3.6 半整數(shù)分頻原理圖 只有當(dāng) 35 譯碼器的輸出選中偶數(shù)分頻且 rst=1 時(shí)半整數(shù)分頻才工作。半整數(shù)分頻 實(shí)現(xiàn)的程序見附錄 A3。 半整數(shù)分頻(6.5 分頻)模塊程序仿真結(jié)果如圖 3.7 所示: 第
42、 17 頁(yè) 圖 3.7 半整數(shù)分頻 從仿真結(jié)果可以看出: 本設(shè)計(jì)的優(yōu)點(diǎn)是:在 rst 或者 sel 有一個(gè)為低電平時(shí),計(jì)數(shù)器停止計(jì)數(shù),維持上一 狀態(tài)輸出,當(dāng) rst 和 sel 都為高電平的時(shí),重新開始計(jì)數(shù),執(zhí)行分頻。 3.4.4 占空比可調(diào)的分頻模塊設(shè)計(jì) 占空比可調(diào)的分頻模塊根據(jù)撥碼開關(guān)選擇占空比(m1:n1) ,對(duì)輸入的 clk 信號(hào)進(jìn) 行占空比可調(diào)的分頻。本設(shè)計(jì)占空比可調(diào)的分頻的關(guān)鍵是對(duì) clk 信號(hào)的上升沿信號(hào)進(jìn)行 計(jì)數(shù) temp。當(dāng) temp m1 時(shí) clkout2 輸出 1,否則輸出 0,從而實(shí)現(xiàn)占空比可調(diào)的分頻。 只有當(dāng) 35 譯碼器的輸出選中偶數(shù)分頻且 rst=1 時(shí)占空比可
43、調(diào)的分頻才工作。占空比可 調(diào)的分頻實(shí)現(xiàn)的程序見附錄 A4。 占空比可調(diào)的分頻(1:3 分頻)模塊程序仿真結(jié)果如圖 3.8 所示: 第 18 頁(yè) 圖 3.8 占空比可調(diào)分頻 從仿真結(jié)果可以看出: 這種設(shè)計(jì)的優(yōu)點(diǎn)是:在 rst 或者 sel 有一個(gè)為低電平時(shí),可以保持前一狀態(tài)和計(jì)數(shù) 結(jié)果,使其具有記憶功能。在恢復(fù)工作時(shí),繼續(xù)計(jì)數(shù),具有有良好的性能。 3.4.5 小數(shù)分頻模塊設(shè)計(jì) 小數(shù)分頻模塊根據(jù)撥碼開關(guān)選擇分頻系數(shù)(n.x) ,對(duì)輸入的 clk 信號(hào)進(jìn)行小數(shù)分頻。 本設(shè)計(jì)小數(shù)分頻的關(guān)鍵是實(shí)現(xiàn)(10-x)次 n 分頻和 x 次的 n+1 分頻的交替進(jìn)行,從而 實(shí)現(xiàn)小數(shù)的分頻。只有當(dāng) 35 譯碼器的輸
44、出選中偶數(shù)分頻且 rst=1 時(shí)占空比可調(diào)的分頻 才工作。小數(shù)分頻實(shí)現(xiàn)的程序見附錄 A5. 小數(shù)分頻(1.3 分頻)模塊程序仿真結(jié)果如圖 3.9 所示: 圖 3.9 小數(shù)分頻 第 19 頁(yè) 從仿真結(jié)果可以看出: 這種設(shè)計(jì)的有優(yōu)點(diǎn)是: 在 rst 或者 sel 有一個(gè)為低電平時(shí),可以保持低電平輸出,并 保持計(jì)數(shù)。在恢復(fù)工作時(shí),繼續(xù)計(jì)數(shù),具有有良好的性能。 3.4.6 encoder_35 模塊的設(shè)計(jì) encoder_35 模塊的功能見表: 表表 3.13.1 encoder_35encoder_35 模塊的功模塊的功 輸入信號(hào)輸出信號(hào) pqvabcde 00000001 00100010 010
45、00100 01101000 10010000 10100000 11000000 11100000 例如:當(dāng) p=0,q=0,v=0 時(shí),e 端輸出高電平 1,而其他輸出低電平 0,表明 e 端被 選中。 encoder_35 模塊的作用是:提供給 mux51 模塊的輸入信號(hào),mux51 模塊根據(jù)輸入 信號(hào),判斷是哪路信號(hào)后輸出信號(hào)。encoder_35 模塊實(shí)現(xiàn)的程序見附錄 A6 encoder_35 模塊程序仿真結(jié)果如圖 3.10 所示: 第 20 頁(yè) 圖 3.10 encoder_35 仿真圖 該仿真是通過設(shè)置 p=0,q=0,v=0,來實(shí)現(xiàn)的,結(jié)果為 e=1,其余為 0; 3.4.7
46、 led 模塊的設(shè)計(jì) 數(shù)碼管接成共陽(yáng)極,只有當(dāng)?shù)碗娖綍r(shí)才有效。Led-out 為段選信號(hào),led-bie 為位選 信號(hào)。m,n,o 鏈接 p,q,v 根據(jù)輸入的信號(hào),選擇 a5,b5,c5,d5 的結(jié)合形式。具 體功能如下: 表表 3.23.2 ledled 模塊功能模塊功能 輸入信號(hào)結(jié)合形式 p(m)q(n)v(o) 000 x=8*d5+4*c5+2*b5+1*a5 001x=8*d5+4*c5+2*b5+1*a5 010 x=8*d5+4*c5+2*b5+1*a5 011x=2*d5+1*c5,y=2*b5+1*a5 100 x=2*d5+1*c5,y=2*b5+1*a5 101無操作
47、110無操作 111無操作 led 的實(shí)現(xiàn)程序見附錄 A7 led 模塊程序仿真結(jié)果如圖 3.11 所示: 第 21 頁(yè) 圖 3.11 led 仿真圖 從仿真結(jié)果可以看出: 當(dāng) m=0,n=0,o=0 時(shí),選中的是偶數(shù)分頻,由于 d5 等于 1,故分頻系數(shù)為 8,3 個(gè)數(shù)碼顯示的順序?yàn)?0,不顯示,8。 3.4.8 mux51 模塊的設(shè)計(jì) mux51 模塊的作用是:根據(jù)輸入的信號(hào),選擇輸出的信號(hào)是那種分頻形式,并點(diǎn) 亮相應(yīng)的發(fā)光二極管。mux51 模塊的實(shí)現(xiàn)程序見附錄 A8 mux51 模塊程序仿真結(jié)果如圖 3.12 所示: 圖 3.12 mux-51 仿真圖 第 22 頁(yè) 從仿真結(jié)果可以看出
48、: 該仿真結(jié)果是通過設(shè)置 e=1(第一種分頻選中) ,其結(jié)果為第一個(gè)發(fā)光二極管亮,y 輸出第一種分頻。 結(jié)論 通過各種方式查閱大量資料,首先了解已經(jīng)很成熟的分頻技術(shù),大致上都是先將 第 23 頁(yè) 不同分頻形式的分頻器列舉出來,然后創(chuàng)建一個(gè)模塊,將不同形式的分頻器集成在一 起。本次設(shè)計(jì)不同于其他的分頻器設(shè)計(jì),本設(shè)計(jì)繼承了將不同分頻集成在一起的思想, 但是本設(shè)計(jì)完全運(yùn)用了模塊設(shè)計(jì),并且通過按鈕,撥碼開關(guān)可以選擇分頻器和分頻系 數(shù),做到隨意的變頻。而數(shù)碼管則可以顯示分頻的系數(shù),發(fā)光二極管則可以顯示何種 分頻器讓人一幕了然。本課題大大降低了分頻工作的工作量,方便了分頻器的使用。 本設(shè)計(jì)還有不足之處,分
49、頻系數(shù)設(shè)置的小,導(dǎo)致分頻系數(shù)的輸入存在局限性,而時(shí)鐘 頻率設(shè)置的較小,導(dǎo)致輸出頻率低。通過改變分頻系數(shù)的設(shè)置和調(diào)高時(shí)鐘頻率從而擴(kuò) 大分頻系數(shù)的輸入范圍提高輸出頻率。 第 24 頁(yè) 致謝 本次設(shè)計(jì),在陳萬(wàn)里老師的幫助下順利的完成了設(shè)計(jì),在設(shè)計(jì)的過程中,陳老師 給我提了很多的設(shè)計(jì)思想和一些資料,剛開始的時(shí)候,我只會(huì)設(shè)計(jì)單一功能的分頻器, 后來在陳老師的幫助下完成了本次設(shè)計(jì),讓我有了進(jìn)一步學(xué)習(xí)設(shè)計(jì)的機(jī)會(huì)。再此要謝 謝陳萬(wàn)里老師給予的幫助,如果沒有老師的幫助,這次設(shè)計(jì)很難完成。 第 25 頁(yè) 參考文獻(xiàn) 1 擦光輝.CPLD/TPGA 的開發(fā)與應(yīng)用M. 北京:電于工業(yè)出版社,2002. 2 吳玉呂,胡水
50、強(qiáng),王文娟.基于 CPLD/FPGA 的多功能分頻器的設(shè)計(jì)與實(shí)現(xiàn)L.世 界電子元器件,2007(03). 3 潘松,黃繼業(yè).EDA技術(shù)實(shí)用教程(第三版)M.北京:科學(xué)出版社,2006. 4 何賓.EDA 原理及應(yīng)用.北京:清華大學(xué)出版社,2010. 5 李洪偉,袁斯華.基于 Quartus II 的 FPGA/CPLD 設(shè)計(jì).北京:電子工業(yè)出版社, 2006. 6 ALTERA,Introduction to Quartus,2007. 7 張靜亞.FPGA 系統(tǒng)設(shè)計(jì)中資源分配的分析和研究 J.信息化研究,2009,35(3): 37239. 8 聶小燕.數(shù)字電路 EDA 設(shè)計(jì)與應(yīng)用. 北京:
51、人民郵電出版社,2010. 9 白雪皎基于 CPLD 半整數(shù)分頻器的設(shè)計(jì)J長(zhǎng)春大學(xué)學(xué)報(bào),2006,116(1):13 15 10 趙雅興.FPGA 原理、設(shè)計(jì)與應(yīng)用,天津大學(xué)出版社, 2005. 11 Robert K. Dueck 編著.數(shù)字系統(tǒng)設(shè)計(jì): CPLD 應(yīng)用與 VHDL 編程,清華大學(xué)出 版社,2006 12 Liu Yanfei,Sen P C.Digital Control of Switching Power Converters.IEEE Conference on Control Applications Toronto,Canada,August.28-31,2005:
52、635-640. 第 26 頁(yè) 附錄 A VHDL 源程序 附錄 A1:偶數(shù)分頻實(shí)現(xiàn)的程序 library ieee; use ieee.std_logic_1164.all; entity fenpin_e is port ( clkin,rst:in std_logic; a,b,c,d:in integer range 1 downto 0; sel:in std_logic; clkout:out std_logic ); end fenpin_e; architecture rtl of fenpin_e is signal temp:integer range 16 downto
53、0; signal count:integer range 16 downto 0; begin count=8*d+4*c+2*b; process(clkin) begin if rst=1 then if(sel=1) then if (clkin event and clkin = 1) then if temp = count-1 then 第 27 頁(yè) temp = 0; else temp = temp + 1; end if; end if; else null; end if; else null; end if; end process; process(temp) beg
54、in if rst=1 then if(sel=1) then if temp count/2 then clout = 1; else clout = 0; end if; else null; end if; else clout = 0; end if; end process; end rtl; 第 28 頁(yè) 附錄 A2 奇數(shù)分頻實(shí)現(xiàn)的程序 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity fenpin_o is port( clk,rst:in std_logic; s
55、el:in std_logic; a2,b2,c2,d2:in integer range 1 downto 0; clkout1:out std_logic ); end fenpin_o; architecture rtl of fenpin_o is signal p,q ,count1:integer range 18 downto 0; begin count1=8*d2+4*c2+2*b2+1*a2; process(clk) begin if rst=1 then if(sel=1) then if (clkevent and clk = 1 ) then if p=count1
56、-1 then p=0; else p=p+1; end if; 第 29 頁(yè) end if; else null; end if; else p=count1-1; end if; end process; process(clk) begin if rst=1 then if(sel=1) then if (clk event and clk = 0 ) then if q=count1-1 then q=0; else q=q+1; end if; end if; else null; end if; else q=count1-1; end if; end process; clkou
57、t1 = 1 when p (count1-1)/2 or q(count1-1)/2 else 0; end rtl; 第 30 頁(yè) 附錄 A3 半整數(shù)分頻實(shí)現(xiàn)的程序 library ieee; use ieee.std_logic_1164.all; use ieee.numeric_std.all; use ieee.std_logic_unsigned.all; entity fenpin_m is port( clkin,rst:in std_logic; sel:in std_logic; a3,b3,c3,d3:in integer range 1 downto 0; clkou
58、t3:buffer std_logic ); end fenpin_m; architecture rtl of fenpin_m is signal clk, div2:std_logic; signal count:integer range 0 to 16 ; signal set:integer range 16 downto 0 ; begin set=8*d3+4*c3+2*b3+1*a3; clk = clkin xor div2; process(clk) begin if rst=1 then if sel=1 then if (clk event and clk = 1)
59、then if (count = 0 ) then 第 31 頁(yè) count = set-1; clkout3 = 1; else count = count - 1; clkout3 = 0; end if; end if; else count=1; end if; else null; end if; end process; process(clkout3) begin if sel=1 then if (clkout3event and clkout3=1) then div2 = not div2; end if; else null; end if; end process; e
60、nd rtl; 第 32 頁(yè) 附錄 A4 占空比可調(diào)的分頻實(shí)現(xiàn)的程序 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; use ieee.numeric_std.all; use ieee.std_logic_unsigned.all; entity fenpin_h is port( clk,rst:in std_logic; sel:in std_logic; a4,b4,c4,d4:in integer range 1 downto 0; clkout2:out std_logic ); en
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版家電產(chǎn)品消費(fèi)者滿意度調(diào)查服務(wù)合同2篇
- 二零二五版房地產(chǎn)融資居間代理合同范本3篇
- 二零二五年電影聯(lián)合制作與市場(chǎng)推廣合同2篇
- 二零二五版茶葉茶具專賣店加盟管理合同3篇
- 二零二五版汽車購(gòu)置貸款保證擔(dān)保合同3篇
- 二零二五年度化肥原料進(jìn)口與分銷合同3篇
- 二零二五年度航空航天股權(quán)買賣合同范本3篇
- 二零二五版戶外廣告牌定期檢查與維修合同3篇
- 二零二五年度駕校車輛購(gòu)置稅承包合同3篇
- 國(guó)際貿(mào)易第六章出口合同訂立2025年綠色貿(mào)易標(biāo)準(zhǔn)與認(rèn)證3篇
- 水泥廠鋼結(jié)構(gòu)安裝工程施工方案
- 2023光明小升初(語(yǔ)文)試卷
- 三年級(jí)上冊(cè)科學(xué)說課課件-1.5 水能溶解多少物質(zhì)|教科版
- GB/T 7588.2-2020電梯制造與安裝安全規(guī)范第2部分:電梯部件的設(shè)計(jì)原則、計(jì)算和檢驗(yàn)
- GB/T 14600-2009電子工業(yè)用氣體氧化亞氮
- 小學(xué)道德與法治學(xué)科高級(jí)(一級(jí))教師職稱考試試題(有答案)
- 河北省承德市各縣區(qū)鄉(xiāng)鎮(zhèn)行政村村莊村名居民村民委員會(huì)明細(xì)
- 實(shí)用性閱讀與交流任務(wù)群設(shè)計(jì)思路與教學(xué)建議
- 應(yīng)急柜檢查表
- 通風(fēng)設(shè)施標(biāo)準(zhǔn)
- 酒店市場(chǎng)營(yíng)銷教案
評(píng)論
0/150
提交評(píng)論