2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩458頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、FPGA/CPLD在軟件無(wú)線電中的工程應(yīng)用,,前言,在數(shù)字化、信息化的時(shí)代,數(shù)字化集成電路應(yīng)用的非常廣泛。今天經(jīng)過(guò)長(zhǎng)期的進(jìn)步發(fā)展成為可以完成超大規(guī)模的復(fù)雜組合邏輯與時(shí)序邏輯的現(xiàn)場(chǎng)可編程邏輯器件(FPGA)。,前言,培訓(xùn)目標(biāo):更新數(shù)字電路的設(shè)計(jì)觀念,建立用PLD器件取代傳統(tǒng)TTL器件設(shè)計(jì)數(shù)字電路的思想。更新數(shù)字系統(tǒng)設(shè)計(jì)手段,學(xué)會(huì)使用硬件描述語(yǔ)言(Hardware Description Language)代替?zhèn)鹘y(tǒng)的數(shù)字電路設(shè)計(jì)方法來(lái)

2、設(shè)計(jì)數(shù)字系統(tǒng)。掌握Xilinx FPGA開(kāi)發(fā)工具及仿真環(huán)境能夠利用FPGA實(shí)現(xiàn)高速實(shí)時(shí)數(shù)字信號(hào)處理系統(tǒng)的開(kāi)發(fā)設(shè)計(jì)。掌握基于實(shí)時(shí)通信系統(tǒng)的流水線設(shè)計(jì)、 時(shí)鐘設(shè)計(jì)、乒乓操作設(shè)計(jì)等重要設(shè)計(jì)方法和技巧.掌握軟件無(wú)線電設(shè)計(jì)精髓,而且能夠獨(dú)立的利用FPGA開(kāi)發(fā)設(shè)計(jì)高速數(shù)字化無(wú)線通信收發(fā)信機(jī) 。,前言寬帶中頻帶通采樣軟件無(wú)線電結(jié)構(gòu),前言軟件無(wú)線電發(fā)射機(jī)中FPGA軟件功能框圖,前言 軟件無(wú)線電接收機(jī)中FPGA軟件功能框圖,前言,可編程邏輯

3、器件的定義邏輯器件:用來(lái)實(shí)現(xiàn)某種特定邏輯功能的電子器件,最簡(jiǎn)單的邏輯器件是與、或、非門(mén)(74LS00,74LS04等),在此基礎(chǔ)上可實(shí)現(xiàn)復(fù)雜的時(shí)序和組合邏輯功能??删幊踢壿嬈骷≒LD--Programmable Logic Device):器件的功能不是固定不變的,而是可根據(jù)用戶的需要而進(jìn)行改變,即由編程的方法來(lái)確定器件的邏輯功能。,前言,PLD器件的優(yōu)點(diǎn)集成度高,可以替代多至幾千塊通用IC芯片極大減小電路的面積,降低功耗,提

4、高可靠性具有完善先進(jìn)的開(kāi)發(fā)工具提供語(yǔ)言、圖形等設(shè)計(jì)方法,十分靈活通過(guò)仿真工具來(lái)驗(yàn)證設(shè)計(jì)的正確性可以反復(fù)地擦除、編程,方便設(shè)計(jì)的修改和升級(jí)靈活地定義管腳功能,減輕設(shè)計(jì)工作量,縮短系統(tǒng)開(kāi)發(fā)時(shí)間保密性好,前言,PLD器件發(fā)展趨勢(shì)向高集成度、高速度方向進(jìn)一步發(fā)展向低電壓和低功耗方向發(fā)展,5V?3.3V?2.5V?1.8V?更低內(nèi)嵌多種功能模塊RAM,ROM,F(xiàn)IFO,DSP,CPU向數(shù)、?;旌峡删幊谭较虬l(fā)展,前言大的P

5、LD生產(chǎn)廠家,www.xilinx.comFPGA的發(fā)明者,最大的PLD供應(yīng)商之一www.altera.com最大的PLD供應(yīng)商之一www.latticesemi.comISP技術(shù)的發(fā)明者www.actel.com提供軍品及宇航級(jí)產(chǎn)品,前言,PLD器件的分類(lèi)--按集成度低密度PROM,EPROM,EEPROM,PAL,PLA,GAL只能完成較小規(guī)模的邏輯電路高密度,已經(jīng)有超過(guò)400萬(wàn)門(mén)的器件EPLD ,CPLD

6、,FPGA可用于設(shè)計(jì)大規(guī)模的數(shù)字系統(tǒng)集成度高,甚至可以做到SOC(System On a Chip),前言,PLD器件的分類(lèi)--按結(jié)構(gòu)特點(diǎn)基于與或陣列結(jié)構(gòu)的器件--陣列型PROM,EEPROM,PAL,GAL,CPLD基于門(mén)陣列結(jié)構(gòu)的器件--單元型FPGA,前言,PLD器件的分類(lèi)--按編程工藝熔絲或反熔絲編程器件--Actel的FPGA器件體積小,集成度高,速度高,易加密,抗干擾,耐高溫只能一次編程,在設(shè)計(jì)初期階段不靈

7、活SRAM--大多數(shù)公司的FPGA器件可反復(fù)編程,實(shí)現(xiàn)系統(tǒng)功能的動(dòng)態(tài)重構(gòu)每次上電需重新下載,實(shí)際應(yīng)用時(shí)需外掛EEPROM用于保存程序EEPROM--大多數(shù)CPLD器件可反復(fù)編程不用每次上電重新下載,但相對(duì)速度慢,功耗較大,前言,數(shù)字電路的基本組成任何組合電路都可表示為其所有輸入信號(hào)的最小項(xiàng)的和或者最大項(xiàng)的積的形式。時(shí)序電路包含可記憶器件(觸發(fā)器),其反饋信號(hào)和輸入信號(hào)通過(guò)邏輯關(guān)系再?zèng)Q定輸出信號(hào)。,前言PLD的邏輯符號(hào)表

8、示方法,前言PROM結(jié)構(gòu),PROM是可編程序只讀存儲(chǔ)器的簡(jiǎn)稱(chēng),它具有一個(gè)固定的全解碼與門(mén)邏輯陣列和一個(gè)可編程的或門(mén)邏輯陣列.與陣列為全譯碼陣列,器件的規(guī)模將隨著輸入信號(hào)數(shù)量n的增加成2n指數(shù)級(jí)增長(zhǎng)。因此PROM一般只用于數(shù)據(jù)存儲(chǔ)器,不適于實(shí)現(xiàn)邏輯函數(shù)。EPROM和EEPROM,用PROM實(shí)現(xiàn)組合邏輯電路功能,實(shí)現(xiàn)的函數(shù)為:,,,,固定連接點(diǎn)(與),編程連接點(diǎn)(或),前言 PLA結(jié)構(gòu),PLA(Programmable Logic

9、 Array)是可編程邏輯陣列的簡(jiǎn)稱(chēng),它包含了可編程的與門(mén)和或門(mén)邏輯陣列,一般采用熔絲結(jié)構(gòu).它的內(nèi)部結(jié)構(gòu)在簡(jiǎn)單PLD中有最高的靈活性。,前言 PAL結(jié)構(gòu),PAL(Programmable Array Logic)是可編程陣列邏輯的簡(jiǎn)稱(chēng),它包含有一個(gè)可編程的與門(mén)邏輯陣列和一個(gè)固定的或門(mén)邏輯陣列.與陣列可編程使輸入項(xiàng)增多,或陣列固定使器件簡(jiǎn)化?;蜿嚵泄潭黠@影響了器件編程的靈活性,,AnBnCn,AnBn,AnCn,BnCn,用PAL實(shí)

