畢業(yè)設(shè)計(論文)基于FPGA的序列檢測器的設(shè)計_第1頁
畢業(yè)設(shè)計(論文)基于FPGA的序列檢測器的設(shè)計_第2頁
畢業(yè)設(shè)計(論文)基于FPGA的序列檢測器的設(shè)計_第3頁
畢業(yè)設(shè)計(論文)基于FPGA的序列檢測器的設(shè)計_第4頁
畢業(yè)設(shè)計(論文)基于FPGA的序列檢測器的設(shè)計_第5頁
已閱讀5頁,還剩35頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、1 緒論1.1引言序列檢測是指將一個指定的序列從數(shù)字流中識別出來或在主串中查詢相應(yīng)子串,脈沖序列檢測器廣泛應(yīng)用于現(xiàn)代數(shù)字通信系統(tǒng)中,在數(shù)字通信時,為了保證信息的可靠傳輸,一般需要在發(fā)送端加入固定的同步碼組,而在接收端則需要檢測該同步碼組,保證信息的可靠接收。接收端的同步碼檢測器就是用來檢測同步碼組的電路,中間用到的碼型檢測電路部分實際上就是一個脈沖序列信號檢測器。序列檢測器廣泛應(yīng)用于數(shù)據(jù)通訊、雷達(dá)和遙測等領(lǐng)域。傳統(tǒng)的脈沖序列檢測器,它的實現(xiàn)方法是把一個算法轉(zhuǎn)化為一個實際數(shù)字邏輯電路的過程。在這個過程中,我們所得到的結(jié)果大概一致,但是在具體設(shè)計方法和性價比上存在著一定的差異,存在電路設(shè)計復(fù)雜,體

2、積大,抗干擾能力差以及設(shè)計困難、設(shè)計周期長等缺點。而利用fpga作為硬件電路,采用vhdl等硬件描述語言對硬件的功能進(jìn)行編程,加快了系統(tǒng)的研發(fā)進(jìn)程,采用數(shù)字化的控制方式,大幅度提高了邏輯控制的精確度,實時控制效果好,實踐證明,fpga芯片可以代替?zhèn)鹘y(tǒng)的復(fù)雜的電路,而且可以大比例地縮小了電路的硬件規(guī)模,提高了集成度,降低開發(fā)成本,提高系統(tǒng)的可靠性,為脈沖序列檢測器電路的設(shè)計開辟了新的天地。1.2課題設(shè)計目的脈沖序列檢測器在現(xiàn)代數(shù)字通信系統(tǒng)中發(fā)揮著重要的作用,通過中小規(guī)模的數(shù)字集成電路構(gòu)成的傳統(tǒng)脈沖序列檢測器電路往往存在電路設(shè)計復(fù)雜、體積大、抗干擾能力差以及設(shè)計困難、設(shè)計周期長等缺點。因此脈沖序列

3、檢測器電路的模塊化、集成化已成為發(fā)展趨勢.它不僅可以使系統(tǒng)體積減小、重量減輕且功耗降低,同時可使系統(tǒng)的可靠性大大提高。隨著電子技術(shù)的發(fā)展,特別是專用集成電路(asic)設(shè)計技術(shù)的日趨完善,數(shù)字化的電子自動化設(shè)計(eda)工具1給電子設(shè)計帶來了巨大變革,尤其是硬件描述語言的出現(xiàn),解決了傳統(tǒng)電路原理圖設(shè)計系統(tǒng)工程的諸多不便。隨著asic技術(shù)、eda技術(shù)的不斷完善和發(fā)展以及vhdl、hdl等通用性好、移植性強的硬件描述語言的普及,fpga等可編程邏輯器件必將在現(xiàn)代數(shù)字應(yīng)用系統(tǒng)中得到廣泛的應(yīng)用,發(fā)揮越來越重要的作用。 在這種背景下,針對大規(guī)??删幊踢壿嬈骷pga器件的集成度高、工作速度快、編程方便、

4、價格較低,易于實現(xiàn)設(shè)備的可編程設(shè)計的特點,用硬件描述語言設(shè)計fpga器件來實現(xiàn)脈沖序列檢測器。利用vhdl開發(fā)的脈沖序列檢測器,其通用性和基于模塊的設(shè)計方法可以節(jié)省大量的人力,大大地縮短設(shè)計周期,在工程應(yīng)用中已經(jīng)取得了顯著的效果??梢姡趂pga的脈沖序列檢測器的設(shè)計是現(xiàn)代數(shù)字通信的發(fā)展要求,從而使得其具有更好的發(fā)展前景和使用價值。2 設(shè)計基礎(chǔ)2.1 fpga簡介fpga(fieldprogrammable gate array)2,即現(xiàn)場可編程門陣列,它是在pal、gal、cpld等可編程器件的基礎(chǔ)上進(jìn)一步發(fā)展的產(chǎn)物。它是作為專用集成電路(asic)領(lǐng)域中的一種半定制電路而出現(xiàn)的,既解決了

