常用EDA工具軟件_第1頁(yè)
常用EDA工具軟件_第2頁(yè)
常用EDA工具軟件_第3頁(yè)
常用EDA工具軟件_第4頁(yè)
常用EDA工具軟件_第5頁(yè)
已閱讀5頁(yè),還剩63頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、2020/7/28,1,第5章 常用EDA工具軟件,本章概要:本章介紹幾種目前世界上比較流行和實(shí)用的EDA工具軟件,包括Altera公司的MAX+PLUS 、ModelSim和Matlab,以適應(yīng)不同讀者的需要。這些軟件主要是基于PC機(jī)平臺(tái)的,面向FPGA和CPLD或ASIC設(shè)計(jì),比較適合學(xué)校教學(xué)、項(xiàng)目開發(fā)和相關(guān)的科研。 知識(shí)要點(diǎn): (1)MAX+PLUS 工具軟件的使用方法。 (2)ModelSim工具軟件的使用方法。 (3)基于Matlab/DSP Builder的DSP模塊設(shè)計(jì)。,2020/7/28,2,5.1 MAX+plus,5.1.1 MAX+PLUS 的安裝 1. 運(yùn)行setup

2、.exe 2. 遵守協(xié)議 3.授權(quán)(LICENSE)文件 復(fù)制名稱為ALTERA.DAT的LICENSE文件,到MAX+plus II的安裝目錄下(如c:maxplus2)。運(yùn)行MAX+plus II,進(jìn)入MAX+plus II集成環(huán)境,選擇OptionLicense Setup菜單,彈出一個(gè)對(duì)話框。按Browse按鈕,可以選擇,此時(shí)選擇前面復(fù)制時(shí)進(jìn)入的授權(quán)文件即可。,2020/7/28,3,MAX+plus軟件授權(quán)操作提示對(duì)話框,2020/7/28,4,5.1.2 MAX+plus原理圖輸入法 用MAX+plus II的原理圖輸入設(shè)計(jì)法進(jìn)行數(shù)字系統(tǒng)設(shè)計(jì)時(shí),不需要任何硬件描述語(yǔ)言知識(shí),在掌握了

3、數(shù)字邏輯電路的基本知識(shí)后,即可使用MAX+plus II提供EDA平臺(tái),設(shè)計(jì)數(shù)字電路。 為了方便電路設(shè)計(jì),設(shè)計(jì)者首先應(yīng)當(dāng)在計(jì)算機(jī)中建立自己的工程目錄。例如,將自己的全部EDA設(shè)計(jì)文件放在d:myeda文件夾中,而為圖形編輯設(shè)計(jì)建立d:myedamygdf文件夾,為VHDL文本編輯設(shè)計(jì)建立d:myedamyvhdl等。,2020/7/28,5,MAX+plus 原理圖輸入的基本操作,2020/7/28,6,編輯圖形設(shè)計(jì)文件 執(zhí)行“File”“New”命令,彈出編輯文件類型對(duì)話框,選擇“Graphic Editor file”后單擊 “OK”按鈕。,2020/7/28,7,MAX+plus的圖形編

4、輯界面,2020/7/28,8,在原理圖編輯窗中的任何一個(gè)位置上雙擊鼠標(biāo)的左鍵,將彈出一個(gè)元件選擇窗,或者點(diǎn)鼠標(biāo)右鍵,選擇輸入元件項(xiàng)Enter Symbol,也可以出現(xiàn)這個(gè)元件選擇窗。,2020/7/28,9,半加器(h_adder.gdf)設(shè)計(jì)項(xiàng)目示意圖,2020/7/28,10,2. 編譯設(shè)計(jì)圖形文件 設(shè)計(jì)好的圖形文件一定要通過MAX+plusII的編譯。在MAX+plus集成環(huán)境下,執(zhí)行“MAX+plus”菜單下的“Compiler”命令,在彈出的編譯對(duì)話框按“START”鍵,即可對(duì)h_adder.gdf文件進(jìn)行編譯。,在編譯中,MAX+plusII自動(dòng)完成編譯網(wǎng)表提取(Compiler

5、 Netlist Extractor)、數(shù)據(jù)庫(kù)建立(Database Builder)、邏輯綜合(Logic Synthesizer)、邏輯分割(Partitioner)、適配(Fitter)、延時(shí)網(wǎng)表提?。═iming SNF Extractor)和編程文件匯編(Assembler)等操作。,2020/7/28,11,3. 產(chǎn)生元件符號(hào) 在MAXplusII集成環(huán)境下,執(zhí)行“File”菜單下的“Create Default Symbol”命令,將通過編譯的GDF文件產(chǎn)生一個(gè)元件符號(hào),并保存在工程目錄中。元件符號(hào)可以被其他圖形設(shè)計(jì)文件調(diào)用,實(shí)現(xiàn)多層次的系統(tǒng)電路設(shè)計(jì)。,半加器元件符號(hào),2020/