10、現(xiàn)全加器,前言GAL結(jié)構(gòu),GAL器件與PAL器件的區(qū)別在于用可編程的輸出邏輯宏單元(OLMC)代替固定的或陣列??梢詫?shí)現(xiàn)時(shí)序電路。,,邏輯宏單元,OLMC,前言 FPGA結(jié)構(gòu)原理圖,內(nèi)部結(jié)構(gòu)稱(chēng)為L(zhǎng)CA(Logic Cell Array)由三個(gè)部分組成:可編程邏輯塊(CLB)可編程輸入輸出模塊(IOB)可編程內(nèi)部連線(PIC),IOB,CLB包含多個(gè)邏輯單元,PIC,前言內(nèi)部晶體震蕩器,高速反向放大器用于和外部晶體相接,形成內(nèi)

11、部晶體振蕩器。提供將振蕩波形二分頻成對(duì)稱(chēng)方波的功能。,前言CPLD與FPGA的區(qū)別1,FPGA器件含有豐富的觸發(fā)器資源,易于實(shí)現(xiàn)時(shí)序邏輯,如果要求實(shí)現(xiàn)較復(fù)雜的組合電路則需要幾個(gè)CLB結(jié)合起來(lái)實(shí)現(xiàn)。CPLD的與或陣列結(jié)構(gòu),使其適于實(shí)現(xiàn)大規(guī)模的組合功能,但觸發(fā)器資源相對(duì)較少。,前言CPLD與FPGA的區(qū)別2,前言CPLD與FPGA的區(qū)別3,FPGA為細(xì)粒度結(jié)構(gòu),CPLD為粗粒度結(jié)構(gòu)。FPGA內(nèi)部有豐富連線資源,CLB分塊較小,芯片的

12、利用率較高。CPLD的宏單元的與或陣列較大,通常不能完全被應(yīng)用,且宏單元之間主要通過(guò)高速數(shù)據(jù)通道連接,其容量有限,限制了器件的靈活布線,因此CPLD利用率較FPGA器件低。,前言CPLD與FPGA的區(qū)別4,FPGA為非連續(xù)式布線,CPLD為連續(xù)式布線。FPGA器件在每次編程時(shí)實(shí)現(xiàn)的邏輯功能一樣,但走的路線不同,因此延時(shí)不易控制,要求開(kāi)發(fā)軟件允許工程師對(duì)關(guān)鍵的路線給予限制。CPLD每次布線路徑一樣,CPLD的連續(xù)式互連結(jié)構(gòu)利用具有同樣長(zhǎng)

13、度的一些金屬線實(shí)現(xiàn)邏輯單元之間的互連。連續(xù)式互連結(jié)構(gòu)消除了分段式互連結(jié)構(gòu)在定時(shí)上的差異,并在邏輯單元之間提供快速且具有固定延時(shí)的通路。CPLD的延時(shí)較小。,前言管腳的定義,特殊功能的管腳電源腳VCC和GND,VCC一般分為VCCINT和VCCIO兩種JTAG管腳:實(shí)現(xiàn)在線編程和邊界掃描配置管腳(FPGA):用于由EEPROM配置芯片信號(hào)管腳專(zhuān)用輸入管腳:全局時(shí)鐘、復(fù)位、置位可隨意配置其功能為:輸入、輸出、雙向、三態(tài),前言

14、PLD的設(shè)計(jì)步驟,前言設(shè)計(jì)輸入,HDL語(yǔ)言輸入邏輯描述功能強(qiáng)成為國(guó)際標(biāo)準(zhǔn),便于移植原理圖輸入使用元件符號(hào)和連線等描述比較直觀,但設(shè)計(jì)大規(guī)模的數(shù)字系統(tǒng)時(shí)則顯得繁瑣原理圖與HDL的聯(lián)系與高級(jí)語(yǔ)言與匯編語(yǔ)言類(lèi)似,前言設(shè)計(jì)處理,綜合和優(yōu)化優(yōu)化:將邏輯化簡(jiǎn),去除冗余項(xiàng),減少設(shè)計(jì)所耗用的資源綜合:將模塊化層次化設(shè)計(jì)的多個(gè)文件合并為一個(gè)網(wǎng)表,使設(shè)計(jì)層次平面化映射把設(shè)計(jì)分為多個(gè)適合特定器件內(nèi)部邏輯資源實(shí)現(xiàn)的邏輯小塊的形式布局

15、與布線將已分割的邏輯小塊放到器件內(nèi)部邏輯資源的具體位置并利用布線資源完成各功能塊之間的連接生成編程文件生成可供器件編程使用的數(shù)據(jù)文件,前言模擬仿真,功能仿真不考慮信號(hào)傳輸和器件的延時(shí)時(shí)序仿真不同器件的內(nèi)部延時(shí)不一樣,不同的布局、布線延時(shí)也會(huì)有比較大的不同在線驗(yàn)證利用實(shí)現(xiàn)手段測(cè)試器件最終功能和性能指標(biāo),前言在系統(tǒng)編程技術(shù)ISP--In System Program,對(duì)PLD的邏輯功能可隨時(shí)進(jìn)行修改。優(yōu)點(diǎn):方便硬件

16、的調(diào)試方便硬件版本的升級(jí),類(lèi)似于軟件升級(jí),前言在系統(tǒng)編程技術(shù)ISP--In System Program,前言邊界掃描測(cè)試技術(shù)BST--Boundary Scan Test,據(jù)IEEE1149.1標(biāo)準(zhǔn)JTAG,用于解決大規(guī)模集成電路的測(cè)試問(wèn)題?,F(xiàn)在新開(kāi)發(fā)的可編程器件都支持邊界掃描技術(shù),并將其作為ISP接口。在FPGA/CPLD開(kāi)發(fā)、DSP開(kāi)發(fā)和嵌入式處理器的開(kāi)發(fā)中應(yīng)用得非常廣泛。,前言 FPGA的知識(shí)平臺(tái),FPGA技術(shù),

17、計(jì)算機(jī),電子,計(jì)算機(jī)硬件,計(jì)算機(jī)軟件,通信 電子線路,數(shù)字信號(hào)處理,,,,,,,,前言數(shù)字信號(hào)處理系統(tǒng)的分類(lèi),非實(shí)時(shí)系統(tǒng): 信號(hào)處理的工作是可以事后進(jìn)行。 實(shí)時(shí)系統(tǒng): 信號(hào)處理的工作必須在規(guī)定的很短的時(shí)間內(nèi)完 成。,前言數(shù)字信號(hào)處理系統(tǒng)的實(shí)現(xiàn),非實(shí)時(shí)系統(tǒng): 通用的計(jì)算機(jī)和利用通用計(jì)算機(jī)改裝的設(shè)備。 實(shí)時(shí)系統(tǒng): 信號(hào)處理專(zhuān)用的微處理器為核心的設(shè)備。,前言實(shí)時(shí)數(shù)字信號(hào)處理系統(tǒng)實(shí)現(xiàn)中存在的技

