脈沖序列檢測器的設計.doc_第1頁
脈沖序列檢測器的設計.doc_第2頁
脈沖序列檢測器的設計.doc_第3頁
脈沖序列檢測器的設計.doc_第4頁
脈沖序列檢測器的設計.doc_第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

測試與光電工程學院課程設計任務書 電子科學與技術 系 班 學生課題名稱: 脈沖序列檢測器的設計 課題要求:查找相關資料,確定基于FPGA的多路脈沖序列檢測器的設計方案,要求能對多路脈沖序列信號進行檢測。課題內容:1、系統(tǒng)設計要求:脈沖序列檢測器廣泛應用于現(xiàn)代數(shù)字通信系統(tǒng)中。隨著通信技術的發(fā)展,對多路脈沖序列信號檢測要求越來越高,本實驗設計一個基于FPGA的多路脈沖序列檢測器。設計完成后,經(jīng)綜合和仿真驗證后,在FPGA中實現(xiàn)。2、工作進度安排:查找相關資料,確定脈沖序列檢測器設計方案 11月15日11月21日 第12周系統(tǒng)各模塊的詳細設計 11月22日12月28日 第13周系統(tǒng)仿真及修正 11月29日12月5日 第14周系統(tǒng)測試,課程設計報告的撰寫 12月6日12月10日 第15周主要參考資料:【1】 潘松,黃繼業(yè) EDA技術使用教程(第三版) 科學出版社2006【2】 鄔楊波,王曙光,胡建平 有限狀態(tài)機VHDL設計及優(yōu)化信息技術 2004(01)【3】 劉欲曉 EDA技術與VHDL技術 電子工業(yè)出版社 2009.4【4】 鄢靖豐,陳曉黎,王平 用Verilog-HDL設計序列檢測器 2005(11) 【5】 唐瑜,符興呂,羅江 用VHDL語壽實現(xiàn)序列信號的產生和檢測 2008(09) 【6】 蔣昊,李哲英 基于多種EDA工具的FPGA設計流程J.微計算機信息,2007【7】 束禮寶,宋克柱,王硯方.偽隨機數(shù)發(fā)生器的FPGA實現(xiàn)與研究J.電路與系統(tǒng)學報,2003.8系負責人: 指導教師: 柴明鋼 時間:2010年11月10日摘要脈沖序列檢測器廣泛應用于現(xiàn)代數(shù)字通信系統(tǒng)中,隨著通信技術的發(fā)展,對多路脈沖序列信號檢測要求越來越高?,F(xiàn)代通信系統(tǒng)的發(fā)展方向是功能更強、體積更小、速度更快、功耗更低,大規(guī)??删幊踢壿嬈骷﨔PGA器件的集成度高、工作速度快、編程方便、價格較低,易于實現(xiàn)設備的可編程設計,這些優(yōu)勢正好滿足通信系統(tǒng)的這些要求。隨著器件復雜程度的提高,電路邏輯圖變得過于復雜,不便于設計。VHDL(VHSIC Hardware Description Language)是隨著可編程邏輯器件的發(fā)展而發(fā)展起來的一種硬件描述語言。VHDL具有極強的描述能力,能支持系統(tǒng)行為級、寄存器輸級和門級三個不同層次的設計,實現(xiàn)了邏輯設計師多年來夢寐以求的“硬件設計軟件化”的愿望,給當今電子通信系統(tǒng)設計帶來了革命性的變化。本文針對傳統(tǒng)的脈沖序列檢測器方案,提出了一種基于FPGA的脈沖序列檢測器設計的新方案,該方案相對于傳統(tǒng)的設計方法更適合于現(xiàn)代數(shù)字通信系統(tǒng),不但大大減少了周邊的設備,也使系統(tǒng)設計更加靈活,穩(wěn)定性更好,性價比更高,可以滿足多種環(huán)境下的檢測系統(tǒng)的要求。關鍵詞:可編程邏輯器件FPGA,硬件描述語言VHDL,序列檢測器目錄摘要.31.緒論.61.1課題設計背景.61.2課題設計目的.62. FPGA簡介.72.1 什么是FPGA.72.2 FPGA的結構與組成.82.3 FPGA的設計流程.92.4主控芯片Cyclone簡介.152.5硬件描述語言VH.163 脈沖序列檢測器的設計.183.1脈沖序列檢測器的原理.183.2 設計要求.193.3設計內容.193.4設計步驟.203.5頂層文件設計.253.6測試和仿真.263.7 結果分析.273.8 8位序列檢測器的設計.28設計總結.31致謝.32參考文獻.331 緒論1.1 課題設計背景 隨著數(shù)字通信的廣泛應用,可編程邏輯器件容量、功能的不斷擴大,集成電路的設計已經(jīng)進入片上系統(tǒng)(SOC)和專用集成電路(ASIC)的時代。由于硬件描述語言VHDL可讀性、可移植性、支持對大規(guī)模設計的分解和對已有設計的再利用等強大功能,迅速出現(xiàn)在各種電子設計自動化(EDA)系統(tǒng)中,先進的開發(fā)工具使整個系統(tǒng)設計調試周期大大地縮短。利用硬件描述語言(如VHDL)來完成對系統(tǒng)硬件功能的描述,在EDA工具的幫助下通過波形仿真得到時序波形,這樣就使得對硬件的設計和修改過程軟件化,提高了大規(guī)模系統(tǒng)設計的自動化程度。使用FPGA進行系統(tǒng)設計,大部分的工作都在計算機上完成。它采用設計輸入、功能仿真和設計修改等可以反復循環(huán)的流程,使設計過程具有較強的靈活性和高效性,硬件具有了一定的設計柔性,工作效率得到很大提高,大大縮短了系統(tǒng)的設計周期,降低了開發(fā)成本,編程調試極為方便,系統(tǒng)電路的體積大為縮小,可靠性大大提高,系統(tǒng)投人實際應用后將取得令人滿意的效果。傳統(tǒng)的脈沖序列檢測器,它的實現(xiàn)方法是把一個算法轉化為一個實際數(shù)字邏輯電路的過程。在這個過程中,我們所得到的結果大概一致,但是在具體設計方法和性價比上存在著一定的差異,存在電路設計復雜,體積大,抗干擾能力差以及設計困難、設計周期長等缺點。而利用FPGA作為硬件電路,采用VHDL等硬件描述語言對硬件的功能進行編程,加快了系統(tǒng)的研發(fā)進程,采用數(shù)字化的控制方式,大幅度提高了邏輯控制的精確度,實時控制效果好,實踐證明,F(xiàn)PGA芯片可以代替?zhèn)鹘y(tǒng)的復雜的電路,而且可以大比例地縮小了電路的硬件規(guī)模,提高了集成度,降低開發(fā)成本,提高系統(tǒng)的可靠性,為脈沖序列檢測器電路的設計開辟了新的天地。1.2課題設計目的脈沖序列檢測器在現(xiàn)代數(shù)字通信系統(tǒng)中發(fā)揮著重要的作用,通過中小規(guī)模的數(shù)字集成電路構成的傳統(tǒng)脈沖序列檢測器電路往往存在電路設計復雜,體積大,抗干擾能力差以及設計困難、設計周期長等缺點。因此脈沖序列檢測器電路的模塊化、集成化已成為發(fā)展趨勢.它不僅可以使系統(tǒng)體積減小、重量減輕且功耗降低,同時可使系統(tǒng)的可靠性大大提高。隨著電子技術的發(fā)展,特別是專用集成電路(ASIC)設計技術的日趨完善,數(shù)字化的電子自動化設計(EDA)工具給電子設計帶來了巨大變革,尤其是硬件描述語言的出現(xiàn),解決了傳統(tǒng)電路原理圖設計系統(tǒng)工程的諸多不便。隨著ASIC技術、EDA技術的不斷完善和發(fā)展以及VHDL、HDL等通用性好、移植性強的硬件描述語言的普及,F(xiàn)PGA等可編程邏輯器件必將在現(xiàn)代數(shù)字應用系統(tǒng)中得到廣泛的應用,發(fā)揮越來越重要的作用。 在這種背景下,針對大規(guī)??删幊踢壿嬈骷﨔PGA器件的集成度高、工作速度快、編程方便、價格較低,易于實現(xiàn)設備的可編程設計的特點,用硬件描述語言設計FPGA器件來實現(xiàn)脈沖序列檢測器。應用可編程邏輯器件FPGA,來完成高速采編器的功能,具有速度更快、可靠性更高、調試方便的優(yōu)點,而且電路簡單,體積更小,利用VHDL開發(fā)的脈沖序列檢測器,其通用性和基于模塊的設計方法可以節(jié)省大量的人力,大大地縮短設計周期,在工程應用中已經(jīng)取得了顯著的效果??梢姡贔PGA的脈沖序列檢測器的設計是現(xiàn)代數(shù)字通信的發(fā)展要求,從而使得其具有更好的發(fā)展前景和使用價值。2 FPGA簡介2.1 什么是FPGAFPGA(FieldProgrammable Gate Array),即現(xiàn)場可編程門陣列,它是在PAL、GAL、CPLD等可編程器件的基礎上進一步發(fā)展的產物。它是作為專用集成電路(ASIC)領域中的一種半定制電路而出現(xiàn)的,既解決了定制電路的不足,又克服了原有可編程器件門電路數(shù)有限的缺點。目前以硬件描述語言(Verilog 或 VHDL)所完成的電路設計,可以經(jīng)過簡 單的綜合與布局,快速的燒錄至 FPGA 上進行測試,是現(xiàn)代 IC 設計驗證的技術主流。這些可編輯元件可以被用來實現(xiàn)一些基本的邏輯門電路(比如AND、OR、XOR、NOT)或者更復雜一些的組合功能比如解碼器或數(shù)學方程式。在大多數(shù)的FPGA里面,這些可編輯的元件里也包含記憶元件例如觸發(fā)器(Flipflop)或者其他更加完整的記憶塊。 系統(tǒng)設計師可以根據(jù)需要通過可編輯的連接把FPGA內部的邏輯塊連接起來,就好像一個電路試驗板被放在了一個芯片里。一個出廠后的成品FPGA的邏輯塊和連接可以按照設計者而改變,所以FPGA可以完成所需要的邏輯功能。 FPGA一般來說比ASIC(專用集成芯片)的速度要慢,無法完成復雜的設計,而且消耗更多的電能。但是他們也有很多的優(yōu)點比如可以快速成品,可以被修改來改正程序中的錯誤和更便宜的造價。廠商也可能會提供便宜的但是編輯能力差的FPGA。因為這些芯片有比較差的可編輯能力,所以這些設計的開發(fā)是在普通的FPGA上完成的,然后將設計轉移到一個類似于ASIC的芯片上。另外一種方法是用CPLD(復雜可編程邏輯器件備)。它的特點有:1) 采用FPGA設計ASIC電路(特定用途集成電路),用戶不需要投片生產,就能得到合用的芯片。 2)FPGA可做其它全定制或半定制ASIC電路的中試樣片。 3)FPGA內部有豐富的觸發(fā)器和IO引腳。 4)FPGA是ASIC電路中設計周期最短、開發(fā)費用最低、風險最小的器件之一。 5) FPGA采用高速CHMOS工藝,功耗低,可以與CMOS、TTL電平兼容。 2.2 FPGA的結構與組成通常FPGA由布線資源分隔的可編程邏輯單元構成陳列,又由可編程I/O單元圍繞陳列構成整個芯片,排成陳列的邏輯單元由布線通道中的可編程內斂線連接起來實現(xiàn)一定邏輯的功能。FPGA 的內部結構大致分為5 個部分: 均勻分布的邏輯塊組成的邏輯陣列, 輸入I/O輸出塊( I/O塊) , 連線資源,全局網(wǎng)絡, 嵌入式資源。FPGA 器件的組合邏輯塊是查找表結構。I/O 塊可以配置成各種輸入、輸出模式。連線資源用于將不同的邏輯塊連接起來。全局網(wǎng)絡是連線資源中的特殊連線, 其性能比普通連線要好得多, 它延伸到器件內所有的資源位置。全局網(wǎng)絡一般分配給時鐘信號, 構成時鐘樹。有時也可以分配給復位信號、使能信號或者其他特殊信號。目前我們使用的的可編程邏輯單元一般由查找表和觸發(fā)器構成。下圖所示即為Cyclone系列的FPGA芯片的邏輯單元(LE)組成.2.3 FPGA的設計流程FPGA 設計流程包括系統(tǒng)設計和設計實現(xiàn), 系統(tǒng)方案完成之后即進入設計實現(xiàn)階段的工作, 它以系統(tǒng)方案為輸入, 進行RTL 級描述、功能仿真(RTL 級仿真)、邏輯綜合、布線前門級仿真、適配(布局布線)、時序仿真(布線后門級仿真)、時序分析、器件編程、系統(tǒng)驗證一系列流程的處理才能完成FPGA芯片的設計, 其設計流程如下圖 所示。需要說明的是, 如果仿真驗證不對或者到走某一步有錯, 就要返回修改。有必要檢查和修改的地方有RTL 級描述、系統(tǒng)方案、約束和測試激勵等。一般情況下, 對RTL 級的描述即原理圖或者HDL 設計代碼的修改最多也最有效。修改后要重新走一遍流程。有時要反復修改, 經(jīng)過多次這樣的迭代才能完成最后的設計。在理論上, 把VL S I (U lt ra L arge Scale Integrat ion, 超大規(guī)模集成電路) 的設計描述為6 個層次2 3 , 即系統(tǒng)級(系統(tǒng)功能、參數(shù)定義)、算法級(描述系統(tǒng)功能行為)、RTL 級、門級(邏輯門)、電路級(晶體管)、版圖級(物理工藝)。每一級又都分3 個側面來描述: 行為域描述、結構域描述、物理域描述。但在實際情況中往往把算法級行為域描述或者RTL 級行為域描述都稱為行為級描述。對于FPGA 的設計而言, 我們不需要關心電路級和版圖級, 只考慮系統(tǒng)級、算法級、RTL 級、門級4 個層次的行為域描述和結構域描述即可。本文上述的FPGA 系統(tǒng)設計中的系統(tǒng)實際上是指系統(tǒng)級和算法級, 而“RTL 級描述”主要是指RTL級行為域的描述。在門級, 由綜合工具產生的門級網(wǎng)表來描述。FPGA 的設計流程和相關概念說明如下:庫: 指FPGA 器件廠家提供的工藝庫和EDA 工具提供的標準通用庫(如IEEE 庫等)。工藝庫中有各種宏功能模塊和基本功能單元, 含有它們的行為級模型、門級模型、布線模型等信息。需要說明的是, 系統(tǒng)行為仿真和RTL 級功能仿真有時要用到某種功能模塊, 例如RAM 模型。對于RAM 模型的控制信號, 不同的廠家其規(guī)定不一定相同, 如寫使能信號, 有的廠家規(guī)定高電平有效, 有的廠家規(guī)定低電平有效。其實, 在廠家提供的工藝庫中, RAM 模型有行為級模型、門級模型、版圖級模型等。而行為級模型只是規(guī)定其功能, 無延時信息, 跟工藝無關, 但門級模型和版圖級模型跟工藝密切相關。解決的方法是系統(tǒng)行為仿真時可以使用高級語言自己建立一個模型或者調用廠家?guī)熘刑峁┑男袨榧壞P? 功能仿真時調用行為級模型, 時序仿真時調用門級模型。測試激勵: 指測試文件, 它調用FPGA 設計的頂層模塊,同時產生頂層模塊需要的輸入信號, 稱之為激勵信號, 使用行為描述即可, 不要求可綜合。仿真時它作為最頂層的文件, 從而可以觀察FPGA 的輸出是否正確。所有的仿真都可使用同一個測試激勵。約束: 指對邏輯綜合和布局布線時的約束。包括器件型號、速度、面積、功耗、引腳分配、時鐘網(wǎng)絡資源的分配、模塊在器件中的定位等約束。一部分在軟件中設置, 一部分以約束文件的形式存在。1) 系統(tǒng)行為描述: 是指使用硬件描述語言HDL (Hard2w are descrip t ion L anguage) 語句的全集來描述算法, 模擬系統(tǒng)的行為和功能, 不要求所有的語句都能夠綜合成電路。事實上, 有的語句是專為描述行為而創(chuàng)建的, 不能綜合(即不能用電路來實現(xiàn)其功能)。也可以使用高級語言如C 來進行描述,此時往往要配合專用的系統(tǒng)設計工具來進行描述與仿真, 如SPW 等。這種系統(tǒng)算法級行為域的描述可以盡量使用最簡潔的語句而不必過多地考慮其硬件實現(xiàn)的諸因素, 所以能較快建立系統(tǒng)行為模型, 進行行為仿真。2) 系統(tǒng)行為仿真: 主要用來驗證系統(tǒng)方案是否正確、是否有缺陷, 并可根據(jù)仿真的結果來優(yōu)化系統(tǒng)方案和算法。它使用系統(tǒng)行為描述代碼、測試激勵、行為級模型庫等為輸入, 利用專用的仿真工具或者系統(tǒng)設計軟件來進行功能仿真和優(yōu)化。3) RTL 級描述: 指原理圖(結構描述) 或者使用可綜合的HDL 語句來描述的設計(一般是行為描述)。EDA 綜合軟件只能將RTL 級描述綜合成邏輯電路。利用綜合軟件可以檢查出所寫的代碼是否是RTL 級代碼。對簡單的設計而言, 可以直接從RTL 級開始設計, 但對大規(guī)模的設計, 最好先寫系統(tǒng)行為級代碼進行行為仿真。如果系統(tǒng)行為仿真正確, 就可以將行為級代碼轉化為RTL 級代碼。這種轉化稱之為高層次綜合或者行為級綜合。轉化的方法有2 種: 一是使用高層次綜合工具自動轉化, 例如SYNO PSYS 公司的Behavio r Comp iler3 ; 二是使用手工方法轉化。手工方法使用很普遍, 原因是目前高層次綜合的理論和方法還不成熟, 其工具難求或者其性能沒有手工方法好。4) 功能仿真: 也叫RTL 級仿真, 是指不考慮延時信息的一種仿真, 只能驗證RTL 級的行為描述是否能達到所要求的功能。功能仿真需要的輸入是RTL 級代碼、測試激勵和庫(有時要調用工藝庫中宏功能單元的行為級模型)。可利用專用的仿真工具進行仿真, 如Modelsim,VCS 等工具。如果仿真不對, 則需要檢查和修改RTL 級代碼或者測試激勵甚至系統(tǒng)方案。仿真的過程是先對源代碼進行編譯, 檢查是否有語法錯誤。如果沒有錯誤, 就將源代碼轉換為一種中間格式, 便于仿真工具的內部運算。編譯的結果自動存放在一個指定的工作目錄中, 仿真的結果主要以波形文件的形式存放。5) 邏輯綜合: 邏輯綜合是將RTL 級的行為描述轉化為使用門級單元的結構描述。門級的結構描述稱之為網(wǎng)表。網(wǎng)表文件主要記錄的是所用工藝庫門級單元之間的互連關系(即門級結構)。綜合的輸入需要RTL 級描述、約束和工藝庫。綜合時所加的約束一般比較簡單, 如時鐘頻率、器件型號和其他綜合設置等。綜合的過程是translate (轉換) + map (映射) +optimize (優(yōu)化)。轉換是將RTL 級行為描述轉化為RTL 級結構描述(使用與工藝無關的通用邏輯門符號表示)。映射是將轉換后的結果使用工藝庫門級單元的連接關系來表示, 并根據(jù)需要進行優(yōu)化, 形成網(wǎng)表文件。映射是對某種目標器件而言的一種資源分配和優(yōu)化操作。一般綜合工具能將轉換后的結果顯示為RTL 級原理圖, 也能將網(wǎng)表顯示為門級原理圖。網(wǎng)表文件中含門級單元的延時信息, 對連線延時有預估值或者為零, 不同的軟件處理的方法可能不同, 暫稱之為網(wǎng)表文件1。網(wǎng)表文件的格式可以表示成標準格式(edif) , 也可以表示成VHDL 或者V erilog_ HDL 格式(在綜合工具中設置)。綜合報告文件中含所用邏輯資源、預估出的時鐘最高頻率、關鍵路徑(延時最長的路徑, 可在軟件中顯示) 等信息。6) 布線前門級仿真: 是門級功能仿真, 一般不考慮延時。該仿真的輸入需要綜合后的門級網(wǎng)表、工藝庫和測試激勵。有的EDA 工具不提供此仿真功能, 可以不做。7) 適配(布局布線) : 適配就是將網(wǎng)表文件映射到目標器件中的一種操作, 是對目標器件的第二次映射(第一次映射是綜合)。即對網(wǎng)表中的每一個門級單元在器件中定位(布局) ,并使用器件內的連線資源按照網(wǎng)表中的連接關系連接起來(布線) 同時要滿足引腳分配、時鐘線的分配等約束條件。適配的輸入需要網(wǎng)表文件1、工藝庫(要使用其中的布線模型等信息) 和約束。適配所加的約束比較多, 如引腳分配、時鐘樹的分配、模塊在器件中的定位等。適配后產生的文件有網(wǎng)表文件2、反標文件和編程文件等。根據(jù)適配工具和適配設置的不同, 產生的網(wǎng)表文件2 可以具有不同的格式并可以設置為包含延時信息(包括門延時和線延時)。反標文件含延時信息, 使用標準格式(SDF 格式) 表示。編程文件用于對器件編程下載。8) 時序仿真: 是最接近真實情況的一種仿真, 因為該仿真含所有的延時信息和約束信息(約束信息包含在網(wǎng)表文件2中)。時序仿真的輸入需要測試激勵、工藝庫門級單元模型、網(wǎng)表文件2 和反標文件。如果網(wǎng)表文件2 中含有延時信息, 則不需要反標文件。時序仿真的結果跟延時關系極大。延時跟工藝有關, 特別是深亞微米工藝, 線延時大大超過門延時, 所以總延時跟布局布線關系極大。如果仿真結果不對, 要從約束、綜合、布局布線、RTL 級代碼等環(huán)節(jié)上找原因, 也可以借助時序分析工具找原因。9) 時序分析: 使用EDA 軟件的時序分析功能能夠分析所有時鐘的頻率、周期、關鍵路徑和其他所有時鐘路徑上的延時信息, 進行建立時間和保持時間分析和輸入到輸出、輸入到寄存器、寄存器到輸出的延時分析等, 從而可以找出不滿足時序關系的原因所在。時序分析是一個輔助功能, 有時可以不做。10) 器件編程: 指將適配后產生的編程文件下載到FP2GA C PLD 器件中。下載的過程就是一個改寫器件內邏輯結構的過程, 故稱之為編程。下載使用專用的編程器或者下載電纜。器件的編程接口一般使用10 針JTA G 插座。習慣上, 對CPLD 器件的下載叫編程, 對FPGA 器件的下載叫配置。CPLD 器件基于EEPROM 工藝或者FLA SH 工藝, 掉電后信息不丟失。而FGA P 器件基于SRAM 查找表工藝, 掉電后編程信息會丟失, 在下次上電后需要重新加載編程文件。配置方式有多種模式, 較常用的是PS 模式(調試時用) 和使用配置器件模式(產品中使用) , 它是使用一個EPROM 型的配置芯片, 先將編程數(shù)據(jù)燒寫到配置芯片中, 配置芯片跟FPGA 使用專用接口引腳相連。這樣, 上電后配置芯片自動給FPGA 加載編程數(shù)據(jù)。也可使用單片機進行配置。11) 系統(tǒng)驗證: 先將FPGA 芯片在測試板上進行功能驗證, 然后再到實際系統(tǒng)中驗證。系統(tǒng)驗證通過后就可以在產品中使用。至此, FPGA 芯片設計完成。2.4 主控芯片Cyclone簡介 Cyclone系列FPGA是Alera公司產品,它由六部分組成,分別為可編程輸入輸出單元、基本可編程邏輯單元、嵌入式塊RAM、布線資源、底層嵌入功能單元和內嵌專用硬核等??删幊梯斎?輸出單元: 輸入/輸出(InPut/Output)單元簡稱1/0單元,它們是芯片與外界電路的接口部分,完成不同電氣特性下對輸入/輸出信號的驅動與匹配需求。為了使FPGA有更加靈活的運用,目前大多數(shù)的FPGA的1/0單元被設計為可編程模式,即通過軟件的靈活配置,可以配置不同的電氣標準與1/0物理特性;可以調整匹配阻抗特性,上拉,下拉電阻;可以調整輸出驅動電流的大小等?;究删幊踢壿媶卧?基本可編程邏輯單元(LE, Logicefement)是可編程邏輯的主體,可以根據(jù)設計靈活地改變其內部連接與配置,完成不同邏輯功能。FPGA一般是基于SRAM工藝的,其基本可編程邏輯單元幾乎都是由查找表和寄存器組成的。FPGA內部查找表一般完成純組合邏輯功能。FPGA內部有很靈活的寄存器,可以按要求配置成帶同步/異步復位和置位、時鐘使能的觸發(fā)器,也可以配置成鎖存器。利用FPGA內部寄存器可完成同步時序的設計。嵌入式塊RAM: 目前大多數(shù)FPGA都有內嵌RAM模塊 (BlockRAM),大大拓展了FPGA的應用范圍和使用靈活性。FPGA內嵌的RAM模塊一般都是靈活地配置了單端口RAM(SpRAM,singleportRAM),雙端口RAM(DpRAM,DoubleportsRAM)偽雙端口RAM(pseudoDpRAM)、CAM(ContentAddressableMemo)、FIFO(FirstInFirstout)等常用存儲結構。布線資源: FPGA內部有著豐富的布線資源,這些布線資源根據(jù)工藝、長度、寬度和分布位置的不同而被劃分為不同的等級,有一些是全局性的專用布線資源,用以完成器件內部的全局時鐘和全局復位/置位的布線;一些叫做長線資源,用以完成器件Bank(分區(qū))間的一些高速信號和一些第二全局時鐘信號的布線;還有一些叫做短線資源,用以完成基本邏輯單元間的邏輯互聯(lián)與布線;另外,在基本邏輯單元內部還有著各式各樣的布線資源和專用時鐘、復位等控制信號線。2.5 硬件描述語言VHDLVHDL語言是一種用于電路設計的高級語言。它在80年代的后期出現(xiàn)。最初是由美國國防部開發(fā)出來供美軍用來提高設計的可靠性和縮減開發(fā)周期的一種使用范圍較小的設計語言 。VHDL的英文全寫是:VHSIC(Very High Speed Integrated Circuit)Hardware Description Language.翻譯成中文就是超高速集成電路硬件描述語言。因此它的應用主要是應用在數(shù)字電路的設計中。目前,它在中國的應用多數(shù)是用在FPGA/CPLD/EPLD的設計中。當然在一些實力較為雄厚的單位,它也被用來設計ASIC.VHDL主要用于描述數(shù)字系統(tǒng)的結構,行為,功能和接口。除了含有許多具有硬件特征的語句外,VHDL的語言形式、描述風格以及語法是十分類似于一般的計算機高級語言。VHDL的程序結構特點是將一項工程設計,或稱設計實體(可以是一個元件,一個電路模塊或一個系統(tǒng))分成外部(或稱可視部分,及端口)和內部(或稱不可視部分),既涉及實體的內部功能和算法完成部分。在對一個設計實體定義了外部界面后,一旦其內部開發(fā)完成后,其他的設計就可以直接調用這個實體。這種將設計實體分成內外部分的概念是VHDL系統(tǒng)設計的基本點。 底層嵌入功能單元:底層嵌入功能單元是指那些通用程度較高的嵌入式功能模塊,比如pLL(phaseLockedLoop)、 DLL(DelayLockedLoop)、DSP、CPU等。本設計中用到了PLL嵌入式單元,該模塊單元是通過開發(fā)平臺的IP核生成器自動生成的(內嵌專用硬核里的內嵌專用硬核是有別于底層嵌入功能單元的,主要是指那些通用性相對較弱、不是所有FpGA器件都包括的硬核)。與其他硬件描述語言相比,VHDL具有以下特點: 功能強大、設計靈活VHDL具有功能強大的語言結構,可以用簡潔明確的源代碼來描述復雜的邏輯控制。它具有多層次的設計描述功能,層層細化,最后可直接生成電路級描述。VHDL支持同步電路、異步電路和隨機電路的設計,這是其他硬件描述語言所不能比擬的。VHDL還支持各種設計方法,既支持自底向上的設計,又支持自頂向下的設計;既支持模塊化設計,又支持層次化設計。 支持廣泛、易于修改由于VHDL已經(jīng)成為IEEE標準所規(guī)范的硬件描述語言,目前大多數(shù)EDA工具幾乎都支持VHDL,這為VHDL的進一步推廣和廣泛應用奠定了基礎。在硬件電路設計過程中,主要的設計文件是用VHDL編寫的源代碼,因為VHDL易讀和結構化,所以易于修改設計。 強大的系統(tǒng)硬件描述能力VHDL具有多層次的設計描述功能,既可以描述系統(tǒng)級電路,又可以描述門級電路。而描述既可以采用行為描述、寄存器傳輸描述或結構描述,也可以采用三者混合的混合級描述。另外,VHDL支持慣性延遲和傳輸延遲,還可以準確地建立硬件電路模型。VHDL支持預定義的和自定義的數(shù)據(jù)類型,給硬件描述帶來較大的自由度,使設計人員能夠方便地創(chuàng)建高層次的系統(tǒng)模型。 獨立于器件的設計、與工藝無關設計人員用VHDL進行設計時,不需要首先考慮選擇完成設計的器件,就可以集中精力進行設計的優(yōu)化。當設計描述完成后,可以用多種不同的器件結構來實現(xiàn)其功能。 很強的移植能力VHDL是一種標準化的硬件描述語言,同一個設計描述可以被不同的工具所支持,使得設計描述的移植成為可能。 易于共享和復用VHDL采用基于庫(Library)的設計方法,可以建立各種可再次利用的模塊。這些模塊可以預先設計或使用以前設計中的存檔模塊,將這些模塊存放到庫中,就可以在以后的設計中進行復用,可以使設計成果在設計人員之間進行交流和共享,減少硬件電路設計。3 脈沖序列檢測器的設計3.1 脈沖序列檢測器的原理 序列檢測是指將一個指定的序列從數(shù)字流中識別出來,或在主串中查詢相應子串,一般可以通過軟件方法或時序電路即硬件方法實現(xiàn),用硬件方法實現(xiàn)序列檢測器時,檢測器中存儲模式串,主串可以通過輸入端流入檢測器,在主串的輸入過程中,檢測器可以動態(tài)檢測子串。 檢測器利用時序線路記憶已檢測出的有效序列,并與自身所含的模式串進行比對,若檢測成功,輸出端自動輸出成功標記。由于采用時序線路,主串的內容應每給一個上升沿或下降沿輸入一位,具體應視所選觸發(fā)器類型而定。我們提出一種新硬件實現(xiàn)方法,在該方法中對每一個狀態(tài)都根據(jù)實際意義給予特殊的含義!由于不存在重復狀態(tài)!故最終的狀態(tài)圖不用化簡。序列檢測器的初態(tài)是指被檢序列的第一位出現(xiàn)前的特定狀態(tài),此狀態(tài)后如果輸入的代碼對檢測有效(即被測序列的第一位),則相應次態(tài)為新的狀態(tài)(第2個狀態(tài),它記住了被測序列的第一位),否則相應次態(tài)仍為初態(tài)。 第2個狀態(tài)是指被檢序列的第一位出現(xiàn)后的特定狀態(tài), 此狀態(tài)后如果輸入的代碼對檢測有效(即被測序列的第2位)則相應次態(tài)為新的狀態(tài), (第2 個狀態(tài),它記住了被測序列的前2位),否則判斷最近輸入的代碼是否是被檢序列的第一位,是則相應次態(tài)仍為第2個狀態(tài),否則相應次態(tài)為初態(tài)。以次類推,第i個狀態(tài)記住了被檢序列的前i-1位,相應次態(tài)確定方法如下:假設序列長度為n 時,如果第i 個狀態(tài)后輸入的一位代碼是被檢序列的第i 位,則次態(tài)為新的狀態(tài)(記住了被檢序列的前i 位),否則次態(tài)按如下規(guī)則選擇:從初態(tài)開始輸入的i 位代碼中如果其中的后i-j 位為被檢序列的前i-j 位,則次態(tài)為第i-j+1 個狀態(tài)(j=1,2,i-1,找到次態(tài)即停止),否則次態(tài)為初態(tài),此時所有的外輸出均為0。當i=n 時, 第n 個狀態(tài)已經(jīng)記住了被檢序列的前n-1位,此狀態(tài)后輸入的一位代碼如果是被檢序列的第n 位,則外輸出為1,否則外輸出為0,其次態(tài)按如下規(guī)則選擇:從初態(tài)開始輸入的n 位代碼中如果其中的后n-j 位為被檢序列的前n-j 位,則次態(tài)為第i-j+1 個狀態(tài)( j=1,2,,i-1,找到次態(tài)即停止) ,當j=n 時,次態(tài)為初態(tài)。3.2設計要求查找相關資料,確定基于FPGA的多路脈沖序列檢測器的設計方案,要求能對多路脈沖序列信號進行檢測。設計完成后,經(jīng)綜合和仿真驗證后,在FPGA中實現(xiàn)。3.3 設計內容先設計序列發(fā)生器產生序列:1011010001101010;再設計序列檢測器,檢測序列發(fā)生器產生序列,若檢測到信號與預置待測信號相同,則輸出“1”,否則輸出“0”,并且將檢測到的信號的顯示出來。1.序列信號發(fā)生器序列信號是指在同步脈沖作用下循環(huán)地產生一串周期性的二進制信號。利用狀態(tài)機設計,首先定義一個數(shù)據(jù)類型FSM_ST它的取值為st0到st15的16個狀態(tài)。REGs0s1s2s3s4s5s6s7Q10110100REGs8s9s10s11s12s13s14s15Q011010102、序列檢測器脈沖序列檢測起可用于檢測一組或多組二進制碼組成的脈沖序列信號,當序列檢測器連續(xù)接收到一組穿行二進制碼后,如果這組碼與檢測器中預先設置的碼相同,則輸出1,否則輸出0。由于這種檢測的關鍵在于正確碼的收到必須是連續(xù)的,這就要求檢測器必須記住前一次的正確碼及正確的序列,直到連續(xù)的檢測中所收到的每一位碼都與預置數(shù)的對應碼相同。在檢測過程中,任何一位不相等將回到初始狀態(tài)重新開始檢測。3、計數(shù)器利用序列檢測器產生的信號(1和0)作為計數(shù)器模塊的時鐘信號,產生的信號0、1變化,形成類似的CLK信號,實現(xiàn)計數(shù)器計數(shù)。3.4設計步驟: 在VHDL編輯器中輸入如下程序(1)序列信號發(fā)生器的代碼如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY SHK IS PORT (CLK,RST :IN STD_LOGIC; CO :OUT STD_LOGIC );END SHK;ARCHITECTURE behav OF SHK IS TYPE FSM_ST IS (s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13,s14,s15); SIGNAL REG:FSM_ST; SIGNAL Q:STD_LOGIC; BEGIN PROCESS(CLK,RST) BEGIN IF RST =1 THEN REG=s0;Q Q=1; REG Q=0;REG Q=1;REG Q=1;REG Q=0;REG Q=1;REG Q=0;REG Q=0;REG Q=0;REG Q=1;REG Q=1;REG Q=0;REG Q=1;REG Q=0;REG Q=1;REG Q=0;REGREG=s0;Q=0; END CASE; END IF; END PROCESS; CO=Q; END behav;轉化成可調用的元件:波形仿真如下:(2)序列檢測器的代碼如下:library ieee;use ieee.std_logic_1164.all;entity SCHK1 isport(datain,clk:in std_logic;t: in std_logic_vector (4 downto 0); q:out std_logic; cq: out std_logic_vector (4 downto 0);end SCHK1;architecture rt1 of SCHK1 issignal reg:std_logic_vector(4 downto 0);beginprocess(clk)variable t1:std_logic_vector (4 downto 0);beginif clkevent and clk=1 thenreg(0)=datain;reg(4 downto 1)=reg(3 downto 0) ;end if;t1:=t; if reg=t1 then q=1 ; else q=0; cq0); ELSIF CLKEVENT AND CLK=1 THEN IF EN=1 THEN IF CQI0); END IF; END IF; END IF; IF CQI=153 THEN COUT=1; ELSE COUT=0; END IF; Q1=CQI(3 DOWNTO 0); Q2=CQI(7 DOWNTO 4); END PROCESS COUNT; END ARCHITECTURE ONE; 轉化成可調用的元件:波形仿真如下:3.5 頂層文件設計通過前面的準備,我們已經(jīng)得到了全部所需要的3個模塊,即序列信號發(fā)生器、序列檢測器、計數(shù)器。在此,我們運用原理圖法來生成頂層實體。具體的實現(xiàn)方法是,將上述3個模塊,通過我們的設計軟件,生成可以移植,調用的原理圖文件,在將其在頂層設計中直接調用即可。本次設計生成的頂層實體如下圖所示:3.6測試和仿真1.置入待檢測信號序列11010:仿真結果如下:2. 置入待檢測信號序列10101:仿真結果如下:3.7結果分析:1. 根據(jù)序列發(fā)生器的輸出端CO可以看出,序列發(fā)生器產生輸出序列1011010001101010;2. 根據(jù)序列檢測器的輸出端q可以看出,當檢測器檢測到串行信號與預置的序列信號相同時,q則輸出“1”,沒有檢測到,q則輸出“0”;3. 根據(jù)計數(shù)器的輸出端Q1可以看出,Q1將序列檢測器檢測到的序列信號的數(shù)目顯示出來。4.通過仿真結果還可以看到,輸出的波形出現(xiàn)了一些毛刺,這是因為信號在FPGA器件中通過邏輯單元連線時,一定存在延時。延時的大小不僅和連線的長短和邏輯單元的數(shù)目有關,而且也和器件的制造工藝、工作環(huán)境等有關。因此,信號在器件中傳輸?shù)臅r候,所需要的時間是不能精確估計的,當多路信號同時發(fā)生跳變的瞬間,就產生了“競爭冒險”。這時,往往會出現(xiàn)一些不正確的尖峰信號,這些尖峰信號就是“毛刺”。3.8 8位序列檢測器的設計設計一個8位序列信號的檢測器,將檢測預制序列作為外部輸入,從而可隨時改變檢測序列。若檢測到的序列與預置相同,則輸出A,否則輸出B。1. 在VHDL編輯器中輸入如下程序library ieee;use ieee.std_logic_1164.all;entity SCHK1 isport(din,clk,clr : in std_logic; pre_load : in std_logic_vector(7 downto 0); ab: out std_logic_vector(3 downto 0);end SCHK1;architecture behav of SCHK1 issignal q : integer range 0 to 8;signal d : std_logic_vector(7 downto 0);beginD=pre_load;-置入待檢測

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論