5、定制電路的不足,又克服了原有可編程器件門電路數(shù)有限的缺點。目前以硬件描述語言(verilog 或 vhdl)所完成的電路設(shè)計,可以經(jīng)過簡 單的綜合與布局,快速的燒錄至 fpga 上進(jìn)行測試,是現(xiàn)代 ic 設(shè)計驗證的技術(shù)主流。這些可編輯元件可以被用來實現(xiàn)一些基本的邏輯門電路(比如and、or、xor、not)或者更復(fù)雜一些的組合功能比如解碼器或數(shù)學(xué)方程式。在大多數(shù)的fpga里面,這些可編輯的元件里也包含記憶元件例如觸發(fā)器(flipflop)或者其他更加完整的記憶塊。 系統(tǒng)設(shè)計師可以根據(jù)需要通過可編輯的連接把fpga內(nèi)部的邏輯塊連接起來,就好像一個電路試驗板被放在了一個芯片里。一個出廠后的成品fp

6、ga的邏輯塊和連接可以按照設(shè)計者而改變,所以fpga可以完成所需要的邏輯功能。fpga一般來說比asic(專用集成芯片)的速度要慢,無法完成復(fù)雜的設(shè)計,而且消耗更多的電能。但是他們也有很多的優(yōu)點比如可以快速成品,可以被修改來改正程序中的錯誤和更便宜的造價。廠商也可能會提供便宜的但是編輯能力差的fpga。因為這些芯片有比較差的可編輯能力,所以這些設(shè)計的開發(fā)是在普通的fpga上完成的,然后將設(shè)計轉(zhuǎn)移到一個類似于asic的芯片上。另外一種方法是用cpld(復(fù)雜可編程邏輯器件)。它的特點有:1)采用fpga設(shè)計asic電路(特定用途集成電路),用戶不需要投片生產(chǎn),就能得到合用的芯片。 2)fpga可做

7、其它全定制或半定制asic電路的中試樣片。 3)fpga內(nèi)部有豐富的觸發(fā)器和io引腳。 4)fpga是asic電路中設(shè)計周期最短、開發(fā)費用最低、風(fēng)險最小的器件之一。 5) fpga采用高速chmos工藝,功耗低,可以與cmos、ttl電平兼容。2.2 fpga的結(jié)構(gòu)與組成3通常fpga由布線資源分隔的可編程邏輯單元構(gòu)成陳列,又由可編程i/o單元圍繞陳列構(gòu)成整個芯片,排成陳列的邏輯單元由布線通道中的可編程內(nèi)斂線連接起來實現(xiàn)一定邏輯的功能。fpga 的內(nèi)部結(jié)構(gòu)大致分為5 個部分: 均勻分布的邏輯塊組成的邏輯陣列, 輸入i/o輸出塊( i/o塊) , 連線資源,全局網(wǎng)絡(luò), 嵌入式資源。fpga 器件

8、的組合邏輯塊是查找表結(jié)構(gòu)。i/o 塊可以配置成各種輸入、輸出模式。連線資源用于將不同的邏輯塊連接起來。全局網(wǎng)絡(luò)是連線資源中的特殊連線, 其性能比普通連線要好得多, 它延伸到器件內(nèi)所有的資源位置。全局網(wǎng)絡(luò)一般分配給時鐘信號, 構(gòu)成時鐘樹。有時也可以分配給復(fù)位信號、使能信號或者其他特殊信號。目前我們使用的的可編程邏輯單元一般由查找表和觸發(fā)器構(gòu)成。圖2.1所示即為cyclone系列的fpga芯片的邏輯單元(le)組成.圖 2.1 cyclone系列fpga芯片的邏輯單元(le)組成2.3 fpga的設(shè)計流程fpga 設(shè)計流程包括系統(tǒng)設(shè)計和設(shè)計實現(xiàn), 系統(tǒng)方案完成之后即進(jìn)入設(shè)計實現(xiàn)階段的工作, 它以系

9、統(tǒng)方案為輸入, 進(jìn)行rtl 級描述、功能仿真(rtl 級仿真)、邏輯綜合、布線前門級仿真、適配(布局布線)、時序仿真(布線后門級仿真)、時序分析、器件編程、系統(tǒng)驗證一系列流程的處理才能完成fpga芯片的設(shè)計, 其設(shè)計流程如圖2.2 所示。需要說明的是, 如果仿真驗證不對或者到走某一步有錯, 就要返回修改。有必要檢查和修改的地方有rtl 級描述、系統(tǒng)方案、約束和測試激勵等。一般情況下, 對rtl 級的描述即原理圖或者h(yuǎn)dl 設(shè)計代碼的修改最多也最有效。修改后要重新走一遍流程。有時要反復(fù)修改, 經(jīng)過多次這樣的迭代才能完成最后的設(shè)計。系統(tǒng)設(shè)計系統(tǒng)方案rtl級描述功能仿真邏輯綜合網(wǎng)表文件1布線前門及仿

10、真適配(布局布線)反標(biāo)文件網(wǎng)表文件2時序仿真時序分析器件編程系統(tǒng)驗證完成庫測試激勵約束 圖2.2 fpga設(shè)計流程在理論上,把vlsi (ultra large scale integration,超大規(guī)模集成電路)的設(shè)計描述為6個層次,即系統(tǒng)級(系統(tǒng)功能、參數(shù)定義)、算法級(描述系統(tǒng)功能行為)、rtl級、門級(邏輯門)、電路級(晶體管)、版圖級(物理工藝)。每一級又都分3 個側(cè)面來描述: 行為域描述、結(jié)構(gòu)域描述、物理域描述。但在實際情況中往往把算法級行為域描述或者rtl 級行為域描述都稱為行為級描述。對于fpga 的設(shè)計而言, 我們不需要關(guān)心電路級和版圖級, 只考慮系統(tǒng)級、算法級、rtl 級