18、術(shù)難點(diǎn),從算法和電路實(shí)現(xiàn)兩個(gè)方面考慮:如果由最快的信號(hào)處理專(zhuān)用的微處理器為核心的設(shè)備也來(lái)不及處理如此大量的數(shù)據(jù)怎么辦呢?,前言實(shí)時(shí)數(shù)字信號(hào)處理系統(tǒng)實(shí)現(xiàn)中存在的技術(shù)難點(diǎn)和解決辦法,算法方面:研究并行快速算法。電路實(shí)現(xiàn)方面: 設(shè)計(jì)并研制具有并行結(jié)構(gòu)的數(shù)字和計(jì)算邏輯結(jié)構(gòu)。,前言實(shí)時(shí)數(shù)字信號(hào)處理系統(tǒng)實(shí)現(xiàn)中存在的技術(shù)難點(diǎn)和解決辦法,電路實(shí)現(xiàn)的兩個(gè)方向: FPGA專(zhuān)用集成電路,前言實(shí)時(shí)數(shù)字信號(hào)處理系統(tǒng)實(shí)現(xiàn)中

19、存在的技術(shù)難點(diǎn)和解決辦法,用于信號(hào)處理的 FPGA 和專(zhuān)用集成 電路(ASIC)設(shè)計(jì)的方法: Verilog HDL建模、仿真、綜合和全面驗(yàn)證。,第一章 FPGA/CPLD簡(jiǎn)介1.1 FPGA/CPLD基本原理,其簡(jiǎn)化的FPGA/CPLD結(jié)構(gòu)由4部分組成:輸入/輸出模塊、二維邏輯陣列模塊、連線資源和內(nèi)嵌存儲(chǔ)器結(jié)構(gòu)。FPGA和CPLD的內(nèi)部結(jié)構(gòu)稍有不同,F(xiàn)PGA的二維邏輯陣列模塊是基于查找(Look-Up-Table)結(jié)構(gòu)的,

20、而CPLD的二維邏輯陣列模塊是基于乘積項(xiàng)(Product-Term)結(jié)構(gòu)。通常FPGA中寄存器資源比較豐富,適合做同步時(shí)序的電路較多的設(shè)計(jì); CPLD中組合邏輯資源比較豐富,適合做組合電路較多的設(shè)計(jì)。FPGA和CPLD在規(guī)模、價(jià)格及速度上也略有差異。,盡管FPGA和CPLD在某些方面有一些差異,但是對(duì)用戶而言,F(xiàn)PGA和CPLD的設(shè)計(jì)方法是相似的,使用EDA軟件的設(shè)計(jì)過(guò)程也沒(méi)有太大差別。設(shè)計(jì)時(shí),只需要根據(jù)所選器件型號(hào)充分發(fā)揮器件的特

21、性就可以了,所以在我們講課的過(guò)程中,并未加以區(qū)分,而統(tǒng)稱(chēng)為可編程邏輯器件。,1.2 FPGA/CPLD的特點(diǎn),規(guī)模越來(lái)越大。隨著VLSI工藝的不斷提高,單一芯片內(nèi)部可以容納上百萬(wàn)個(gè)晶體管, FPGA/ CPLD芯片規(guī)模也越來(lái)越大。芯片的規(guī)模越大所能實(shí)現(xiàn)的功能就越強(qiáng),同時(shí)也更適于實(shí)現(xiàn)片上系統(tǒng)(soc).開(kāi)發(fā)過(guò)程投資小。 FPGA/ CPLD芯片在出廠之前都做過(guò)百分百的測(cè)試,而且FPGA/ CPLD設(shè)計(jì)靈活,發(fā)現(xiàn)錯(cuò)誤可直接更改設(shè)計(jì),減少投

22、片風(fēng)險(xiǎn),節(jié)省花費(fèi)。所以不但許多復(fù)雜系統(tǒng)使用FPGA/ CPLD完成,甚至設(shè)計(jì)ASIC也要把實(shí)現(xiàn)FPGA/ CPLD功能樣機(jī)作為必需的步驟。FPGA/ CPLD一般可以反復(fù)的編程、檫除。在不改變外圍電路的情況下,設(shè)計(jì)不同片內(nèi)邏輯就能實(shí)現(xiàn)不同的電路功能。所以,用FPGA/ CPLD試制功能樣機(jī),能以最快的速度占領(lǐng)市場(chǎng)。甚至有些領(lǐng)域,只能用FPGA/ CPLD完成系統(tǒng)的研制與開(kāi)發(fā)。,1.2 FPGA/CPLD的特點(diǎn),保密性能好。在某些場(chǎng)合下

23、,根據(jù)要求選用防止反向技術(shù)的FPGA/ CPLD,能很好的保護(hù)系統(tǒng)的安全性和設(shè)計(jì)者的知識(shí)產(chǎn)權(quán)。FPGA/ CPLD開(kāi)發(fā)工具智能化,功能強(qiáng)大?,F(xiàn)在FPGA/ CPLD應(yīng)用各種工具可以完成輸入、綜合、實(shí)現(xiàn)到配置芯片等一系列功能。還有很多功能易學(xué)易用,設(shè)計(jì)的產(chǎn)品能快速推向市場(chǎng)。新型FPGA內(nèi)嵌CPU或DSP內(nèi)核,支持軟硬件協(xié)同設(shè)計(jì),可以作為片上可編程系統(tǒng)(SOPC)的硬件平臺(tái)。,1.3 FPGA/CPLD的設(shè)計(jì)流程,一個(gè)完整的FPGA/C

24、PLD設(shè)計(jì)流程包括電路設(shè)計(jì)與輸入、功能仿真、綜合、綜合后仿真、實(shí)現(xiàn)、布線后仿真和下板調(diào)試等主要步驟。常用的設(shè)計(jì)輸入方法有硬件描述語(yǔ)言(HDL)和原理圖設(shè)計(jì)輸入方法。原理圖設(shè)計(jì)輸入法直觀、便于理解、元件庫(kù)資源豐富。但在大型設(shè)計(jì)中,其可維護(hù)性較差,不利于模塊建設(shè)與重用。最主要的缺點(diǎn):當(dāng)選用芯片升級(jí)換代后,所有原理圖都要做相應(yīng)的改動(dòng)。目前進(jìn)行大型工程設(shè)計(jì)時(shí),最常用的設(shè)計(jì)方法是HDL設(shè)計(jì)輸入法。其中影響最為廣泛的HDL語(yǔ)言是Verilog HD

25、L和VHDL。它們的共同特點(diǎn)是利于由頂向下設(shè)計(jì),利于模塊的劃分與復(fù)用,可移植性好,通用性好,設(shè)計(jì)不因芯片的工藝與結(jié)構(gòu)的變化而變化,更利于ASIC的移植。,1.3 FPGA/CPLD的設(shè)計(jì)流程,波形輸入和狀態(tài)機(jī)輸方法是兩種常用的輔助設(shè)計(jì)輸入方法。使用該輸入法時(shí),只要繪制出激勵(lì)波形和輸出波形,EDA軟件就能自動(dòng)地根據(jù)響應(yīng)關(guān)系進(jìn)行設(shè)計(jì)。而使用狀態(tài)機(jī)輸入法時(shí),設(shè)計(jì)者只需要畫(huà)出狀態(tài)轉(zhuǎn)移圖,EDA軟件就能自動(dòng)地根據(jù)響應(yīng)關(guān)系進(jìn)行設(shè)計(jì)。而使用狀態(tài)機(jī)輸入