6、7/28,12,4. 功能仿真設(shè)計(jì)文件 仿真,也稱為模擬(Simulation),是對(duì)電路設(shè)計(jì)的一種間接的檢測(cè)方法。對(duì)電路設(shè)計(jì)的邏輯行為和功能進(jìn)行模擬檢測(cè),可以獲得許多設(shè)計(jì)錯(cuò)誤及改進(jìn)方面的信息。對(duì)于大型系統(tǒng)的設(shè)計(jì),能進(jìn)行可靠、快速、全面的仿真尤為重要。 仿真包括編輯波形文件、波形文件存盤和執(zhí)行仿真文件等操作。,2020/7/28,13,5. 編程下載設(shè)計(jì)文件上述的仿真僅是用來(lái)檢查設(shè)計(jì)電路的邏輯功能是否正確,與實(shí)際編程下載的目標(biāo)芯片還沒有聯(lián)系。為了獲得與目標(biāo)器件對(duì)應(yīng)的、精確的時(shí)序仿真文件,在對(duì)文件編譯前必須選定設(shè)計(jì)項(xiàng)目的目標(biāo)器件,在Max+plusII環(huán)境中主要選Altera公司的FPGA或CP

7、LD。 編程下載包括選擇目標(biāo)芯片、引腳鎖定、編譯和編程下載等操作。 完成選擇目標(biāo)芯片、引腳鎖定再編譯后再進(jìn)行的仿真稱為時(shí)序仿真,此時(shí)的仿真是針對(duì)具體的目標(biāo)芯片進(jìn)行的。,2020/7/28,14,1)選擇目標(biāo)芯片 執(zhí)行“Assign”的“Device”命令,選擇下載芯片型號(hào)。在“Device Family”中選擇“FLE10K”,在Device列表中選擇“EPF10KLC84-4”芯片型號(hào)。,2020/7/28,15,2)鎖定引腳 選擇EDA實(shí)驗(yàn)/開發(fā)設(shè)備GW48的實(shí)驗(yàn)結(jié)構(gòu)圖NO.6, 用“鍵7”和“鍵8”分別作為A、B輸入按鍵,接PIO12和PIO13 。 用“D8”和“D7”作為設(shè)計(jì)電路的進(jìn)

8、位CO與和SO輸出顯示 接PIO23和PIO22 (PIO39/65)。,6. 設(shè)計(jì)電路硬件調(diào)試 按實(shí)驗(yàn)板上的“模式選擇”鍵,選擇模式NO.6,執(zhí)行向EPF10K10編程下載配置后,按動(dòng)GW48實(shí)驗(yàn)板上的高低電平輸入鍵“鍵7”和“鍵8”,得到A、B不同的輸入組合;觀察“D8”和“D7”發(fā)光二極管顯示的結(jié)果是否正確。,2020/7/28,16,5.1.3 原理圖輸入法的層次化設(shè)計(jì) 層次化設(shè)計(jì)也稱為“自底向上”的設(shè)計(jì)方法,即將一個(gè)大的設(shè)計(jì)項(xiàng)目分解為若干個(gè)子項(xiàng)目或若干個(gè)層次來(lái)完成。先從底層的電路設(shè)計(jì)開始,然后在高層次的設(shè)計(jì)中逐級(jí)調(diào)用低層次的設(shè)計(jì)結(jié)果,直至最后系統(tǒng)電路的實(shí)現(xiàn)。對(duì)于每個(gè)層次的設(shè)計(jì)結(jié)果,都

9、經(jīng)過嚴(yán)格的仿真驗(yàn)證,盡量減少系統(tǒng)設(shè)計(jì)中的錯(cuò)誤。 例4位加法器的設(shè)計(jì) 4位加法器由4個(gè)1位全加器構(gòu)成,它的底層設(shè)計(jì)文件是1位全加器。,2020/7/28,17,1位全加器的原理圖,全加器元件符號(hào),2020/7/28,18,4位加法器原理圖,2020/7/28,19,5.2 ModelSim,ModelSim是一種快速而又方便的HDL編譯型仿真工具,支持VHDL和Verilog HDL的編輯、編譯和仿真。 ModelSim有一系列產(chǎn)品,它們可以在Unix平臺(tái)和Windows平臺(tái)上工作,目前主要分為MoelSim/VHDL(或ModelSim/Verilog-OEM)、MoelSim/LNL (支持

10、VHDL或Verilog的版本,但不同時(shí)支持VHDL和Verilog)、ModelSim/PLUS(支持VHDL和Verilog的版本,包括混合仿真)和ModelSim/SE(主要版本,功能比ModelSim/Plus更強(qiáng)大)等不同版本。,2020/7/28,20,6.2.1 ModelSim的安裝 ModelSim的安裝分為軟件安裝和許可文件安裝兩個(gè)過程。 1. ModelSim軟件安裝 插入ModelSim光盤后,執(zhí)行“setup”安裝命令,根據(jù)屏幕提示完成ModelSim的安裝。安裝結(jié)束后,將License.dat拷貝到Modeltech_5.8c安裝目錄下,并將附在光盤上的lmgr32