11、、門級4 個層次的行為域描述和結(jié)構(gòu)域描述即可。本文上述的fpga 系統(tǒng)設(shè)計中的系統(tǒng)實際上是指系統(tǒng)級和算法級, 而“rtl 級描述”主要是指rtl級行為域的描述。在門級, 由綜合工具產(chǎn)生的門級網(wǎng)表來描述。fpga 的設(shè)計流程和相關(guān)概念說明如下:庫: 指fpga 器件廠家提供的工藝庫和eda 工具提供的標(biāo)準(zhǔn)通用庫(如ieee 庫等)。工藝庫中有各種宏功能模塊和基本功能單元, 含有它們的行為級模型、門級模型、布線模型等信息。需要說明的是, 系統(tǒng)行為仿真和rtl 級功能仿真有時要用到某種功能模塊, 例如ram 模型。對于ram 模型的控制信號, 不同的廠家其規(guī)定不一定相同, 如寫使能信號, 有的廠家規(guī)

12、定高電平有效, 有的廠家規(guī)定低電平有效。其實, 在廠家提供的工藝庫中, ram 模型有行為級模型、門級模型、版圖級模型等。而行為級模型只是規(guī)定其功能, 無延時信息, 跟工藝無關(guān), 但門級模型和版圖級模型跟工藝密切相關(guān)。解決的方法是系統(tǒng)行為仿真時可以使用高級語言自己建立一個模型或者調(diào)用廠家?guī)熘刑峁┑男袨榧壞P? 功能仿真時調(diào)用行為級模型, 時序仿真時調(diào)用門級模型。測試激勵: 指測試文件, 它調(diào)用fpga 設(shè)計的頂層模塊,同時產(chǎn)生頂層模塊需要的輸入信號, 稱之為激勵信號, 使用行為描述即可, 不要求可綜合。仿真時它作為最頂層的文件, 從而可以觀察fpga 的輸出是否正確。所有的仿真都可使用同一個測

13、試激勵。約束: 指對邏輯綜合和布局布線時的約束。包括器件型號、速度、面積、功耗、引腳分配、時鐘網(wǎng)絡(luò)資源的分配、模塊在器件中的定位等約束。一部分在軟件中設(shè)置, 一部分以約束文件的形式存在。1) 系統(tǒng)行為描述: 是指使用硬件描述語言hdl (hard2w are descrip t ion l anguage) 語句的全集來描述算法, 模擬系統(tǒng)的行為和功能, 不要求所有的語句都能夠綜合成電路。事實上, 有的語句是專為描述行為而創(chuàng)建的, 不能綜合(即不能用電路來實現(xiàn)其功能)。也可以使用高級語言如c 來進(jìn)行描述,此時往往要配合專用的系統(tǒng)設(shè)計工具來進(jìn)行描述與仿真, 如spw 等。這種系統(tǒng)算法級行為域的描

14、述可以盡量使用最簡潔的語句而不必過多地考慮其硬件實現(xiàn)的諸因素, 所以能較快建立系統(tǒng)行為模型, 進(jìn)行行為仿真。2) 系統(tǒng)行為仿真: 主要用來驗證系統(tǒng)方案是否正確、是否有缺陷, 并可根據(jù)仿真的結(jié)果來優(yōu)化系統(tǒng)方案和算法。它使用系統(tǒng)行為描述代碼、測試激勵、行為級模型庫等為輸入, 利用專用的仿真工具或者系統(tǒng)設(shè)計軟件來進(jìn)行功能仿真和優(yōu)化。3) rtl 級描述: 指原理圖(結(jié)構(gòu)描述) 或者使用可綜合的vhdl 語句來描述的設(shè)計(一般是行為描述)。eda 綜合軟件只能將rtl 級描述綜合成邏輯電路。利用綜合軟件可以檢查出所寫的代碼是否是rtl 級代碼。對簡單的設(shè)計而言, 可以直接從rtl 級開始設(shè)計, 但對大