26、法時(shí),設(shè)計(jì)者只需要畫(huà)出狀態(tài)轉(zhuǎn)移圖,EDA軟件就能生成相應(yīng)的HDL代碼或者原理圖,使用很方便。但后兩種設(shè)計(jì)方法只能在某些特殊情況下緩解設(shè)計(jì)者的工作量,并不適合所有設(shè)計(jì)。,1.3 FPGA/CPLD的設(shè)計(jì)流程,電路設(shè)計(jì)完成后,要用專(zhuān)用仿真工具對(duì)設(shè)計(jì)進(jìn)行功能仿真,驗(yàn)證電路功能是否符合設(shè)計(jì)要求。通過(guò)仿真能及時(shí)發(fā)現(xiàn)設(shè)計(jì)中的錯(cuò)誤,加快設(shè)計(jì)進(jìn)度,提高設(shè)計(jì)的可靠性。綜合優(yōu)化(Synthesize)是指將HDL語(yǔ)言、原理圖等設(shè)計(jì)輸入翻譯成與、或、非門(mén),

27、RAM,寄存器等基本邏輯單元組成的邏輯連接(網(wǎng)表),并根據(jù)目標(biāo)與要求(約束條件)優(yōu)化所產(chǎn)生的邏輯連接,輸出edf和den等文件,供CPLD/FPGA廠家的布局步線器進(jìn)行實(shí)現(xiàn)。,1.3 FPGA/CPLD的設(shè)計(jì)流程,綜合完成后需要檢查綜合結(jié)果是否與原設(shè)計(jì)一致,需要做綜合后仿真。在仿真時(shí),把綜合生成的延時(shí)文件反標(biāo)到綜合仿真模型中去,可估計(jì)門(mén)延時(shí)帶來(lái)的影響。綜合后仿真雖然比功能仿真精確一點(diǎn),但是只能估計(jì)門(mén)延時(shí),而不能估計(jì)連線延時(shí),仿真結(jié)果與布

28、線后的實(shí)際情況還有一定的差距,并不十分準(zhǔn)確。這種仿真的主要目的在于檢查綜合器的綜合結(jié)果是否與設(shè)計(jì)輸入一致。,1.3 FPGA/CPLD的設(shè)計(jì)流程,綜合結(jié)果的本質(zhì)是一些由與、或、非門(mén)、觸發(fā)器,RAM等基本邏輯單元組成的邏輯網(wǎng)表,它與芯片實(shí)際的配置情況還有較大差距。此時(shí)應(yīng)該使用FPGA/CPLD廠商提供的工具軟件,根據(jù)所選芯片的型號(hào),將綜合輸出的邏輯網(wǎng)表適配到具體FPGA/CPLD器件上,這個(gè)過(guò)程就叫做實(shí)現(xiàn)(Implementation)過(guò)

29、程。Xilinx的實(shí)現(xiàn)過(guò)程分為:翻譯(Translate)、映射(Map)、布局布線(Place&Route)等3個(gè)步驟。因?yàn)橹挥衅骷_(kāi)發(fā)商最了解器件的內(nèi)部結(jié)構(gòu),所以實(shí)現(xiàn)步驟必須選用器件開(kāi)發(fā)商提供的工具軟件。,1.3 FPGA/CPLD的設(shè)計(jì)流程,布局布線之后應(yīng)該做時(shí)序仿真,時(shí)序仿真中應(yīng)該將布局布線的時(shí)延文件反標(biāo)到設(shè)計(jì)中,使仿真既包含門(mén)延時(shí),又包含連線延時(shí)信息。與前面各種仿真相比,這種后仿真包含的延時(shí)信息最為全面、準(zhǔn)確,能較好地反映芯片

30、的實(shí)際工作情況。設(shè)計(jì)開(kāi)發(fā)的最后步驟就是在線調(diào)試或者將生成的配置文件寫(xiě)入芯片中進(jìn)行測(cè)試。在ISE中對(duì)應(yīng)的工具是iMPACT。每個(gè)仿真步驟如果出現(xiàn)問(wèn)題,就需要根據(jù)錯(cuò)誤的定位返回到相應(yīng)的步驟更改或者重新設(shè)計(jì)。,1.4 FPGA/CPLD的常用開(kāi)發(fā)工具,Xilinx作為當(dāng)今世界上最大的FPGA/CPLD生產(chǎn)商之一,長(zhǎng)期一來(lái)一直推動(dòng)著FPGA/CPLD技術(shù)的發(fā)展。其開(kāi)發(fā)的軟件也不斷升級(jí)換代,由早期的Foundation系列逐步發(fā)展到目前的IS

31、E系列。ISE是集成綜合環(huán)境的簡(jiǎn)稱(chēng),是Xilinx提供的一套工具集,其集成工具可以完成上述整個(gè)FPGA/CPLD的開(kāi)發(fā)過(guò)程。,ISE是一個(gè)集成環(huán)境,可以完成整個(gè)FPGA/CPLD開(kāi)發(fā)的全過(guò)程。ISE界面風(fēng)格簡(jiǎn)潔流暢,易學(xué)易用。ISE有豐富的在線幫助信息,結(jié)合Xilinx的技術(shù)支持網(wǎng)站,一般設(shè)計(jì)過(guò)程中可能遇到的問(wèn)題都能得到很好的解決。強(qiáng)大的設(shè)計(jì)輔助功能。ISE秉承了Xilinx設(shè)計(jì)軟件的強(qiáng)大輔助功能。,第二章 基本概念,若想把FPG

32、A/CPLD應(yīng)用到軟件無(wú)線電中,我們首先需要了解一些基本概念。,2.1 數(shù)字信號(hào)處理,FPGA/CPLD能夠應(yīng)用到軟件無(wú)線電中很大程度上依賴于數(shù)字信號(hào)處理技術(shù),說(shuō)道數(shù)字信號(hào)處理,自然就會(huì)想到數(shù)學(xué)計(jì)算(或數(shù)學(xué)運(yùn)算)?,F(xiàn)代計(jì)算機(jī)和通信系統(tǒng)中廣泛采用了數(shù)字信號(hào)處理的技術(shù)和方法?;舅悸肥窍劝研盘?hào)用一系列的數(shù)字來(lái)表示,如果是連續(xù)的模擬信號(hào),則需要通過(guò)采樣和模/數(shù)轉(zhuǎn)換,把信號(hào)轉(zhuǎn)換成一系列的數(shù)字信號(hào)。,2.2 計(jì)算,信號(hào)用數(shù)字表示后需要進(jìn)行各種快速

