

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、FPGA/CPLD在軟件無線電中的工程應用,,前言,在數字化、信息化的時代,數字化集成電路應用的非常廣泛。今天經過長期的進步發(fā)展成為可以完成超大規(guī)模的復雜組合邏輯與時序邏輯的現場可編程邏輯器件(FPGA)。,前言,培訓目標:更新數字電路的設計觀念,建立用PLD器件取代傳統(tǒng)TTL器件設計數字電路的思想。更新數字系統(tǒng)設計手段,學會使用硬件描述語言(Hardware Description Language)代替?zhèn)鹘y(tǒng)的數字電路設計方法來
2、設計數字系統(tǒng)。掌握Xilinx FPGA開發(fā)工具及仿真環(huán)境能夠利用FPGA實現高速實時數字信號處理系統(tǒng)的開發(fā)設計。掌握基于實時通信系統(tǒng)的流水線設計、 時鐘設計、乒乓操作設計等重要設計方法和技巧.掌握軟件無線電設計精髓,而且能夠獨立的利用FPGA開發(fā)設計高速數字化無線通信收發(fā)信機 。,前言寬帶中頻帶通采樣軟件無線電結構,前言軟件無線電發(fā)射機中FPGA軟件功能框圖,前言 軟件無線電接收機中FPGA軟件功能框圖,前言,可編程邏輯
3、器件的定義邏輯器件:用來實現某種特定邏輯功能的電子器件,最簡單的邏輯器件是與、或、非門(74LS00,74LS04等),在此基礎上可實現復雜的時序和組合邏輯功能。可編程邏輯器件(PLD--Programmable Logic Device):器件的功能不是固定不變的,而是可根據用戶的需要而進行改變,即由編程的方法來確定器件的邏輯功能。,前言,PLD器件的優(yōu)點集成度高,可以替代多至幾千塊通用IC芯片極大減小電路的面積,降低功耗,提
4、高可靠性具有完善先進的開發(fā)工具提供語言、圖形等設計方法,十分靈活通過仿真工具來驗證設計的正確性可以反復地擦除、編程,方便設計的修改和升級靈活地定義管腳功能,減輕設計工作量,縮短系統(tǒng)開發(fā)時間保密性好,前言,PLD器件發(fā)展趨勢向高集成度、高速度方向進一步發(fā)展向低電壓和低功耗方向發(fā)展,5V?3.3V?2.5V?1.8V?更低內嵌多種功能模塊RAM,ROM,FIFO,DSP,CPU向數、模混合可編程方向發(fā)展,前言大的P
5、LD生產廠家,www.xilinx.comFPGA的發(fā)明者,最大的PLD供應商之一www.altera.com最大的PLD供應商之一www.latticesemi.comISP技術的發(fā)明者www.actel.com提供軍品及宇航級產品,前言,PLD器件的分類--按集成度低密度PROM,EPROM,EEPROM,PAL,PLA,GAL只能完成較小規(guī)模的邏輯電路高密度,已經有超過400萬門的器件EPLD ,CPLD
6、,FPGA可用于設計大規(guī)模的數字系統(tǒng)集成度高,甚至可以做到SOC(System On a Chip),前言,PLD器件的分類--按結構特點基于與或陣列結構的器件--陣列型PROM,EEPROM,PAL,GAL,CPLD基于門陣列結構的器件--單元型FPGA,前言,PLD器件的分類--按編程工藝熔絲或反熔絲編程器件--Actel的FPGA器件體積小,集成度高,速度高,易加密,抗干擾,耐高溫只能一次編程,在設計初期階段不靈
7、活SRAM--大多數公司的FPGA器件可反復編程,實現系統(tǒng)功能的動態(tài)重構每次上電需重新下載,實際應用時需外掛EEPROM用于保存程序EEPROM--大多數CPLD器件可反復編程不用每次上電重新下載,但相對速度慢,功耗較大,前言,數字電路的基本組成任何組合電路都可表示為其所有輸入信號的最小項的和或者最大項的積的形式。時序電路包含可記憶器件(觸發(fā)器),其反饋信號和輸入信號通過邏輯關系再決定輸出信號。,前言PLD的邏輯符號表
8、示方法,前言PROM結構,PROM是可編程序只讀存儲器的簡稱,它具有一個固定的全解碼與門邏輯陣列和一個可編程的或門邏輯陣列.與陣列為全譯碼陣列,器件的規(guī)模將隨著輸入信號數量n的增加成2n指數級增長。因此PROM一般只用于數據存儲器,不適于實現邏輯函數。EPROM和EEPROM,用PROM實現組合邏輯電路功能,實現的函數為:,,,,固定連接點(與),編程連接點(或),前言 PLA結構,PLA(Programmable Logic
9、 Array)是可編程邏輯陣列的簡稱,它包含了可編程的與門和或門邏輯陣列,一般采用熔絲結構.它的內部結構在簡單PLD中有最高的靈活性。,前言 PAL結構,PAL(Programmable Array Logic)是可編程陣列邏輯的簡稱,它包含有一個可編程的與門邏輯陣列和一個固定的或門邏輯陣列.與陣列可編程使輸入項增多,或陣列固定使器件簡化?;蜿嚵泄潭黠@影響了器件編程的靈活性,,AnBnCn,AnBn,AnCn,BnCn,用PAL實
10、現全加器,前言GAL結構,GAL器件與PAL器件的區(qū)別在于用可編程的輸出邏輯宏單元(OLMC)代替固定的或陣列??梢詫崿F時序電路。,,邏輯宏單元,OLMC,前言 FPGA結構原理圖,內部結構稱為LCA(Logic Cell Array)由三個部分組成:可編程邏輯塊(CLB)可編程輸入輸出模塊(IOB)可編程內部連線(PIC),IOB,CLB包含多個邏輯單元,PIC,前言內部晶體震蕩器,高速反向放大器用于和外部晶體相接,形成內
11、部晶體振蕩器。提供將振蕩波形二分頻成對稱方波的功能。,前言CPLD與FPGA的區(qū)別1,FPGA器件含有豐富的觸發(fā)器資源,易于實現時序邏輯,如果要求實現較復雜的組合電路則需要幾個CLB結合起來實現。CPLD的與或陣列結構,使其適于實現大規(guī)模的組合功能,但觸發(fā)器資源相對較少。,前言CPLD與FPGA的區(qū)別2,前言CPLD與FPGA的區(qū)別3,FPGA為細粒度結構,CPLD為粗粒度結構。FPGA內部有豐富連線資源,CLB分塊較小,芯片的
12、利用率較高。CPLD的宏單元的與或陣列較大,通常不能完全被應用,且宏單元之間主要通過高速數據通道連接,其容量有限,限制了器件的靈活布線,因此CPLD利用率較FPGA器件低。,前言CPLD與FPGA的區(qū)別4,FPGA為非連續(xù)式布線,CPLD為連續(xù)式布線。FPGA器件在每次編程時實現的邏輯功能一樣,但走的路線不同,因此延時不易控制,要求開發(fā)軟件允許工程師對關鍵的路線給予限制。CPLD每次布線路徑一樣,CPLD的連續(xù)式互連結構利用具有同樣長
13、度的一些金屬線實現邏輯單元之間的互連。連續(xù)式互連結構消除了分段式互連結構在定時上的差異,并在邏輯單元之間提供快速且具有固定延時的通路。CPLD的延時較小。,前言管腳的定義,特殊功能的管腳電源腳VCC和GND,VCC一般分為VCCINT和VCCIO兩種JTAG管腳:實現在線編程和邊界掃描配置管腳(FPGA):用于由EEPROM配置芯片信號管腳專用輸入管腳:全局時鐘、復位、置位可隨意配置其功能為:輸入、輸出、雙向、三態(tài),前言
14、PLD的設計步驟,前言設計輸入,HDL語言輸入邏輯描述功能強成為國際標準,便于移植原理圖輸入使用元件符號和連線等描述比較直觀,但設計大規(guī)模的數字系統(tǒng)時則顯得繁瑣原理圖與HDL的聯(lián)系與高級語言與匯編語言類似,前言設計處理,綜合和優(yōu)化優(yōu)化:將邏輯化簡,去除冗余項,減少設計所耗用的資源綜合:將模塊化層次化設計的多個文件合并為一個網表,使設計層次平面化映射把設計分為多個適合特定器件內部邏輯資源實現的邏輯小塊的形式布局
15、與布線將已分割的邏輯小塊放到器件內部邏輯資源的具體位置并利用布線資源完成各功能塊之間的連接生成編程文件生成可供器件編程使用的數據文件,前言模擬仿真,功能仿真不考慮信號傳輸和器件的延時時序仿真不同器件的內部延時不一樣,不同的布局、布線延時也會有比較大的不同在線驗證利用實現手段測試器件最終功能和性能指標,前言在系統(tǒng)編程技術ISP--In System Program,對PLD的邏輯功能可隨時進行修改。優(yōu)點:方便硬件
16、的調試方便硬件版本的升級,類似于軟件升級,前言在系統(tǒng)編程技術ISP--In System Program,前言邊界掃描測試技術BST--Boundary Scan Test,據IEEE1149.1標準JTAG,用于解決大規(guī)模集成電路的測試問題?,F在新開發(fā)的可編程器件都支持邊界掃描技術,并將其作為ISP接口。在FPGA/CPLD開發(fā)、DSP開發(fā)和嵌入式處理器的開發(fā)中應用得非常廣泛。,前言 FPGA的知識平臺,FPGA技術,
17、計算機,電子,計算機硬件,計算機軟件,通信 電子線路,數字信號處理,,,,,,,,前言數字信號處理系統(tǒng)的分類,非實時系統(tǒng): 信號處理的工作是可以事后進行。 實時系統(tǒng): 信號處理的工作必須在規(guī)定的很短的時間內完 成。,前言數字信號處理系統(tǒng)的實現,非實時系統(tǒng): 通用的計算機和利用通用計算機改裝的設備。 實時系統(tǒng): 信號處理專用的微處理器為核心的設備。,前言實時數字信號處理系統(tǒng)實現中存在的技
18、術難點,從算法和電路實現兩個方面考慮:如果由最快的信號處理專用的微處理器為核心的設備也來不及處理如此大量的數據怎么辦呢?,前言實時數字信號處理系統(tǒng)實現中存在的技術難點和解決辦法,算法方面:研究并行快速算法。電路實現方面: 設計并研制具有并行結構的數字和計算邏輯結構。,前言實時數字信號處理系統(tǒng)實現中存在的技術難點和解決辦法,電路實現的兩個方向: FPGA專用集成電路,前言實時數字信號處理系統(tǒng)實現中
19、存在的技術難點和解決辦法,用于信號處理的 FPGA 和專用集成 電路(ASIC)設計的方法: Verilog HDL建模、仿真、綜合和全面驗證。,第一章 FPGA/CPLD簡介1.1 FPGA/CPLD基本原理,其簡化的FPGA/CPLD結構由4部分組成:輸入/輸出模塊、二維邏輯陣列模塊、連線資源和內嵌存儲器結構。FPGA和CPLD的內部結構稍有不同,FPGA的二維邏輯陣列模塊是基于查找(Look-Up-Table)結構的,
20、而CPLD的二維邏輯陣列模塊是基于乘積項(Product-Term)結構。通常FPGA中寄存器資源比較豐富,適合做同步時序的電路較多的設計; CPLD中組合邏輯資源比較豐富,適合做組合電路較多的設計。FPGA和CPLD在規(guī)模、價格及速度上也略有差異。,盡管FPGA和CPLD在某些方面有一些差異,但是對用戶而言,FPGA和CPLD的設計方法是相似的,使用EDA軟件的設計過程也沒有太大差別。設計時,只需要根據所選器件型號充分發(fā)揮器件的特
21、性就可以了,所以在我們講課的過程中,并未加以區(qū)分,而統(tǒng)稱為可編程邏輯器件。,1.2 FPGA/CPLD的特點,規(guī)模越來越大。隨著VLSI工藝的不斷提高,單一芯片內部可以容納上百萬個晶體管, FPGA/ CPLD芯片規(guī)模也越來越大。芯片的規(guī)模越大所能實現的功能就越強,同時也更適于實現片上系統(tǒng)(soc).開發(fā)過程投資小。 FPGA/ CPLD芯片在出廠之前都做過百分百的測試,而且FPGA/ CPLD設計靈活,發(fā)現錯誤可直接更改設計,減少投
22、片風險,節(jié)省花費。所以不但許多復雜系統(tǒng)使用FPGA/ CPLD完成,甚至設計ASIC也要把實現FPGA/ CPLD功能樣機作為必需的步驟。FPGA/ CPLD一般可以反復的編程、檫除。在不改變外圍電路的情況下,設計不同片內邏輯就能實現不同的電路功能。所以,用FPGA/ CPLD試制功能樣機,能以最快的速度占領市場。甚至有些領域,只能用FPGA/ CPLD完成系統(tǒng)的研制與開發(fā)。,1.2 FPGA/CPLD的特點,保密性能好。在某些場合下
23、,根據要求選用防止反向技術的FPGA/ CPLD,能很好的保護系統(tǒng)的安全性和設計者的知識產權。FPGA/ CPLD開發(fā)工具智能化,功能強大?,F在FPGA/ CPLD應用各種工具可以完成輸入、綜合、實現到配置芯片等一系列功能。還有很多功能易學易用,設計的產品能快速推向市場。新型FPGA內嵌CPU或DSP內核,支持軟硬件協(xié)同設計,可以作為片上可編程系統(tǒng)(SOPC)的硬件平臺。,1.3 FPGA/CPLD的設計流程,一個完整的FPGA/C
24、PLD設計流程包括電路設計與輸入、功能仿真、綜合、綜合后仿真、實現、布線后仿真和下板調試等主要步驟。常用的設計輸入方法有硬件描述語言(HDL)和原理圖設計輸入方法。原理圖設計輸入法直觀、便于理解、元件庫資源豐富。但在大型設計中,其可維護性較差,不利于模塊建設與重用。最主要的缺點:當選用芯片升級換代后,所有原理圖都要做相應的改動。目前進行大型工程設計時,最常用的設計方法是HDL設計輸入法。其中影響最為廣泛的HDL語言是Verilog HD
25、L和VHDL。它們的共同特點是利于由頂向下設計,利于模塊的劃分與復用,可移植性好,通用性好,設計不因芯片的工藝與結構的變化而變化,更利于ASIC的移植。,1.3 FPGA/CPLD的設計流程,波形輸入和狀態(tài)機輸方法是兩種常用的輔助設計輸入方法。使用該輸入法時,只要繪制出激勵波形和輸出波形,EDA軟件就能自動地根據響應關系進行設計。而使用狀態(tài)機輸入法時,設計者只需要畫出狀態(tài)轉移圖,EDA軟件就能自動地根據響應關系進行設計。而使用狀態(tài)機輸入
26、法時,設計者只需要畫出狀態(tài)轉移圖,EDA軟件就能生成相應的HDL代碼或者原理圖,使用很方便。但后兩種設計方法只能在某些特殊情況下緩解設計者的工作量,并不適合所有設計。,1.3 FPGA/CPLD的設計流程,電路設計完成后,要用專用仿真工具對設計進行功能仿真,驗證電路功能是否符合設計要求。通過仿真能及時發(fā)現設計中的錯誤,加快設計進度,提高設計的可靠性。綜合優(yōu)化(Synthesize)是指將HDL語言、原理圖等設計輸入翻譯成與、或、非門,
27、RAM,寄存器等基本邏輯單元組成的邏輯連接(網表),并根據目標與要求(約束條件)優(yōu)化所產生的邏輯連接,輸出edf和den等文件,供CPLD/FPGA廠家的布局步線器進行實現。,1.3 FPGA/CPLD的設計流程,綜合完成后需要檢查綜合結果是否與原設計一致,需要做綜合后仿真。在仿真時,把綜合生成的延時文件反標到綜合仿真模型中去,可估計門延時帶來的影響。綜合后仿真雖然比功能仿真精確一點,但是只能估計門延時,而不能估計連線延時,仿真結果與布
28、線后的實際情況還有一定的差距,并不十分準確。這種仿真的主要目的在于檢查綜合器的綜合結果是否與設計輸入一致。,1.3 FPGA/CPLD的設計流程,綜合結果的本質是一些由與、或、非門、觸發(fā)器,RAM等基本邏輯單元組成的邏輯網表,它與芯片實際的配置情況還有較大差距。此時應該使用FPGA/CPLD廠商提供的工具軟件,根據所選芯片的型號,將綜合輸出的邏輯網表適配到具體FPGA/CPLD器件上,這個過程就叫做實現(Implementation)過
29、程。Xilinx的實現過程分為:翻譯(Translate)、映射(Map)、布局布線(Place&Route)等3個步驟。因為只有器件開發(fā)商最了解器件的內部結構,所以實現步驟必須選用器件開發(fā)商提供的工具軟件。,1.3 FPGA/CPLD的設計流程,布局布線之后應該做時序仿真,時序仿真中應該將布局布線的時延文件反標到設計中,使仿真既包含門延時,又包含連線延時信息。與前面各種仿真相比,這種后仿真包含的延時信息最為全面、準確,能較好地反映芯片
30、的實際工作情況。設計開發(fā)的最后步驟就是在線調試或者將生成的配置文件寫入芯片中進行測試。在ISE中對應的工具是iMPACT。每個仿真步驟如果出現問題,就需要根據錯誤的定位返回到相應的步驟更改或者重新設計。,1.4 FPGA/CPLD的常用開發(fā)工具,Xilinx作為當今世界上最大的FPGA/CPLD生產商之一,長期一來一直推動著FPGA/CPLD技術的發(fā)展。其開發(fā)的軟件也不斷升級換代,由早期的Foundation系列逐步發(fā)展到目前的IS
31、E系列。ISE是集成綜合環(huán)境的簡稱,是Xilinx提供的一套工具集,其集成工具可以完成上述整個FPGA/CPLD的開發(fā)過程。,ISE是一個集成環(huán)境,可以完成整個FPGA/CPLD開發(fā)的全過程。ISE界面風格簡潔流暢,易學易用。ISE有豐富的在線幫助信息,結合Xilinx的技術支持網站,一般設計過程中可能遇到的問題都能得到很好的解決。強大的設計輔助功能。ISE秉承了Xilinx設計軟件的強大輔助功能。,第二章 基本概念,若想把FPG
32、A/CPLD應用到軟件無線電中,我們首先需要了解一些基本概念。,2.1 數字信號處理,FPGA/CPLD能夠應用到軟件無線電中很大程度上依賴于數字信號處理技術,說道數字信號處理,自然就會想到數學計算(或數學運算)?,F代計算機和通信系統(tǒng)中廣泛采用了數字信號處理的技術和方法?;舅悸肥窍劝研盘栍靡幌盗械臄底謥肀硎?,如果是連續(xù)的模擬信號,則需要通過采樣和模/數轉換,把信號轉換成一系列的數字信號。,2.2 計算,信號用數字表示后需要進行各種快速
33、的數學運算,這樣做的目的是多種多樣的,有的是為了加密,有的是通過調制來適于無線信道傳輸,有的是通過編碼來減少誤碼率以提高信道的通信質量,有的是為了去掉噪聲等無關的信息也可以稱為濾波,有的是為了數據的壓縮以減少占用的頻道。有時也把某些種類的數字信號處理運算稱謂變換,如離散博里葉變換(DFT)、離散余弦變換(DCT)、小波變換(Wavelet-T)等。,2.2 計算,計算這門學問研究怎樣系統(tǒng)地有步驟地描述和轉換信息,實質上它是一門覆蓋了多
34、個知識和技術范疇的學問,其中包括了計算的理論、分析、設計、效率和應用。它提出的最基本的問題是什么樣的工作能自動完成,什么樣的不能。計算這個詞由傳統(tǒng)的觀點出發(fā),可以從3個不同的方面來研究計算,即從數學、科學和工程的不同角度。由現代觀點出發(fā),可以從4個主要的方面來研究計算,即算法和數據結構、編程語言、體系結構、軟件和硬件設計方法學。,2.3 算法和數據結構,為了準確地表示特定問題的信息并順利解決有關的計算問題,需要采用一些特殊方法并建立相
35、應的模型。所謂算法就是解決特定問題的有序步驟,所謂數據結構就是解決特定問題的相應模型。,2.4 編程語言和程序,程序員利用一種由專家設計的既可以被人理解、也可以被計算機解釋的語言來表示算法問題的求解過程,這種語言就是編程語言,由它所表達的算法問題的求解過程就是程序。我們已經熟悉通過編寫程序來解決計算問題,如C、PASCAL、FORTRAN、BASIC或匯編語言是幾種常用的編程語言。如果只研究算法。只在通用的計算機上運行程序或利用通用的C
36、PU來設計專用的微處理嵌入系統(tǒng),掌握上述語言就夠了。如果還需要設計和制造能進行快速計算的硬線邏輯專用電路,就必須學習數字電路的基本知識和硬件描述語言。因為現代復雜的數字邏輯系統(tǒng)的設計都是借助于EDA工具完成的,無論是電路系統(tǒng)的仿真還是綜合都需要掌握硬件描述語言。,2.5 系統(tǒng)結構和硬線邏輯,計算機系統(tǒng)結構:是一門討論和研究通用的計算機中央處理器如何提高運算速度性能的學問。硬線邏輯: 由與門、或門、非門、觸發(fā)器、多路器等基本邏輯部件構成
37、的邏輯系統(tǒng)。,2.6 設計方法學,復雜數字系統(tǒng)的設計是一個把思想(即算法)轉化為實際數字邏輯電路的過程。我們都知道同一個算法速度和性能價格比則有很大的差別。我們可以用許多種不同的方案來實現能實時完成算法運算的復雜數字系統(tǒng)電路。下面列出4種方案:1,以專用微處理機芯片為中心來構成完成算法所需的電路系統(tǒng);2,用高密度的FPGA(從幾萬門到幾百萬門);3,設計專用的大規(guī)模集成電路(ASIC);4,利用現成的微處理機的IP核并結合專門設計的高速
38、ASIC運算電路。究竟采用什么方案要根據具體項目的技術指標、經費、時間進度和生產批量綜合考慮而定。,2.6 設計方法學,上述第2.3.4種設計方案中,電路結構的考慮和決策至關重要。有的電路結構速度快,但所需的邏輯單元多,成本高;而有的電路結構速度慢,但所需的邏輯單元少,成本低。復雜數字邏輯系統(tǒng)設計的過程往往需要通過多次仿真,從不同的結構方案中找到一種符合工程技術要求的性能價格比最好的結構。一個優(yōu)秀有經驗的設計師,能通過硬件描述語言的頂層
39、仿真較快的確定合理的系統(tǒng)電路結構,減少由于總體結構設計不合理而造成的返工,從而大大加快系統(tǒng)的設計進程。,2.7 專用硬線邏輯與微處理器的比較,在信號處理專用計算電路的設計中,以專用微處理器芯片為中心來構成算法所需的電路系統(tǒng)是一種較好的辦法。可以利用現成的微處理器開發(fā)系統(tǒng),在算法已用C語言驗證的基礎上,在系統(tǒng)開發(fā)工具的幫助下,把該C語言程序轉換為專用微處理器的匯編語言程序,再編譯為機器代碼,然后加載到樣機系統(tǒng)的存儲區(qū),即可在系統(tǒng)開發(fā)工具的
40、環(huán)境下開始相關算法的運算仿真或運算。采用這種方法,設計周期短,可以利用的資源多,但速度、能耗、體積等性能受該微處理器芯片和外圍的限制。,2.7 專用硬線邏輯與微處理器的比較,用高密度的FPGA來構成算法所需的電路系統(tǒng)也是一種較好的辦法。但必須購置有關的FPGA開發(fā)環(huán)境、布局布線和編程工具。有些FPGA廠商提供的開發(fā)環(huán)境不夠理想,其仿真工具和綜合工具性能不好,還需要利用性能較好的硬件描述語言仿真器、綜合工具,才能有效地進行復雜的硬線邏輯系
41、統(tǒng)的設計。由于FPGA是一種通用的器件,它的基本結構必須適用于多種功能的電路,因而對某一種特殊應用性能不如專門為特殊應用設計的ASIC電路。,2.7 專用硬線邏輯與微處理器的比較,利用現成的微處理器IP核或根據某一特殊應用設計的微處理器,并結合專門設計的高速ASIC運算電路,能設計出性能價格比最高的理想數字信號處理系統(tǒng)。這種方法結合了微處理器和專用的大規(guī)模集成電路的優(yōu)點,由于微處理器IP核的挑選結合了算法和應用的特點,又加上專用的ASI
42、C在高速部分時的增強,能量體裁衣,因而各方面性能優(yōu)越。但由于設計和制造周期長、投片成本高,往往只有經費充足,批量大的項目或重要項目才采用這一途徑。當然性能優(yōu)良的硬件描述語言仿真器、綜合工具是不可缺少的,另外對所采用的半導體廠家基本器件庫和IP庫的深入了解也是必須的。,2.8 C語言與硬件描述語言在算法運算電路設計中的關系和作用,國內大多數學校以C語言為編程語言,算法的描述和驗證常用C語言來完成。例如,要設計GMSK調制器,必須先深入了解
43、GMSK調制器的算法,再編寫C語言程序來驗證算法的正確性。運行描述調制器的C語言,把在數據文件中的多組待調制的數據轉換為相應的調制后數據并存入文件。再編寫一個加干擾的C語言程序,用于模擬信道。它能產生隨機噪聲并將其加入調制后的數據文件中。運行該加干擾程序,產生隨機噪聲的數據文件。然后再編寫一個解調器的C語言程序,運行該程序把帶噪聲的文件解調為另一個數據文件。,2.8 C語言與硬件描述語言在算法運算電路設計中的關系和作用,只要比較原始數據
44、文件和生成的文件便可知道調制和解調的程序是否正確。用這種方法就可以驗證算法的正確性。但這樣的數據處理其運行速度與程序的大小和計算機的運行速度有關,不能獨立于計算機而存在。如果要設計一個專門的電路來進行這種對速度有要求的實時數據處理,除了 以上介紹的C程序外,還需要編寫硬件描述語言程序,進行仿真以便從電路結構上保證算法能在規(guī)定的時間內完成,并能與前端和后端的設備或器件正確無誤的交換數據。,2.8 C語言與硬件描述語言在算法運算電路設計中的
45、關系和作用,硬件描述語言編寫程序設計硬件的好處在于易于理解、易于維護、調試電路速度快等優(yōu)點。電路結構確定之前,必須經過多次仿真:1,C語言的功能仿真;2,C語言的并行結構仿真;3,Verilog HDL的行為仿真;4, Verilog HDL RTL級仿真;5,綜合后門級結構仿真;6,布局布線后仿真;7,電路實現驗證。,第三章 復雜數字邏輯系統(tǒng)的Verilog HDL設計方法概述,典型的復雜數字邏輯系統(tǒng)主要有:嵌入式微處理機系統(tǒng)
46、高速通信系統(tǒng)數字信號處理系統(tǒng)高速并行計算邏輯 高速編碼/解碼、加密/解密電路復雜的多功能智能接口門邏輯總數超過幾萬門達到幾百甚至達幾千 萬門的數字系統(tǒng),3.1 為什么要設計復雜的數字邏輯系統(tǒng)?,對嵌入式系統(tǒng)的性能要求越來越高 - 通用的微處理機不能滿足要求 - 硬件結構是提高系統(tǒng)總體性能的關鍵 - 軟件只能提高系統(tǒng)的靈活性能 - 現代電子、通信系統(tǒng)的實時、高可靠、低功 耗要求 - 系統(tǒng)的功
47、能專一,但對其各種性能要求極高 - 降低系統(tǒng)的設計和制造成本,3.2 怎樣設計如此復雜的系統(tǒng)?,傳統(tǒng)的設計方法: - 查用器件手冊; - 選用合適的微處理器和電路芯片; - 設計面包板和線路板; - 調試; - 定型; - 設計復雜的系統(tǒng)(幾十萬門以上)極其困難。,3.2 怎樣設計如此復雜的系統(tǒng)?,現代的設計方法: - 選用合適的 EDA仿真工具; - 選用合適電路圖輸入和HDL編輯工具;
48、 - 逐個編寫可綜合HDL模塊; - 逐個編寫HDL測試模塊; - 逐個做Verilog HDL 電路邏輯訪真; - 編寫Verilog HDL總測試模塊; - 做系統(tǒng)電路邏輯總仿真;,3.2 怎樣設計如此復雜的系統(tǒng)?,現代的設計方法: - 選用合適的基本邏輯元件庫和宏庫 - 租用或購買必要的IP核; - 選用合適的綜合器; - 進行綜合得到門級電路結構; - 布局布線,得到時
49、延文件; - 后仿真; - 定型, FPGA編碼或ASIC投片,3.3 Top-Down 設計思想,用EDA設計數字系統(tǒng)的流程,3.4 采用硬件描述語言設計復雜數字邏輯系統(tǒng)的優(yōu)點,電路的邏輯功能容易理解;便于計算機對邏輯進行分析處理;把邏輯設計與具體電路的實現分成兩個獨立 的階段來操作;邏輯設計與實現的工藝無關;邏輯設計的資源積累可以重復利用;可以由多人共同更好更快地設計非常復雜 的邏輯電路(幾十萬門以上的
50、邏輯系統(tǒng))。,3.5 有哪幾種硬件描述語言?各有什么特點?,Verilog HDL - 較多的第三方工具的支持 - 語法結構比VHDL簡單 - 學習起來比VHDL容易 - 仿真工具比較好使 - 測試激勵模塊容易編寫,Verilog HDL 的發(fā)展歷史,3.5 有哪幾種硬件描述語言?各有什么特點?,VHDL - 比VerilogHDL早幾年成為I EEE標準; -
51、語法/結構比較嚴格,因而編寫出的 模塊風格比較清晰; - 比較適合由較多的設計人員合作完成 的特大型項目(一百萬門以上)。,兩者建模能力的比較,,,,,,,3.6 Verilog HDL目前的應用情況和適用設計,ASIC 和FPGA設計師可用它來編寫可綜合的代碼。描述系統(tǒng)的結構,做高層次的仿真。驗證工程師編寫各種層次的測試模塊對具體電路設計工程師所設計的模塊進行全面細致的驗證。庫模型的設
52、計:可以用于描述ASIC 和FPGA的基本單元(Cell)部件,也可以描述復雜的宏單元(Macro Cell)。,第4章 Verilog HDL 的基本語法4.1 Verilog HDL 概述,Verilog HDL是一種用于數字邏輯電路設計的語言:- 用Verilog HDL描述的電路設計就是該電路的 Verilog HDL模型。- Verilog HDL 既是一種行為描述的語言也是一種結構描述的語言。,既可以用電路的功能描述
53、也可以用元器件和它們之間的連接來建立所設計電路的Verilog HDL模型。Verilog模型可以是實際電路的不同級別的抽象。這些抽象的級別和它們對應的模型類型共有以下五種:系統(tǒng)級(system): 用高級語言結構實現設計模塊的外部性能的模 算法級(algorithmic): 用高級語言結構實現設計算法的模型。 RTL級(Register Transfer Level): 描述數據在寄存器之間流動和如何處理這些數據的模型。 門級
54、(gate-level): 描述邏輯門以及邏輯門之間的連接的模型。開關級(switch-level): 描述器件中三極管和儲存節(jié)點以及它們之間連接的模型。,一個復雜電路的完整Verilog HDL模型是由若個 Verilog HDL 模塊構成的,每一個模塊又可以由若干個子模塊構成。 利用Verilog HDL語言結構所提供的這種功能就可以構造一個模塊間的清晰層次結構來描述極其復雜的大型設計。 Verilog HDL
55、行為描述語言作為一種結構化和過程性的語言,其語法結構非常適合于算法級和RTL級的模型設計。這種行為描述語言具有以下八項功能:,可描述順序執(zhí)行或并行執(zhí)行的程序結構。用延遲表達式或事件表達式來明確地控制過程的啟動時間。通過命名的事件來觸發(fā)其它過程里的激活行為或停止行為。提供了條件、if-else、case、循環(huán)程序結構。提供了可帶參數且非零延續(xù)時間的任務(task)程序結構。提供了可定義新的操作符的函數結構(function)。,
56、提供了用于建立表達式的算術運算符、邏輯運算符、位運算符。 Verilog HDL語言作為一種結構化的語言也非常適合于門級和開關級的模型設計。 Verilog HDL的構造性語句可以精確地建立信號的模型。這是因為在Verilog HDL中,提供了延遲和輸出強度的原語來建立精確程度很高的信號模型。信號值可以有不同的的強度,可以通過設定寬范圍的模糊值來降低不確定條件的影響。,Verilog HDL作為一種高級的硬件描述編程語言,
57、有著類似C語言的風格。其中有許多語句如:if語句、case語句等和C語言中的對應語句十分相似。如果讀者已經掌握C語言編程的基礎,那么學習 Verilog HDL并不困難,我們只要對Verilog HDL某些語句的特殊方面著重理解,并加強上機練習就能很好地掌握它,利用它的強大功能來設計復雜的數字邏輯電路。下面我們將對Verilog HDL中的基本語法逐一加以介紹。,4.2 簡單的Verilog HDL模塊,下面先介紹幾個簡單的Verilo
58、g HDL程序,然后從中分析Verilog HDL程序的特性。例1: module adder ( count,sum,a,b,cin ); input [2:0] a,b; input cin; output count; output [2:0] sum;
59、 assign {count,sum}=a+b+cin; endmodule 這個例子描述了一個三位的加法器。從例子中可以看出整個Verilog HDL程序是嵌套在module和endmodule聲明語句里的。,例2:module compare ( equal,a,b ); output equal; //聲明輸出
60、信號equal input [1:0] a,b; //聲明輸入信號a,b assign equal=(a==b)?1:0; /*如果兩個輸入信號相等,輸出為1。否則為0*/endmodule 這個程序描述了一個比較器.在這個程序中,/*........*/和//.........表示注釋部分,注釋只是為了方便程序員理解程序,對編譯是不起作用的。,例3:module aaaa(a,clk,x_o
61、ut,y_out,rdy); input[15:0] a; input clk; output[15:0] x_out,y_out; output rdy; wire[15:0] phase_in; ppp ppp(a,clk,phase_in); cos2 cos2(phase_in,clk,x_out,y_o
62、ut,rdy); endmodule,module ppp(a,clk,phase_in);input[15:0] a;input clk;output[15:0] phase_in;reg[15:0] phase_in;reg[15:0] areg="0000000000000000";reg cou="0";,always@(posedge clk)begin
63、if(cou==0) beginareg<=a;cou<=1;endelse beginphase_in<=areg+16'hc90f;endendendmodule,在上述這個例子中存在著三個模塊:模塊aaaa、ppp和模塊cos2 . 模塊 aaaa是上層模塊。模塊ppp和模塊cos2則被稱為子模塊,其中cos2為FPGA開發(fā)環(huán)境自帶的IP核。 通過這種結構性模塊構造便可構成特
64、大型模塊。,通過上面的例子可以看到: Verilog HDL程序是由模塊構成的。模塊是可以進行層次嵌套的。正因為如此,才可以將大型的數字電路設計分割成不同的小模塊來實現特定的功能,最后通過頂層模塊調用子模塊來實現整體功能。 每個模塊要進行端口定義,并說明輸入輸出口,然后對模塊的功能進行行為邏輯描述。,Verilog HDL程序的書寫格式自由,一行可以寫幾個語句,一個語句也可以分寫多行。 除了endmodule語句外,每個語句
65、和數據定義的最后必須有分號 可以用/*.....*/和//...對Verilog HDL程序的任何部分作注釋。一個好的,有使用價值的源程序都應當加上必要的注釋,以增強程序的可讀性和可維護性。,模塊的結構,Verilog的基本設計單元是“模塊”(block)。一個模塊是由兩部分組成的:一)描述接口;二)描述邏輯功能,即定義輸入是如何影響輸出的。下面舉例說明:,從上面的例子可以看出:- Verilog模塊結構完全嵌在module和e
66、ndmodule聲明語句之間;- 每個Verilog程序包括四個主要部分:端口定義、I/O說明、內部信號聲明、功能定義.,模塊的測試,如何檢查上述例子其功能是否正確? 需要有測試激勵信號輸入到被測模塊 需要記錄被測模塊的輸出信號 需要把用功能和行為描述的Verilog模塊 轉換為門級電路互連的電路結構(綜合)。 需要對已經轉換為門級電路結構的邏輯 進行測試(門級電路仿真)。 需要對布局布線后的電路結構進行測試。
67、 (布局布線后仿真)。,圖:,模塊的測試,測試模塊常見的形式:module t;reg …; //被測模塊輸入/輸出變量類型定義wire…; //被測模塊輸入/輸出變量類型定義initial begin …; …; …; end … …//產生測試信號always #delay begin …; end … …//產生測試信號Testedmd m(.in1(ina), .in2(i
68、nb), .out1(outa), .out2(outb) );//被測模塊的實例引用initial begin ….; ….; …. end //記錄輸出和響應endmodule,模塊的測試,測試模塊中常用的過程塊:,always,所有的過程塊都在0時刻同時啟動;它們是并行的,在模塊中不分前后。 initial塊 只執(zhí)行一次。 always塊 只要符合觸發(fā)條件可以循環(huán)執(zhí)行。,模塊的測試,4.3 數據類型及其
69、常量變量,Verilog HDL中共有19種數據類型,我們先介紹4個最基本的數據類型:reg 、wire、 integer、 parameter。常量:在程序運行過程中,其值不能改變的量稱為常量。Verilog HDL中,整型常量有4種進制表示形式:1)二進制整數 2)十進制整數 3)十六進制整數 4)八進制整數Verilog HDL中,數字表達方式有 3種:1)〈位寬 〉〈進制 〉 〈數字〉2) 〈進制 〉 〈
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- fpga在軟件無線電中的應用
- FPGA技術在軟件無線電中的應用.pdf
- 軟件無線電在機載遙測中的應用.pdf
- DSP在軟件無線電技術中的應用.pdf
- 軟件無線電的應用
- 軟件無線電技術在DAB系統(tǒng)中的應用.pdf
- 軟件無線電在直放站中的應用研究.pdf
- 基于FPGA的軟件無線電DDC設計.pdf
- 小波調制及其在軟件無線電中的應用.pdf
- 軟件無線電理論在VTS中的應用研究.pdf
- 軟件無線電在移動通信基站中的應用研究.pdf
- 軟件無線電技術在數字廣播中的應用
- SVPWM算法優(yōu)化及其FPGA-CPLD實現.pdf
- 軟件無線電數字下變頻FPGA實現的研究.pdf
- 基于軟件無線電數傳電臺的FPGA實現.pdf
- 基于FPGA的軟件無線電硬件平臺的設計.pdf
- 軟件無線電在測量終端的應用研究.pdf
- 軟件無線電數字下頻的FPGA實現研究.pdf
- 基于FPGA的軟件無線電技術(調制解調)的實現.pdf
- 基于FPGA的軟件無線電調制解調技術的實現.pdf
評論
0/150
提交評論