版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、摘要:脈沖序列檢測(cè)器廣泛應(yīng)用于現(xiàn)代數(shù)字通信系統(tǒng)中,隨著通信技術(shù)的發(fā)展,對(duì)多路脈沖序列信號(hào)檢測(cè)要求越來越高。隨著器件復(fù)雜程度的提高,電路邏輯圖變得過于復(fù)雜,不便于設(shè)計(jì)。vhdl(vhsic hardware description language)是隨著可編程邏輯器件的發(fā)展而發(fā)展起來的一種硬件描述語(yǔ)言。vhdl具有極強(qiáng)的描述能力,能支持系統(tǒng)行為級(jí)、寄存器輸級(jí)和門級(jí)三個(gè)不同層次的設(shè)計(jì)。本文針對(duì)傳統(tǒng)的脈沖序列檢測(cè)器方案,提出了一種基于fpga的脈沖序列檢測(cè)器設(shè)計(jì)的新方案,該方案基于當(dāng)今通訊信息產(chǎn)業(yè)的發(fā)展,不斷追求較低數(shù)據(jù)傳輸誤碼率,其中較為成熟的編碼方法如漢明碼、奇偶校驗(yàn)碼、循環(huán)冗余碼等編碼技術(shù),
2、被廣泛應(yīng)用于計(jì)算機(jī)、電子通信、控制等各個(gè)領(lǐng)域。其中漢明碼是一種能夠糾正一位錯(cuò)碼檢測(cè)兩位錯(cuò)碼且編碼效率較高的線性分組碼。實(shí)驗(yàn)?zāi)K是采用vhdl語(yǔ)言編寫,結(jié)合eda技術(shù)基于fpga在數(shù)字邏輯領(lǐng)域的優(yōu)勢(shì)和軟件設(shè)計(jì)來實(shí)現(xiàn),本實(shí)驗(yàn)包含五個(gè)模塊,分別為編碼模塊、譯碼模塊、寄存器模塊、序列檢測(cè)器以及頂層模塊,該序列檢測(cè)器最大的特點(diǎn)是能夠在檢測(cè)傳輸數(shù)據(jù)的同時(shí)檢測(cè)到所有一位或兩位錯(cuò)碼并糾正一位錯(cuò)碼數(shù)據(jù)。關(guān)鍵詞: fpga 硬件描述語(yǔ)言vhdl 序列檢測(cè)器 漢明碼 目錄1 fpga簡(jiǎn)介 1.1 什么是fpga(5) 1.2 fpga由什么構(gòu)成(6) 1.3 fpga設(shè)計(jì)步驟(6) 1.4 硬件描述語(yǔ)言vhdl(1
3、1)2 序列檢測(cè)器的設(shè)計(jì)特點(diǎn)及原理 2.1 實(shí)驗(yàn)設(shè)計(jì)的特點(diǎn)(13) 2.2 漢明碼編碼和譯碼原理(14)3 系統(tǒng)分析及總體設(shè)計(jì) 3.1 系統(tǒng)工作過程分析(15) 3.2 系統(tǒng)工作框圖(15) 3.3 功能模塊的功能介紹(16)4 功能分模塊設(shè)計(jì) 4.1 編碼模塊(16) 4.2 譯碼模塊 (17) 4.3 特殊寄存器模塊 (19) 4.4 序列檢測(cè)器模塊 (20) 4.5 頂層模塊 (21)5 硬件的制作與調(diào)試(22)6 實(shí)驗(yàn)總結(jié)(22)7 致謝(22)8 參考文獻(xiàn)(23)引言:本創(chuàng)新題目基于當(dāng)今通訊信息產(chǎn)業(yè)的發(fā)展,不斷追求較低數(shù)據(jù)傳輸誤碼率,編碼糾錯(cuò)技術(shù)日益成熟的背景下,隨著差錯(cuò)控制編碼技術(shù)
4、的蓬勃發(fā)展,作為信道傳輸過程抗干擾的有效手段,其中較為成熟的編碼方法如漢明碼、奇偶校驗(yàn)碼、循環(huán)冗余碼等編碼技術(shù),被廣泛應(yīng)用于計(jì)算機(jī)、電子通信、控制等各個(gè)領(lǐng)域。脈沖序列檢測(cè)器在現(xiàn)代數(shù)字通信系統(tǒng)中發(fā)揮著重要的作用,通過中小規(guī)模的數(shù)字集成電路構(gòu)成的傳統(tǒng)脈沖序列檢測(cè)器電路往往存在電路設(shè)計(jì)復(fù)雜,體積大,抗干擾能力差以及設(shè)計(jì)困難、設(shè)計(jì)周期長(zhǎng)等缺點(diǎn)。因此脈沖序列檢測(cè)器電路的模塊化、集成化已成為發(fā)展趨勢(shì).它不僅可以使系統(tǒng)體積減小、重量減輕且功耗降低,同時(shí)可使系統(tǒng)的可靠性大大提高。隨著電子技術(shù)的發(fā)展,特別是專用集成電路(asic)設(shè)計(jì)技術(shù)的日趨完善,數(shù)字化的電子自動(dòng)化設(shè)計(jì)(eda)工具給電子設(shè)計(jì)帶來了巨大變革,
5、尤其是硬件描述語(yǔ)言的出現(xiàn),解決了傳統(tǒng)電路原理圖設(shè)計(jì)系統(tǒng)工程的諸多不便。隨著asic技術(shù)、eda技術(shù)的不斷完善和發(fā)展以及vhdl、hdl等通用性好、移植性強(qiáng)的硬件描述語(yǔ)言的普及,fpga等可編程邏輯器件必將在現(xiàn)代數(shù)字應(yīng)用系統(tǒng)中得到廣泛的應(yīng)用,發(fā)揮越來越重要的作用。 在這種背景下,針對(duì)大規(guī)??删幊踢壿嬈骷pga器件的集成度高、工作速度快、編程方便、價(jià)格較低,易于實(shí)現(xiàn)設(shè)備的可編程設(shè)計(jì)的特點(diǎn),用硬件描述語(yǔ)言設(shè)計(jì)fpga器件來實(shí)現(xiàn)脈沖序列檢測(cè)器。應(yīng)用可編程邏輯器件fpga,來完成高速采編器的功能,具有速度更快、可靠性更高、調(diào)試方便的優(yōu)點(diǎn),而且電路簡(jiǎn)單,體積更小,利用vhdl開發(fā)的脈沖序列檢測(cè)器,其通用
6、性和基于模塊的設(shè)計(jì)方法可以節(jié)省大量的人力,大大地縮短設(shè)計(jì)周期,在工程應(yīng)用中已經(jīng)取得了顯著的效果??梢?,基于fpga的脈沖序列檢測(cè)器的設(shè)計(jì)是現(xiàn)代數(shù)字通信的發(fā)展要求,從而使得其具有更好的發(fā)展前景和使用價(jià)值。1、fpga簡(jiǎn)介1.1 什么是fpgafpga(fieldprogrammable gate array),即現(xiàn)場(chǎng)可編程門陣列,它是在pal、gal、cpld等可編程器件的基礎(chǔ)上進(jìn)一步發(fā)展的產(chǎn)物。它是作為專用集成電路(asic)領(lǐng)域中的一種半定制電路而出現(xiàn)的,既解決了定制電路的不足,又克服了原有可編程器件門電路數(shù)有限的缺點(diǎn)。目前以硬件描述語(yǔ)言(verilog 或 vhdl)所完成的電路設(shè)計(jì),可以
7、經(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的邏輯塊和連接可以按照設(shè)計(jì)者而改變,所以fpga可以完成所需要的邏輯功能。 fpga一般來說比asic(專用集成芯片)的速度要
8、慢,無(wú)法完成復(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ù)雜可編程邏輯器件備)。它的特點(diǎn)有:(1)采用fpga設(shè)計(jì)asic電路(特定用途集成電路),用戶不需要投片生產(chǎn),就能得到合用的芯片。 (2)fpga可做其它全定制或半定制asic電路的中試樣片。 (3)fpga內(nèi)部有豐富的觸發(fā)器和io引腳。 (4)fpga是asic電路中設(shè)
9、計(jì)周期最短、開發(fā)費(fèi)用最低、風(fēng)險(xiǎn)最小的器件之一。 (5) fpga采用高速chmos工藝,功耗低,可以與cmos、ttl電平兼容。1.2 fpga由什么構(gòu)成通常fpga由布線資源分隔的可編程邏輯單元構(gòu)成陳列,又由可編程i/o單元圍繞陳列構(gòu)成整個(gè)芯片,排成陳列的邏輯單元由布線通道中的可編程內(nèi)斂線連接起來實(shí)現(xiàn)一定邏輯的功能。fpga 的內(nèi)部結(jié)構(gòu)大致分為5 個(gè)部分: 均勻分布的邏輯塊組成的邏輯陣列, 輸入i/o輸出塊( i/o塊) , 連線資源,全局網(wǎng)絡(luò), 嵌入式資源。fpga 器件的組合邏輯塊是查找表結(jié)構(gòu)。i/o 塊可以配置成各種輸入、輸出模式。連線資源用于將不同的邏輯塊連接起來。全局網(wǎng)絡(luò)是連線資源
10、中的特殊連線, 其性能比普通連線要好得多, 它延伸到器件內(nèi)所有的資源位置。全局網(wǎng)絡(luò)一般分配給時(shí)鐘信號(hào), 構(gòu)成時(shí)鐘樹。有時(shí)也可以分配給復(fù)位信號(hào)、使能信號(hào)或者其他特殊信號(hào)。目前我們使用的的可編程邏輯單元一般由查找表和觸發(fā)器構(gòu)成。下圖所示即為cyclone系列的fpga芯片的邏輯單元(le)組成.圖1.1 fpga芯片的邏輯單元圖1.3 fpga設(shè)計(jì)步驟fpga 設(shè)計(jì)流程包括系統(tǒng)設(shè)計(jì)和設(shè)計(jì)實(shí)現(xiàn), 系統(tǒng)方案完成之后即進(jìn)入設(shè)計(jì)實(shí)現(xiàn)階段的工作, 它以系統(tǒng)方案為輸入, 進(jìn)行rtl 級(jí)描述、功能仿真(rtl 級(jí)仿真)、邏輯綜合、布線前門級(jí)仿真、適配(布局布線)、時(shí)序仿真(布線后門級(jí)仿真)、時(shí)序分析、器件編程、
11、系統(tǒng)驗(yàn)證一系列流程的處理才能完成fpga芯片的設(shè)計(jì), 其設(shè)計(jì)流程如下圖 所示。需要說明的是, 如果仿真驗(yàn)證不對(duì)或者到走某一步有錯(cuò), 就要返回修改。有必要檢查和修改的地方有rtl 級(jí)描述、系統(tǒng)方案、約束和測(cè)試激勵(lì)等。一般情況下, 對(duì)rtl 級(jí)的描述即原理圖或者h(yuǎn)dl 設(shè)計(jì)代碼的修改最多也最有效。修改后要重新走一遍流程。有時(shí)要反復(fù)修改, 經(jīng)過多次這樣的迭代才能完成最后的設(shè)計(jì)。圖1.2 fpga設(shè)計(jì)流程圖在理論上, 把vlsi (ultra large scale integration, 超大規(guī)模集成電路) 的設(shè)計(jì)描述為6 個(gè)層次 , 即系統(tǒng)級(jí)(系統(tǒng)功能、參數(shù)定義)、算法級(jí)(描述系統(tǒng)功能行為)、r
12、tl 級(jí)、門級(jí)(邏輯門)、電路級(jí)(晶體管)、版圖級(jí)(物理工藝)。每一級(jí)又都分3 個(gè)側(cè)面來描述: 行為域描述、結(jié)構(gòu)域描述、物理域描述。但在實(shí)際情況中往往把算法級(jí)行為域描述或者rtl 級(jí)行為域描述都稱為行為級(jí)描述。對(duì)于fpga 的設(shè)計(jì)而言, 我們不需要關(guān)心電路級(jí)和版圖級(jí), 只考慮系統(tǒng)級(jí)、算法級(jí)、rtl 級(jí)、門級(jí)4 個(gè)層次的行為域描述和結(jié)構(gòu)域描述即可。本文上述的fpga 系統(tǒng)設(shè)計(jì)中的系統(tǒng)實(shí)際上是指系統(tǒng)級(jí)和算法級(jí), 而“rtl 級(jí)描述”主要是指rtl級(jí)行為域的描述。在門級(jí), 由綜合工具產(chǎn)生的門級(jí)網(wǎng)表來描述。fpga 的設(shè)計(jì)流程和相關(guān)概念說明如下:庫(kù): 指fpga 器件廠家提供的工藝庫(kù)和eda 工具提供
13、的標(biāo)準(zhǔn)通用庫(kù)(如ieee 庫(kù)等)。工藝庫(kù)中有各種宏功能模塊和基本功能單元, 含有它們的行為級(jí)模型、門級(jí)模型、布線模型等信息。需要說明的是, 系統(tǒng)行為仿真和rtl 級(jí)功能仿真有時(shí)要用到某種功能模塊, 例如ram 模型。對(duì)于ram 模型的控制信號(hào), 不同的廠家其規(guī)定不一定相同, 如寫使能信號(hào), 有的廠家規(guī)定高電平有效, 有的廠家規(guī)定低電平有效。其實(shí), 在廠家提供的工藝庫(kù)中, ram 模型有行為級(jí)模型、門級(jí)模型、版圖級(jí)模型等。而行為級(jí)模型只是規(guī)定其功能, 無(wú)延時(shí)信息, 跟工藝無(wú)關(guān), 但門級(jí)模型和版圖級(jí)模型跟工藝密切相關(guān)。解決的方法是系統(tǒng)行為仿真時(shí)可以使用高級(jí)語(yǔ)言自己建立一個(gè)模型或者調(diào)用廠家?guī)熘刑峁┑?/p>
14、行為級(jí)模型, 功能仿真時(shí)調(diào)用行為級(jí)模型, 時(shí)序仿真時(shí)調(diào)用門級(jí)模型。測(cè)試激勵(lì): 指測(cè)試文件, 它調(diào)用fpga 設(shè)計(jì)的頂層模塊,同時(shí)產(chǎn)生頂層模塊需要的輸入信號(hào), 稱之為激勵(lì)信號(hào), 使用行為描述即可, 不要求可綜合。仿真時(shí)它作為最頂層的文件, 從而可以觀察fpga 的輸出是否正確。所有的仿真都可使用同一個(gè)測(cè)試激勵(lì)。約束: 指對(duì)邏輯綜合和布局布線時(shí)的約束。包括器件型號(hào)、速度、面積、功耗、引腳分配、時(shí)鐘網(wǎng)絡(luò)資源的分配、模塊在器件中的定位等約束。一部分在軟件中設(shè)置, 一部分以約束文件的形式存在。(1) 系統(tǒng)行為描述: 是指使用硬件描述語(yǔ)言hdl (hardware description language
15、) 語(yǔ)句的全集來描述算法, 模擬系統(tǒng)的行為和功能, 不要求所有的語(yǔ)句都能夠綜合成電路。事實(shí)上, 有的語(yǔ)句是專為描述行為而創(chuàng)建的, 不能綜合(即不能用電路來實(shí)現(xiàn)其功能)。也可以使用高級(jí)語(yǔ)言如c 來進(jìn)行描述,此時(shí)往往要配合專用的系統(tǒng)設(shè)計(jì)工具來進(jìn)行描述與仿真, 如spw 等。這種系統(tǒng)算法級(jí)行為域的描述可以盡量使用最簡(jiǎn)潔的語(yǔ)句而不必過多地考慮其硬件實(shí)現(xiàn)的諸因素, 所以能較快建立系統(tǒng)行為模型, 進(jìn)行行為仿真。(2) 系統(tǒng)行為仿真: 主要用來驗(yàn)證系統(tǒng)方案是否正確、是否有缺陷, 并可根據(jù)仿真的結(jié)果來優(yōu)化系統(tǒng)方案和算法。它使用系統(tǒng)行為描述代碼、測(cè)試激勵(lì)、行為級(jí)模型庫(kù)等為輸入, 利用專用的仿真工具或者系統(tǒng)設(shè)計(jì)軟
16、件來進(jìn)行功能仿真和優(yōu)化。(3) rtl 級(jí)描述: 指原理圖(結(jié)構(gòu)描述) 或者使用可綜合的hdl 語(yǔ)句來描述的設(shè)計(jì)(一般是行為描述)。eda 綜合軟件只能將rtl 級(jí)描述綜合成邏輯電路。利用綜合軟件可以檢查出所寫的代碼是否是rtl 級(jí)代碼。對(duì)簡(jiǎn)單的設(shè)計(jì)而言, 可以直接從rtl 級(jí)開始設(shè)計(jì), 但對(duì)大規(guī)模的設(shè)計(jì), 最好先寫系統(tǒng)行為級(jí)代碼進(jìn)行行為仿真。如果系統(tǒng)行為仿真正確, 就可以將行為級(jí)代碼轉(zhuǎn)化為rtl 級(jí)代碼。這種轉(zhuǎn)化稱之為高層次綜合或者行為級(jí)綜合。轉(zhuǎn)化的方法有2 種: 一是使用高層次綜合工具自動(dòng)轉(zhuǎn)化, 例如syno psys 公司的behavior compiler3 ; 二是使用手工方法轉(zhuǎn)化。
17、手工方法使用很普遍, 原因是目前高層次綜合的理論和方法還不成熟, 其工具難求或者其性能沒有手工方法好。(4) 功能仿真: 也叫rtl 級(jí)仿真, 是指不考慮延時(shí)信息的一種仿真, 只能驗(yàn)證rtl 級(jí)的行為描述是否能達(dá)到所要求的功能。功能仿真需要的輸入是rtl 級(jí)代碼、測(cè)試激勵(lì)和庫(kù)(有時(shí)要調(diào)用工藝庫(kù)中宏功能單元的行為級(jí)模型)。可利用專用的仿真工具進(jìn)行仿真, 如modelsim,vcs 等工具。如果仿真不對(duì), 則需要檢查和修改rtl 級(jí)代碼或者測(cè)試激勵(lì)甚至系統(tǒng)方案。仿真的過程是先對(duì)源代碼進(jìn)行編譯, 檢查是否有語(yǔ)法錯(cuò)誤。如果沒有錯(cuò)誤, 就將源代碼轉(zhuǎn)換為一種中間格式, 便于仿真工具的內(nèi)部運(yùn)算。編譯的結(jié)果自
18、動(dòng)存放在一個(gè)指定的工作目錄中, 仿真的結(jié)果主要以波形文件的形式存放。(5) 邏輯綜合: 邏輯綜合是將rtl 級(jí)的行為描述轉(zhuǎn)化為使用門級(jí)單元的結(jié)構(gòu)描述。門級(jí)的結(jié)構(gòu)描述稱之為網(wǎng)表。網(wǎng)表文件主要記錄的是所用工藝庫(kù)門級(jí)單元之間的互連關(guān)系(即門級(jí)結(jié)構(gòu))。綜合的輸入需要rtl 級(jí)描述、約束和工藝庫(kù)。綜合時(shí)所加的約束一般比較簡(jiǎn)單, 如時(shí)鐘頻率、器件型號(hào)和其他綜合設(shè)置等。綜合的過程是translate (轉(zhuǎn)換) + map (映射) +optimize (優(yōu)化)。轉(zhuǎn)換是將rtl 級(jí)行為描述轉(zhuǎn)化為rtl 級(jí)結(jié)構(gòu)描述(使用與工藝無(wú)關(guān)的通用邏輯門符號(hào)表示)。映射是將轉(zhuǎn)換后的結(jié)果使用工藝庫(kù)門級(jí)單元的連接關(guān)系來表示,
19、并根據(jù)需要進(jìn)行優(yōu)化, 形成網(wǎng)表文件。映射是對(duì)某種目標(biāo)器件而言的一種資源分配和優(yōu)化操作。一般綜合工具能將轉(zhuǎn)換后的結(jié)果顯示為rtl 級(jí)原理圖, 也能將網(wǎng)表顯示為門級(jí)原理圖。網(wǎng)表文件中含門級(jí)單元的延時(shí)信息, 對(duì)連線延時(shí)有預(yù)估值或者為零, 不同的軟件處理的方法可能不同, 暫稱之為網(wǎng)表文件1。網(wǎng)表文件的格式可以表示成標(biāo)準(zhǔn)格式(edif) , 也可以表示成vhdl 或者verilog_ hdl 格式(在綜合工具中設(shè)置)。綜合報(bào)告文件中含所用邏輯資源、預(yù)估出的時(shí)鐘最高頻率、關(guān)鍵路徑(延時(shí)最長(zhǎng)的路徑, 可在軟件中顯示) 等信息。(6) 布線前門級(jí)仿真: 是門級(jí)功能仿真, 一般不考慮延時(shí)。該仿真的輸入需要綜合后
20、的門級(jí)網(wǎng)表、工藝庫(kù)和測(cè)試激勵(lì)。有的eda 工具不提供此仿真功能, 可以不做。(7) 適配(布局布線) : 適配就是將網(wǎng)表文件映射到目標(biāo)器件中的一種操作, 是對(duì)目標(biāo)器件的第二次映射(第一次映射是綜合)。即對(duì)網(wǎng)表中的每一個(gè)門級(jí)單元在器件中定位(布局) ,并使用器件內(nèi)的連線資源按照網(wǎng)表中的連接關(guān)系連接起來(布線) 同時(shí)要滿足引腳分配、時(shí)鐘線的分配等約束條件。適配的輸入需要網(wǎng)表文件1、工藝庫(kù)(要使用其中的布線模型等信息) 和約束。適配所加的約束比較多, 如引腳分配、時(shí)鐘樹的分配、模塊在器件中的定位等。適配后產(chǎn)生的文件有網(wǎng)表文件2、反標(biāo)文件和編程文件等。根據(jù)適配工具和適配設(shè)置的不同, 產(chǎn)生的網(wǎng)表文件2
21、可以具有不同的格式并可以設(shè)置為包含延時(shí)信息(包括門延時(shí)和線延時(shí))。反標(biāo)文件含延時(shí)信息, 使用標(biāo)準(zhǔn)格式(sdf 格式) 表示。編程文件用于對(duì)器件編程下載。(8) 時(shí)序仿真: 是最接近真實(shí)情況的一種仿真, 因?yàn)樵摲抡婧械难訒r(shí)信息和約束信息(約束信息包含在網(wǎng)表文件2中)。時(shí)序仿真的輸入需要測(cè)試激勵(lì)、工藝庫(kù)門級(jí)單元模型、網(wǎng)表文件2 和反標(biāo)文件。如果網(wǎng)表文件2 中含有延時(shí)信息, 則不需要反標(biāo)文件。時(shí)序仿真的結(jié)果跟延時(shí)關(guān)系極大。延時(shí)跟工藝有關(guān), 特別是深亞微米工藝, 線延時(shí)大大超過門延時(shí), 所以總延時(shí)跟布局布線關(guān)系極大。如果仿真結(jié)果不對(duì), 要從約束、綜合、布局布線、rtl 級(jí)代碼等環(huán)節(jié)上找原因, 也可
22、以借助時(shí)序分析工具找原因。(9) 時(shí)序分析: 使用eda 軟件的時(shí)序分析功能能夠分析所有時(shí)鐘的頻率、周期、關(guān)鍵路徑和其他所有時(shí)鐘路徑上的延時(shí)信息, 進(jìn)行建立時(shí)間和保持時(shí)間分析和輸入到輸出、輸入到寄存器、寄存器到輸出的延時(shí)分析等, 從而可以找出不滿足時(shí)序關(guān)系的原因所在。時(shí)序分析是一個(gè)輔助功能, 有時(shí)可以不做。(10) 器件編程: 指將適配后產(chǎn)生的編程文件下載到fpga/pld 器件中。下載的過程就是一個(gè)改寫器件內(nèi)邏輯結(jié)構(gòu)的過程, 故稱之為編程。下載使用專用的編程器或者下載電纜。器件的編程接口一般使用10 針jta g 插座。習(xí)慣上, 對(duì)cpld 器件的下載叫編程, 對(duì)fpga 器件的下載叫配置。
23、cpld 器件基于eeprom 工藝或者fla sh 工藝, 掉電后信息不丟失。而fga p 器件基于sram 查找表工藝, 掉電后編程信息會(huì)丟失, 在下次上電后需要重新加載編程文件。配置方式有多種模式, 較常用的是ps 模式(調(diào)試時(shí)用) 和使用配置器件模式(產(chǎn)品中使用) , 它是使用一個(gè)eprom 型的配置芯片, 先將編程數(shù)據(jù)燒寫到配置芯片中, 配置芯片跟fpga 使用專用接口引腳相連。這樣, 上電后配置芯片自動(dòng)給fpga 加載編程數(shù)據(jù)。也可使用單片機(jī)進(jìn)行配置。 (11) 系統(tǒng)驗(yàn)證: 先將fpga 芯片在測(cè)試板上進(jìn)行功能驗(yàn)證, 然后再到實(shí)際系統(tǒng)中驗(yàn)證。系統(tǒng)驗(yàn)證通過后就可以在產(chǎn)品中使用。至此,
24、 fpga 芯片設(shè)計(jì)完成。1.4、硬件描述語(yǔ)言vhdlvhdl語(yǔ)言是一種用于電路設(shè)計(jì)的高級(jí)語(yǔ)言。它在80年代的后期出現(xiàn)。最初是由美國(guó)國(guó)防部開發(fā)出來供美軍用來提高設(shè)計(jì)的可靠性和縮減開發(fā)周期的一種使用范圍較小的設(shè)計(jì)語(yǔ)言 。vhdl的英文全寫是:vhsic(very high speed integrated circuit)hardware description language.翻譯成中文就是超高速集成電路硬件描述語(yǔ)言。因此它的應(yīng)用主要是應(yīng)用在數(shù)字電路的設(shè)計(jì)中。目前,它在中國(guó)的應(yīng)用多數(shù)是用在fpga/cpld/epld的設(shè)計(jì)中。當(dāng)然在一些實(shí)力較為雄厚的單位,它也被用來設(shè)計(jì)asic.vhdl主要
25、用于描述數(shù)字系統(tǒng)的結(jié)構(gòu),行為,功能和接口。除了含有許多具有硬件特征的語(yǔ)句外,vhdl的語(yǔ)言形式、描述風(fēng)格以及語(yǔ)法是十分類似于一般的計(jì)算機(jī)高級(jí)語(yǔ)言。vhdl的程序結(jié)構(gòu)特點(diǎn)是將一項(xiàng)工程設(shè)計(jì),或稱設(shè)計(jì)實(shí)體(可以是一個(gè)元件,一個(gè)電路模塊或一個(gè)系統(tǒng))分成外部(或稱可視部分,及端口)和內(nèi)部(或稱不可視部分),既涉及實(shí)體的內(nèi)部功能和算法完成部分。在對(duì)一個(gè)設(shè)計(jì)實(shí)體定義了外部界面后,一旦其內(nèi)部開發(fā)完成后,其他的設(shè)計(jì)就可以直接調(diào)用這個(gè)實(shí)體。這種將設(shè)計(jì)實(shí)體分成內(nèi)外部分的概念是vhdl系統(tǒng)設(shè)計(jì)的基本點(diǎn)。 底層嵌入功能單元:底層嵌入功能單元是指那些通用程度較高的嵌入式功能模塊,比如pll(phase locked lo
26、op)、 dll(delay locked loop)、dsp、cpu等。本設(shè)計(jì)中用到了pll嵌入式單元,該模塊單元是通過開發(fā)平臺(tái)的ip核生成器自動(dòng)生成的(內(nèi)嵌專用硬核里的內(nèi)嵌專用硬核是有別于底層嵌入功能單元的,主要是指那些通用性相對(duì)較弱、不是所有fpga器件都包括的硬核)。與其他硬件描述語(yǔ)言相比,vhdl具有以下特點(diǎn): (1)功能強(qiáng)大、設(shè)計(jì)靈活vhdl具有功能強(qiáng)大的語(yǔ)言結(jié)構(gòu),可以用簡(jiǎn)潔明確的源代碼來描述復(fù)雜的邏輯控制。它具有多層次的設(shè)計(jì)描述功能,層層細(xì)化,最后可直接生成電路級(jí)描述。vhdl支持同步電路、異步電路和隨機(jī)電路的設(shè)計(jì),這是其他硬件描述語(yǔ)言所不能比擬的。vhdl還支持各種設(shè)計(jì)方法,既
27、支持自底向上的設(shè)計(jì),又支持自頂向下的設(shè)計(jì);既支持模塊化設(shè)計(jì),又支持層次化設(shè)計(jì)。 (2)支持廣泛、易于修改由于vhdl已經(jīng)成為ieee標(biāo)準(zhǔn)所規(guī)范的硬件描述語(yǔ)言,目前大多數(shù)eda工具幾乎都支持vhdl,這為vhdl的進(jìn)一步推廣和廣泛應(yīng)用奠定了基礎(chǔ)。在硬件電路設(shè)計(jì)過程中,主要的設(shè)計(jì)文件是用vhdl編寫的源代碼,因?yàn)関hdl易讀和結(jié)構(gòu)化,所以易于修改設(shè)計(jì)。 (3)強(qiáng)大的系統(tǒng)硬件描述能力vhdl具有多層次的設(shè)計(jì)描述功能,既可以描述系統(tǒng)級(jí)電路,又可以描述門級(jí)電路。而描述既可以采用行為描述、寄存器傳輸描述或結(jié)構(gòu)描述,也可以采用三者混合的混合級(jí)描述。另外,vhdl支持慣性延遲和傳輸延遲,還可以準(zhǔn)確地建立硬件電
28、路模型。vhdl支持預(yù)定義的和自定義的數(shù)據(jù)類型,給硬件描述帶來較大的自由度,使設(shè)計(jì)人員能夠方便地創(chuàng)建高層次的系統(tǒng)模型。 (4)獨(dú)立于器件的設(shè)計(jì)、與工藝無(wú)關(guān)設(shè)計(jì)人員用vhdl進(jìn)行設(shè)計(jì)時(shí),不需要首先考慮選擇完成設(shè)計(jì)的器件,就可以集中精力進(jìn)行設(shè)計(jì)的優(yōu)化。當(dāng)設(shè)計(jì)描述完成后,可以用多種不同的器件結(jié)構(gòu)來實(shí)現(xiàn)其功能。 (5)很強(qiáng)的移植能力vhdl是一種標(biāo)準(zhǔn)化的硬件描述語(yǔ)言,同一個(gè)設(shè)計(jì)描述可以被不同的工具所支持,使得設(shè)計(jì)描述的移植成為可能。 (6)易于共享和復(fù)用vhdl采用基于庫(kù)(library)的設(shè)計(jì)方法,可以建立各種可再次利用的模塊。這些模塊可以預(yù)先設(shè)計(jì)或使用以前設(shè)計(jì)中的存檔模塊,將這些模塊存放到庫(kù)中,就
29、可以在以后的設(shè)計(jì)中進(jìn)行復(fù)用,可以使設(shè)計(jì)成果在設(shè)計(jì)人員之間進(jìn)行交流和共享,減少硬件電路設(shè)計(jì)。2、序列檢測(cè)器的設(shè)計(jì)特點(diǎn)及原理2.1實(shí)驗(yàn)設(shè)計(jì)的特點(diǎn) (1)采用fpga技術(shù)實(shí)現(xiàn), 本創(chuàng)新型實(shí)驗(yàn)使用現(xiàn)在先進(jìn)的熱門的fpga技術(shù)作為設(shè)計(jì)和實(shí)現(xiàn)手段。fpga作為新興的現(xiàn)代技術(shù),在性能、速度、集成度,應(yīng)用靈活性等方面都遠(yuǎn)遠(yuǎn)優(yōu)越于asics,內(nèi)部資源豐富,從某種意義上說,新的電子系統(tǒng)運(yùn)轉(zhuǎn)的物理機(jī)制又將回到原來的純數(shù)字電路結(jié)構(gòu),但卻是一種更高層次的循環(huán),它在更高層次上容納了過去數(shù)字技術(shù)的優(yōu)秀部分,對(duì)(micro chip unit) mcu系統(tǒng)是一種揚(yáng)棄,并兼有串、并行工作方式,高速、高可靠性以及寬口徑適用性等諸
30、多方面的特點(diǎn)。 (2)實(shí)現(xiàn)漢明碼編碼器和譯碼器的集成化芯片化,本設(shè)計(jì)將漢明碼的編碼功能模塊和譯碼功能模塊集成于一體,實(shí)現(xiàn)功能的集成化,這為編碼譯碼功能的使用提供了方便。同時(shí),實(shí)現(xiàn)了設(shè)計(jì)成品的芯片化,將其功能集成在芯片之上,擺脫了過去用實(shí)際邏輯和模擬電路來實(shí)現(xiàn)設(shè)計(jì)的傳統(tǒng)約束,功能的集成也提高了芯片資源的利用率。2.2漢明碼編碼和譯碼原理(1)本實(shí)驗(yàn)采用(8,4)編碼即擴(kuò)展?jié)h明碼,擴(kuò)展?jié)h明碼實(shí)質(zhì)上是在原漢明碼,即(7,4)碼的基礎(chǔ)上,在每個(gè)碼組后面增加1位偶監(jiān)督碼元,原漢明碼中碼重w=3的碼字,擴(kuò)展后變成碼重w=4的碼字,故最小碼距也將由d0=3變?yōu)閐0=4。編碼方式如下表所示: 表2.1 (8,
31、4)編碼方案位信息數(shù)據(jù)位12345678代碼p1p2d8p3d4d2d1o說明第1個(gè)漢明碼第2個(gè)漢明碼第1個(gè)數(shù)據(jù)碼第3個(gè)漢明碼第2個(gè)數(shù)據(jù)碼第3個(gè)數(shù)據(jù)碼第4個(gè)數(shù)據(jù)碼偶監(jiān)督元注:p 代表校驗(yàn)位;d 代表數(shù)據(jù)位;o代表偶監(jiān)督元 (2)漢明碼編碼原理:(8,4)增余漢明碼全碼碼元數(shù)n=8,其中信息碼元數(shù)k=4.監(jiān)督碼元數(shù)d=4,其監(jiān)督矩陣為: 圖2.1 監(jiān)督矩陣 對(duì)于任何給定的信息碼組,都可以由下式求出相應(yīng)的監(jiān)督碼元,即: 圖2.2 編碼監(jiān)督碼元矩陣乘法 若用方程式來表示,則上式可寫成:x5=x2+x3+x4;x6=x1+x3+x4 ;x7=x1+x2+x4; x8=x1+x2+x3(注:這里+代表異
32、或),從而形成的全碼x1,x2,x3,x4,x5,x6,x7,x8,這就是(8,4)增余漢明碼的編碼過程。 (3)漢明碼譯碼原理:譯碼矩陣應(yīng)滿足如下要求: 圖2.3 譯碼監(jiān)督碼元矩陣乘法 可得:s1=x22+x33+x44+x55 s2=x11+x33+x44+x66 s3=x11+x22+x44+x77 s4=x11+x22+x33+x44+x55+x66+x77+x88(s1,s2,s3,s4)為(8,4)增余漢明碼的校驗(yàn)子。當(dāng)(s1,s2,s3,s4)=0000時(shí),傳送無(wú)誤;當(dāng)s1s2s3s4為偶數(shù)時(shí),可判接收到的全碼中有兩位錯(cuò)誤,但不能判斷那兩位錯(cuò),可要求發(fā)送方重新發(fā)送全碼;當(dāng)s1s2
33、s3s4為奇數(shù)時(shí),可根據(jù)表1判斷哪一位錯(cuò),然后通過糾錯(cuò)模塊來糾錯(cuò),完成譯碼過程。 表 2.2 (8,4)漢明碼校驗(yàn)參數(shù)錯(cuò)位s1s2s3s4錯(cuò)位s1s2s3s410111510012101160101311017001141111800013 系統(tǒng)分析及總體設(shè)計(jì)3.1系統(tǒng)工作過程分析 根據(jù)編碼和譯碼的需要,選擇編碼模塊和譯碼模塊,編碼時(shí),將要編碼的數(shù)據(jù)(4位二進(jìn)制)輸入到編碼模塊的輸入端,使能端置于有效位,則在編碼模塊的輸出端即可得到編譯碼(8位二進(jìn)制)。譯碼時(shí)同樣可得,將要譯的碼(8位二進(jìn)制)輸入到譯碼模塊的輸入端,使能有效,則當(dāng)碼字正確無(wú)錯(cuò)誤時(shí),輸出譯碼(4為二進(jìn)制),無(wú)措輸出端置有效電平;
34、當(dāng)碼字有一位碼發(fā)生錯(cuò)誤時(shí),譯碼模塊中的糾錯(cuò)環(huán)節(jié)自動(dòng)糾正,同時(shí),無(wú)措輸出端報(bào)錯(cuò),一位錯(cuò)輸出端置有效電平;當(dāng)碼字有兩位以上錯(cuò)誤時(shí),重傳置位端置有效電平,要求輸入端重發(fā)數(shù)據(jù)。3.2 系統(tǒng)工作框圖 圖 3.1 系統(tǒng)工作框圖 3.3 功能模塊的功能介紹 1.編碼模塊: 完成對(duì)輸入4位預(yù)編碼數(shù)據(jù)的編碼過程,產(chǎn)生對(duì)應(yīng)的8位漢明碼; 2.譯碼核心模塊: 完成對(duì)輸入8位待校驗(yàn)數(shù)據(jù)的譯碼過程,產(chǎn)生對(duì)應(yīng)的4位信息源碼,并給出錯(cuò)位指示;3.頂層模塊:對(duì)整體系統(tǒng)的編碼、譯碼、讀編碼數(shù)據(jù)、讀譯碼數(shù)據(jù)的功能的整體設(shè)計(jì);4.功能分模塊設(shè)計(jì)4.1編碼模塊(主要程序)architecture ver2 of hamenc is
35、signal p0, p1, p2, p3 : std_logic; begin process(clk,en,datain)begin if(en=1) then p0 = datain(0) xor datain(1) xor datain(2); p1 = datain(0) xor datain(1) xor datain(3); p2 = datain(0) xor datain(2) xor datain(3); p3 = datain(1) xor datain(2) xor datain(3); if(clkevent and clk=1) then h(3 downto 0)
36、 = (p3, p2, p1, p0); l(3 downto 0) = datain(3 downto 0); end if; else l=zzzz;h=zzzz;end if; end process;end ver2;圖4.1 編碼波形圖對(duì)波形圖說明4.2譯碼模塊(主要程序) architecture ver1 of hamdec is signal ne1:std_logic; signal one1:std_logic; signal req1:std_logic; signal dat:std_logic_vector(3 downto 0); begin process(clk
37、,en,hamin) variable syndrome : std_logic_vector(3 downto 0); begin if (en=1) then syndrome(0) := hamin(0) xor hamin(1) xor hamin(2) xor hamin(3) xor hamin(4) xor hamin(5) xor hamin(6) xor hamin(7); syndrome(1) := hamin(0) xor hamin(1) xor hamin(3) xor hamin(5); syndrome(2) := hamin(0) xor hamin(2) x
38、or hamin(3) xor hamin(6); syndrome(3) := hamin(1) xor hamin(2) xor hamin(3) xor hamin(7); if (syndrome = 0000) then -no errors ne1 = 1; one1 = 0; req1 = 0; dat(3 downto 0) = hamin(3 downto 0); elsif (syndrome(0) = 1) then -single bit error ne1 = 0; one1= 1; req1 dat(3 downto 0) dat(0) = not hamin(0)
39、; dat(3 downto 1) dat(1) = not hamin(1); dat(0) = hamin(0); dat(3 downto 2) dat(2) = not hamin(2); dat(3) = hamin(3); dat(1 downto 0) dat(3) = not hamin(3); dat(2 downto 0) = hamin(2 downto 0); end case; elsif (syndrome(0) = 0) and (syndrome(3 downto 1) /= 000) then ne1 = 0; one1 = 0; req1 = 1; dat(
40、3 downto 0) = 0000; end if; if(clkevent and clk=1)then ne=ne1; one=one1; req=req1; dataout(3 downto 0)=dat(3 downto 0); end if; else dataout=zzzz; ne=z; one=z; req=z; end if; end process;end ver1; 圖4.2 譯碼波形圖說明:輸入為clk、datain、dec_en輸出為dec_out、chongfa、onef和right,通過dec_en來控制譯碼器譯碼4.3特殊寄存器模塊 architecture one of jzq is begin process(clk) begin if(clkevent and clk=1)then s1=d(3 downto 0); s2=d(7 downto 4); end if; end
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 運(yùn)營(yíng)管理課程設(shè)計(jì)感想
- 背景模糊效果課程設(shè)計(jì)
- 工貿(mào)企業(yè)安全、環(huán)保、職業(yè)健康責(zé)任制模版(2篇)
- 二零二五年度工傷事故賠償與勞動(dòng)者心理援助服務(wù)合同3篇
- 人工運(yùn)土安全技術(shù)操作規(guī)程模版(3篇)
- 2025年演講稿《心態(tài)決定一切》模版(2篇)
- 模型分公司安全防火規(guī)定模版(3篇)
- 2025年人教A新版高二化學(xué)下冊(cè)階段測(cè)試試卷含答案
- 電纜溝安全生產(chǎn)制度模版(2篇)
- 2025年人教A版高一語(yǔ)文下冊(cè)階段測(cè)試試卷
- 智慧水務(wù)行業(yè)發(fā)展報(bào)告2024-2025
- 給水管道監(jiān)理實(shí)施細(xì)則
- 《陸上風(fēng)力發(fā)電建設(shè)工程質(zhì)量監(jiān)督檢查大綱》
- 《數(shù)據(jù)分析與挖掘技術(shù)》課程標(biāo)準(zhǔn)
- 智能化無(wú)人機(jī)實(shí)訓(xùn)教育基地建設(shè)規(guī)范征求意見稿
- 2024數(shù)據(jù)分類分級(jí)指南第1部分:醫(yī)療健康
- 人工智能設(shè)計(jì)倫理智慧樹知到期末考試答案章節(jié)答案2024年浙江大學(xué)
- 教科版小學(xué)科學(xué)四年級(jí)上冊(cè)期末檢測(cè)試卷及答案(共三套)
- 人教部編版八年級(jí)數(shù)學(xué)上冊(cè)期末考試卷及答案一
- 校服服務(wù)方案投標(biāo)方案
- 養(yǎng)老機(jī)構(gòu)安全管理培訓(xùn)課件
評(píng)論
0/150
提交評(píng)論