33、的數(shù)學(xué)運(yùn)算,這樣做的目的是多種多樣的,有的是為了加密,有的是通過(guò)調(diào)制來(lái)適于無(wú)線信道傳輸,有的是通過(guò)編碼來(lái)減少誤碼率以提高信道的通信質(zhì)量,有的是為了去掉噪聲等無(wú)關(guān)的信息也可以稱(chēng)為濾波,有的是為了數(shù)據(jù)的壓縮以減少占用的頻道。有時(shí)也把某些種類(lèi)的數(shù)字信號(hào)處理運(yùn)算稱(chēng)謂變換,如離散博里葉變換(DFT)、離散余弦變換(DCT)、小波變換(Wavelet-T)等。,2.2 計(jì)算,計(jì)算這門(mén)學(xué)問(wèn)研究怎樣系統(tǒng)地有步驟地描述和轉(zhuǎn)換信息,實(shí)質(zhì)上它是一門(mén)覆蓋了多

34、個(gè)知識(shí)和技術(shù)范疇的學(xué)問(wèn),其中包括了計(jì)算的理論、分析、設(shè)計(jì)、效率和應(yīng)用。它提出的最基本的問(wèn)題是什么樣的工作能自動(dòng)完成,什么樣的不能。計(jì)算這個(gè)詞由傳統(tǒng)的觀點(diǎn)出發(fā),可以從3個(gè)不同的方面來(lái)研究計(jì)算,即從數(shù)學(xué)、科學(xué)和工程的不同角度。由現(xiàn)代觀點(diǎn)出發(fā),可以從4個(gè)主要的方面來(lái)研究計(jì)算,即算法和數(shù)據(jù)結(jié)構(gòu)、編程語(yǔ)言、體系結(jié)構(gòu)、軟件和硬件設(shè)計(jì)方法學(xué)。,2.3 算法和數(shù)據(jù)結(jié)構(gòu),為了準(zhǔn)確地表示特定問(wèn)題的信息并順利解決有關(guān)的計(jì)算問(wèn)題,需要采用一些特殊方法并建立相

35、應(yīng)的模型。所謂算法就是解決特定問(wèn)題的有序步驟,所謂數(shù)據(jù)結(jié)構(gòu)就是解決特定問(wèn)題的相應(yīng)模型。,2.4 編程語(yǔ)言和程序,程序員利用一種由專(zhuān)家設(shè)計(jì)的既可以被人理解、也可以被計(jì)算機(jī)解釋的語(yǔ)言來(lái)表示算法問(wèn)題的求解過(guò)程,這種語(yǔ)言就是編程語(yǔ)言,由它所表達(dá)的算法問(wèn)題的求解過(guò)程就是程序。我們已經(jīng)熟悉通過(guò)編寫(xiě)程序來(lái)解決計(jì)算問(wèn)題,如C、PASCAL、FORTRAN、BASIC或匯編語(yǔ)言是幾種常用的編程語(yǔ)言。如果只研究算法。只在通用的計(jì)算機(jī)上運(yùn)行程序或利用通用的C

36、PU來(lái)設(shè)計(jì)專(zhuān)用的微處理嵌入系統(tǒng),掌握上述語(yǔ)言就夠了。如果還需要設(shè)計(jì)和制造能進(jìn)行快速計(jì)算的硬線邏輯專(zhuān)用電路,就必須學(xué)習(xí)數(shù)字電路的基本知識(shí)和硬件描述語(yǔ)言。因?yàn)楝F(xiàn)代復(fù)雜的數(shù)字邏輯系統(tǒng)的設(shè)計(jì)都是借助于EDA工具完成的,無(wú)論是電路系統(tǒng)的仿真還是綜合都需要掌握硬件描述語(yǔ)言。,2.5 系統(tǒng)結(jié)構(gòu)和硬線邏輯,計(jì)算機(jī)系統(tǒng)結(jié)構(gòu):是一門(mén)討論和研究通用的計(jì)算機(jī)中央處理器如何提高運(yùn)算速度性能的學(xué)問(wèn)。硬線邏輯: 由與門(mén)、或門(mén)、非門(mén)、觸發(fā)器、多路器等基本邏輯部件構(gòu)成

37、的邏輯系統(tǒng)。,2.6 設(shè)計(jì)方法學(xué),復(fù)雜數(shù)字系統(tǒng)的設(shè)計(jì)是一個(gè)把思想(即算法)轉(zhuǎn)化為實(shí)際數(shù)字邏輯電路的過(guò)程。我們都知道同一個(gè)算法速度和性能價(jià)格比則有很大的差別。我們可以用許多種不同的方案來(lái)實(shí)現(xiàn)能實(shí)時(shí)完成算法運(yùn)算的復(fù)雜數(shù)字系統(tǒng)電路。下面列出4種方案:1,以專(zhuān)用微處理機(jī)芯片為中心來(lái)構(gòu)成完成算法所需的電路系統(tǒng);2,用高密度的FPGA(從幾萬(wàn)門(mén)到幾百萬(wàn)門(mén));3,設(shè)計(jì)專(zhuān)用的大規(guī)模集成電路(ASIC);4,利用現(xiàn)成的微處理機(jī)的IP核并結(jié)合專(zhuān)門(mén)設(shè)計(jì)的高速

38、ASIC運(yùn)算電路。究竟采用什么方案要根據(jù)具體項(xiàng)目的技術(shù)指標(biāo)、經(jīng)費(fèi)、時(shí)間進(jìn)度和生產(chǎn)批量綜合考慮而定。,2.6 設(shè)計(jì)方法學(xué),上述第2.3.4種設(shè)計(jì)方案中,電路結(jié)構(gòu)的考慮和決策至關(guān)重要。有的電路結(jié)構(gòu)速度快,但所需的邏輯單元多,成本高;而有的電路結(jié)構(gòu)速度慢,但所需的邏輯單元少,成本低。復(fù)雜數(shù)字邏輯系統(tǒng)設(shè)計(jì)的過(guò)程往往需要通過(guò)多次仿真,從不同的結(jié)構(gòu)方案中找到一種符合工程技術(shù)要求的性能價(jià)格比最好的結(jié)構(gòu)。一個(gè)優(yōu)秀有經(jīng)驗(yàn)的設(shè)計(jì)師,能通過(guò)硬件描述語(yǔ)言的頂層

39、仿真較快的確定合理的系統(tǒng)電路結(jié)構(gòu),減少由于總體結(jié)構(gòu)設(shè)計(jì)不合理而造成的返工,從而大大加快系統(tǒng)的設(shè)計(jì)進(jìn)程。,2.7 專(zhuān)用硬線邏輯與微處理器的比較,在信號(hào)處理專(zhuān)用計(jì)算電路的設(shè)計(jì)中,以專(zhuān)用微處理器芯片為中心來(lái)構(gòu)成算法所需的電路系統(tǒng)是一種較好的辦法。可以利用現(xiàn)成的微處理器開(kāi)發(fā)系統(tǒng),在算法已用C語(yǔ)言驗(yàn)證的基礎(chǔ)上,在系統(tǒng)開(kāi)發(fā)工具的幫助下,把該C語(yǔ)言程序轉(zhuǎn)換為專(zhuān)用微處理器的匯編語(yǔ)言程序,再編譯為機(jī)器代碼,然后加載到樣機(jī)系統(tǒng)的存儲(chǔ)區(qū),即可在系統(tǒng)開(kāi)發(fā)工具的