11、6b.dll文件拷貝到 Modeltech_5.8c WIN32 目錄下替換原文件,重新啟動(dòng)計(jì)算機(jī)。,2020/7/28,21,2. ModelSim許可文件安裝 計(jì)算機(jī)的“開始”菜單的“程序”選項(xiàng)中,選擇“ModelSim XE II Eval 5.8C”中的“Licening Wizard”命令,在彈出的許可文件安裝的對(duì)話框中點(diǎn)擊“Continue”按鈕,然后在彈出許可文件位置(License File Location)對(duì)話框中輸入“C: Modeltech_5.8cwin32license.dat ”許可文件后按“OK”。,許可文件安裝對(duì)話框,2020/7/28,22,6.2.2 Mo

12、delSim的使用方法 ModelSim是Unix下的QuickHDL發(fā)展來(lái),Windows版本的ModelSim保留了部分Unix風(fēng)格,可以使用鍵盤完成所有操作,但也提供了用戶圖形界面接口。ModelSim有交互命令方式(即在ModelSim的主窗口通過輸入命令實(shí)現(xiàn)編輯、編譯和仿真操作)、圖形用戶交互方式(即通過菜單進(jìn)行交互)和批處理方式(類似DOS批處理或Unix的shell工作方式)等三種執(zhí)行方式。,2020/7/28,23,ModelSim啟動(dòng)后,首先呈現(xiàn)出的主窗口(Main Windows)界面,主窗口中包括命令窗口(Transcript)、工作區(qū)(Workspace)和工具欄。在命

13、令窗口中可以輸入ModeSim的命令,并獲得執(zhí)行信息;在工作區(qū)中用樹狀列表(Tree List)的形式來(lái)觀察庫(kù)(Library)、項(xiàng)目源文件(Project)和設(shè)計(jì)仿真的結(jié)構(gòu)。,2020/7/28,24,在使用ModelSim之前,應(yīng)事先建立用戶自己的工程文件夾,用于存放各種設(shè)計(jì)文件和仿真文件,然后還要建立work庫(kù)。在VHDL中work是默認(rèn)的工作庫(kù),因此ModelSim中必須首先建立一個(gè)work庫(kù)。,建立新項(xiàng)目對(duì)話框,2020/7/28,25,1. ModelSim編輯方法 在ModelSim的主窗口界面,執(zhí)行“File”“New”“Source”“VHDL”命令,進(jìn)入ModelSim的V

14、HDL(或Verilog HDL)編輯方式。在ModelSim的編輯方式(source)界面輸入十進(jìn)制加法計(jì)數(shù)器的VHDL源程序,并用cnt4m.vhd為文件名,存入用戶自己的工程文件夾中。,進(jìn)入ModelSim編輯方式的界面,2020/7/28,26,ModelSim編輯方式的界面,2020/7/28,27,2. ModelSim編譯方法 完成源程序的編輯后,在ModelSim編輯方式窗口執(zhí)行“Tools”“Compile”命令,在彈出的編譯HDL源文件(Compile HDL Source File)對(duì)話框中,按“Compile”按鈕,即可對(duì)源程序進(jìn)行編譯,編譯成功后,cnt10m的設(shè)計(jì)實(shí)

15、體就會(huì)出現(xiàn)在work庫(kù)中。,ModelSim的編譯方式界面,2020/7/28,28,3. ModelSim仿真方法 ModelSim仿真包括裝載設(shè)計(jì)文件、設(shè)置激勵(lì)信號(hào)和仿真等操作過程。 (1)裝載設(shè)計(jì)文件 執(zhí)行“Simulate”“Simulate”命令,在彈出的仿真文件裝載對(duì)話框中,用鼠標(biāo)將work庫(kù)中的cnt10m點(diǎn)黑選中,然后按“Add”鍵,再按“Load”鍵,即可完成設(shè)計(jì)文件的裝載,此時(shí)工作區(qū)會(huì)出現(xiàn)“Sim”標(biāo)簽,表示裝載成功。,2020/7/28,29,設(shè)計(jì)文件裝載對(duì)話框,2020/7/28,30,(2)設(shè)置仿真激勵(lì)信號(hào) 執(zhí)行“View”“Signals”命令,打開信號(hào)(Signa

16、ls)窗口,經(jīng)過裝載的十進(jìn)制加法計(jì)數(shù)器設(shè)計(jì)電路的復(fù)位輸入端clr、時(shí)鐘輸入端clk和輸出端cnt已在窗口內(nèi)。,ModelSim的信號(hào)窗口,2020/7/28,31,將ModelSim信號(hào)(Signal)窗口中的復(fù)位輸入信號(hào)clr用鼠標(biāo)點(diǎn)亮選中后,執(zhí)行“Edit”“force”命令,在彈出的被選信號(hào)激勵(lì)(Force Selected Signal)對(duì)話框中將“Value:”中的數(shù)值改寫為1,則為clr當(dāng)前賦1值。另外,“Delay For:”中的值是信號(hào)賦值前的延遲時(shí)間,“Cancei After:”中的值是仿真取消后的值,這兩個(gè)參數(shù)一般可以不填。被選激勵(lì)信號(hào)的值確定后,按“OK”鍵結(jié)束Forc

