




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、III / 49基于 FPGA 任意倍數(shù)分頻器設(shè)計(jì)目 錄1 緒論 11.1 課題分析 11.2 FPGA 概述 21.3 VHDL 語言和 QUARTUS II 簡介 41.3.1 VHDL 語言簡介 41.3.2 QUARTUS II 簡介 62 分頻基本原理 82.1 等占空比偶數(shù)分頻方法 82.2 等占空比的奇數(shù)分頻方法 82.3 分?jǐn)?shù)分頻方法 92.4 小數(shù)分頻方法 92.5 任意倍數(shù)分頻器 103 任意倍數(shù)分頻器設(shè)計(jì) 123.1 設(shè)計(jì)思想 123.2 頂層框圖設(shè)計(jì) 133.3 頂層文件設(shè)計(jì) 133.4 模塊設(shè)計(jì) 143.4.1 偶數(shù)分頻模塊的設(shè)計(jì) 143.4.2 奇數(shù)分頻模塊的設(shè)計(jì)
2、153.4.3 半整數(shù)模塊設(shè)計(jì) 163.4.4 占空比可調(diào)的分頻模塊設(shè)計(jì) 173.4.5 小數(shù)分頻模塊設(shè)計(jì) 18IV / 493.4.6 encoder_35 模塊的設(shè)計(jì) 193.4.7 led 模塊的設(shè)計(jì) 203.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)的程序 42附錄 A7 LED的實(shí)現(xiàn)程序 43附錄
3、A8 MUX51 模塊的實(shí)現(xiàn)程序 47附錄 B 頂層文件設(shè)計(jì)原理圖 481 / 491 緒論1.1 課題分析隨著電子技術(shù)的高速發(fā)展,F(xiàn)PGA/CPLD 以其高速、高可靠性、串并行工作方式等突出優(yōu)點(diǎn)在電子設(shè)計(jì)中受到廣泛的應(yīng)用,而且代表著未來 EDA 設(shè)計(jì)的方向。FPGA/CPLD 的設(shè)計(jì)采用了高級語言,如 VHDL 語言 AHDL 語言等,進(jìn)一步打破了軟件與硬件之間的界限,縮短了產(chǎn)品的開發(fā)周期。所以采用先進(jìn)的 FPGA/CPLD 取代傳統(tǒng)的標(biāo)準(zhǔn)集成電路、接口電路已成為電子技術(shù)發(fā)展的必然趨勢1。EDA 技術(shù)代表了當(dāng)今電子設(shè)計(jì)技術(shù)的最新發(fā)展方向,采用 EDA 工具,電子設(shè)計(jì)師可以從概念、算法、協(xié)議等
4、開始設(shè)計(jì)電子系統(tǒng),大量工作可以通過計(jì)算機(jī)完成,并可以將電子產(chǎn)品從電路設(shè)計(jì)、性能分析到設(shè)計(jì)出 IC 版圖或 PCB 版圖的整個過程在計(jì)算機(jī)上自動處理完成。由于現(xiàn)代電子產(chǎn)品的復(fù)雜度和集成度的日益提高,一般分離的中小規(guī)模集成電路組合已不能滿足要求,電路設(shè)計(jì)逐步地從中小規(guī)模芯片轉(zhuǎn)為大規(guī)模、超大規(guī)模芯片,具有高速度、高集成度、低功耗的可編程朋 IC 器件已蓬勃發(fā)展起來2。分頻器是數(shù)字系統(tǒng)設(shè)計(jì)中的一種基本電路,我們往往需要通過分頻器得到我們所需要的時鐘頻率,在 FPGA 的設(shè)計(jì)中也是使用頻率非常高的一種基本設(shè)計(jì)?;?FPGA實(shí)現(xiàn)的分頻電路一般有兩種方法:一種是使用 FPGA 芯片部提供的鎖相環(huán)電路進(jìn)行分
5、頻,如 ALTERA 提供的 PLL(Phase Locked Loop) ,Xilinx 提供的 DLL(Delay Locked Loop) ;第二種是使用硬件描述語言,如 VHDL、Verilog HDL 等。使用鎖相環(huán)電路進(jìn)行分頻有許多的優(yōu)點(diǎn),例如可以實(shí)現(xiàn)倍頻、相位偏移以與占空比可調(diào)等。但是由于 FPGA部提供的鎖相環(huán)個數(shù)極為有限,不能滿足使用時的要求。因此使用硬件描述語言實(shí)現(xiàn)分頻電路在數(shù)字電路設(shè)計(jì)較為常用,因?yàn)樗牟欢嗟倪壿媶卧涂梢詫?shí)現(xiàn)對時鐘的操作,具有成本低、可編程等優(yōu)點(diǎn)3。在數(shù)字系統(tǒng)的設(shè)計(jì)中,設(shè)計(jì)人員會遇到各種形式的分頻需求,如整數(shù)、小數(shù)、分?jǐn)?shù)分頻等。 在某些數(shù)字系統(tǒng)設(shè)計(jì)中,
6、系統(tǒng)不僅對頻率有要求,而且對占空比也有著很嚴(yán)格的要求。由計(jì)數(shù)器或計(jì)數(shù)器的級聯(lián)構(gòu)成各種形式的偶數(shù)分頻與非等占空比的奇數(shù)分頻實(shí)現(xiàn)起來較為簡單,但對半整數(shù)分頻與等占空比的奇數(shù)分頻實(shí)現(xiàn)較為困難,小數(shù)分頻和分?jǐn)?shù)分頻更困難。2 / 49本論文利用 VHDL 硬件描述語言,通過 Quartus7.2 開發(fā)平臺,設(shè)計(jì)了一種能滿足偶數(shù)分頻,奇數(shù)分頻,半整數(shù)分頻,占空比可調(diào)的分頻,小數(shù)分頻的任意倍數(shù)分頻器,并可以通過按鈕來選擇具體由哪一種分頻器進(jìn)行操作,而撥碼開關(guān)則可以預(yù)置一些分頻系數(shù),發(fā)光二極管則顯示具體由那種分頻實(shí)現(xiàn),數(shù)碼管顯示分頻的系數(shù)。分頻系數(shù)設(shè)置:偶數(shù)分頻:2,4,6,8,10,12,14奇數(shù)分頻:1,
7、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.31.2 FPGA 概述FPGA(Field Programmable Gate Array)現(xiàn)場可編程邏輯門陣列,它是在PAL(Programmable Array Logic) 、GAL(generic array logic)、CPLD(Complex Programmable Logic Device)等可編程器件的基礎(chǔ)上進(jìn)一步發(fā)展的產(chǎn)物。它是作為專用集成電路(Application Specific Integrated
8、 Circuit)領(lǐng)域中的一種半定制電路而出現(xiàn)的,既解決了定制電路的不足,又克服了原有可編程器件門電路數(shù)有限的缺點(diǎn)。它是當(dāng)今數(shù)字系統(tǒng)設(shè)計(jì)的主要硬件平臺,其主要特點(diǎn)就是完全由用戶通過軟件進(jìn)行配置和編程,從而完成某種特定的功能,且可以反復(fù)擦寫。在修改和升級時,不需額外地改變 PCB 電路板,只是在計(jì)算機(jī)上修改和更新程序,使硬件設(shè)計(jì)工作成為軟件開發(fā)工作,縮短了系統(tǒng)設(shè)計(jì)的周期,提高了實(shí)現(xiàn)的靈活性并降低了成本以硬件描述語言(Verilog 或 VHDL)所完成的電路設(shè)計(jì),可以經(jīng)過簡單的綜合與布局,快速的燒錄至 FPGA 上進(jìn)行測試,是現(xiàn)代 IC 設(shè)計(jì)驗(yàn)證的技術(shù)主流。這些可編輯元件可以被用來實(shí)現(xiàn)一些基本的
9、邏輯門電路(比如 AND、OR、XOR、NOT)或者更復(fù)雜一些的組合功能比如解碼器或數(shù)學(xué)方程式。在大多數(shù)的 FPGA 里面,這些可編輯的元件里也包含記憶元件例如觸發(fā)器(Flipflop)或者其他更加完整的記憶塊。系統(tǒng)設(shè)計(jì)師可以根據(jù)需要通過可編輯的連接把 FPGA 部的邏輯塊連接起來,就好像一個電路試驗(yàn)板被放在了一個芯片里。一個出廠后的成品 FPGA 的邏輯塊和連接可以按照設(shè)計(jì)者而改變,所以 FPGA 可以完成所需要的邏輯功能。FPGA 一般來說比 ASIC(專用集成芯片)的速度要慢,無法完成復(fù)雜的設(shè)計(jì),但是功耗較低。但是他們也有很多的優(yōu)點(diǎn)比如可以快速成品,可以被修改來改正程序中的3 / 49錯
10、誤和更便宜的造價。廠商也可能會提供便宜的但是編輯能力差的 FPGA。因?yàn)檫@些芯片有比較差的可編輯能力,所以這些設(shè)計(jì)的開發(fā)是在普通的 FPGA 上完成的,然后將設(shè)計(jì)轉(zhuǎn)移到一個類似于 ASIC 的芯片上。另外一種方法是用 CPLD(復(fù)雜可編程邏輯器件備)。FPGA 采用了邏輯單元陣列 LCA(Logic Cell Array)這樣一個概念,部包括可配置邏輯模塊 CLB(Configurable Logic Block) 、輸出輸入模塊 IOB(Input Output Block)和部連線( Interconnect)三個部分。目前主流的 FPGA 仍是基于查找表技術(shù)的,已經(jīng)遠(yuǎn)遠(yuǎn)超出了先前版本的基
11、本性能,并且整合了常用功能(如RAM、時鐘管理和 DSP)的硬核(ASIC 型)模塊:FPGA 芯片主要由 6 部分完成,分別為:可編程輸入輸出單元、基本可編程邏輯單元、完整的時鐘管理、嵌入塊式RAM、豐富的布線資源、嵌的底層功能單元和嵌專用硬件模塊。FPGA 的基本特點(diǎn)有:1、采用 FPGA 設(shè)計(jì) ASIC 電路(專用集成電路 ),用戶不需要投片生產(chǎn),就能得到合用的芯片。2、FPGA 可做其它全定制或半定制 ASIC 電路的中試樣片。3、FPGA 部有豐富的觸發(fā)器和 IO 引腳。4、FPGA 是 ASIC 電路中設(shè)計(jì)周期最短、開發(fā)費(fèi)用最低、風(fēng)險最小的器件之一。5、FPGA 采用高速 CHMO
12、S 工藝,功耗低,可以與 CMOS、TTL 電平兼容。FPGA 是由存放在片 RAM 中的程序來設(shè)置其工作狀態(tài)的,因此,工作時需要對片的 RAM 進(jìn)行編程。用戶可以根據(jù)不同的配置模式,采用不同的編程方式。 加電時,F(xiàn)PGA 芯片將 EPROM 中數(shù)據(jù)讀入片編程 RAM 中,配置完成后, FPGA 進(jìn)入工作狀態(tài)。掉電后,F(xiàn)PGA 恢復(fù)成白片,部邏輯關(guān)系消失,因此, FPGA 能夠反復(fù)使用。FPGA 的編程無須專用的 FPGA 編程器,只須用通用的 EPROM、PROM 編程器即可。當(dāng)需要修改 FPGA 功能時,只需換一片 EPROM 即可。這樣,同一片 FPGA,不同的編程數(shù)據(jù),可以產(chǎn)生不同的電
13、路功能。因此,F(xiàn)PGA 的使用非常靈活 。早在 1980 年代中期,F(xiàn)PGA 已經(jīng)在 PLD 設(shè)備中扎根。 CPLD 和 FPGA 包括了一些相對大數(shù)量的可編輯 邏輯單元。CPLD 邏輯門的密度在幾千到幾萬個 邏輯單元之間,而 FPGA 通常是在幾萬到幾百萬。CPLD 和 FPGA 的主要區(qū)別是他們的系統(tǒng)結(jié)構(gòu)。 CPLD 是一個有點(diǎn)限制性的結(jié)構(gòu)。這個結(jié)構(gòu)由一個或者多個可編輯的結(jié)果之和的邏輯組列和一些相對少量的鎖定的寄4 / 49存器。這樣的結(jié)果是缺乏編輯靈活性,但是卻有可以預(yù)計(jì)的延遲時間和邏輯單元對連接單元高比率的優(yōu)點(diǎn)。而 FPGA 卻是有很多的連接單元,這樣雖然讓它可以更加靈活的編輯,但是結(jié)
14、構(gòu)卻復(fù)雜的多。CPLD 和 FPGA 另外一個區(qū)別是大多數(shù)的 FPGA 含有高層次的置模塊(比如 加法器和乘法器)和置的 記憶體。因此一個有關(guān)的重要區(qū)別是很多新的FPGA 支持完全的或者部分的系統(tǒng)重新配置。允許他們的設(shè)計(jì)隨著系統(tǒng)升級或者動態(tài)重新配置而改變。一些 FPGA 可以讓設(shè)備的一部分重新編輯而其他部分繼續(xù)正常運(yùn)行。CPLD 和 FPGA 還有一個區(qū)別: CPLD 下電之后,原有燒入的邏輯結(jié)構(gòu)不會消失;而 FPGA 下電之后,再次上電時,需要重新加載FLASH 里面的邏輯代碼,需要一定的加載時間。FPFA 的主要生產(chǎn)商有: Altera,Xilinx,Actel,Lattice。其中 Al
15、tera 作為世界老牌可編程邏輯器件的廠家,是當(dāng)前世界圍市場占有率最大的廠家,它和Xilinx 主要生產(chǎn)一般用途 FPGA,其主要產(chǎn)品采用 RAM 工藝。Actel 主要提供非易失性 FPGA,產(chǎn)品主要基于反熔絲工藝和 FLASH 工藝。1.3 VHDL 語言和 QUARTUS II 簡介1.3.1 VHDL 語言簡介VHDL(VHSIC(Very High Speed Integrated Circuit)Hardware Description Language)是超高速集成電路硬件描述語言,是一種用于電路設(shè)計(jì)的高級語言。它出現(xiàn)于 80 年代后期,剛開始時它是由美國國防部開發(fā)出來的,是為了
16、供美軍用來提高設(shè)計(jì)的可靠性和縮減開發(fā)周期的一種使用圍比較小的設(shè)計(jì)語言 。VHDL 語言主要應(yīng)用于數(shù)字電路系統(tǒng)的設(shè)計(jì)。目前,國對它的應(yīng)用多數(shù)集中在 FPGA/CPLD/EPLD 的設(shè)計(jì)當(dāng)中,除此之外,一些較為有實(shí)力的單位,也將它用來設(shè)計(jì) ASIC。VHDL 語言具有多層次描述系統(tǒng)硬件功能的能力,既可以描述系統(tǒng)級電路,又可以描述門級電路。而描述既可以采用行為描述、寄存器傳輸描述或結(jié)構(gòu)描述,也可以采用三者混合的混合級描述。另外, VHDL 還支持慣性延遲和傳輸延遲,還可以準(zhǔn)確地建立硬件電路模型。 VHDL 支持預(yù)定義的和自定義的數(shù)據(jù)類型,給硬件描述帶來較大的自由度,使設(shè)計(jì)人員能夠方便地創(chuàng)建高層次的系
17、統(tǒng)模型。VHDL 語言具有自頂向下和基于庫的設(shè)計(jì)特點(diǎn)。其開發(fā)流程:在頂層用方框圖或硬件語言對電路的行為進(jìn)行描述后,進(jìn)行系統(tǒng)仿真驗(yàn)證和糾錯,再用邏輯綜合優(yōu)化工具生成具體的門級邏5 / 49輯電路的網(wǎng)表,然后通過適配器將網(wǎng)表文件配置于指定的目標(biāo)器件,產(chǎn)生最終下載文件或配置文件。最后把適配后生成的下載或配置文件通過編程器或編程電纜下載到具體的 FPGA/CPLD 器件中去,以便進(jìn)行硬件調(diào)試和驗(yàn)證,從而實(shí)現(xiàn)可編程的專用集成電路 ASIC 的設(shè)計(jì)。VHDL 主要用于描述數(shù)字系統(tǒng)的結(jié)構(gòu),行為,功能和接口,除了含有許多具有硬件特征的語句外,VHDL 的語言形式和描述風(fēng)格與句法是十分類似于一般的計(jì)算機(jī)高級語言
18、。VHDL 系統(tǒng)設(shè)計(jì)與其他硬件描述語言相比,具有比較強(qiáng)的行為描述能力,從而決定了它成為系統(tǒng)設(shè)計(jì)領(lǐng)域最佳的硬件描述語言之一。強(qiáng)大的行為描述能力是避開具體的器件結(jié)構(gòu),從邏輯行為上描述和設(shè)計(jì)大規(guī)模電子系統(tǒng)的重要保證4。VHDL 語言能夠成為標(biāo)準(zhǔn)化的硬件描述語言并獲得廣泛應(yīng)用,它自身必然具有很多其他硬件描述語言所不具備的優(yōu)點(diǎn)。歸納起來,VHDL 語言主要具有以下優(yōu)點(diǎn):1、VHDL 語言功能強(qiáng)大,設(shè)計(jì)方式多樣VHDL 語言具有強(qiáng)大的語言結(jié)構(gòu),只需采用簡單明確的 VHDL 語言程序就可以描述十分復(fù)雜的硬件電路。同時,它還具有多層次的電路設(shè)計(jì)描述功能。此外,VHDL 語言能夠同時支持同步電路、異步電路和隨機(jī)
19、電路的設(shè)計(jì)實(shí)現(xiàn),這是其他硬件描述語言所不能比擬的。VHDL 語言設(shè)計(jì)方法靈活多樣,既支持自頂向下的設(shè)計(jì)方式,也支持自底向上的設(shè)計(jì)方法; 既支持模塊化設(shè)計(jì)方法,也支持層次化設(shè)計(jì)方法5。2、VHDL 語言具有強(qiáng)大的硬件描述能力VHDL 語言具有多層次的電路設(shè)計(jì)描述功能,既可描述系統(tǒng)級電路,也可以描述門級電路;描述方式既可以采用行為描述、寄存器傳輸描述或者結(jié)構(gòu)描述,也可以采用三者的混合描述方式。同時,VHDL 語言也支持慣性延遲和傳輸延遲,這樣可以準(zhǔn)確地建立硬件電路的模型。VHDL 語言的強(qiáng)大描述能力還體現(xiàn)在它具有豐富的數(shù)據(jù)類型。VHDL 語言既支持標(biāo)準(zhǔn)定義的數(shù)據(jù)類型,也支持用戶定義的數(shù)據(jù)類型,這樣
20、便會給硬件描述帶來較大的自由度。3、 VHDL 語言具有很強(qiáng)的移植能力VHDL 語言很強(qiáng)的移植能力主要體現(xiàn)在: 對于同一個硬件電路的 VHDL 語言描述,它可以從一個模擬器移植到另一個模擬器上、從一個綜合器移植到另一個綜合器上或者從一個工作平臺移植到另一個工作平臺上去執(zhí)行6。4、VHDL 語言的設(shè)計(jì)描述與器件無關(guān)采用 VHDL 語言描述硬件電路時,設(shè)計(jì)人員并不需要首先考慮選擇進(jìn)行設(shè)計(jì)的器件。6 / 49這樣做的好處是可以使設(shè)計(jì)人員集中精力進(jìn)行電路設(shè)計(jì)的優(yōu)化,而不需要考慮其他的問題。當(dāng)硬件電路的設(shè)計(jì)描述完成以后,VHDL 語言允許采用多種不同的器件結(jié)構(gòu)來實(shí)現(xiàn)7。5、VHDL 語言程序易于共享和復(fù)
21、用VHDL 語言采用基于庫 ( library) 的設(shè)計(jì)方法。在設(shè)計(jì)過程中,設(shè)計(jì)人員可以建立各種可再次利用的模塊,一個大規(guī)模的硬件電路的設(shè)計(jì)不可能從門級電路開始一步步地進(jìn)行設(shè)計(jì),而是一些模塊的累加。這些模塊可以預(yù)先設(shè)計(jì)或者使用以前設(shè)計(jì)中的存檔模塊,將這些模塊存放在庫中,就可以在以后的設(shè)計(jì)中進(jìn)行復(fù)用。由于 VHDL 語言是一種描述、模擬、綜合、優(yōu)化和布線的標(biāo)準(zhǔn)硬件描述語言,因此它可以使設(shè)計(jì)成果在設(shè)計(jì)人員之間方便地進(jìn)行交流和共享,從而減小硬件電路設(shè)計(jì)的工作量,縮短開發(fā)周期8。1.3.2QUARTUS II 簡介QuartusII 是 Altera 公司設(shè)計(jì)的綜合性 PLD 開發(fā)軟件,它支持原理圖、
22、VHDL、VerilogHDL 以與 AHDL 等多種設(shè)計(jì)輸入形式,嵌有綜合器以與仿真器,可以完成從設(shè)計(jì)輸入到硬件配置的完整 PLD 設(shè)計(jì)流程9。Quartus II 可以在 XP、Linux 以與 Unix 上使用,除了可以使用 Tcl 腳本完成設(shè)計(jì)流程外,提供了完善的用戶圖形界面設(shè)計(jì)方式。具有運(yùn)行速度快,界面統(tǒng)一,功能集中,易學(xué)易用等特點(diǎn)。此外,Quartus II 通過和 DSP Builder 工具與 Matlab/Simulink 相結(jié)合,可以方便地實(shí)現(xiàn)各種 DSP 應(yīng)用系統(tǒng);支持 Altera 的片上可編程系統(tǒng)(SOPC)開發(fā),集系統(tǒng)設(shè)計(jì)、嵌入式軟件開發(fā)、可編程邏輯設(shè)計(jì)于一體,是一
23、種綜合性的開發(fā)平臺10。Quartus II 支持 Altera 的 IP 核,包含了 LPM/MegaFunction 宏功能模塊庫,這樣可以使用戶充分的利用成熟的模塊,從而簡化了設(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 友好的圖形界面與簡便的使用方法。Quartus II 作為一種可編程邏輯的設(shè)計(jì)環(huán)
24、境, 由于其強(qiáng)大的設(shè)計(jì)能力和直觀易用的接口,越來越受到數(shù)字系統(tǒng)設(shè)計(jì)者的喜愛和歡迎11。Quartus II 提供了完全集成且與電路結(jié)構(gòu)無關(guān)的開發(fā)包環(huán)境,具有數(shù)字邏輯設(shè)計(jì)7 / 49的全部特性,包括:1、可利用原理圖、結(jié)構(gòu)框圖、VerilogHDL、AHDL 和 VHDL 完成電路描述,并將其保存為設(shè)計(jì)實(shí)體文件;2、芯片(電路)平面布局連線編輯;3、LogicLock 增量設(shè)計(jì)方法,用戶可建立并優(yōu)化系統(tǒng),然后添加對原始系統(tǒng)的性能影響較小或無影響的后續(xù)模塊;4、功能強(qiáng)大的邏輯綜合工具;5、完備的電路功能仿真與時序邏輯仿真工具;6、定時/時序分析與關(guān)鍵路徑延時分析;7、可使用 SignalTap I
25、I 邏輯分析工具進(jìn)行嵌入式的邏輯分析;8、支持軟件源文件的添加和創(chuàng)建,并將它們起來生成編程文件;9、使用組合編譯方式可一次完成整體設(shè)計(jì)流程;10、自動定位編譯錯誤;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ā)平臺。該平臺支持一個工作組環(huán)境下的設(shè)計(jì)要求,其中包括支持基于 Internet 的協(xié)作設(shè)計(jì)。Quartus 平臺與Cadence、ExemplarLo
26、gic、 MentorGraphics、Synopsys 和 Synplicity 等 EDA 供應(yīng)商的開發(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ù)倍分頻器時 ,常用的方法是:通過一個由待分頻時鐘上升沿所觸發(fā)的計(jì)數(shù)器循環(huán)計(jì)數(shù)來實(shí)現(xiàn) N 倍(N 為偶數(shù))分頻的實(shí)現(xiàn)方法:通過由待分頻的時鐘觸8 / 49發(fā)的模為(N/2)-1 的計(jì)數(shù)器計(jì)數(shù),當(dāng)計(jì)數(shù)器從 0 計(jì)數(shù)到(N/2)-1 時,輸出時鐘信號進(jìn)行
27、翻轉(zhuǎn),同時給計(jì)數(shù)器一個復(fù)位信號 ,使得計(jì)數(shù)器在下一個時鐘重新開始計(jì)數(shù),采用這種方法不斷循環(huán),就可得到所需的N 倍分頻器。這種方法可以實(shí)現(xiàn)占空比為 50%的任意偶數(shù)分頻2.2 等占空比的奇數(shù)分頻方法占空比為 50%的 N 倍(N 為奇數(shù))分頻的實(shí)現(xiàn)方法 :首先通過時鐘的上升沿觸發(fā)進(jìn)行計(jì)數(shù),當(dāng)計(jì)數(shù)到某一個特定值時對計(jì)數(shù)輸出進(jìn)行翻轉(zhuǎn),然后經(jīng)過(N-1)/2 個輸入時鐘,再次對計(jì)數(shù)輸出進(jìn)行翻轉(zhuǎn),從而得到一個占空比非50%的 N 倍奇數(shù)分頻時鐘。在此同時進(jìn)行時鐘的下降沿觸發(fā)進(jìn)行計(jì)數(shù),當(dāng)計(jì)數(shù)到和上升沿觸發(fā)輸出時鐘翻轉(zhuǎn)時所選的特定值一樣時,對計(jì)數(shù)輸出進(jìn)行翻轉(zhuǎn),同樣經(jīng)過(N-1)/2 個時鐘時,再次對計(jì)數(shù)輸出
28、進(jìn)行翻轉(zhuǎn),從而得到另一個占空比非 50%的 N 倍奇數(shù)分頻時鐘。然后對兩個占空比非 50%的 N 倍奇數(shù)分頻時鐘進(jìn)行邏輯或運(yùn)算,就能得到一個占空比為 50%的 N 倍奇數(shù)分頻時鐘。如進(jìn)行三倍分頻時鐘設(shè)計(jì)時,先通過待分頻時鐘上升沿觸發(fā)計(jì)數(shù)器進(jìn)行模三計(jì)數(shù), 當(dāng)計(jì)數(shù)器計(jì)數(shù)到特定值時進(jìn)行翻轉(zhuǎn),比如可以在計(jì)數(shù)器計(jì)數(shù)到時,輸出時鐘進(jìn)行翻轉(zhuǎn),當(dāng)計(jì)數(shù)到2 時再次進(jìn)行翻轉(zhuǎn) ,這樣實(shí)際上實(shí)現(xiàn)一個占空比為 1/3 的三分頻時鐘。然后通過待分頻時鐘下降沿觸發(fā)計(jì)數(shù),采用和上升沿觸發(fā)的計(jì)數(shù)相似的方法,可以產(chǎn)生另外一個三分頻的時鐘, 然后下降沿產(chǎn)生的三分頻時鐘和上升沿產(chǎn)生的時鐘進(jìn)行邏輯或運(yùn)算,就可得到占空比為 50%的三分
29、頻時鐘6。2.3 分?jǐn)?shù)分頻方法數(shù)分頻器的設(shè)計(jì)思想與小數(shù)分頻器類似。假設(shè)進(jìn)行.分頻,總分頻次數(shù)由分母jnmm 決定,規(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 分頻,滿足上6311面的規(guī)律。分?jǐn)?shù)分頻器,其中 j、m、n 分別取 3、11、6,故實(shí)現(xiàn)了分頻,參數(shù)6311n1、n2 用來調(diào)節(jié)占空比。9 / 49表表 2.12.1分頻序列分頻序列6311分頻次數(shù)累加器分頻系數(shù)16321243834
30、144510461637124883914410103111642.4 小數(shù)分頻方法小數(shù)分頻器是通過可變分頻和多次平均的方法得到的4-5。假設(shè)要進(jìn)行 m,n 分頻(m、n 都是整數(shù),且 n10) ,因?yàn)橹挥幸晃恍?shù),所以總共要進(jìn)行 10 次分頻,總的規(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ì)算出來,下面以 3.6
31、 分頻為例進(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.22.2 3.63.6 分頻序列分頻序列10 / 49分頻次數(shù)累加器分頻系數(shù)1632124383414451046637124883914410104從表 2.2 中看出分頻規(guī)律是:首先進(jìn)行 3 分頻,然后進(jìn)行 4 分頻,接著 1 次
32、3 分頻和 2 次 4 分頻,如此循環(huán)下去。2.5 任意倍數(shù)分頻器加入控制模塊就可以將上述 4 種分頻器集成到一起,變成任意數(shù)值分頻器,頂層原理見圖 2.1圖 2.1 任意倍數(shù)分頻器框圖當(dāng)輸入的二進(jìn)制數(shù) a=00 時實(shí)現(xiàn)偶數(shù)和占空比不等于 50的奇數(shù)分頻,a=01 時實(shí)現(xiàn)占空比為 50的奇數(shù)分頻,a=10 和 ll 時分別實(shí)現(xiàn)小數(shù)和分?jǐn)?shù)分頻。其中 m、j 分別控制整數(shù)分頻的分頻系數(shù)和占空比。小數(shù)分頻時 m、n 分別調(diào)整整數(shù)部分和小數(shù)部分;分?jǐn)?shù)分頻時 j 調(diào)整整數(shù)部分,而 m、n 分別控制分母和分子值。nl 和 n2 用于調(diào)節(jié)分?jǐn)?shù)和小數(shù)分頻的占空比。因?yàn)橛行?shù)和分?jǐn)?shù)分頻,所以預(yù)置端口較多,但是可
33、調(diào)性也達(dá)任意倍數(shù)分頻器clka(1 downto 0)mjnn1n2y11 / 49到了最大。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:表明功能的序號。12 / 49P=0,q=0 ,v =0 :偶數(shù)分頻,f1=1,f2=f3=f4=f5=0;P=0,q=0,v
34、=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:時鐘信號。Rst:復(fù)位信號。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:1,1:2,1:3,2:1,2:2,2:3,3:1,3:2,3:3小數(shù)分頻:1.13.64、y:輸出信
35、號。y5:段選擇信號。 y6:位選擇信號。5、y6=fb 選中第三個數(shù)碼管 y6=fd 選中第二個數(shù)碼管 y6=fe 選中第一個數(shù)碼管,數(shù)碼管顯示分頻系數(shù)。3.2 頂層框圖設(shè)計(jì)圖3.1 頂層框圖設(shè)計(jì)原理圖該頂層框圖主要由六個部分組成:選擇按鈕,撥碼開關(guān),二極管,分頻器種類選擇,選擇按鈕撥碼開關(guān)FPGA輸出信號發(fā)光二級管數(shù)碼管13 / 49信號輸出。各部分的功能如下:選擇按鈕:設(shè)置輸入的方式,選擇需要實(shí)現(xiàn)何種分頻。撥碼開關(guān):提供分頻的系數(shù)。發(fā)光二極管:顯示第幾種分頻被選擇。FPGA:根據(jù)前面的輸入來確定何種分頻器進(jìn)行工作。數(shù)碼管:顯示分頻系數(shù)。信號輸出:把分頻后的信號進(jìn)行輸出。3.3 頂層文件設(shè)
36、計(jì)分頻器的頂層文件是一個原理圖文件,它包含 8 個模塊 8 個模塊 encoder-35 模塊,led 模塊,fenpin-e 模塊,fenpin-o 模塊,fenpin-m 模塊,fenpin-h 模塊,fenpin-x模塊,mux51 模塊。模塊的正確性已在上面的介紹中進(jìn)行驗(yàn)證了。通過將各個模塊用具有電氣性質(zhì)的導(dǎo)線將各個模塊連接起來,這樣原理圖文件就建好了。保存編譯。在建立一個.vwf 波形文件,保存并仿真。原理圖見附錄 B 所示,以 8 分頻為例子進(jìn)行仿真,其仿真結(jié)果如圖 3.3 所示:圖3.3 頂層文件波形仿真結(jié)果圖P=0,q=0 ,v =0:偶數(shù)分頻,f1=1(表明第一個發(fā)光二極管亮
37、) ,f2=f3=f4=f5=0;Rst=0 時,不分頻。14 / 49Rst=1 時:當(dāng) y5=99 時,數(shù)碼管 1 顯示 4。當(dāng) y5=ff 時,數(shù)碼管 2 不顯示。當(dāng) y5=c0 時,數(shù)碼管 3 顯示 0。最終結(jié)果為:三個數(shù)碼管顯示為:0,不顯示,4。3.4 模塊設(shè)計(jì)3.4.1 偶數(shù)分頻模塊的設(shè)計(jì)偶數(shù)分頻模塊根據(jù)撥碼開關(guān)選擇分頻系數(shù)(count) ,對輸入的 clk 信號進(jìn)行偶數(shù)分頻。本設(shè)計(jì)偶數(shù)分頻的關(guān)鍵是對 clk 信號的上升信號進(jìn)行計(jì)數(shù)(temp) 。當(dāng) temp 小于 count/2 時 clout 輸出 1,否則輸出 0,從而實(shí)現(xiàn)偶數(shù)分頻。只有當(dāng) 35 譯碼器的輸出選中偶數(shù)分頻且
38、 rst=1 時偶數(shù)分頻才工作。偶數(shù)分頻實(shí)現(xiàn)的程序見附錄 A1。偶數(shù)分頻(4 分頻)模塊程序仿真結(jié)果如圖 3.4 所示:圖3.4 偶數(shù)分頻從仿真結(jié)果可以看出:本設(shè)計(jì)的優(yōu)點(diǎn)是:當(dāng) rst=0,sel=0 時,輸出信號為低電平;當(dāng) rst 或者 sel 中有一個為低電平時,計(jì)數(shù)器停止計(jì)數(shù),但保持上一狀態(tài)繼續(xù)輸出,當(dāng)恢復(fù) rst=1,sel=1時繼續(xù)計(jì)數(shù),執(zhí)行分頻。15 / 49異或門模 N 計(jì)數(shù)器二分頻器f0/(N-0.5)f0/(2N-1)f03.4.2 奇數(shù)分頻模塊的設(shè)計(jì)奇數(shù)分頻模塊根據(jù)撥碼開關(guān)選擇分頻系數(shù)(count1) ,對輸入的 clk 信號進(jìn)行偶數(shù)分頻。本設(shè)計(jì)奇數(shù)分頻的關(guān)鍵是對 clk
39、 信號的上升沿信號進(jìn)行計(jì)數(shù)(p)和對 clk 信號的下降沿信號進(jìn)行計(jì)數(shù)(q) 。當(dāng) p (count1-1)/2 或者 q(count1-1)/2 時 clout 輸出 1,否則輸出 0,從而實(shí)現(xiàn)奇數(shù)分頻。只有當(dāng) 35 譯碼器的輸出選中偶數(shù)分頻且 rst=1時奇數(shù)分頻才工作。奇數(shù)分頻實(shí)現(xiàn)的程序見附錄 A2。奇數(shù)分頻(7 分頻)模塊程序仿真結(jié)果如圖 3.5 所示:圖 3.5 奇數(shù)分頻從仿真結(jié)果可以看出:這種設(shè)計(jì)的優(yōu)點(diǎn)是:當(dāng) rst 與 sel 當(dāng)中任意一個為 0 時,即放棄對本次的計(jì)數(shù)并保持輸出為低電平,在下一次 rst 與 sel 都等于 1 時,重新開始計(jì)數(shù),執(zhí)行分頻。3.4.3 半整數(shù)模塊
40、設(shè)計(jì)半整數(shù)分頻模塊根據(jù)撥碼開關(guān)選擇分頻系數(shù)(count1) ,對輸入的 clk 信號進(jìn)行偶數(shù)分頻。本設(shè)計(jì)偶數(shù)分頻的思想如圖 3.6 所示:圖 3.6 半整數(shù)分頻原理圖16 / 49只有當(dāng) 35 譯碼器的輸出選中偶數(shù)分頻且 rst=1 時半整數(shù)分頻才工作。半整數(shù)分頻實(shí)現(xiàn)的程序見附錄 A3。半整數(shù)分頻(6.5 分頻)模塊程序仿真結(jié)果如圖 3.7 所示:圖 3.7 半整數(shù)分頻從仿真結(jié)果可以看出:本設(shè)計(jì)的優(yōu)點(diǎn)是:在 rst 或者 sel 有一個為低電平時,計(jì)數(shù)器停止計(jì)數(shù),維持上一狀態(tài)輸出,當(dāng) rst 和 sel 都為高電平的時,重新開始計(jì)數(shù),執(zhí)行分頻。3.4.4 占空比可調(diào)的分頻模塊設(shè)計(jì)占空比可調(diào)的分
41、頻模塊根據(jù)撥碼開關(guān)選擇占空比(m1:n1) ,對輸入的 clk 信號進(jìn)行占空比可調(diào)的分頻。本設(shè)計(jì)占空比可調(diào)的分頻的關(guān)鍵是對 clk 信號的上升沿信號進(jìn)行計(jì)數(shù) temp。當(dāng) temp m1 時 clkout2 輸出 1,否則輸出 0,從而實(shí)現(xiàn)占空比可調(diào)的分頻。只有當(dāng) 35 譯碼器的輸出選中偶數(shù)分頻且 rst=1 時占空比可調(diào)的分頻才工作。占空比可調(diào)的分頻實(shí)現(xiàn)的程序見附錄 A4。占空比可調(diào)的分頻(1:3 分頻)模塊程序仿真結(jié)果如圖 3.8 所示:17 / 49圖 3.8 占空比可調(diào)分頻從仿真結(jié)果可以看出:這種設(shè)計(jì)的優(yōu)點(diǎn)是:在 rst 或者 sel 有一個為低電平時,可以保持前一狀態(tài)和計(jì)數(shù)結(jié)果,使其
42、具有記憶功能。在恢復(fù)工作時,繼續(xù)計(jì)數(shù),具有有良好的性能。3.4.5 小數(shù)分頻模塊設(shè)計(jì)小數(shù)分頻模塊根據(jù)撥碼開關(guān)選擇分頻系數(shù)(n.x) ,對輸入的 clk 信號進(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 譯碼器的輸出選中偶數(shù)分頻且 rst=1 時占空比可調(diào)的分頻才工作。小數(shù)分頻實(shí)現(xiàn)的程序見附錄 A5.小數(shù)分頻(1.3 分頻)模塊程序仿真結(jié)果如圖 3.9 所示:圖 3.9 小數(shù)分頻從仿真結(jié)果可以看出:18 / 49這種設(shè)計(jì)的有優(yōu)點(diǎn)是: 在 rst 或者 sel 有一個為低電平時,可以保持低電平輸出,并保持計(jì)數(shù)
43、。在恢復(fù)工作時,繼續(xù)計(jì)數(shù),具有有良好的性能。3.4.6 encoder_35 模塊的設(shè)計(jì)encoder_35 模塊的功能見表:表表 3.13.1 encoder_35encoder_35 模塊的功模塊的功輸入信號輸出信號pqvabcde0000000100100010010001000110100010010000101000001100000011100000例如:當(dāng) p=0,q=0,v=0 時,e 端輸出高電平 1,而其他輸出低電平 0,表明 e 端被選中。encoder_35 模塊的作用是:提供給 mux51 模塊的輸入信號,mux51 模塊根據(jù)輸入信號,判斷是哪路信號后輸出信號。enc
44、oder_35 模塊實(shí)現(xiàn)的程序見附錄 A6encoder_35 模塊程序仿真結(jié)果如圖 3.10 所示:19 / 49圖 3.10encoder_35 仿真圖該仿真是通過設(shè)置 p=0,q=0,v=0,來實(shí)現(xiàn)的,結(jié)果為 e=1,其余為 0;3.4.7led 模塊的設(shè)計(jì)數(shù)碼管接成共陽極,只有當(dāng)?shù)碗娖綍r才有效。Led-out 為段選信號,led-bie 為位選信號。m,n,op,q,v 根據(jù)輸入的信號,選擇 a5,b5,c5,d5 的結(jié)合形式。具體功能如下: 表表 3.23.2 ledled 模塊功能模塊功能輸入信號結(jié)合形式p(m)q(n)v(o)000 x=8*d5+4*c5+2*b5+1*a500
45、1x=8*d5+4*c5+2*b5+1*a5010 x=8*d5+4*c5+2*b5+1*a5011x=2*d5+1*c5,y=2*b5+1*a5100 x=2*d5+1*c5,y=2*b5+1*a5101無操作110無操作111無操作led 的實(shí)現(xiàn)程序見附錄 A7led 模塊程序仿真結(jié)果如圖 3.11 所示:20 / 49圖 3.11 led 仿真圖從仿真結(jié)果可以看出:當(dāng) m=0,n=0,o=0 時,選中的是偶數(shù)分頻,由于 d5 等于 1,故分頻系數(shù)為 8,3 個數(shù)碼顯示的順序?yàn)?0,不顯示,8。3.4.8mux51 模塊的設(shè)計(jì)mux51 模塊的作用是:根據(jù)輸入的信號,選擇輸出的信號是那種分
46、頻形式,并點(diǎn)亮相應(yīng)的發(fā)光二極管。mux51 模塊的實(shí)現(xiàn)程序見附錄 A8mux51 模塊程序仿真結(jié)果如圖 3.12 所示:圖 3.12 mux-51 仿真圖從仿真結(jié)果可以看出:21 / 49該仿真結(jié)果是通過設(shè)置 e=1(第一種分頻選中) ,其結(jié)果為第一個發(fā)光二極管亮,y輸出第一種分頻。結(jié)論通過各種方式查閱大量資料,首先了解已經(jīng)很成熟的分頻技術(shù),大致上都是先將不同分頻形式的分頻器列舉出來,然后創(chuàng)建一個模塊,將不同形式的分頻器集成在一22 / 49起。本次設(shè)計(jì)不同于其他的分頻器設(shè)計(jì),本設(shè)計(jì)繼承了將不同分頻集成在一起的思想,但是本設(shè)計(jì)完全運(yùn)用了模塊設(shè)計(jì),并且通過按鈕,撥碼開關(guān)可以選擇分頻器和分頻系數(shù),
47、做到隨意的變頻。而數(shù)碼管則可以顯示分頻的系數(shù),發(fā)光二極管則可以顯示何種分頻器讓人一幕了然。本課題大大降低了分頻工作的工作量,方便了分頻器的使用。本設(shè)計(jì)還有不足之處,分頻系數(shù)設(shè)置的小,導(dǎo)致分頻系數(shù)的輸入存在局限性,而時鐘頻率設(shè)置的較小,導(dǎo)致輸出頻率低。通過改變分頻系數(shù)的設(shè)置和調(diào)高時鐘頻率從而擴(kuò)大分頻系數(shù)的輸入圍提高輸出頻率。致本次設(shè)計(jì),在萬里老師的幫助下順利的完成了設(shè)計(jì),在設(shè)計(jì)的過程中,老師給我23 / 49提了很多的設(shè)計(jì)思想和一些資料,剛開始的時候,我只會設(shè)計(jì)單一功能的分頻器,后來在老師的幫助下完成了本次設(shè)計(jì),讓我有了進(jìn)一步學(xué)習(xí)設(shè)計(jì)的機(jī)會。再此要萬里老師給予的幫助,如果沒有老師的幫助,這次設(shè)計(jì)
48、很難完成。參考文獻(xiàn)1 擦光輝.CPLD/TPGA 的開發(fā)與應(yīng)用M. :電于工業(yè),2002.2 吳玉呂,胡水強(qiáng),王文娟.基于 CPLD/FPGA 的多功能分頻器的設(shè)計(jì)與實(shí)現(xiàn)L.世界24 / 49電子元器件,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
49、): 37239.8 聶小燕.數(shù)字電路 EDA 設(shè)計(jì)與應(yīng)用. :人民郵電,2010.9 白雪皎基于 CPLD 半整數(shù)分頻器的設(shè)計(jì)J大學(xué)學(xué)報,2006,116(1):131510 雅興.FPGA 原理、設(shè)計(jì)與應(yīng)用,大學(xué), 2005.11 Robert K. Dueck 編著.數(shù)字系統(tǒng)設(shè)計(jì): CPLD 應(yīng)用與 VHDL 編程,清華大學(xué),200612 Liu Yanfei,Sen P C.Digital Control of Switching PowerConverters.IEEE Conference onControlApplicationsToronto,Canada,August.28-
50、31,2005:635-640.25 / 49附錄 A VHDL 源程序附錄 A1:偶數(shù)分頻實(shí)現(xiàn)的程序library ieee;use ieee.std_logic_1164.all;entity fenpin_e isport ( 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 issignal temp:integer range 16 downto 0
51、;signal count:integer range 16 downto 0; begincount=8*d+4*c+2*b;process(clkin)beginif rst=1 thenif(sel=1) then if (clkin event and clkin = 1) thenif temp = count-1 thentemp = 0;elsetemp = temp + 1;end if;26 / 49end if; else null;end if;elsenull;end if;end process;process(temp)beginif rst=1 thenif(se
52、l=1) then if temp count/2 thenclout = 1;else clout = 0;end if; else null;end if;elseclout = 0;end if;end process;end rtl;27 / 49附錄 A2 奇數(shù)分頻實(shí)現(xiàn)的程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity fenpin_o isport( clk,rst:in std_logic; sel:in std_logic; a2,b2,c2,d2:in integ
53、er range 1 downto 0; clkout1:out std_logic );end fenpin_o;architecture rtl of fenpin_o issignal p,q ,count1:integer range 18 downto 0;begincount1=8*d2+4*c2+2*b2+1*a2;process(clk)beginif rst=1 thenif(sel=1) then if (clkevent and clk = 1 ) thenif p=count1-1 thenp=0;else p=p+1;end if;end if; else null;
54、28 / 49end if;elsep=count1-1;end if;end process;process(clk)beginif rst=1 thenif(sel=1) then if (clk event and clk = 0 ) thenif q=count1-1 thenq=0;else q=q+1;end if;end if; else null;end if;elseq=count1-1;end if;end process;clkout1 = 1 when p (count1-1)/2 or q(count1-1)/2 else 0;end rtl;29 / 49附錄 A3
55、 半整數(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 isport( clkin,rst:in std_logic; sel:in std_logic; a3,b3,c3,d3:in integer range 1 downto 0; clkout3:buffer std_logic );end fenpin_m;architecture rtl of fenpin_m is signal clk,
56、div2:std_logic;signal count:integer range 0 to 16 ;signal set:integer range 16 downto 0 ;beginset=8*d3+4*c3+2*b3+1*a3;clk = clkin xor div2; process(clk)beginif rst=1 thenif sel=1 thenif (clk event and clk = 1) thenif (count = 0 ) then count = set-1; clkout3 = 1;else30 / 49count = count - 1; clkout3
57、= 0;end if;end if; else count=1;end if;elsenull;end if;end process;process(clkout3)beginif sel=1 thenif (clkout3event and clkout3=1) thendiv2 = not div2; end if; else null;end if;end process;end rtl;31 / 49附錄 A4 占空比可調(diào)的分頻實(shí)現(xiàn)的程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use i
58、eee.numeric_std.all;use ieee.std_logic_unsigned.all;entity fenpin_h isport( clk,rst:in std_logic; sel:in std_logic; a4,b4,c4,d4:in integer range 1 downto 0; clkout2:out std_logic );end fenpin_h;architecture rtl of fenpin_h issignal temp,m1,n1:integer range 5 downto 0;beginm1=2*d4+1*c4;n1=2*b4+1*a4;p
59、rocess(clk,temp,sel)beginif rst=1 thenif sel = 1 thenif rising_edge(clk) thenif temp = n1 -1 thentemp = 0;else temp = temp +1;end if;32 / 49end if;else null;end if;elsetemp=n1-1;end if;end process;clkout2 = 1 when temp m1 else 0;end rtl;33 / 49附錄 A5 小數(shù)分頻實(shí)現(xiàn)的程序library ieee;use ieee.std_logic_1164. all
60、;use ieee.std_logic_unsigned. all;entity fenpin_x isport(clkin: in std_logic;rst:in std_logic;sel1:in std_logic;a,b,c,d:in integer range 1 downto 0;clk_out:out std_logic);end fenpin_x;architecture arch of fenpin_x iscomponent numberport(n : in std_logic_vector(3 downto 0) ;number0:out std_logic_vect
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 位資產(chǎn)報廢管理制度
- 公司探親費(fèi)管理制度
- 軟件外包業(yè)務(wù)管理制度
- 項(xiàng)目人員管理制度工程
- 餐飲員工管理制度寫法
- 通信產(chǎn)品倉庫管理制度
- 規(guī)范會議秩序管理制度
- 首創(chuàng)集團(tuán)工程管理制度
- 輪椅平車維護(hù)管理制度
- 酒店廚房怎樣管理制度
- 食用菌資源的開發(fā)及利用
- 二年級下冊科學(xué)課件 11 不斷發(fā)展的人工產(chǎn)品 人教版(26張PPT)
- 三.國際法習(xí)題之經(jīng)典案例分析
- vmvare虛擬化平臺巡檢細(xì)則和方法
- 個人求職簡歷兩頁 (46)應(yīng)聘履歷參考模板可編輯修改
- 水下混凝土澆筑導(dǎo)管水密試驗(yàn)
- 非連續(xù)性文本閱讀訓(xùn)練(六年級語文復(fù)習(xí))
- 市政工程監(jiān)理規(guī)劃范本(完整版)
- 剪刀式升降機(jī)
- 渤海灣盆地構(gòu)造演化及其油氣意義
- 并聯(lián)高抗中性點(diǎn)小電抗補(bǔ)償原理分析及參數(shù)選擇方法
評論
0/150
提交評論