40、環(huán)境下開(kāi)始相關(guān)算法的運(yùn)算仿真或運(yùn)算。采用這種方法,設(shè)計(jì)周期短,可以利用的資源多,但速度、能耗、體積等性能受該微處理器芯片和外圍的限制。,2.7 專(zhuān)用硬線邏輯與微處理器的比較,用高密度的FPGA來(lái)構(gòu)成算法所需的電路系統(tǒng)也是一種較好的辦法。但必須購(gòu)置有關(guān)的FPGA開(kāi)發(fā)環(huán)境、布局布線和編程工具。有些FPGA廠商提供的開(kāi)發(fā)環(huán)境不夠理想,其仿真工具和綜合工具性能不好,還需要利用性能較好的硬件描述語(yǔ)言仿真器、綜合工具,才能有效地進(jìn)行復(fù)雜的硬線邏輯系

41、統(tǒng)的設(shè)計(jì)。由于FPGA是一種通用的器件,它的基本結(jié)構(gòu)必須適用于多種功能的電路,因而對(duì)某一種特殊應(yīng)用性能不如專(zhuān)門(mén)為特殊應(yīng)用設(shè)計(jì)的ASIC電路。,2.7 專(zhuān)用硬線邏輯與微處理器的比較,利用現(xiàn)成的微處理器IP核或根據(jù)某一特殊應(yīng)用設(shè)計(jì)的微處理器,并結(jié)合專(zhuān)門(mén)設(shè)計(jì)的高速ASIC運(yùn)算電路,能設(shè)計(jì)出性能價(jià)格比最高的理想數(shù)字信號(hào)處理系統(tǒng)。這種方法結(jié)合了微處理器和專(zhuān)用的大規(guī)模集成電路的優(yōu)點(diǎn),由于微處理器IP核的挑選結(jié)合了算法和應(yīng)用的特點(diǎn),又加上專(zhuān)用的ASI

42、C在高速部分時(shí)的增強(qiáng),能量體裁衣,因而各方面性能優(yōu)越。但由于設(shè)計(jì)和制造周期長(zhǎng)、投片成本高,往往只有經(jīng)費(fèi)充足,批量大的項(xiàng)目或重要項(xiàng)目才采用這一途徑。當(dāng)然性能優(yōu)良的硬件描述語(yǔ)言仿真器、綜合工具是不可缺少的,另外對(duì)所采用的半導(dǎo)體廠家基本器件庫(kù)和IP庫(kù)的深入了解也是必須的。,2.8 C語(yǔ)言與硬件描述語(yǔ)言在算法運(yùn)算電路設(shè)計(jì)中的關(guān)系和作用,國(guó)內(nèi)大多數(shù)學(xué)校以C語(yǔ)言為編程語(yǔ)言,算法的描述和驗(yàn)證常用C語(yǔ)言來(lái)完成。例如,要設(shè)計(jì)GMSK調(diào)制器,必須先深入了解

43、GMSK調(diào)制器的算法,再編寫(xiě)C語(yǔ)言程序來(lái)驗(yàn)證算法的正確性。運(yùn)行描述調(diào)制器的C語(yǔ)言,把在數(shù)據(jù)文件中的多組待調(diào)制的數(shù)據(jù)轉(zhuǎn)換為相應(yīng)的調(diào)制后數(shù)據(jù)并存入文件。再編寫(xiě)一個(gè)加干擾的C語(yǔ)言程序,用于模擬信道。它能產(chǎn)生隨機(jī)噪聲并將其加入調(diào)制后的數(shù)據(jù)文件中。運(yùn)行該加干擾程序,產(chǎn)生隨機(jī)噪聲的數(shù)據(jù)文件。然后再編寫(xiě)一個(gè)解調(diào)器的C語(yǔ)言程序,運(yùn)行該程序把帶噪聲的文件解調(diào)為另一個(gè)數(shù)據(jù)文件。,2.8 C語(yǔ)言與硬件描述語(yǔ)言在算法運(yùn)算電路設(shè)計(jì)中的關(guān)系和作用,只要比較原始數(shù)據(jù)

44、文件和生成的文件便可知道調(diào)制和解調(diào)的程序是否正確。用這種方法就可以驗(yàn)證算法的正確性。但這樣的數(shù)據(jù)處理其運(yùn)行速度與程序的大小和計(jì)算機(jī)的運(yùn)行速度有關(guān),不能獨(dú)立于計(jì)算機(jī)而存在。如果要設(shè)計(jì)一個(gè)專(zhuān)門(mén)的電路來(lái)進(jìn)行這種對(duì)速度有要求的實(shí)時(shí)數(shù)據(jù)處理,除了 以上介紹的C程序外,還需要編寫(xiě)硬件描述語(yǔ)言程序,進(jìn)行仿真以便從電路結(jié)構(gòu)上保證算法能在規(guī)定的時(shí)間內(nèi)完成,并能與前端和后端的設(shè)備或器件正確無(wú)誤的交換數(shù)據(jù)。,2.8 C語(yǔ)言與硬件描述語(yǔ)言在算法運(yùn)算電路設(shè)計(jì)中的

45、關(guān)系和作用,硬件描述語(yǔ)言編寫(xiě)程序設(shè)計(jì)硬件的好處在于易于理解、易于維護(hù)、調(diào)試電路速度快等優(yōu)點(diǎn)。電路結(jié)構(gòu)確定之前,必須經(jīng)過(guò)多次仿真:1,C語(yǔ)言的功能仿真;2,C語(yǔ)言的并行結(jié)構(gòu)仿真;3,Verilog HDL的行為仿真;4, Verilog HDL RTL級(jí)仿真;5,綜合后門(mén)級(jí)結(jié)構(gòu)仿真;6,布局布線后仿真;7,電路實(shí)現(xiàn)驗(yàn)證。,第三章 復(fù)雜數(shù)字邏輯系統(tǒng)的Verilog HDL設(shè)計(jì)方法概述,典型的復(fù)雜數(shù)字邏輯系統(tǒng)主要有:嵌入式微處理機(jī)系統(tǒng)

46、高速通信系統(tǒng)數(shù)字信號(hào)處理系統(tǒng)高速并行計(jì)算邏輯 高速編碼/解碼、加密/解密電路復(fù)雜的多功能智能接口門(mén)邏輯總數(shù)超過(guò)幾萬(wàn)門(mén)達(dá)到幾百甚至達(dá)幾千 萬(wàn)門(mén)的數(shù)字系統(tǒng),3.1 為什么要設(shè)計(jì)復(fù)雜的數(shù)字邏輯系統(tǒng)?,對(duì)嵌入式系統(tǒng)的性能要求越來(lái)越高 - 通用的微處理機(jī)不能滿足要求 - 硬件結(jié)構(gòu)是提高系統(tǒng)總體性能的關(guān)鍵 - 軟件只能提高系統(tǒng)的靈活性能 - 現(xiàn)代電子、通信系統(tǒng)的實(shí)時(shí)、高可靠、低功 耗要求 - 系統(tǒng)的功