17、e賦值操作。,為clr賦值的對(duì)話框,2020/7/28,32,將ModelSim的Signal窗口中的時(shí)鐘輸入信號(hào)clk用鼠標(biāo)點(diǎn)亮選中后,執(zhí)行“Edit”“Clock”命令,在彈出的定義時(shí)鐘(Define Clock)對(duì)話框中,時(shí)鐘信號(hào)的主要參數(shù)基本設(shè)置好,其中“Period”參數(shù)是時(shí)鐘的周期,已經(jīng)預(yù)先設(shè)置為100標(biāo)準(zhǔn)單位;“Duty”參數(shù)是時(shí)鐘波形的高電平持續(xù)時(shí)間,已經(jīng)預(yù)先設(shè)置為50個(gè)標(biāo)準(zhǔn)單位,表示預(yù)先設(shè)置的Clock的占空比為50,即方波。另外,“offset”參數(shù)是補(bǔ)償時(shí)間,“Cancel”參數(shù)是取消時(shí)間。Clock設(shè)置完畢后按“OK”鍵確定。,定義時(shí)鐘對(duì)話框,2020/7/28,33,

18、當(dāng)全部激勵(lì)信號(hào)設(shè)置完畢后,將ModelSim的Signal窗口中全部端口信號(hào)用鼠標(biāo)點(diǎn)亮選中,然后執(zhí)行“Add”“Wave”“Selected Signals”命令,即可將選中的端口信號(hào)加入到ModelSim的波形(Wave)窗口中。,選擇端口信號(hào)操作示意圖,2020/7/28,34,(3)仿真設(shè)計(jì)文件 執(zhí)行“View”“Signals”命令,打開波形(Wave)窗口。在Wave窗口的工具欄中,各主要按鍵的功能如圖所示。,2020/7/28,35,按動(dòng)ModelSim的波形窗口上的“運(yùn)行”按鍵,仿真波形將按照按一次鍵輸出一個(gè)時(shí)鐘周期的方式對(duì)設(shè)計(jì)電路進(jìn)行仿真。在仿真期間,可以用ModelSim的S

19、ignal窗口,改變復(fù)位信號(hào)clr的值,來(lái)驗(yàn)證復(fù)位信號(hào)的功能。,十進(jìn)制加法計(jì)數(shù)器cnt10m的仿真波形,2020/7/28,36,6.2.3 ModelSim與MAX+plusII的接口 ModelSim是一種快速仿真工具,但對(duì)設(shè)計(jì)文件的輸入編輯與編譯不如MAX+plusII那樣方便快捷。因此,在EDA設(shè)計(jì)過程中,設(shè)計(jì)者常用MAX+plusII來(lái)完成HDL設(shè)計(jì)文件的輸入編輯與編譯,再用ModelSim對(duì)設(shè)計(jì)文件進(jìn)行仿真。由于ModelSim是編譯型仿真器,使用編譯后的HDL庫(kù)進(jìn)行仿真,因此在進(jìn)行仿真前,必須編譯所以待仿真的HDL文件成為仿真庫(kù),在編譯時(shí)獲得優(yōu)化,提高仿真速度。,2020/7/2

20、8,37,編譯時(shí)執(zhí)行“Compile”“Compile”命令,在彈出的在彈出的“Compile HDL Source File”對(duì)話框的“查找范圍:”欄目輸入或選擇MAX+plusII設(shè)計(jì)文件夾,則該文件中的HDL源文件將全部出現(xiàn)在對(duì)話框中,然后用鼠標(biāo)將選中的源文件點(diǎn)黑選中,或者直接把選中的源文件名輸入“文件名”欄目中,按“Compile”按鈕,即可對(duì)源程序進(jìn)行編譯。編譯成功后,選中源文件的設(shè)計(jì)實(shí)體就會(huì)出現(xiàn)在work庫(kù)中。,ModelSim的編譯方式界面,2020/7/28,38,ModelSim仿真屬于功能仿真,輸出波形沒有延遲。為了對(duì)設(shè)計(jì)文件進(jìn)行門級(jí)時(shí)序仿真,必須用MAX+plusII對(duì)設(shè)

