1 概述 FPGA仿真方法: (1)交互式仿真方法:利用EDA工具的仿真器進(jìn)行仿真,使用方便,但輸入輸出不便于記錄規(guī)檔,當(dāng)輸入量較多時(shí)不便于觀察和比較。 (2)測試平臺法:為設(shè)計(jì)模塊專門設(shè)計(jì)的仿真程序,可以實(shí)現(xiàn)對被測模塊自動(dòng)輸入測試矢量,并通過波形輸出文件記錄輸出,便于將仿真結(jié)果記錄歸檔和比較。 2 仿真程序的設(shè)計(jì)方法 1.仿真的三個(gè)階段: (1)行為仿真:目的是驗(yàn)證系統(tǒng)的數(shù)學(xué)模型和行為是否正確,對系統(tǒng)的描述的抽象程度較高。在行為仿真時(shí),VHDL的語法語句都可以執(zhí)行。 (2)RTL仿真:目的是使被仿真模塊符合邏輯綜合工具的要求,使其能生成門級邏輯電路。在RTL仿真時(shí),不能使用VHDL中一些不可綜合和難以綜合的語句和數(shù)據(jù)類型。該級仿真不考慮慣性延時(shí),但要仿真?zhèn)鬏斞訒r(shí)。 (3)門級仿真:門級電路的仿真主要是驗(yàn)證系統(tǒng)的工作速度,慣性延時(shí)僅僅是仿真的時(shí)候有用在綜合的時(shí)候?qū)⒈缓雎浴? 2.仿真程序的內(nèi)容 (1)被測實(shí)體的引入。 (2)被測實(shí)體仿真信號的輸入。 (3)被測實(shí)體工作狀態(tài)的激活。 (4)被測實(shí)體信號的輸出 (5)被測實(shí)體功能仿真的結(jié)果比較,并給出辨別信息 (6)被測實(shí)體的仿真波形比較處理 3.仿真要注意的地方 (1)仿真信號可以由程序直接產(chǎn)生,也可以用TEXTIO文件產(chǎn)生后讀入。 (2)仿真程序中可以簡化實(shí)體描述,省略有關(guān)端口的描述。仿真程序?qū)嶓w描述的簡化形式為: ENTITY 測試平臺名 IS END 測試平臺名; (3)對于功能仿真結(jié)果的判斷,可以用斷言語句(ASSORT)描述 (4)為了比較和分析電子系統(tǒng)的功能,尋求實(shí)現(xiàn)指標(biāo)的最佳結(jié)構(gòu),往往利用一個(gè)測試平臺對實(shí)體的不同結(jié)構(gòu)進(jìn)行仿真,一般是應(yīng)用配置語句為同一被測實(shí)體選用多個(gè)結(jié)構(gòu)體。 4.VHDL仿真程序結(jié)構(gòu) 測試平臺僅僅是用于仿真,因此可以利用所有的行為描述語言進(jìn)行描述,下表表示了一個(gè)測試平臺所包含的部分,典型的測試平臺將包括測試結(jié)果和錯(cuò)誤報(bào)告結(jié)果。 (1)產(chǎn)生時(shí)鐘信號 (2)提供仿真信號 提供仿真信號可以有兩種方法:絕對時(shí)間仿真和相對時(shí)間仿真。在絕對時(shí)間仿真方法中,仿真時(shí)間只是相對于零時(shí)刻的仿真時(shí)間。在相對時(shí)間仿真方法中,仿真的時(shí)間首先提供一個(gè)初值,在后繼的時(shí)間設(shè)置中相對于該初始時(shí)間進(jìn)行事件動(dòng)作。 絕對時(shí)間仿真: 相對時(shí)間仿真: (3)顯示結(jié)果 VHDL提供標(biāo)準(zhǔn)的std_textio函數(shù)包把輸入輸出結(jié)果顯示在終端上。 5.簡單的仿真程序 6.3.3 TEXTIO建立測試程序 在由仿真程序直接產(chǎn)生輸入信號的方法中,測試矢量是仿真程序的一個(gè)部分,如果系統(tǒng)比較復(fù)雜,測試矢量的數(shù)目非常大,修改測試矢量時(shí)就必須修改程序,重新編譯和仿真。工作量大。因此,在測試矢量非常大的時(shí)候可以用TEXTIO的方法來進(jìn)行仿真。 TEXTIO仿真方法:測試矢量從仿真程序中分離出來,單獨(dú)存于一個(gè)文件中(即TEXTIO文件),在仿真時(shí),根據(jù)定時(shí)要求按行讀出,并賦予相應(yīng)的輸入信號。這種方法允許采用同一個(gè)測試平臺,通過不同的測試矢量文件進(jìn)行不同的仿真。值得注意的是,測試矢量文件的讀取,需要利用TEXTIO程序包的功能。在TEXTIO程序包中,包含有對文本文件進(jìn)行讀寫的過程和函數(shù)。 |