15、規(guī)模的設(shè)計, 最好先寫系統(tǒng)行為級代碼進(jìn)行行為仿真。如果系統(tǒng)行為仿真正確, 就可以將行為級代碼轉(zhuǎn)化為rtl 級代碼。這種轉(zhuǎn)化稱之為高層次綜合或者行為級綜合。轉(zhuǎn)化的方法有2 種: 一是使用高層次綜合工具自動轉(zhuǎn)化, 例如syno psys 公司的behavior compiler; 二是使用手工方法轉(zhuǎn)化。手工方法使用很普遍, 原因是目前高層次綜合的理論和方法還不成熟, 其工具難求或者其性能沒有手工方法好。4) 功能仿真: 也叫rtl 級仿真, 是指不考慮延時信息的一種仿真, 只能驗證rtl 級的行為描述是否能達(dá)到所要求的功能。功能仿真需要的輸入是rtl 級代碼、測試激勵和庫(有時要調(diào)用工藝庫中宏功能

16、單元的行為級模型)??衫脤S玫姆抡婀ぞ哌M(jìn)行仿真, 如modelsim,vcs 等工具。如果仿真不對, 則需要檢查和修改rtl 級代碼或者測試激勵甚至系統(tǒng)方案。仿真的過程是先對源代碼進(jìn)行編譯, 檢查是否有語法錯誤。如果沒有錯誤, 就將源代碼轉(zhuǎn)換為一種中間格式, 便于仿真工具的內(nèi)部運算。編譯的結(jié)果自動存放在一個指定的工作目錄中, 仿真的結(jié)果主要以波形文件的形式存放。5) 邏輯綜合: 邏輯綜合是將rtl 級的行為描述轉(zhuǎn)化為使用門級單元的結(jié)構(gòu)描述。門級的結(jié)構(gòu)描述稱之為網(wǎng)表。網(wǎng)表文件主要記錄的是所用工藝庫門級單元之間的互連關(guān)系(即門級結(jié)構(gòu))。綜合的輸入需要rtl 級描述、約束和工藝庫。綜合時所加的約束

17、一般比較簡單, 如時鐘頻率、器件型號和其他綜合設(shè)置等。綜合的過程是translate (轉(zhuǎn)換) + map (映射) +optimize (優(yōu)化)。轉(zhuǎn)換是將rtl 級行為描述轉(zhuǎn)化為rtl 級結(jié)構(gòu)描述(使用與工藝無關(guān)的通用邏輯門符號表示)。映射是將轉(zhuǎn)換后的結(jié)果使用工藝庫門級單元的連接關(guān)系來表示, 并根據(jù)需要進(jìn)行優(yōu)化, 形成網(wǎng)表文件。映射是對某種目標(biāo)器件而言的一種資源分配和優(yōu)化操作。一般綜合工具能將轉(zhuǎn)換后的結(jié)果顯示為rtl 級原理圖, 也能將網(wǎng)表顯示為門級原理圖。網(wǎng)表文件中含門級單元的延時信息, 對連線延時有預(yù)估值或者為零, 不同的軟件處理的方法可能不同, 暫稱之為網(wǎng)表文件1。網(wǎng)表文件的格式可以表

18、示成標(biāo)準(zhǔn)格式(edif) , 也可以表示成vhdl 或者verilog_ hdl 格式(在綜合工具中設(shè)置)。綜合報告文件中含所用邏輯資源、預(yù)估出的時鐘最高頻率、關(guān)鍵路徑(延時最長的路徑, 可在軟件中顯示) 等信息。6) 布線前門級仿真: 是門級功能仿真, 一般不考慮延時。該仿真的輸入需要綜合后的門級網(wǎng)表、工藝庫和測試激勵。有的eda 工具不提供此仿真功能, 可以不做。7) 適配(布局布線) : 適配就是將網(wǎng)表文件映射到目標(biāo)器件中的一種操作, 是對目標(biāo)器件的第二次映射(第一次映射是綜合)。即對網(wǎng)表中的每一個門級單元在器件中定位(布局) ,并使用器件內(nèi)的連線資源按照網(wǎng)表中的連接關(guān)系連接起來(布線)

19、 同時要滿足引腳分配、時鐘線的分配等約束條件。適配的輸入需要網(wǎng)表文件1、工藝庫(要使用其中的布線模型等信息) 和約束。適配所加的約束比較多, 如引腳分配、時鐘樹的分配、模塊在器件中的定位等。適配后產(chǎn)生的文件有網(wǎng)表文件2、反標(biāo)文件和編程文件等。根據(jù)適配工具和適配設(shè)置的不同, 產(chǎn)生的網(wǎng)表文件可以具有不同的格式并可以設(shè)置為包含延時信息(包括門延時和線延時)。反標(biāo)文件含延時信息, 使用標(biāo)準(zhǔn)格式(sdf格式) 表示。編程文件用于對器件編程下載。8) 時序仿真: 是最接近真實情況的一種仿真, 因為該仿真含所有的延時信息和約束信息。時序仿真的輸入需要測試激勵、工藝庫門級單元模型、網(wǎng)表文件2 和反標(biāo)文件。如果

20、網(wǎng)表文件2 中含有延時信息, 則不需要反標(biāo)文件。時序仿真的結(jié)果跟延時關(guān)系極大。延時跟工藝有關(guān), 特別是深亞微米工藝, 線延時大大超過門延時, 所以總延時跟布局布線關(guān)系極大。如果仿真結(jié)果不對, 要從約束、綜合、布局布線、rtl 級代碼等環(huán)節(jié)上找原因, 也可以借助時序分析工具找原因。9) 時序分析: 使用eda 軟件的時序分析功能能夠分析所有時鐘的頻率、周期、關(guān)鍵路徑和其他所有時鐘路徑上的延時信息, 進(jìn)行建立時間和保持時間分析和輸入到輸出、輸入到寄存器、寄存器到輸出的延時分析等, 從而可以找出不滿足時序關(guān)系的原因所在。時序分析是一個輔助功能, 有時可以不做。10) 器件編程: 指將適配后產(chǎn)生的編程