47、能專(zhuān)一,但對(duì)其各種性能要求極高 - 降低系統(tǒng)的設(shè)計(jì)和制造成本,3.2 怎樣設(shè)計(jì)如此復(fù)雜的系統(tǒng)?,傳統(tǒng)的設(shè)計(jì)方法: - 查用器件手冊(cè); - 選用合適的微處理器和電路芯片; - 設(shè)計(jì)面包板和線路板; - 調(diào)試; - 定型; - 設(shè)計(jì)復(fù)雜的系統(tǒng)(幾十萬(wàn)門(mén)以上)極其困難。,3.2 怎樣設(shè)計(jì)如此復(fù)雜的系統(tǒng)?,現(xiàn)代的設(shè)計(jì)方法: - 選用合適的 EDA仿真工具; - 選用合適電路圖輸入和HDL編輯工具;

48、 - 逐個(gè)編寫(xiě)可綜合HDL模塊; - 逐個(gè)編寫(xiě)HDL測(cè)試模塊; - 逐個(gè)做Verilog HDL 電路邏輯訪真; - 編寫(xiě)Verilog HDL總測(cè)試模塊; - 做系統(tǒng)電路邏輯總仿真;,3.2 怎樣設(shè)計(jì)如此復(fù)雜的系統(tǒng)?,現(xiàn)代的設(shè)計(jì)方法: - 選用合適的基本邏輯元件庫(kù)和宏庫(kù) - 租用或購(gòu)買(mǎi)必要的IP核; - 選用合適的綜合器; - 進(jìn)行綜合得到門(mén)級(jí)電路結(jié)構(gòu); - 布局布線,得到時(shí)

49、延文件; - 后仿真; - 定型, FPGA編碼或ASIC投片,3.3 Top-Down 設(shè)計(jì)思想,用EDA設(shè)計(jì)數(shù)字系統(tǒng)的流程,3.4 采用硬件描述語(yǔ)言設(shè)計(jì)復(fù)雜數(shù)字邏輯系統(tǒng)的優(yōu)點(diǎn),電路的邏輯功能容易理解;便于計(jì)算機(jī)對(duì)邏輯進(jìn)行分析處理;把邏輯設(shè)計(jì)與具體電路的實(shí)現(xiàn)分成兩個(gè)獨(dú)立 的階段來(lái)操作;邏輯設(shè)計(jì)與實(shí)現(xiàn)的工藝無(wú)關(guān);邏輯設(shè)計(jì)的資源積累可以重復(fù)利用;可以由多人共同更好更快地設(shè)計(jì)非常復(fù)雜 的邏輯電路(幾十萬(wàn)門(mén)以上的

50、邏輯系統(tǒng))。,3.5 有哪幾種硬件描述語(yǔ)言?各有什么特點(diǎn)?,Verilog HDL - 較多的第三方工具的支持 - 語(yǔ)法結(jié)構(gòu)比VHDL簡(jiǎn)單 - 學(xué)習(xí)起來(lái)比VHDL容易 - 仿真工具比較好使 - 測(cè)試激勵(lì)模塊容易編寫(xiě),Verilog HDL 的發(fā)展歷史,3.5 有哪幾種硬件描述語(yǔ)言?各有什么特點(diǎn)?,VHDL - 比VerilogHDL早幾年成為I EEE標(biāo)準(zhǔn); -

51、語(yǔ)法/結(jié)構(gòu)比較嚴(yán)格,因而編寫(xiě)出的 模塊風(fēng)格比較清晰; - 比較適合由較多的設(shè)計(jì)人員合作完成 的特大型項(xiàng)目(一百萬(wàn)門(mén)以上)。,兩者建模能力的比較,,,,,,,3.6 Verilog HDL目前的應(yīng)用情況和適用設(shè)計(jì),ASIC 和FPGA設(shè)計(jì)師可用它來(lái)編寫(xiě)可綜合的代碼。描述系統(tǒng)的結(jié)構(gòu),做高層次的仿真。驗(yàn)證工程師編寫(xiě)各種層次的測(cè)試模塊對(duì)具體電路設(shè)計(jì)工程師所設(shè)計(jì)的模塊進(jìn)行全面細(xì)致的驗(yàn)證。庫(kù)模型的設(shè)

52、計(jì):可以用于描述ASIC 和FPGA的基本單元(Cell)部件,也可以描述復(fù)雜的宏單元(Macro Cell)。,第4章 Verilog HDL 的基本語(yǔ)法4.1 Verilog HDL 概述,Verilog HDL是一種用于數(shù)字邏輯電路設(shè)計(jì)的語(yǔ)言:- 用Verilog HDL描述的電路設(shè)計(jì)就是該電路的 Verilog HDL模型。- Verilog HDL 既是一種行為描述的語(yǔ)言也是一種結(jié)構(gòu)描述的語(yǔ)言。,既可以用電路的功能描述

53、也可以用元器件和它們之間的連接來(lái)建立所設(shè)計(jì)電路的Verilog HDL模型。Verilog模型可以是實(shí)際電路的不同級(jí)別的抽象。這些抽象的級(jí)別和它們對(duì)應(yīng)的模型類(lèi)型共有以下五種:系統(tǒng)級(jí)(system): 用高級(jí)語(yǔ)言結(jié)構(gòu)實(shí)現(xiàn)設(shè)計(jì)模塊的外部性能的模 算法級(jí)(algorithmic): 用高級(jí)語(yǔ)言結(jié)構(gòu)實(shí)現(xiàn)設(shè)計(jì)算法的模型。 RTL級(jí)(Register Transfer Level): 描述數(shù)據(jù)在寄存器之間流動(dòng)和如何處理這些數(shù)據(jù)的模型。 門(mén)級(jí)

54、(gate-level): 描述邏輯門(mén)以及邏輯門(mén)之間的連接的模型。開(kāi)關(guān)級(jí)(switch-level): 描述器件中三極管和儲(chǔ)存節(jié)點(diǎn)以及它們之間連接的模型。,一個(gè)復(fù)雜電路的完整Verilog HDL模型是由若個(gè) Verilog HDL 模塊構(gòu)成的,每一個(gè)模塊又可以由若干個(gè)子模塊構(gòu)成。 利用Verilog HDL語(yǔ)言結(jié)構(gòu)所提供的這種功能就可以構(gòu)造一個(gè)模塊間的清晰層次結(jié)構(gòu)來(lái)描述極其復(fù)雜的大型設(shè)計(jì)。 Verilog HDL

55、行為描述語(yǔ)言作為一種結(jié)構(gòu)化和過(guò)程性的語(yǔ)言,其語(yǔ)法結(jié)構(gòu)非常適合于算法級(jí)和RTL級(jí)的模型設(shè)計(jì)。這種行為描述語(yǔ)言具有以下八項(xiàng)功能:,可描述順序執(zhí)行或并行執(zhí)行的程序結(jié)構(gòu)。用延遲表達(dá)式或事件表達(dá)式來(lái)明確地控制過(guò)程的啟動(dòng)時(shí)間。通過(guò)命名的事件來(lái)觸發(fā)其它過(guò)程里的激活行為或停止行為。提供了條件、if-else、case、循環(huán)程序結(jié)構(gòu)。提供了可帶參數(shù)且非零延續(xù)時(shí)間的任務(wù)(task)程序結(jié)構(gòu)。提供了可定義新的操作符的函數(shù)結(jié)構(gòu)(function)。,