21、計(jì)文件進(jìn)行綜合和適配,再把適配后的網(wǎng)表文件導(dǎo)入到ModelSim仿真環(huán)境中進(jìn)行門級(jí)時(shí)序仿真。 MAX+plusII支持多種VHDL和Verilog HDL網(wǎng)表格式,不同的網(wǎng)表格式ModelSim仿真處理不同,因此在MAX+plusII中還必須進(jìn)行設(shè)置。在MAX+plusII對(duì)設(shè)計(jì)文件進(jìn)行編譯時(shí),可以執(zhí)行“Interface”“VHDL Netlist Writer Settings”命令,對(duì)VHDL的網(wǎng)表格式進(jìn)行設(shè)置;執(zhí)行“Interface”“Verilog Netlist Writer Settings”命令,對(duì)Verilog HDL的網(wǎng)表格式進(jìn)行設(shè)置。在MAX+plusII中已將VHDL

22、的網(wǎng)表格式默認(rèn)設(shè)置為“VHDL Output File.vho”文件,將Verilog HDL的網(wǎng)表格式默認(rèn)設(shè)置為“Verilog Output File.vo”文件。,2020/7/28,39,在對(duì)VHDL或Verilog HDL設(shè)計(jì)文件進(jìn)行編譯前,打開MAX+plusII 的“Interface”界面,將“VHDL Netlist Writer”和“Verilog Netlist Writer”選項(xiàng)前加上“”,如圖所示,則在對(duì)設(shè)計(jì)文件進(jìn)行編譯后,生成VHDL網(wǎng)表文件.vho,或者Verilog HDL的網(wǎng)表文件.vo。,在MAX+plus中進(jìn)行設(shè)置的示意圖,2020/7/28,40,6.2

23、.4 ModelSim交互命令方式仿真 ModelSim交互命令方式,是在ModelSim的主窗口的命令窗口上,通過輸入命令來(lái)實(shí)現(xiàn)的,具有更好的調(diào)試和交互功能。ModelSim提供了多種指令,既可以單步,也可以構(gòu)成批處理文件,用來(lái)控制編輯、編譯和仿真流程。 ModelSim用于仿真的主要指令包括Run、Force、View等指令,其他指令可參考ModelSim說明書或幫助。,2020/7/28,41,1. Run指令 指令格式:Run 其中, 參數(shù)timesteps(時(shí)間步長(zhǎng))和time_unit(時(shí)間單位)是可選項(xiàng),time_unit可以是fs(1015秒),ps(1012秒)ns(109秒

24、)ms(106秒),sec(秒)這幾種。 指令功能:運(yùn)行(仿真)并指定時(shí)間及單元。 例如,“run”表示運(yùn)行;“run 1000”表示運(yùn)行1000個(gè)默認(rèn)的時(shí)間單元(ps);“run 2500 ns”表示運(yùn)行2500ns;“run continue”表示繼續(xù)運(yùn)行;“run all”表示運(yùn)行全程。,2020/7/28,42,2. force指令 指令格式:force , 其中,參數(shù)item_name 不能缺省,它可以是端口信號(hào),也可以是內(nèi)部信號(hào),且還支持通配符號(hào),但只能匹配一個(gè);value 也不能缺省,其類型必須與item_name 一致;time是可選項(xiàng),支持時(shí)間單元。 例如,“force cl

25、r 1”表示為clr賦值1;“force clr 1 100”表示經(jīng)歷100個(gè)默認(rèn)時(shí)間單元延遲后為clr賦值1;“force clr 1,0 1000”表示為clr賦值1后經(jīng)歷1000默認(rèn)時(shí)間單元延遲后為clr賦值0。,2020/7/28,43,3. force repeat指令 指令格式:force , repeat 指令功能:每隔一定的周期(period)重復(fù)一定的force命令。該指令常用來(lái)產(chǎn)生時(shí)鐘信號(hào)。 例如,“force clk 0 0, 1 30 -repeat 100”表示強(qiáng)制clk從0時(shí)間單元開始,起始電平為0,結(jié)束電平為1,忽略時(shí)間(即0電平保持時(shí)間)為30個(gè)默認(rèn)時(shí)間單元,周

26、期為100個(gè)默認(rèn)時(shí)間單元,占空比為(100-30)/100=70%。,2020/7/28,44,4. force cancel指令 指令格式:force cancel 指令功能:執(zhí)行period周期時(shí)間后取消force命令。 例如,“force clk 0 0, 1 30 -repeat 60 -cancel 1000” 強(qiáng)制clk從0時(shí)間單元開始,直到1000個(gè)時(shí)間單元結(jié)束。,5. View指令 指令格式:view 窗口名 指令功能:打開ModelSim的窗口。 例如,“view souce”是打開源代碼窗口;“view wave”是打開波形窗口;“view list”是打開列表窗口;“vi