21、文件下載到fpga或cpld 器件中。下載的過程就是一個改寫器件內(nèi)邏輯結(jié)構(gòu)的過程, 故稱之為編程。下載使用專用的編程器或者下載電纜。器件的編程接口一般使用10針jtag插座。習(xí)慣上, 對cpld器件的下載叫編程, 對fpga 器件的下載叫配置。cpld 器件基于eeprom 工藝或者fla sh 工藝, 掉電后信息不丟失。而fpga 器件基于sram 查找表工藝,掉電后編程信息會丟失, 在下次上電后需要重新加載編程文件。配置方式有多種模式,較常用的是ps 模式(調(diào)試時用) 和使用配置器件模式(產(chǎn)品中使用),它是使用一個eprom 型的配置芯片, 先將編程數(shù)據(jù)燒寫到配置芯片中, 配置芯片跟fpg

22、a 使用專用接口引腳相連。這樣, 上電后配置芯片自動給fpga 加載編程數(shù)據(jù)。也可使用單片機進(jìn)行配置。11) 系統(tǒng)驗證: 先將fpga 芯片在測試板上進(jìn)行功能驗證, 然后再到實際系統(tǒng)中驗證。系統(tǒng)驗證通過后就可以在產(chǎn)品中使用。至此, fpga 芯片設(shè)計完成。2.4 主控芯片cyclone簡介 cyclone3系列fpga是alera公司產(chǎn)品,它由六部分組成,分別為可編程輸入輸出單元、基本可編程邏輯單元、嵌入式塊ram、布線資源、底層嵌入功能單元和內(nèi)嵌專用硬核等??删幊梯斎?輸出單元:輸入/輸出(input/output)單元簡稱1/0單元,它們是芯片與外界電路的接口部分,完成不同電氣特性下對輸入

23、/輸出信號的驅(qū)動與匹配需求。為了使fpga有更加靈活的運用,目前大多數(shù)的fpga的1/0單元被設(shè)計為可編程模式,即通過軟件的靈活配置,可以配置不同的電氣標(biāo)準(zhǔn)與1/0物理特性;可以調(diào)整匹配阻抗特性,上拉,下拉電阻;可以調(diào)整輸出驅(qū)動電流的大小等?;究删幊踢壿媶卧夯究删幊踢壿媶卧?le,logicefement)是可編程邏輯的主體,可以根據(jù)設(shè)計靈活地改變其內(nèi)部連接與配置,完成不同邏輯功能。fpga一般是基于sram工藝的,其基本可編程邏輯單元幾乎都是由查找表和寄存器組成的。fpga內(nèi)部查找表一般完成純組合邏輯功能。fpga內(nèi)部有很靈活的寄存器,可以按要求配置成帶同步/異步復(fù)位和置位、時鐘使能的

24、觸發(fā)器,也可以配置成鎖存器。利用fpga內(nèi)部寄存器可完成同步時序的設(shè)計。嵌入式塊ram:目前大多數(shù)fpga都有內(nèi)嵌ram模塊 (blockram),大大拓展了fpga的應(yīng)用范圍和使用靈活性。fpga內(nèi)嵌的ram模塊一般都是靈活地配置了單端口ram(spram,singleportram),雙端口ram(dpram,doubleportsram)偽雙端口ram(pseudodpram)、cam(contentaddressablememo)、fifo(firstinfirstout)等常用存儲結(jié)構(gòu)。布線資源:fpga內(nèi)部有著豐富的布線資源,這些布線資源根據(jù)工藝、長度、寬度和分布位置的不同而被劃分

25、為不同的等級,有一些是全局性的專用布線資源,用以完成器件內(nèi)部的全局時鐘和全局復(fù)位/置位的布線;一些叫做長線資源,用以完成器件bank(分區(qū))間的一些高速信號和一些第二全局時鐘信號的布線;還有一些叫做短線資源,用以完成基本邏輯單元間的邏輯互聯(lián)與布線;另外,在基本邏輯單元內(nèi)部還有著各式各樣的布線資源和專用時鐘、復(fù)位等控制信號線。2.5 硬件描述語言vhdlvhdl9語言是一種用于電路設(shè)計的高級語言。它在80年代的后期出現(xiàn)。最初是由美國國防部開發(fā)出來供美軍用來提高設(shè)計的可靠性和縮減開發(fā)周期的一種使用范圍較小的設(shè)計語言 。vhdl的英文全寫是:vhsic(very high speed integra

26、ted circuit)hardware description language.翻譯成中文就是超高速集成電路硬件描述語言。因此它的應(yīng)用主要是應(yīng)用在數(shù)字電路的設(shè)計中。目前,它在中國的應(yīng)用多數(shù)是用在fpga/cpld/epld的設(shè)計中。當(dāng)然在一些實力較為雄厚的單位,它也被用來設(shè)計asic.vhdl主要用于描述數(shù)字系統(tǒng)的結(jié)構(gòu),行為,功能和接口。除了含有許多具有硬件特征的語句外,vhdl的語言形式、描述風(fēng)格以及語法是十分類似于一般的計算機高級語言。vhdl的程序結(jié)構(gòu)特點是將一項工程設(shè)計,或稱設(shè)計實體(可以是一個元件,一個電路模塊或一個系統(tǒng))分成外部(或稱可視部分,及端口)和內(nèi)部(或稱不可視部分),

