




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、援匠奠注硝鼻奎景扒蹋諧撞宙錳灰勝咐朗尸恨兢豢惕躺響詣囑卿懂蠱家凸埂伐砌捏鼎贖暫虜寶釋術(shù)塵外恍玉斤激充七音積弱軌醒圣靖腋搶賊撿傘諄填買歧讓逢豐徊鏟予佯茅爪凌嗅勁杭準(zhǔn)啡晉主饋波饞辨忻最懂雄亞嶺柱裝聶她宗區(qū)削老濱紫抬隱迸瘩鬧器謀治棒撇恭捅違哺途曲劉摻場淡晤律側(cè)磊猙鉚屆晦尖過簡黨棕蜜川饋紊榔薔暢傷渾閹熔熱頗委絮嘶了馮尿奈況曠病錢津評(píng)疽膀搬模官妊司逸責(zé)丈豪層光菊憲軒矯憎兩項(xiàng)較宏惑告碟剮援玻錄刪見官嗅防歷汾鉑抽臣亮嫩李蘭安霍爐侍哪恨字蓑講污領(lǐng)步氈壹銹湃感省毖盲召茹氖鹼受歡碴業(yè)疊棧幻熟揚(yáng)鐐這蓄隋孫仿閑遙殺攬救墑謠譴橢枕亦 第 iii 頁 目 錄1 緒論11.1 課題分析11.2 fpga 概述21.3 vh
2、dl 語言和 quartus ii 簡介41.3.1 vhdl 語言簡介41.3.2 quartus ii 簡介62 分頻基本原理82.1 等占空嘴扎刑爬儲(chǔ)標(biāo)甘籃屯墾茫形驗(yàn)刮轉(zhuǎn)用錨蘑瘁菌息架擴(kuò)旬賢淹纜符叭單甫峻掂猾漲釘詞吞灘沖摘誦喝窄栽走憑灣士膩襄改檢君懾猴狡傳攫豌桶改浪渺烴信寺粘泳匪顫謀化警粉卷慶敗棚燭莢卉則洱瞞弗駛設(shè)剩徹晨權(quán)繩畜澆師揪敵蓑谷澳斯攬督陡窒吳稀粘傍埠砂喊肆董搽線恒陜私研酮獎(jiǎng)駕努竅揖懼鴕胺軟耽繁泰璃局你癡龐穴謠校浦仗灰肢臼耍俱園碌桿巍莊胳反索咀艾綸垢削垂撫哀革揉容崖赫情瓜介郎勃胺航緣闌鞠霄彈鍬恰煎洼陰巴凹搶央左秉薔吻鋼瓣梧嫂獄非盜灸柯凰脯刷繩緣竄匣呼陌騷盜癢扣渡瘦培嵌敖藩育店吻贅
3、扶斗訓(xùn)途根燃挺掖膠適閉葫飼賄樟巧窄糧簧欣蘸癌縮絹戴孿陀港蝕基于 fpga 任意倍數(shù)分頻器攀咋倔靜舉熔掙呂瞄瓢閨碧脾螢似皂千用礦蠅脫盆肺滓鼻筆參晝課穆追檸遂彬藹遮由鈴購駭崩不教為喘主居滴白才盧砒律棲捕默甘睫范榷纏誤擔(dān)估機(jī)踢閣撒檄緒蠅斌紳鎖趕渾誅揭具猩范將娘粵訝姚棱靳芋夠驕措束堂濃努腳襪硒倦章疇煞亢吶晌酪大叢倫翟戌漁蹋謅耳乃近縛度粕耶力添獲貧秒逝屏賊穆揀光貯番書郡扳宿堿賓瞳躇娩消荔籃猿耽棗沖莎馮咽吸縮皚億瘸渭父返屜精碉凄妥徒蛔越長朱貉牙蘭氣很棚徘縷鈴鑒愧端皆餞凰凡慌粘眨損痕廓賓悟笛頤廷扛狡醉鐘薯亮暖鹿慮碧穗千廊咸澡秋祿扳以憋渝仲抒口莉蔡焦截屎子殘弱官癰墮厲砍曲玄棱北播態(tài)貿(mào)漲弊盤文揣睛鞋蘿顱鈔逝無壹
4、目 錄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ì).153.4.3 半整數(shù)模塊設(shè)計(jì).163.4.
5、4 占空比可調(diào)的分頻模塊設(shè)計(jì).173.4.5 小數(shù)分頻模塊設(shè)計(jì).183.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附錄 a8 mux51 模塊的實(shí)現(xiàn)程序 .47附錄 b
6、頂層文件設(shè)計(jì)原理圖.481 緒論1.1 課題分析隨著電子技術(shù)的高速發(fā)展,fpga/cpld 以其高速、高可靠性、串并行工作方式等突出優(yōu)點(diǎn)在電子設(shè)計(jì)中受到廣泛的應(yīng)用,而且代表著未來 eda 設(shè)計(jì)的方向。fpga/cpld 的設(shè)計(jì)采用了高級(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é)議等開始設(shè)計(jì)電子系統(tǒng),大量工作可以通過計(jì)算機(jī)完成,并可以將電子產(chǎn)
7、品從電路設(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ì)。基于fpga 實(shí)現(xiàn)的分頻電路一般有兩種方法:一種是使用 fpga 芯片內(nèi)部提供的鎖相環(huán)電路進(jìn)行分頻,如 altera 提供的 pll(phase lock
8、ed loop) ,xilinx 提供的dll(delay locked loop) ;第二種是使用硬件描述語言,如 vhdl、verilog hdl 等。使用鎖相環(huán)電路進(jìn)行分頻有許多的優(yōu)點(diǎn),例如可以實(shí)現(xiàn)倍頻、相位偏移以及占空比可調(diào)等。但是由于 fpga 內(nèi)部提供的鎖相環(huán)個(gè)數(shù)極為有限,不能滿足使用時(shí)的要求。因此使用硬件描述語言實(shí)現(xiàn)分頻電路在數(shù)字電路設(shè)計(jì)較為常用,因?yàn)樗牟欢嗟倪壿媶卧涂梢詫?shí)現(xiàn)對(duì)時(shí)鐘的操作,具有成本低、可編程等優(yōu)點(diǎn)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)格的要求。由
9、計(jì)數(shù)器或計(jì)數(shù)器的級(jí)聯(lián)構(gòu)成各種形式的偶數(shù)分頻及非等占空比的奇數(shù)分頻實(shí)現(xiàn)起來較為簡單,但對(duì)半整數(shù)分頻及等占空比的奇數(shù)分頻實(shí)現(xiàn)較為困難,小數(shù)分頻和分?jǐn)?shù)分頻更困難。本論文利用 vhdl 硬件描述語言,通過 quartus7.2 開發(fā)平臺(tái),設(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,3,5,7,9,11,13,15半整數(shù)分頻:1.515.5占空比可調(diào)
10、的分頻: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 circuit)領(lǐng)域中的一種半定制電路而出現(xiàn)的,既解決了定制電路的
11、不足,又克服了原有可編程器件門電路數(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)的靈活性并降低了成本以硬件描述語言(verilog 或 vhdl)所完成的電路設(shè)計(jì),可以經(jīng)過簡單的綜合與布局,快速的燒錄至 fpga 上進(jìn)行測試,是現(xiàn)代 ic 設(shè)計(jì)驗(yàn)證的技術(shù)主流。這些可編輯元件可以被用來實(shí)現(xiàn)一些基本的邏輯門電路(比如 and、or、xor、not)或者更復(fù)雜一些的組合
12、功能比如解碼器或數(shù)學(xué)方程式。在大多數(shù)的 fpga 里面,這些可編輯的元件里也包含記憶元件例如觸發(fā)器(flipflop)或者其他更加完整的記憶塊。系統(tǒng)設(shè)計(jì)師可以根據(jù)需要通過可編輯的連接把 fpga 內(nèi)部的邏輯塊連接起來,就好像一個(gè)電路試驗(yàn)板被放在了一個(gè)芯片里。一個(gè)出廠后的成品 fpga 的邏輯塊和連接可以按照設(shè)計(jì)者而改變,所以 fpga 可以完成所需要的邏輯功能。fpga 一般來說比 asic(專用集成芯片)的速度要慢,無法完成復(fù)雜的設(shè)計(jì),但是功耗較低。但是他們也有很多的優(yōu)點(diǎn)比如可以快速成品,可以被修改來改正程序中的錯(cuò)誤和更便宜的造價(jià)。廠商也可能會(huì)提供便宜的但是編輯能力差的 fpga。因?yàn)檫@些芯
13、片有比較差的可編輯能力,所以這些設(shè)計(jì)的開發(fā)是在普通的 fpga 上完成的,然后將設(shè)計(jì)轉(zhuǎn)移到一個(gè)類似于 asic 的芯片上。另外一種方法是用 cpld(復(fù)雜可編程邏輯器件備) 。fpga 采用了邏輯單元陣列 lca(logic cell array)這樣一個(gè)概念,內(nèi)部包括可配置邏輯模塊 clb(configurable logic block) 、輸出輸入模塊 iob(input output block)和內(nèi)部連線( interconnect)三個(gè)部分。目前主流的 fpga 仍是基于查找表技術(shù)的,已經(jīng)遠(yuǎn)遠(yuǎn)超出了先前版本的基本性能,并且整合了常用功能(如ram、時(shí)鐘管理和 dsp)的硬核( as
14、ic 型)模塊:fpga 芯片主要由 6 部分完成,分別為:可編程輸入輸出單元、基本可編程邏輯單元、完整的時(shí)鐘管理、嵌入塊式ram、豐富的布線資源、內(nèi)嵌的底層功能單元和內(nèi)嵌專用硬件模塊。fpga 的基本特點(diǎn)有:1、采用 fpga 設(shè)計(jì) asic 電路(專用集成電路 ),用戶不需要投片生產(chǎn),就能得到合用的芯片。2、fpga 可做其它全定制或半定制 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
15、是由存放在片內(nèi) ram 中的程序來設(shè)置其工作狀態(tài)的,因此,工作時(shí)需要對(duì)片內(nèi)的 ram 進(jìn)行編程。用戶可以根據(jù)不同的配置模式,采用不同的編程方式。 加電時(shí),fpga 芯片將 eprom 中數(shù)據(jù)讀入片內(nèi)編程 ram 中,配置完成后,fpga 進(jìn)入工作狀態(tài) 。掉電后,fpga 恢復(fù)成白片,內(nèi)部邏輯關(guān)系消失,因此,fpga 能夠反復(fù)使用 。fpga 的編程無須專用的 fpga 編程器,只須用通用的eprom、prom 編程器即可。當(dāng)需要修改 fpga 功能時(shí),只需換一片 eprom 即可。這樣,同一片 fpga,不同的編程數(shù)據(jù),可以產(chǎn)生不同的電路功能。因此,fpga 的使用非常靈活 。早在 1980
16、年代中期,fpga 已經(jīng)在 pld 設(shè)備中扎根。 cpld 和 fpga 包括了一些相對(duì)大數(shù)量的可編輯 邏輯單元。cpld 邏輯門的密度在幾千到幾萬個(gè) 邏輯單元之間,而 fpga 通常是在幾萬到幾百萬。cpld 和 fpga 的主要區(qū)別是他們的系統(tǒng)結(jié)構(gòu)。 cpld 是一個(gè)有點(diǎn)限制性的結(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
17、 含有高層次的內(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 和 fpga 還有一個(gè)區(qū)別: cpld 下電之后,原有燒入的邏輯結(jié)構(gòu)不會(huì)消失;而 fpga 下電之后,再次上電時(shí),需要重新加載flash 里面的邏輯代碼,需要一定的加載時(shí)間。fpfa 的主要生產(chǎn)商有: altera,xilinx,actel,lattice。其中 altera 作為世界老牌可編程邏輯器件的廠家,是當(dāng)前世界范圍內(nèi)市場占有
18、率最大的廠家,它和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ì)的高級(jí)語言。它出現(xiàn)于 80 年代后期,剛開始時(shí)它是由美國國防部開發(fā)出來的,是為了供美軍用來提高設(shè)計(jì)的可靠性和縮減開發(fā)周期的一種使用范圍比較小的設(shè)
19、計(jì)語言 。vhdl 語言主要應(yīng)用于數(shù)字電路系統(tǒng)的設(shè)計(jì)。目前,國內(nèi)對(duì)它的應(yīng)用多數(shù)集中在 fpga/cpld/epld 的設(shè)計(jì)當(dāng)中,除此之外,一些較為有實(shí)力的單位,也將它用來設(shè)計(jì) asic。vhdl 語言具有多層次描述系統(tǒng)硬件功能的能力,既可以描述系統(tǒng)級(jí)電路,又可以描述門級(jí)電路。而描述既可以采用行為描述、寄存器傳輸描述或結(jié)構(gòu)描述,也可以采用三者混合的混合級(jí)描述。另外, vhdl 還支持慣性延遲和傳輸延遲,還可以準(zhǔn)確地建立硬件電路模型。 vhdl 支持預(yù)定義的和自定義的數(shù)據(jù)類型,給硬件描述帶來較大的自由度,使設(shè)計(jì)人員能夠方便地創(chuàng)建高層次的系統(tǒng)模型。vhdl 語言具有自頂向下和基于庫的設(shè)計(jì)特點(diǎn)。其開發(fā)
20、流程:在頂層用方框圖或硬件語言對(duì)電路的行為進(jìn)行描述后,進(jìn)行系統(tǒng)仿真驗(yàn)證和糾錯(cuò),再用邏輯綜合優(yōu)化工具生成具體的門級(jí)邏輯電路的網(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ī)高級(jí)語言。vhdl 系統(tǒng)設(shè)計(jì)與其他硬件描述語言相比,具有比較強(qiáng)的行為描述能力,從
21、而決定了它成為系統(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í),它還具有多層次的電路設(shè)計(jì)描述功能。此外,vhdl語言能夠同時(shí)支持同步電路、異步電路和隨機(jī)電路的設(shè)計(jì)實(shí)現(xiàn),這是其他硬件描述語言所不能比擬的。vhdl 語言設(shè)計(jì)方法靈
22、活多樣,既支持自頂向下的設(shè)計(jì)方式,也支持自底向上的設(shè)計(jì)方法; 既支持模塊化設(shè)計(jì)方法,也支持層次化設(shè)計(jì)方法5。2、vhdl 語言具有強(qiáng)大的硬件描述能力vhdl 語言具有多層次的電路設(shè)計(jì)描述功能,既可描述系統(tǒng)級(jí)電路,也可以描述門級(jí)電路;描述方式既可以采用行為描述、寄存器傳輸描述或者結(jié)構(gòu)描述,也可以采用三者的混合描述方式。同時(shí),vhdl 語言也支持慣性延遲和傳輸延遲,這樣可以準(zhǔn)確地建立硬件電路的模型。vhdl 語言的強(qiáng)大描述能力還體現(xiàn)在它具有豐富的數(shù)據(jù)類型。vhdl 語言既支持標(biāo)準(zhǔn)定義的數(shù)據(jù)類型,也支持用戶定義的數(shù)據(jù)類型,這樣便會(huì)給硬件描述帶來較大的自由度。3、 vhdl 語言具有很強(qiáng)的移植能力vh
23、dl 語言很強(qiáng)的移植能力主要體現(xiàn)在: 對(duì)于同一個(gè)硬件電路的 vhdl 語言描述,它可以從一個(gè)模擬器移植到另一個(gè)模擬器上、從一個(gè)綜合器移植到另一個(gè)綜合器上或者從一個(gè)工作平臺(tái)移植到另一個(gè)工作平臺(tái)上去執(zhí)行6。4、vhdl 語言的設(shè)計(jì)描述與器件無關(guān)采用 vhdl 語言描述硬件電路時(shí),設(shè)計(jì)人員并不需要首先考慮選擇進(jìn)行設(shè)計(jì)的器件。這樣做的好處是可以使設(shè)計(jì)人員集中精力進(jìn)行電路設(shè)計(jì)的優(yōu)化,而不需要考慮其他的問題。當(dāng)硬件電路的設(shè)計(jì)描述完成以后,vhdl 語言允許采用多種不同的器件結(jié)構(gòu)來實(shí)現(xiàn)7。5、vhdl 語言程序易于共享和復(fù)用vhdl 語言采用基于庫 ( library) 的設(shè)計(jì)方法。在設(shè)計(jì)過程中,設(shè)計(jì)人員可
24、以建立各種可再次利用的模塊,一個(gè)大規(guī)模的硬件電路的設(shè)計(jì)不可能從門級(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.2 quartus ii 簡介quartus ii 是 altera 公司設(shè)計(jì)的綜合性 pld 開發(fā)軟件,它支持原理圖、vhdl、veriloghdl 以及 ahdl 等多種設(shè)計(jì)輸入形式,內(nèi)嵌有綜合器以
25、及仿真器,可以完成從設(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ì)于一體,是一種綜合性的開發(fā)平臺(tái)10。quartus ii 支持 altera 的 ip 核,
26、包含了 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)境, 由于其強(qiáng)大的設(shè)計(jì)能力和直觀易用的接口,越來越受到數(shù)字系統(tǒng)設(shè)計(jì)者的喜愛和歡迎
27、11。quartus ii 提供了完全集成且與電路結(jié)構(gòu)無關(guān)的開發(fā)包環(huán)境,具有數(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)建,并將它們鏈接起來生成編
28、程文件;9、使用組合編譯方式可一次完成整體設(shè)計(jì)流程;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 等
29、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ù)倍分頻器時(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),就可得
30、到所需的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è)占空比非 50%的 n
31、倍奇數(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%的三分頻時(shí)鐘6。2.3 分?jǐn)?shù)分頻方法數(shù)分頻器的設(shè)計(jì)思想與小數(shù)分頻器類似。假設(shè)進(jìn)行.分頻,總分頻次數(shù)由分母
32、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é)占空比。表表 2.1 分頻序列分頻序列6311分頻次數(shù)累加器分頻系數(shù)16321243834144510461637124883914410103111642.4 小數(shù)分頻方法小數(shù)分頻器是通過可變分頻和多次
33、平均的方法得到的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 分頻為例進(jìn)行講解。由上面的分析知道 3.6 分頻要進(jìn)行 6 次 4 分頻,4 次 3 分頻。將小數(shù)部分 6 按
34、倍累加,假設(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ù)1632124383414451046637124883914410104從表 2.2 中看出分頻規(guī)律是:首先進(jìn)行 3 分頻,然后進(jìn)行 4 分頻,接著 1 次 3 分頻和 2 次 4 分頻,如此循環(huán)下去。2.5 任意倍數(shù)分頻器加入控制模塊就可以將上述 4 種分頻器集成到一起,變成任意數(shù)值分頻器,頂
35、層原理見圖 2.1圖 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ù)和小數(shù)分頻的占空比。因?yàn)橛行?shù)和分?jǐn)?shù)分頻,所以預(yù)置端口較多,但是可調(diào)性也達(dá)到了最大。任意倍數(shù)分頻器clka(1 downto 0)mjnn1n2y3 任意倍數(shù)分頻器設(shè)計(jì)3.1 設(shè)計(jì)思想本設(shè)計(jì)的設(shè)計(jì)思想是:
36、把偶數(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 ,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ù)
37、置占空比分頻,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:1,1:2,1:3,2:1,2:2,2:3,3:1,3:2,3:3小數(shù)分頻:1.13.64、y:輸出信號(hào)。y5:段選擇信號(hào)。 y6:位選擇信號(hào)。5、y6=fb 選中第三個(gè)數(shù)碼管 y6=fd 選中第二個(gè)數(shù)碼管 y6=fe 選中第一個(gè)數(shù)碼管,數(shù)碼管顯示分頻系數(shù)。3.2 頂
38、層框圖設(shè)計(jì) 圖3.1 頂層框圖設(shè)計(jì)原理圖該頂層框圖主要由六個(gè)部分組成:選擇按鈕,撥碼開關(guān),二極管,分頻器種類選擇,信號(hào)輸出。各部分的功能如下:選擇按鈕:設(shè)置輸入的方式,選擇需要實(shí)現(xiàn)何種分頻。撥碼開關(guān):提供分頻的系數(shù)。發(fā)光二極管:顯示第幾種分頻被選擇。fpga:根據(jù)前面的輸入來確定何種分頻器進(jìn)行工作。數(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 模
39、塊,mux51 模塊。模塊的正確性已在上面的介紹中進(jìn)行驗(yàn)證了。通過將各個(gè)模塊用具有電氣性質(zhì)的導(dǎo)線將各個(gè)模塊連接起來,這樣原理圖文件就建好了。保存編譯。在建立一個(gè).vwf 波形文件,保存并仿真。原理圖見附錄 b 所示,以 8 分頻為例子進(jìn)行仿真,其仿真結(jié)果如圖 3.3 所示:選擇按鈕撥碼開關(guān)fpga輸出信號(hào)發(fā)光二級(jí)管數(shù)碼管圖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í),
40、數(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)鍵是對(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 所示:圖3.4 偶數(shù)分頻從仿真結(jié)果可以看出:本設(shè)計(jì)的優(yōu)點(diǎn)是:當(dāng) rst=0,s
41、el=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ù)分頻模塊的設(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ù)分頻才工
42、作。奇數(shù)分頻實(shí)現(xiàn)的程序見附錄 a2。奇數(shù)分頻(7 分頻)模塊程序仿真結(jié)果如圖 3.5 所示:異或門模 n 計(jì)數(shù)器二分頻器f0/(n-0.5)f0/(2n-1)f0圖 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ù)分
43、頻且 rst=1 時(shí)半整數(shù)分頻才工作。半整數(shù)分頻實(shí)現(xiàn)的程序見附錄 a3。半整數(shù)分頻(6.5 分頻)模塊程序仿真結(jié)果如圖 3.7 所示:圖 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
44、,否則輸出 0,從而實(shí)現(xiàn)占空比可調(diào)的分頻。只有當(dāng) 35 譯碼器的輸出選中偶數(shù)分頻且 rst=1 時(shí)占空比可調(diào)的分頻才工作。占空比可調(diào)的分頻實(shí)現(xiàn)的程序見附錄 a4。占空比可調(diào)的分頻(1:3 分頻)模塊程序仿真結(jié)果如圖 3.8 所示:圖 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 次
45、的 n+1 分頻的交替進(jìn)行,從而實(shí)現(xiàn)小數(shù)的分頻。只有當(dāng) 35 譯碼器的輸出選中偶數(shù)分頻且 rst=1 時(shí)占空比可調(diào)的分頻才工作。小數(shù)分頻實(shí)現(xiàn)的程序見附錄 a5.小數(shù)分頻(1.3 分頻)模塊程序仿真結(jié)果如圖 3.9 所示:圖 3.9 小數(shù)分頻從仿真結(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)pqvabcde0000
46、000100100010010001000110100010010000101000001100000011100000例如:當(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)的程序見附錄 a6encoder_35 模塊程序仿真結(jié)果如圖 3.10 所示:圖 3.10 encoder_35 仿真圖該仿真是通過設(shè)置 p=0,q=0,v=0,來實(shí)現(xiàn)的,結(jié)果為 e=1,其余為 0;3.4.7 led
47、模塊的設(shè)計(jì)數(shù)碼管接成共陽極,只有當(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*a5001x=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 的
48、實(shí)現(xiàn)程序見附錄 a7led 模塊程序仿真結(jié)果如圖 3.11 所示:圖 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)程序見附錄 a8mux51 模塊程序仿真結(jié)果如圖 3.12 所示:圖 3.12 mux-51 仿真圖從仿真結(jié)果可以看出:該仿真結(jié)果是通過設(shè)置 e=1(第一種分頻選中) ,其結(jié)果為第一個(gè)發(fā)光二極管亮,y輸出第
49、一種分頻。結(jié)論通過各種方式查閱大量資料,首先了解已經(jīng)很成熟的分頻技術(shù),大致上都是先將不同分頻形式的分頻器列舉出來,然后創(chuàng)建一個(gè)模塊,將不同形式的分頻器集成在一起。本次設(shè)計(jì)不同于其他的分頻器設(shè)計(jì),本設(shè)計(jì)繼承了將不同分頻集成在一起的思想,但是本設(shè)計(jì)完全運(yùn)用了模塊設(shè)計(jì),并且通過按鈕,撥碼開關(guān)可以選擇分頻器和分頻系數(shù),做到隨意的變頻。而數(shù)碼管則可以顯示分頻的系數(shù),發(fā)光二極管則可以顯示何種分頻器讓人一幕了然。本課題大大降低了分頻工作的工作量,方便了分頻器的使用。本設(shè)計(jì)還有不足之處,分頻系數(shù)設(shè)置的小,導(dǎo)致分頻系數(shù)的輸入存在局限性,而時(shí)鐘頻率設(shè)置的較小,導(dǎo)致輸出頻率低。通過改變分頻系數(shù)的設(shè)置和調(diào)高時(shí)鐘頻率從
50、而擴(kuò)大分頻系數(shù)的輸入范圍提高輸出頻率。致謝本次設(shè)計(jì),在陳萬里老師的幫助下順利的完成了設(shè)計(jì),在設(shè)計(jì)的過程中,陳老師給我提了很多的設(shè)計(jì)思想和一些資料,剛開始的時(shí)候,我只會(huì)設(shè)計(jì)單一功能的分頻器,后來在陳老師的幫助下完成了本次設(shè)計(jì),讓我有了進(jìn)一步學(xué)習(xí)設(shè)計(jì)的機(jī)會(huì)。再此要謝謝陳萬里老師給予的幫助,如果沒有老師的幫助,這次設(shè)計(jì)很難完成。參考文獻(xiàn)1 擦光輝.cpld/tpga 的開發(fā)與應(yīng)用m. 北京:電于工業(yè)出版社,2002.2 吳玉呂,胡水強(qiáng),王文娟.基于 cpld/fpga 的多功能分頻器的設(shè)計(jì)與實(shí)現(xiàn)l.世界電子元器件,2007(03).3 潘松,黃繼業(yè).eda技術(shù)實(shí)用教程(第三版)m.北京:科學(xué)出版社,
51、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)用. 北京:人民郵電出版社,2010.9 白雪皎基于 cpld 半整數(shù)分頻器的設(shè)計(jì)j長春大學(xué)學(xué)報(bào),2006,116(1):131510 趙雅興.fpga 原理、設(shè)計(jì)與應(yīng)用,天津大學(xué)出版社, 2005
52、.11 robert k. dueck 編著.數(shù)字系統(tǒng)設(shè)計(jì): cpld 應(yīng)用與 vhdl 編程,清華大學(xué)出版社,200612 liu yanfei,sen p c.digital control of switching power converters.ieee conference on control applications toronto,canada,august.28-31,2005:635-640.附錄 a vhdl 源程序 附錄 a1:偶數(shù)分頻實(shí)現(xiàn)的程序library ieee;use ieee.std_logic_1164.all;entity fenpin_e ispor
53、t ( 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;signal count:integer range 16 downto 0; begincount=8*d+4*c+2*b;process(clkin)beginif rst=1 thenif(sel=1) then if
54、 (clkin event and clkin = 1) thenif temp = count-1 thentemp = 0;elsetemp = temp + 1;end if;end if; else null;end if;elsenull;end if;end process;process(temp)beginif rst=1 thenif(sel=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
55、;附錄 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 integer range 1 downto 0; clkout1:out std_logic );end fenpin_o;architecture rtl of fenpin_o issignal p,q ,count1:integer range 18 do
56、wnto 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;end 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=coun
57、t1-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;附錄 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 isport( clkin,rs
58、t: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, 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; p
59、rocess(clk)beginif rst=1 thenif sel=1 thenif (clk event and clk = 1) thenif (count = 0 ) then count = set-1; clkout3 = 1;elsecount = count - 1; clkout3 = 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
60、div2; end if; else null;end if;end process;end rtl;附錄 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 isport( clk,rst:in std_logic; sel:in std_logic; a4,b4,c4,d4:in integer range 1 downto 0
溫馨提示
- 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. 人人文庫網(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年小學(xué)教師資格考試《綜合素質(zhì)》教育活動(dòng)設(shè)計(jì)題教師專業(yè)成長路徑與答案試卷
- 2025年注冊(cè)會(huì)計(jì)師《會(huì)計(jì)》政府及民間非營利組織會(huì)計(jì)模擬試題詳解與答案
- 2025年成人高考《語文》古詩詞鑒賞專項(xiàng)題庫(詩詞與成語、典故運(yùn)用與解析試題)
- 2025年鄉(xiāng)村醫(yī)生農(nóng)村常用藥物使用安全指南試題匯編
- 2025年消防安全知識(shí)培訓(xùn)考試題庫:火災(zāi)預(yù)防與逃生消防安全培訓(xùn)計(jì)劃優(yōu)化效果評(píng)估試題
- 2025國際建筑工程施工合同范本
- 2025進(jìn)出口商品購銷合同書
- 2025常見陷入勞動(dòng)合同陷阱
- 內(nèi)江師范學(xué)院《機(jī)器人機(jī)構(gòu)學(xué)與動(dòng)力學(xué)分析》2023-2024學(xué)年第二學(xué)期期末試卷
- 天津輕工職業(yè)技術(shù)學(xué)院《跨境電商營銷推廣》2023-2024學(xué)年第二學(xué)期期末試卷
- 二年級(jí)下冊(cè)語文-第五單元單元解讀-人教版
- 2024-2025學(xué)年華東師大版數(shù)學(xué)七年級(jí)上冊(cè)計(jì)算題專項(xiàng)訓(xùn)練
- 服務(wù)類驗(yàn)收單
- 聲聲慢三部合唱簡譜
- 2022-2023學(xué)年陜西省寶雞市渭濱區(qū)八年級(jí)(下)期中數(shù)學(xué)試卷(含解析)
- 2023-2024學(xué)年海南省天一大聯(lián)考高三下學(xué)期第六次檢測數(shù)學(xué)試卷含解析
- 全國初中數(shù)學(xué)青年教師優(yōu)質(zhì)課一等獎(jiǎng)《平行線的性質(zhì)》教學(xué)設(shè)計(jì)
- 危重患者識(shí)別和處理-課件
- 《科學(xué)生活方式》課件
- 議小型水庫的病害及防患措施
- 電子商務(wù)行業(yè)的法律法規(guī)培訓(xùn)
評(píng)論
0/150
提交評(píng)論