27、ew variables”是打開變量窗口;“view signals”是打開信號(hào)窗口;“view all”是打開所有窗口。,2020/7/28,45,6.2.5 ModelSim批處理工作方式 如果采用單步指令來(lái)控制仿真流程,每次都要輸入相應(yīng)的指令,是很繁瑣的事情。ModelSim提供了一個(gè)簡(jiǎn)化方式,即可以把這些命令形成一個(gè)批處理文件后再執(zhí)行。 在ModelSim的主窗口,執(zhí)行“File”“New”“Source”“DO”命令,進(jìn)入ModelSim的DO文件編輯方式。在編輯窗口輸入下列計(jì)數(shù)器仿真批處理文件(cnt10m.do)的代碼: vsim t10m force -freeze sim:/

28、cnt10m/clk 1 0, 0 50 ns -repeat 100/設(shè)置時(shí)鐘 force -freeze sim:/cnt10m/rst 0, 1 200, 0 1000/設(shè)置復(fù)位信號(hào) force -freeze sim:/cnt10m/ena 1, 0 2200, 1 2600/設(shè)置使能信號(hào) add wave -r /* run 10000,2020/7/28,46,完成計(jì)數(shù)器仿真批處理文件的編輯后,用“cnt10m.do”為文件名保存在與計(jì)數(shù)器設(shè)計(jì)文件相同的文件夾中(.do是DO文件的屬性后綴),并通過ModelSim的編譯。 在ModelSim的命令窗口中執(zhí)行“do cnt10m.d

29、o”,完成對(duì)計(jì)數(shù)器設(shè)計(jì)(cnt10m)的仿真。,2020/7/28,47,6.3基于Matlab/DSP Builder的DSP模塊設(shè)計(jì),Matlab是當(dāng)前國(guó)際控制界最流行的面向工程與科學(xué)計(jì)算的高級(jí)語(yǔ)言。Altera公司充分利用了Matlab的優(yōu)勢(shì),將Quartus II與其進(jìn)行無(wú)縫連接,完成DSP等復(fù)雜系統(tǒng)的設(shè)計(jì)。 本節(jié)介紹利用Matlab/DSP Builder工具進(jìn)行DSP模塊設(shè)計(jì)、Matlab模型仿真、SignalCompiler使用方法、使用Modelsim進(jìn)行RTL級(jí)仿真、使用Quartus II實(shí)現(xiàn)時(shí)序仿真、使用Quartus II硬件實(shí)現(xiàn)與測(cè)試。 下面以一個(gè)簡(jiǎn)單的正弦信號(hào)調(diào)制電

30、路的設(shè)計(jì)為例,介紹基于Matlab/DSP Builder的DSP開發(fā)技術(shù)。,5.3.1 設(shè)計(jì)原理 正弦信號(hào)調(diào)制電路電路由階梯信號(hào)發(fā)生器模塊IncCounter、正弦函數(shù)值查找表模塊SinLUT、延時(shí)模塊Delay、乘法器模塊Product、數(shù)據(jù)控制模塊DATAIN和輸出模塊Output等6個(gè)部分構(gòu)成。階梯信號(hào)發(fā)生器模塊IncCounter產(chǎn)生線性遞增的地址信號(hào),送往SinLUT查找表。SinLUT是一個(gè)正弦函數(shù)值的查找表模塊,由遞增的地址獲得正弦波值輸出,輸出的8位正弦波數(shù)據(jù)經(jīng)延時(shí)模塊Delay后送往Product乘法模塊,與DATAIN的數(shù)據(jù)相乘生成正弦波調(diào)制的數(shù)字信號(hào),由Output輸出

31、。Output輸出的數(shù)據(jù)送往D/A即可獲得正弦調(diào)制信號(hào)。,正弦信號(hào)發(fā)生器原理圖,5.3.2 建立Matlab設(shè)計(jì)模型 利用Matlab建立DSP設(shè)計(jì)模型是基于Matlab/DSP Builder的DSP模塊設(shè)計(jì)的主要過程。 1. 運(yùn)行Matlab 啟動(dòng)后的Matlab軟件界面面中有三個(gè)窗口,分別是命令窗口(Command Windows)、工作區(qū)(Workspace)、命令歷史(Command History)。在命令窗口中,可以鍵入命令,同時(shí)得到響應(yīng)信息、出錯(cuò)警告和提示等。,2. 新建一個(gè)模型文件 在Matlab軟件界面執(zhí)行“File”菜單的“New”,在彈出的子菜單中選擇“model”方式

32、,彈出建立MATLAB設(shè)計(jì)模型的編輯窗口,設(shè)計(jì)電路的模型在此編輯窗口中完成編輯、分析、仿真控制和生成設(shè)計(jì)文件。,3. 放置SignalCompiler圖標(biāo) 用鼠標(biāo)左鍵點(diǎn)擊Library browser窗口左側(cè)的庫(kù)內(nèi)樹形列表中的Altera DSP Builder條,展開DSP Builder庫(kù),再點(diǎn)擊AltLab項(xiàng)展開AltLab庫(kù),用鼠標(biāo)選中庫(kù)管理器右側(cè)的SignalCompiler組件圖標(biāo),按住鼠標(biāo)左鍵將SignalCompiler圖標(biāo)拖動(dòng)到新模型窗口中。SignalCompiler組件圖標(biāo)是一個(gè)控制符號(hào),用鼠標(biāo)左鍵雙擊它時(shí),可以啟動(dòng)軟件對(duì)編輯窗口中的設(shè)計(jì)模型(電路)進(jìn)行分析,并引導(dǎo)進(jìn)入下

33、一步的編譯、適配和生成HDL代碼文件操作。,4. 放置Increment Decrement模塊 用鼠標(biāo)將Altera DSP Builder中的Arithmetic庫(kù)展開,把庫(kù)中的Increment Decrement模塊(圖標(biāo))拖放到新建模型編輯窗口中。Increment Decrement是階梯信號(hào)發(fā)生器模塊,用鼠標(biāo)左鍵點(diǎn)擊Increment Decrement模塊下面的文字“Increment Decrement”,就可以修改模塊名字。用此方法將模塊名其修改為“IncCounter”。,IncCounter模塊圖標(biāo)及其參數(shù)設(shè)置對(duì)話框,5. 放置SinLUT(正弦查找表)模塊 用鼠標(biāo)將A

34、ltera DSP Builder中的Gate & Control庫(kù)展開,將庫(kù)中的LUT模塊拖放到新建模型編輯窗口,將模塊的名字修改成“SinLUT”。用鼠標(biāo)雙擊SinLUT模塊,彈出inLUT模塊參數(shù)設(shè)置對(duì)話框。在此對(duì)話框中,把Bus Type(總線寬度)設(shè)置為“Unsigned Integer”(無(wú)符號(hào)整數(shù));把Outputnumber of bits(輸出位寬)設(shè)置為“8”;把LUT Address Width(查找表地址線位寬)設(shè)置為“6”。,SinLUT模塊圖標(biāo)及其參數(shù)設(shè)置對(duì)話框,6. 放置Delay模塊 用鼠標(biāo)將Altera DSP Builder中的Storage庫(kù)展開,將庫(kù)中的

35、Delay模塊拖放到新建模型編輯窗口。Delay是一個(gè)延時(shí)環(huán)節(jié),用鼠標(biāo)雙擊Delay模塊,彈出Delay模塊參數(shù)設(shè)置對(duì)話框。在Delay模塊參數(shù)設(shè)置對(duì)話框中,參數(shù)Depth是設(shè)置信號(hào)延時(shí)的深度。當(dāng)Depth為1時(shí),延時(shí)傳輸函數(shù)為1/z1,表示信號(hào)傳輸延時(shí)1個(gè)時(shí)鐘周期;當(dāng)Depth為n時(shí),延時(shí)傳輸函數(shù)為1/zn,表示信號(hào)傳輸延時(shí)n個(gè)時(shí)鐘周期。,Delay模塊圖標(biāo)及其參數(shù)設(shè)置對(duì)話框,7. 放置數(shù)據(jù)輸入端口DATAIN模塊 用鼠標(biāo)將Altera DSP Builder中的IO & Bus庫(kù)展開,將庫(kù)中的Input模塊拖放到新建模型編輯窗口,修改Input模塊的名字為DATAIN。鼠標(biāo)雙擊DATAIN

36、模塊,彈出的DATAIN模塊參數(shù)設(shè)置對(duì)話框。在參數(shù)設(shè)置對(duì)話框中,把Bus Type設(shè)置為“Unsigned Integer”(無(wú)符號(hào)整數(shù)),把number of bits.設(shè)置為“1”,表示該輸入模塊是1位無(wú)符號(hào)數(shù)據(jù)輸入。該模塊在生成HDL代碼文件時(shí),是一個(gè)名為DATAIN,寬度為1位的輸入端口。,DATAIN模塊圖標(biāo)及其參數(shù)設(shè)置對(duì)話框,8. 放置乘法器Product模塊 用鼠標(biāo)將Altera DSP Builder中的Arithmetic庫(kù)展開,將庫(kù)中的Product模塊拖放到新建模型編輯窗口。Product有兩個(gè)輸入,一個(gè)是經(jīng)過一個(gè)Delay的SinLUT查表輸出,另一個(gè)是外部1位端口DA

37、TAIN送來(lái)的數(shù)據(jù),用DATAIN對(duì)SinLUT查找表輸出的控制,產(chǎn)生正弦調(diào)制輸出。用鼠標(biāo)雙擊Product模塊,彈出Product模塊參數(shù)設(shè)置對(duì)話框,在Product模塊參數(shù)設(shè)置對(duì)話框中,Pipeline參數(shù)是設(shè)置Product模塊使用的流水線數(shù),即控制Product的乘積延時(shí)幾個(gè)脈沖周期后出現(xiàn)。,Product模塊圖標(biāo)及其參數(shù)設(shè)置對(duì)話框,9. 放置輸出端口Output模塊 用鼠標(biāo)將Altera DSP Builder中的IO & Bus庫(kù)展開,將庫(kù)中的Output模塊拖放到新建模型編輯窗口。Output模塊的圖標(biāo)如圖5.56所示,用鼠標(biāo)左鍵雙擊Output模塊圖標(biāo),彈出Output模塊參數(shù)

38、設(shè)置對(duì)話框。在參數(shù)設(shè)置對(duì)話框中,把Bus Type設(shè)置為“Unsigned Integer”(無(wú)符號(hào)整數(shù)),把number of bits.設(shè)置為“8”,表示該輸出模塊是8位無(wú)符號(hào)數(shù)據(jù)輸出。該模塊在生成HDL代碼文件時(shí),是一個(gè)名為Output,寬度為8位輸出端口。,Output模塊圖標(biāo)及其參數(shù)設(shè)置對(duì)話框,5.3.3 Matlab模型仿真 1. 加入仿真激勵(lì)模塊 在Simulink管理器中,用鼠標(biāo)將Simulink的Sources庫(kù)展開,將庫(kù)中的Random Number模塊拖放到新建模型編輯窗口,用鼠標(biāo)雙擊Random Number 模塊圖標(biāo),彈出Random Number模塊參數(shù)設(shè)置對(duì)話框。

39、,Random Number模塊圖標(biāo)及其參數(shù)設(shè)置對(duì)話框,2. 加入波形觀察模塊 用鼠標(biāo)將Simulink的Sinks庫(kù)展開,將庫(kù)中的Scope(示波器)模塊拖放到新建模型編輯窗口,用鼠標(biāo)雙擊Scope(示波器)模塊圖標(biāo),彈出Scope窗口。用鼠標(biāo)單擊Scope窗口工具欄上的“Parameters”(參數(shù)設(shè)置)按鈕(左起第二個(gè)工具按鈕),彈出Scope模塊參數(shù)設(shè)置對(duì)話框。,Scope模塊圖標(biāo)(中)、Scope窗口(左)和Genera參數(shù)設(shè)置窗口(右),3. 設(shè)置仿真參數(shù) 在新建模型編輯窗口中,執(zhí)行“Simulation”菜單的“Simulation Parameters”命令,彈出Simulat

40、ion Parameters(仿真參數(shù))設(shè)置對(duì)話框,其中“Start time”(開始時(shí)間)設(shè)置為“0.0”,“Stop Time”(結(jié)束時(shí)間)設(shè)定為500,其他設(shè)置按照默認(rèn)。,仿真參數(shù)設(shè)置對(duì)話框,4. 啟動(dòng)仿真 執(zhí)行“Simulation”菜單的“Start”命令開始仿真。如果設(shè)計(jì)有錯(cuò)誤,Matlab會(huì)有提示,改正錯(cuò)誤后再仿真,直至設(shè)計(jì)錯(cuò)誤為0時(shí)才能出現(xiàn)仿真結(jié)果。本例設(shè)計(jì)的正弦信號(hào)調(diào)制電路的仿真結(jié)果如圖所示。,正弦波調(diào)制電路的仿真波形,5.3.4 SignalCompiler使用方法 在Matlab中完成仿真驗(yàn)證后,就需要把設(shè)計(jì)轉(zhuǎn)到硬件上加以實(shí)現(xiàn)。通過DSP Builder可以獲得針對(duì)特定F

41、PGA芯片的HDL代碼。 用鼠標(biāo)左鍵雙擊FirstDSP模型窗口中的SignalCompiler模塊圖標(biāo),將啟動(dòng)DSP Builder,在出現(xiàn)對(duì)話框中點(diǎn)擊“Analyze”(分析)按鈕,SignalCompiler就會(huì)對(duì)FirstDSP模型進(jìn)行分析,檢查模型有無(wú)錯(cuò)誤。如果設(shè)計(jì)存在錯(cuò)誤,SignalCompiler就會(huì)停止分析過程,并在Matlab軟件界面的命令窗口給出相關(guān)信息。如果設(shè)計(jì)不存在錯(cuò)誤,則在分析結(jié)束后打開SignalCompiler窗口。,5.3.5 使用Modelsim進(jìn)行RTL級(jí)仿真 在simulink中進(jìn)行仿真是對(duì)模型文件.mdl進(jìn)行的,屬于系統(tǒng)驗(yàn)證性質(zhì)的仿真,并沒有對(duì)生成的HDL代碼文件進(jìn)行仿真。 在對(duì)SignalCompiler進(jìn)行設(shè)置時(shí),將“Generate Stimuli for

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論