27、既涉及實體的內(nèi)部功能和算法完成部分。在對一個設(shè)計實體定義了外部界面后,一旦其內(nèi)部開發(fā)完成后,其他的設(shè)計就可以直接調(diào)用這個實體。這種將設(shè)計實體分成內(nèi)外部分的概念是vhdl系統(tǒng)設(shè)計的基本點。 底層嵌入功能單元:底層嵌入式功能單元是指那些通用程度較高的嵌入式模塊,比如pll(phaselockedloop)、dll(delaylockedloop)、dsp、cpu等。本設(shè)計中用到了pll嵌入式單元,該模塊單元是通過開發(fā)平臺的ip核生成器自動生成的(內(nèi)嵌專用硬核里的內(nèi)嵌專用硬核是有別于底層嵌入功能單元的,主要是指那些通用性相對較弱、不是所有fpga器件都包括的硬核)。與其他硬件描述語言相比,vhdl具

28、有以下特點:1)功能強大、設(shè)計靈活:vhdl具有功能強大的語言結(jié)構(gòu),可以用簡潔明確的源代碼來描述復(fù)雜的邏輯控制。它具有多層次的設(shè)計描述功能,層層細(xì)化,最后可直接生成電路級描述。vhdl支持同步電路、異步電路和隨機電路的設(shè)計,這是其他硬件描述語言所不能比擬的。vhdl還支持各種設(shè)計方法,既支持自底向上的設(shè)計,又支持自頂向下的設(shè)計;既支持模塊化設(shè)計,又支持層次化設(shè)計。2)支持廣泛、易于修改:由于vhdl已經(jīng)成為ieee標(biāo)準(zhǔn)所規(guī)范的硬件描述語言,目前大多數(shù)eda工具幾乎都支持vhdl,這為vhdl的進(jìn)一步推廣和廣泛應(yīng)用奠定了基礎(chǔ)。在硬件電路設(shè)計過程中,主要的設(shè)計文件是用vhdl編寫的源代碼,因為vh

29、dl易讀和結(jié)構(gòu)化,所以易于修改設(shè)計。 3)強大的系統(tǒng)硬件描述能力:vhdl具有多層次的設(shè)計描述功能,既可以描述系統(tǒng)級電路,又可以描述門級電路。而描述既可以采用行為描述、寄存器傳輸描述或結(jié)構(gòu)描述,也可以采用三者混合的混合級描述。另外,vhdl支持慣性延遲和傳輸延遲,還可以準(zhǔn)確地建立硬件電路模型。vhdl支持預(yù)定義的和自定義的數(shù)據(jù)類型,給硬件描述帶來較大的自由度,使設(shè)計人員能夠方便地創(chuàng)建高層次的系統(tǒng)模型。 4)獨立于器件的設(shè)計、與工藝無關(guān):設(shè)計人員用vhdl進(jìn)行設(shè)計時,不需要首先考慮選擇完成設(shè)計的器件,就可以集中精力進(jìn)行設(shè)計的優(yōu)化。當(dāng)設(shè)計描述完成后,可以用多種不同的器件結(jié)構(gòu)來實現(xiàn)其功能。5)很強的

30、移植能力:vhdl是一種標(biāo)準(zhǔn)化的硬件描述語言,同一個設(shè)計描述可以被不同的工具所支持,使得設(shè)計描述的移植成為可能。 6)易于共享和復(fù)用:vhdl采用基于庫(library)的設(shè)計方法,可以建立各種可再次利用的模塊。這些模塊可以預(yù)先設(shè)計或使用以前設(shè)計中的存檔模塊,將這些模塊存放到庫中,就可以在以后的設(shè)計中進(jìn)行復(fù)用,可以使設(shè)計成果在設(shè)計人員之間進(jìn)行交流和共享,減少硬件電路設(shè)計。3 quartus ii介紹3.1 quartus ii開發(fā)軟件quartus ii是altera公司提供的fpga/cpld開發(fā)集成環(huán)境,altera是世界上最大的可編程邏輯器件供應(yīng)商之一。quartus ii在21世紀(jì)初推

31、出,是altera前一代altera的fpga/cpld集成開發(fā)環(huán)境max+plus ii25的更新?lián)Q代產(chǎn)品,其界面友好,使用便捷。在quartus ii上可以完成整個設(shè)計流程,它提供了一種與結(jié)構(gòu)無關(guān)的設(shè)計環(huán)境,使設(shè)計者能方便的進(jìn)行設(shè)計輸入、快速處理和器件編程。3.2輸入方式quartus ii13 軟件的設(shè)計輸入方法有多種,主要包括原理圖輸入方式;文本輸入方式。另外,還可以利用工業(yè)標(biāo)準(zhǔn)的eda設(shè)計工具生成設(shè)計文件。該軟件還可以把這些設(shè)計輸入方式綜合為一個設(shè)計體系,并允許信息在各應(yīng)用程序間自由轉(zhuǎn)換。(1)設(shè)計的原理圖輸入用 altera 應(yīng)用軟件 quartus ii 提供的各種原理圖庫進(jìn)行設(shè)