56、提供了用于建立表達(dá)式的算術(shù)運(yùn)算符、邏輯運(yùn)算符、位運(yùn)算符。 Verilog HDL語(yǔ)言作為一種結(jié)構(gòu)化的語(yǔ)言也非常適合于門(mén)級(jí)和開(kāi)關(guān)級(jí)的模型設(shè)計(jì)。 Verilog HDL的構(gòu)造性語(yǔ)句可以精確地建立信號(hào)的模型。這是因?yàn)樵赩erilog HDL中,提供了延遲和輸出強(qiáng)度的原語(yǔ)來(lái)建立精確程度很高的信號(hào)模型。信號(hào)值可以有不同的的強(qiáng)度,可以通過(guò)設(shè)定寬范圍的模糊值來(lái)降低不確定條件的影響。,Verilog HDL作為一種高級(jí)的硬件描述編程語(yǔ)言,

57、有著類(lèi)似C語(yǔ)言的風(fēng)格。其中有許多語(yǔ)句如:if語(yǔ)句、case語(yǔ)句等和C語(yǔ)言中的對(duì)應(yīng)語(yǔ)句十分相似。如果讀者已經(jīng)掌握C語(yǔ)言編程的基礎(chǔ),那么學(xué)習(xí) Verilog HDL并不困難,我們只要對(duì)Verilog HDL某些語(yǔ)句的特殊方面著重理解,并加強(qiáng)上機(jī)練習(xí)就能很好地掌握它,利用它的強(qiáng)大功能來(lái)設(shè)計(jì)復(fù)雜的數(shù)字邏輯電路。下面我們將對(duì)Verilog HDL中的基本語(yǔ)法逐一加以介紹。,4.2 簡(jiǎn)單的Verilog HDL模塊,下面先介紹幾個(gè)簡(jiǎn)單的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 這個(gè)例子描述了一個(gè)三位的加法器。從例子中可以看出整個(gè)Verilog HDL程序是嵌套在module和endmodule聲明語(yǔ)句里的。,例2:module compare ( equal,a,b ); output equal; //聲明輸出

60、信號(hào)equal input [1:0] a,b; //聲明輸入信號(hào)a,b assign equal=(a==b)?1:0; /*如果兩個(gè)輸入信號(hào)相等,輸出為1。否則為0*/endmodule 這個(gè)程序描述了一個(gè)比較器.在這個(gè)程序中,/*........*/和//.........表示注釋部分,注釋只是為了方便程序員理解程序,對(duì)編譯是不起作用的。,例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,在上述這個(gè)例子中存在著三個(gè)模塊:模塊aaaa、ppp和模塊cos2 . 模塊 aaaa是上層模塊。模塊ppp和模塊cos2則被稱(chēng)為子模塊,其中cos2為FPGA開(kāi)發(fā)環(huán)境自帶的IP核。 通過(guò)這種結(jié)構(gòu)性模塊構(gòu)造便可構(gòu)成特

64、大型模塊。,通過(guò)上面的例子可以看到: Verilog HDL程序是由模塊構(gòu)成的。模塊是可以進(jìn)行層次嵌套的。正因?yàn)槿绱?才可以將大型的數(shù)字電路設(shè)計(jì)分割成不同的小模塊來(lái)實(shí)現(xiàn)特定的功能,最后通過(guò)頂層模塊調(diào)用子模塊來(lái)實(shí)現(xiàn)整體功能。 每個(gè)模塊要進(jìn)行端口定義,并說(shuō)明輸入輸出口,然后對(duì)模塊的功能進(jìn)行行為邏輯描述。,Verilog HDL程序的書(shū)寫(xiě)格式自由,一行可以寫(xiě)幾個(gè)語(yǔ)句,一個(gè)語(yǔ)句也可以分寫(xiě)多行。 除了endmodule語(yǔ)句外,每個(gè)語(yǔ)句

65、和數(shù)據(jù)定義的最后必須有分號(hào) 可以用/*.....*/和//...對(duì)Verilog HDL程序的任何部分作注釋。一個(gè)好的,有使用價(jià)值的源程序都應(yīng)當(dāng)加上必要的注釋,以增強(qiáng)程序的可讀性和可維護(hù)性。,模塊的結(jié)構(gòu),Verilog的基本設(shè)計(jì)單元是“模塊”(block)。一個(gè)模塊是由兩部分組成的:一)描述接口;二)描述邏輯功能,即定義輸入是如何影響輸出的。下面舉例說(shuō)明:,從上面的例子可以看出:- Verilog模塊結(jié)構(gòu)完全嵌在module和e

66、ndmodule聲明語(yǔ)句之間;- 每個(gè)Verilog程序包括四個(gè)主要部分:端口定義、I/O說(shuō)明、內(nèi)部信號(hào)聲明、功能定義.,模塊的測(cè)試,如何檢查上述例子其功能是否正確? 需要有測(cè)試激勵(lì)信號(hào)輸入到被測(cè)模塊 需要記錄被測(cè)模塊的輸出信號(hào) 需要把用功能和行為描述的Verilog模塊 轉(zhuǎn)換為門(mén)級(jí)電路互連的電路結(jié)構(gòu)(綜合)。 需要對(duì)已經(jīng)轉(zhuǎn)換為門(mén)級(jí)電路結(jié)構(gòu)的邏輯 進(jìn)行測(cè)試(門(mén)級(jí)電路仿真)。 需要對(duì)布局布線后的電路結(jié)構(gòu)進(jìn)行測(cè)試。

67、 (布局布線后仿真)。,圖:,模塊的測(cè)試,測(cè)試模塊常見(jiàn)的形式:module t;reg …; //被測(cè)模塊輸入/輸出變量類(lèi)型定義wire…; //被測(cè)模塊輸入/輸出變量類(lèi)型定義initial begin …; …; …; end … …//產(chǎn)生測(cè)試信號(hào)always #delay begin …; end … …//產(chǎn)生測(cè)試信號(hào)Testedmd m(.in1(ina), .in2(i

68、nb), .out1(outa), .out2(outb) );//被測(cè)模塊的實(shí)例引用initial begin ….; ….; …. end //記錄輸出和響應(yīng)endmodule,模塊的測(cè)試,測(cè)試模塊中常用的過(guò)程塊:,always,所有的過(guò)程塊都在0時(shí)刻同時(shí)啟動(dòng);它們是并行的,在模塊中不分前后。 initial塊 只執(zhí)行一次。 always塊 只要符合觸發(fā)條件可以循環(huán)執(zhí)行。,模塊的測(cè)試,4.3 數(shù)據(jù)類(lèi)型及其

69、常量變量,Verilog HDL中共有19種數(shù)據(jù)類(lèi)型,我們先介紹4個(gè)最基本的數(shù)據(jù)類(lèi)型:reg 、wire、 integer、 parameter。常量:在程序運(yùn)行過(guò)程中,其值不能改變的量稱(chēng)為常量。Verilog HDL中,整型常量有4種進(jìn)制表示形式:1)二進(jìn)制整數(shù) 2)十進(jìn)制整數(shù) 3)十六進(jìn)制整數(shù) 4)八進(jìn)制整數(shù)Verilog HDL中,數(shù)字表達(dá)方式有 3種:1)〈位寬 〉〈進(jìn)制 〉 〈數(shù)字〉2) 〈進(jìn)制 〉 〈

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論