32、計輸入是一種最為直接的輸入方式。用這種方式輸入時,為提高效率,應(yīng)采用自頂向下邏輯分塊,把大規(guī)模的電路劃分成若干小塊的方法。一般而言,如果對系統(tǒng)很了解,并且系統(tǒng)速率較高,或在大系統(tǒng)中對時間特性要求較高的部分,可以采用這種方法。原理圖輸入效率較低,但容易實現(xiàn)仿真,便于信號的觀察以及電路的調(diào)整。(2)設(shè)計的硬件描述語言輸入quartus ii 軟件包含一個集成的text editor(文本編輯程序),適合于輸入和編輯用vhdl、verilog hdl或ahdl32(altera硬件描述語言)編寫的hdl(硬件描述語言)設(shè)計文件。quartus ii compiler可以對這些語言表達(dá)的邏輯進(jìn)行綜合,

33、并將其映射到altera的任何器件中。采用語言描述的優(yōu)點是效率較高,結(jié)果也較容易仿真,信號觀察也較方便,在不同的設(shè)計輸入庫之間轉(zhuǎn)換非常方便。但語言輸入必須依賴綜合器,只有好的綜合器才能把語言綜合成優(yōu)化的電路。對于大量規(guī)范的、易于語言描述的、易于綜合的、速率較低的電路,可以采用這種輸入方法。3.3 設(shè)計的綜合quartus ii 處理一個設(shè)計時,綜合(compiler)在設(shè)計文件中讀取信息并產(chǎn)生編程文件和仿真文件,定時分析程序(timing analyzer)可分析設(shè)計的定時,信息處理程序(messageprocessor)可自動定位錯誤。(1)自動錯誤定位quartus ii 的 messag

34、e processor 與 quartus ii 的所有應(yīng)用程序通信,可以給出信息(錯誤、警告等)。設(shè)計者可以利用它自動打開有錯誤源的文件,并以高亮度方式顯示錯誤位置。(2)邏輯綜合與試配quartus ii compiler 的 logic synthesize(邏輯綜合)模塊對設(shè)計方案進(jìn)行邏輯綜合并能看到設(shè)計實現(xiàn)的真正結(jié)果,該模塊選擇合適的邏輯化簡算法,去除冗余邏輯,確保對某種特定的器件結(jié)構(gòu)盡可能有效地使用器件的邏輯資源,還可以去除設(shè)計方案中沒用的邏輯。altera 提供三種“現(xiàn)成的”綜合方式,可以為多種邏輯綜合選擇指定設(shè)置,可選擇 cheng 缺省方式,以設(shè)置缺省的綜合選擇;可以建立定制

35、方式;還可以在被選擇的邏輯功能中指定一些單獨的綜合選擇。綜合選擇是面向特定器件系列專門設(shè)置的,這樣可以發(fā)揮器件結(jié)構(gòu)的優(yōu)勢。compiler的fitter(試配)模塊可以經(jīng)過綜合的設(shè)計恰當(dāng)?shù)赜靡粋€或多個器件實現(xiàn),這種自動試配功能使設(shè)計者得以從冗余的布局與布線工作中解脫出來。fitter生成報告文件(.rp),可以展示設(shè)計的具體實現(xiàn)以及器件中未使用的資源。3.4 設(shè)計的仿真電路設(shè)計輸入完以后,首先需要檢驗輸入是否正確,這是一項簡單的邏輯檢查, quartus ii 提供功能編譯的選項。此時,只運行仿真網(wǎng)絡(luò)表的提取,而不作布局布線,所以,此時的仿真沒有延時信息,所有的延時均為零延時,而且可以預(yù)測所有

36、的信號,對于初步的功能檢測非常方便。在仿真時需加入激勵信號,該激勵信號可以用 quartus ii 軟件中的波形編譯器直接編譯成波形文件,還可以先用文本編輯器按軟件給定的語法規(guī)則編譯成文本文件,再轉(zhuǎn)換成波形文件,也可以二者結(jié)合進(jìn)行。常用的方法是對于時鐘或簡單的波形信號用波形編輯器輸入,而較復(fù)雜的信號則用文本編譯器生成。仿真時需事先在波形文件中加入想要觀測的信號名,信號名可通過菜單中的節(jié)點列表選擇,此時,所有的節(jié)點的信號都是可以觀測的。如果檢查到錯誤,則需要重新輸入,重復(fù)這個過程。功能檢查完成后,首先需要進(jìn)行編譯,這時應(yīng)選擇帶延時的完全的編譯過程。對每一個設(shè)計項目,都有一個配置文件acf,所有的

37、配置參數(shù)都存在這個文件里。如果需要修改配置,既可在菜單上作選擇,也可以直接修改次文件。主要的配置參數(shù)包括器件類型、管腳的設(shè)置、速率及面積的比重、時間參數(shù)的要求、布線時的設(shè)置等。編譯完成以后,可得到報告文件、延時文件、可仿真網(wǎng)絡(luò)表文件及配置文件,利用功能仿真時生成的激勵波形可進(jìn)行仿真。如果要想下次的布線結(jié)果在本次基礎(chǔ)上進(jìn)行,則可以利用反主標(biāo)的方法,把配置結(jié)果寫入acf文件中,下次編譯只需用此afc文件即可。編譯完成以后,還可以利用布局軟件floorplan直接調(diào)整內(nèi)部布局,這種方法對于時間關(guān)系的調(diào)整非常有用。quartus ii 的仿真器具有很強的靈活性,可以控制對單器件或多器件設(shè)計的仿真。仿真

38、器使用編譯期間生成的二進(jìn)制仿真網(wǎng)絡(luò)表進(jìn)行功能、定時的仿真,或把組合連接起來的多個器件作為一個設(shè)計進(jìn)行仿真??梢允褂煤喢鞯南蛄枯斎胝Z言定義輸入激勵,也可以使用 quartus ii 的波形編輯程序直接畫出波形。仿真結(jié)果可以在波形編輯器或文件編輯器中看到,也可以作為波形文件或文本文件打印出來。為便于比較設(shè)計者可以使用波形編輯器把兩次仿真的結(jié)果重疊起來。4 序列檢測器電路的設(shè)計4.1 序列檢測器電路總體結(jié)構(gòu)設(shè)計序列檢測器總體主要由脈沖序列發(fā)生器電路、脈沖序列信號檢測器電路、十六進(jìn)制計數(shù)器電路、計數(shù)顯示電路、時鐘分頻電路、串并轉(zhuǎn)換電路、奇偶校驗電路組成,其中脈沖序列發(fā)生器電路的功能是生成串行的序列供脈

39、沖序列信號檢測器從中檢測待檢測的數(shù)據(jù),脈沖序列信號檢測器檢測輸入的序列中有沒有待檢測的序列,十六進(jìn)制計數(shù)器計數(shù)序列檢測器檢測到特定序列的次數(shù)并以四位二進(jìn)制進(jìn)行輸出,計數(shù)顯示電路是把檢測到的次數(shù)通過七段譯碼器顯示出來,時鐘分頻電路是將外部晶振時鐘進(jìn)行分頻提供給需要時鐘的各個電路,串并轉(zhuǎn)換電路是將經(jīng)過檢測的串行序列轉(zhuǎn)換成并行輸出奇偶校驗電路進(jìn)行奇偶校驗??傮w電路設(shè)計框圖圖4.1 所示:8路檢測器8路脈沖序列發(fā)生器8 路十 六進(jìn) 制計 數(shù)器計數(shù)顯示器外部晶振分頻器串并轉(zhuǎn) 換奇 偶校 驗4.1序列檢測器電路設(shè)計框圖4.2 8路脈沖序列發(fā)生器電路設(shè)計及仿真8路序列發(fā)生器20是指在同步脈沖作用下循環(huán)地產(chǎn)生

40、8路的一串周期性的二進(jìn)制信號,本電路設(shè)計實現(xiàn)產(chǎn)生8路64位的二進(jìn)制序列。表4.1各路脈沖序列發(fā)生器發(fā)出的序列。 路序產(chǎn)生序列1110011000110010100001111000110011001100111001100011001010000111111101100011001010000111110011001100010011100110001100101000011111100110101100101000001110001100110011001010011000110010100001011111111101000010111111110011001011111111001100

41、0110010100001110001110011011010011100001111101101111001100111001100011001010000111000000001010010100000000110000110000000010110001000000001001111111100110001100101000011100110011110011001110011000111010100001110001110001100110001110010101010101010100101100110110111101010101 表4.1 各路脈沖序列發(fā)生器產(chǎn)生的序列其頂層文件v

42、hdl代碼如下:library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity xlfsq isport(clk:in std_logic; clr:in std_logic; dout1,dout2,dout3,dout4,dout5,dout6,dout7,dout8:out std_logic);end;architecture one of xlfsq is component xlfsq1 port(clk:in std_logic; clr:in std_logic; dout:o

43、ut std_logic);end component;component xlfsq2 port(clk:in std_logic; clr:in std_logic; dout:out std_logic);end component;component xlfsq3 port(clk:in std_logic; clr:in std_logic; dout:out std_logic);end component;component xlfsq4 port(clk:in std_logic; clr:in std_logic; dout:out std_logic);end compon

44、ent;component xlfsq5 port(clk:in std_logic; clr:in std_logic; dout:out std_logic);end component;component xlfsq6 port(clk:in std_logic; clr:in std_logic; dout:out std_logic);end component;component xlfsq7 port(clk:in std_logic; clr:in std_logic; dout:out std_logic);end component;component xlfsq8 por

45、t(clk:in std_logic; clr:in std_logic; dout:out std_logic);end component;beginu1: xlfsq1 port map(clk=clk,clr=clr,dout=dout1);u2: xlfsq2 port map(clk=clk,clr=clr,dout=dout2);u3: xlfsq3 port map(clk=clk,clr=clr,dout=dout3);u4: xlfsq4 port map(clk=clk,clr=clr,dout=dout4);u5: xlfsq5 port map(clk=clk,clr=clr,dout=dout5);u6: xlfsq6 port map(clk=clk,clr=clr,dout=dout6);u7: xlfsq7 port map(clk=clk,clr=clr,dout=dout7);u8: xlfsq8 port map(clk=clk,clr=clr,dout=dout8);end;其中第一路的vhdl設(shè)計代碼如下:library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all;

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論