Verilog-HDL數字集成電路設計原理與應用-作者-蔡覺平-第7章_第1頁
Verilog-HDL數字集成電路設計原理與應用-作者-蔡覺平-第7章_第2頁
Verilog-HDL數字集成電路設計原理與應用-作者-蔡覺平-第7章_第3頁
Verilog-HDL數字集成電路設計原理與應用-作者-蔡覺平-第7章_第4頁
Verilog-HDL數字集成電路設計原理與應用-作者-蔡覺平-第7章_第5頁
已閱讀5頁,還剩160頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、1第7章 仿真測試工具和綜合工具 7.1 數字集成電路設計流程簡介 7.2 測試和仿真工具7.3 綜合工具7.4 測試和綜合舉例 本章小結2在線教務輔導網:在線教務輔導網:http:/教材其余課件及動畫素材請查閱在線教務輔導網教材其余課件及動畫素材請查閱在線教務輔導網QQ:349134187 或者直接輸入下面地址:或者直接輸入下面地址:http:/3在EDA技術高度發(fā)達的今天,沒有一個設計工程師隊伍能夠用人工方法有效、全面、正確地設計和管理含有幾百萬個門的現代集成電路。利用EDA工具,工程師可以從概念、算法、協(xié)議等開始設計電子系統(tǒng),7.1 數字集成電路設計流程簡介數字集成電路設計流程簡介4大量

2、工作可以通過計算機完成,并可以將電子產品從系統(tǒng)規(guī)劃、電路設計、性能分析到封裝、版圖的整個過程在計算機上自動完成。這樣做有利于縮短設計周期、提高設計正確性、降低設計成本、保證產品性能,尤其是可增加一次投片的成功率,因此這種方法在大規(guī)模集成電路設計中已經普遍被采用。利用EDA工具進行集成電路設計需要遵循一定的設計流程,這樣才能保證設計任務高效率地完成。數字集成電路設計方法的典型流程如圖7.1-1所示。下面分別介紹各個設計階段的主要任務。5圖7.1-1 集成電路設計的典型流程67.1.1 設計規(guī)范設計規(guī)范設計流程從已寫出的設計規(guī)范開始。設計規(guī)范文件是一個包含功能、定時、硅片面積、功耗、可測性、故障覆

3、蓋率以及其它的設計準則的詳細說明書。設計規(guī)范描述了項目完成的功能,確定了設計的總體方案,以平衡各個方面的因素,對整個項目有一個初步的規(guī)劃。在系統(tǒng)設計階段,根據對設計面積、功耗、I/O和IP使用等情況的估算,確定所使用的芯片工藝和設計工具。有了設計規(guī)范,就可以進行設計劃分。77.1.2 設計劃分設計劃分設計劃分過程就是把一個復雜設計逐漸劃分成較小而且較為簡單的功能單元。這樣一個過程通常被稱為自頂向下的設計方法,或者是分層設計法。HDL可以為需要進行劃分、綜合和驗證的大型復雜系統(tǒng)提供一個通用框架,它支持具有混合抽象級別的自頂向下設計,可以將大型設計中的各部分鏈接在一起,來進行整個設計的功能和性能驗

4、證。87.1.3 設計輸入設計輸入設計輸入是指將設計劃分階段定義好的模塊借助一定的設計輸入手段轉換為EDA工具能接受的信息格式。目前主要的設計輸入手段有高級硬件描述語言HDL(Verilog HDL/VHDL)和原理圖等。HDL語言支持不同層次的描述,不依賴于各個廠家的工藝器件,便于修改。邏輯輸入工具的功能是把邏輯圖、狀態(tài)機、真值表輸入到計算機中,并進行語法、可綜合性檢查等。目前主流工具有Cadence公司的Composer、Synopsys公司的Leda以及UltraEdit、Vim等第三方編輯工具。9Leda是可編程的語法和設計規(guī)范檢查工具,它能夠對全芯片的VHDL和Verilog HDL

5、描述或者對兩者的混合描述進行檢查,加速SoC的設計流程。Leda預先將IEEE可綜合規(guī)范、可仿真規(guī)范、可測性規(guī)范和設計復用規(guī)范進行了集成,以提高設計者分析代碼的能力。UltraEdit是一款功能強大的文本編輯器,可以編輯文字以及多種格式的代碼,內建英文單詞檢查、C+及VB 指令突顯,可同時編輯多個文件,而且即使開啟很大的文件,速度也不會慢。它是一個使用廣泛的編輯器,但它并不直接支持HDL。10讀者可以通過官方網站的鏈接下載Verilog HDL/VHDL的語法文件,并把下載的文件復制到WordFile.txt文件中(在UltraEdit的安裝目錄下),一般加在最后。這樣就可以使用UltraEd

6、it編輯HDL源代碼了。117.1.4 仿真仿真設計輸入后,經HDL編譯器檢查沒有語法錯誤后,就可以對設計進行驗證了。這里的驗證是指通過仿真軟件驗證其功能是否符合制定的設計規(guī)范,這一階段的驗證常被稱為功能仿真或行為仿真。布局布線后,提取有關的器件延遲、連線延遲等時序參數(這些信息在反標注文件中)。在此基礎上進行的仿真稱為后仿真,也稱時序仿真,它是接近真實器件運行的仿真。12仿真的結果取決于設計描述是否準確反映了設計的物理實現。仿真器不是一個靜態(tài)工具,需要Stimulus(激勵)和Response(輸出)。Stimulus由模擬設計工作環(huán)境的Testbench 產生,Response為仿真的輸出

7、,由設計者確定輸出的有效性。目前,仿真工具比較多,其中Cadence公司的NC-Verilog HDL、Synopsys公司的VCS和Mentor公司的ModelSim都是業(yè)界廣泛使用的仿真工具。137.1.5 綜合綜合利用綜合器對HDL代碼進行綜合優(yōu)化處理,生成門級描述的網表文件,這是將高層次描述轉化為硬件電路的關鍵步驟。綜合優(yōu)化是針對ASIC芯片供應商的某一產品系列進行的,所以綜合的過程要在相應的廠家綜合庫支持下才能完成。綜合實際上是根據設計功能和實現該設計的約束條件(如面積、速度、功耗和成本等),將設計描述(如HDL文件、原理圖等)變換成滿足要求的電路設計方案,該方案必須同時滿足預期的功

8、能和約束條件。14對于綜合來說,滿足要求的方案可能有多個,綜合器將產生一個最優(yōu)的或接近最優(yōu)的結果。因此,綜合的過程也就是設計目標的優(yōu)化過程,最后獲得的電路結構與綜合器的性能有關。這個階段產生目標FPGA的標準單元網表和數據庫,供布局布線使用。網表中包含了目標器件中的邏輯元件和互連信息。在傳統(tǒng)的IC設計流程中,前端綜合或時序分析時沒有精確的線和CELL延遲信息,這樣就容易造成布局前后的時序不收斂。隨著工藝的進步,線延遲占主導地位,時序收斂問題越來越嚴重。根本的解決方法是將前后端的設計流程整合起來。15物理綜合就針對的是這種情況。物理綜合解決0.18 m以下工藝技術的IC設計環(huán)境,將綜合、布局、布

9、線集成于一體,讓RTL設計者可以在最短的時間內得到性能最高的電路。通過集成綜合算法、布局算法和布線算法,在RTL到GDS-的設計流程中,提供可以確保IC設計的性能預估性和時序收斂性。目前常用的邏輯綜合工具有Synopsys公司的Synplify和Design Compiler、Physical Compiler,Cadence公司的RTL Compiler等。167.1.6 適配布線適配布線適配布線就是按照特定的工藝要求和約束條件利用適配器進行布局布線,最后生成版圖。對于芯片設計來講,這個過程通常分為3步。 布局規(guī)劃:主要是標準單元、I/O Pad和宏單元的布局。I/O Pad預先給出了位置,

10、而宏單元則根據時序要求進行擺放,標準單元則給出了一定的區(qū)域由工具自動擺放。布局規(guī)劃后,芯片的大小、Core的面積、Row的形式、電源及地線的Ring和Strip就都確定下來了。 時鐘樹生成(lock Tree Synthesis,CTS)。 布局布線。17適配完成后,會產生多項設計結果。 適配報告:包括芯片內部資源的利用情況、設計的布爾方程描述情況等。 適配后的仿真模型。 器件編程文件:根據適配后的仿真模型,可以進行適配后的時序仿真。因為此時已經得到器件的實際硬件特性(如時延特性等),所以此仿真結果能比較精確地預期未來芯片的實際性能。在FPGA設計中各個廠家都提供了相應的布局布線工具,例如Al

11、tera公司的Quartus ,Xilinx公司的ISE等。在芯片設計領域,有Cadence公司提供的SoC Encounter和Synopsys公司的Astro等布局布線工具。187.1.7 時序分析時序分析時序分析的目的是檢查設計中是否有時序上的違規(guī)。同步電路的分析采用靜態(tài)時序分析實現,異步電路的分析則需要運行特殊仿真激勵確認。仿真工具可以用前仿真所用的工具。 靜態(tài)時序分析(STA)的功能是根據設計規(guī)范的要求檢查所有可能路徑的時序,不需要通過仿真或測試向量就可以有效地覆蓋門級網表中的每一條路徑,在同步電路設計中快速地找出時序上的異常。19可以識別的時序故障包括:建立/保持和恢復/移除檢查(

12、包括反向建立/保持),最小和最大跳變,時鐘脈沖寬度和時鐘畸變,門級時鐘的瞬時脈沖檢測,總線競爭與總線懸浮錯誤,不受約束的邏輯通道,計算經過導通晶體管、傳輸門和雙向鎖存的延遲,自動對關鍵路徑、約束性沖突、異步時鐘域和某些瓶頸邏輯進行識別與分類。PrimeTime是Synopsys公司開發(fā)的進行靜態(tài)時序分析的工具,它可以進行精確的RC延遲計算、先進的建模和時序驗收。對于大型多時鐘的設計,比如綜合出的邏輯電路、嵌入式存儲器和微處理器核的設計,Prime Time起到了關鍵性的作用。20動態(tài)時序分析主要是指門級(或對版圖參數提取結果)的仿真,它主要應用在異步邏輯、多周期路徑、錯誤路徑的驗證中。隨著設計

13、向65 nm以下的工藝發(fā)展,只用靜態(tài)分析工具將無法精確驗證串擾等動態(tài)效應。通過動態(tài)時序分析與靜態(tài)時序分析相結合可以驗證時序邏輯的建立/保持時間,并利用動態(tài)技術來解決串擾效應、動態(tài)模擬時鐘網絡等問題。217.1.8 物理驗證物理驗證物理驗證通常包括設計規(guī)則檢測(DRC)、版圖與原理圖對照(LVS)和信號完整性分析(SI)等。其中DRC用來檢查版圖設計是否滿足工藝線能夠加工的最小線寬、最小圖形間距、金屬寬度、柵和有源區(qū)交疊的最小長度等。如果版圖設計違反設計規(guī)則,那么極有可能導致芯片在加工的過程中成為廢品。LVS則用來保證版圖設計與其電路設計的匹配,保證它們的一致性。如果不一致,就需要修改版圖設計。

14、SI用來分析和調整芯片設計的一致性,避免串擾噪聲、串擾延遲以及電遷移等問題。22目前主要的物理驗證工具有Mentor公司的Calibre、Cadence公司的Dracula和Diva以及Synopsys公司的Hercules。此外,各大廠商也推出了針對信號完整性分析的工具。237.1.9 設計結束設計結束在所有設計約束都已滿足,也達到了定時約束條件的情況下,就會發(fā)出最終設計結束的信號。這時可用于制造集成電路的掩膜集就準備好了。掩膜集的描述是由幾何數據(通常為GDS-格式)構成的,這些數據決定了集成電路制造過程中光掩膜步驟的順序。將適配器布局布線后形成的器件編程文件通過下載工具載入到具體的FPG

15、A或CPLD芯片中,可以方便地實現設計要求。如果是大批量產品的開發(fā)則通過更換相應的廠家綜合庫,便可以轉由ASIC實現。24用HDL描述完一個硬件系統(tǒng)后要進行仿真驗證,而如果想在計算機終端看到硬件描述語言的輸出,則需要通過硬件描述語言的仿真器來完成。常用的HDL仿真器很多,例如VCS、NC、Verilog HDL-XL、ModelSim、ActiveHDL等。7.2 測試和仿真工具測試和仿真工具25根據所使用的編程語言的不同,可以將仿真器分為Verilog HDL語言仿真器和VHDL語言仿真器;根據工作方式的不同,可以分為事件驅動(event-driven)仿真器和時鐘驅動(cycle-driv

16、en)仿真器;等等。這些工具中,有的側重于IC設計,如NC、VCS等;有的側重于FPGA/CPLD的設計,如ModelSim和ActiveHDL等。ModelSim仿真器在FPGA/CPLD設計中應用廣泛,這是因為ModelSim的出品公司為各種FPGA/CPLD廠家提供了OEM版本的ModelSim工具。ModelSim仿真器可以用于仿真Verilog HDL語言,也可以用于仿真VHDL語言,同時也支持兩種語言的混合仿真。26NC(根據使用語言的不同,分為NC-Verilog和NC-VHDL)和VCS分別由知名的EDA工具廠商Cadence和Synopsys公司提供,在IC設計中應用廣泛。根

17、據設計階段的不同,仿真可以分為RTL行為級仿真、邏輯綜合后門級仿真和時序仿真三大類型。在仿真的后兩個階段,除了Verilog HDL源代碼外還需要添加兩個文件,即工藝廠商提供的庫單元文件和延時反標文件。277.2.1 ModelSim的使用的使用Mentor公司的ModelSim是一種常用的HDL語言仿真軟件,能提供友好的仿真環(huán)境,是業(yè)界唯一的單內核支持VHDL和Verilog HDL混合仿真的仿真器。它采用直接優(yōu)化的編譯技術、Tcl/Tk技術和單一內核仿真技術,編譯仿真速度快,編譯的代碼與平臺無關,便于保護IP核。個性化的圖形界面和用戶接口,為用戶加快糾錯提供了強有力的手段。 28Model

18、Sim的主要特點是:RTL和門級優(yōu)化,本地編譯結構,編譯仿真速度快,跨平臺、跨版本仿真;單內核VHDL和Verilog HDL混合仿真;源代碼模版和助手,項目管理;集成了性能分析、波形比較、代碼覆蓋、數據流ChaseX、Signal Spy、虛擬對象Virtual Object、Memory窗口、Assertion窗口、源碼窗口顯示信號值、信號條件斷點等眾多調試功能;C和Tcl/Tk接口,C調試;對SystemC直接支持,和HDL任意混合;支持System Verilog的設計功能;全面支持System Verilog、SystemC這樣的系統(tǒng)級描述語言。29ModelSim分為SE、PE、L

19、E和OEM等幾個版本,其中SE是最高級的版本,而集成在 Actel、Atmel、Altera、Xilinx以及Lattice等FPGA廠商設計工具中的均是其OEM版本。SE版和OEM版在功能和性能方面有較大差別,比如大家都關心的仿真速度問題,以Xilinx公司提供的OEM版本ModelSim XE為例,對于代碼少于40000行的設計,ModelSim SE比ModelSim XE要快10倍;對于代碼超過40000行的設計,ModelSim SE要比ModelSim XE快近40倍。ModelSim SE支持PC、UNIX和Linux混合平臺,提供全面、完善以及高性能的驗證功能,全面支持業(yè)界廣泛

20、的標準。30ModelSim采用用戶圖形界面操作模式,有許多窗口,如Main窗口、Workplace窗口、Objects窗口、Wave窗口、Dataflow窗口、List窗口、Source窗口和Watch窗口。圖7.2-1為ModelSim的使用界面。 主(Main)窗口:是ModelSim唯一的控制窗口,也是控制命令的輸入窗口。窗口中顯示了ModelSim執(zhí)行仿真的動作以及相應的信息。 結構(Workplace)窗口:該窗口按層次關系列出了工程中所有模塊之間的關系。在結構窗口中選擇固定模塊,在信號窗口中會相應地顯示這一模塊信號的信息。31圖7.2-1 ModelSim使用界面32 信號(Ob

21、jects)窗口:顯示被選中模塊的信號、信號類型以及信號值。 波形(Wave)窗口:顯示仿真的結果波形。 數據流(Dataflow)窗口:用于追蹤數據流,并以層次化、圖形化的方式顯示結果。 列表(List)窗口:以表格的形式顯示仿真數據。 源代碼(Source)窗口:顯示工程中的相應源代碼。 觀察(Watch)窗口:用于實時監(jiān)測變量在仿真中的變化情況。33ModelSim有三種仿真流程,即基本仿真流程(Basic Simulation Flow)、工程仿真流程(Project Simulation Flow)和多庫仿真流程(Multi-library Simulation)。在較復雜的設計中,

22、推薦使用工程仿真流程,這種流程更容易管理和維護設計中遇到的各種類型的文件,事實上工程仿真流程包含了基本仿真流程和多庫仿真流程的核心內容。本節(jié)主要介紹工程仿真流程。ModelSim工程仿真流程包括建立庫、建立工程、將設計文檔(包括源文件和測試文件)加入到工程中并編譯、仿真、調試。341建立并映射庫建立并映射庫建立并映射庫有兩種方法。第一種方法:在ModelSim中選擇File/New/Library菜單命令,在彈出的對話框中填入庫名稱,點擊OK按鈕就完成了庫的建立和映射。第二種方法:在ModelSim提示符下運行命令:vlib work2vmap work work235第一條命令實現的是建立新

23、庫,第二條命令實現的是映射新庫。其中work2代表的是新建的工作庫。運行完畢后即完成了庫的建立和映射操作。運行完vlib命令后會產生work庫目錄,目錄里存放有_info文件,用于記錄各種庫中的各種模塊。運行完vmap會將ModelSim安裝目錄下的ModelSim.ini復制到當前的工作目錄中并將庫和目錄對應起來,在Library中增加了work=work2語句。362新建工程項目新建工程項目選擇File/New/Project菜單命令,新建一個工程。在Project Name中輸入工程名,在Project Location下的對話框中輸入保存該工程所有文件的文件夾的路徑名。Default

24、Library Name對話框使用默認設置work即可。373輸入源代碼輸入源代碼選擇Main窗口的File/New/Source/Verilog HDL菜單命令,出現源代碼編輯窗口,將源代碼輸入并保存。源代碼文件shiftregist.v如下:module shiftregist(data_out,clk,rst_n,load,data_load,ctr_shiftright,ctr_shiftleft,data_shiftright,data_shiftleft);parameter shiftregist_width=4;output shiftregist_width-1:0 data

25、_out;input shiftregist_width-1:0 data_load;38input load,clk,rst_n,ctr_shiftright,ctr_shiftleft,data_shiftright,data_shiftleft;reg shiftregist_width-1:0 data_out;always (posedge clk or negedge rst_n) if (!rst_n) data_out=0; else if (load) data_out=data_load; else if (ctr_shiftright)39 data_out=data_s

26、hiftright,data_outshiftregist_width-1:1; else if (ctr_shiftleft) data_out=data_outshiftregist_width-2:0,data_shiftleft; else data_out提示符下,輸入“run 500”,仿真器會再進行另外500 ns的仿真,共計仿真了600 ns。在主菜單、波形窗口或源代碼窗口的工具條上單擊run-all圖標,仿真連續(xù)運行,直到被中斷或在代碼中遇到諸如Verilog HDL中的$stop語句等,暫停仿真。若單擊break圖標,則終止仿真運行。52在Main窗口中,單擊Simulat

27、e/End Simulation選項,即可結束仿真。5311調試調試ModelSim的調試手段很多,主要包括在代碼中設置斷點、步進調試;觀察Wave窗口,測量時間;通過Dataflow窗口,分析物理連接;通過Memory窗口,觀察設計中存儲器的數值;統(tǒng)計測試代碼覆蓋率;波形比較。Wave窗口、Dataflow窗口和List窗口是常用的分析手段。541) 使用Wave窗口觀察設計波形是調試設計的一種方法,加載仿真后,就可以使用Wave窗口了。通過View/Wave菜單命令打開Wave窗口,如圖7.2-3所示。在Wave窗口中可以采用多種手段進行調試,如向Wave窗口添加項目,對波形顯示的圖像縮放

28、,在Wave窗口中使用游標,設置斷點,存儲Wave窗口格式,將當前的仿真結果存儲到波形記錄格式文件(WLF)中等。55在Wave窗口中,游標用于指示仿真的時間位置。當ModelSim首次畫波形時,自動地將一個游標放在0時刻的位置。使用游標可以測量時間間隔,也可以查找信號跳變的位置。在Wave窗口中單擊任何位置,游標將重新回到鼠標單擊的位置??梢詫τ螛诉M行添加、命名、鎖定和刪除等操作。對波形信號可以進行設置斷點操作。斷點調試主要是為了觀察待定的數據變化。在Wave窗口中,對信號設置斷點十分方便:選中要設置斷點的變量,單擊鼠標右鍵,選擇“Insert Breakpoint”選項,就完成了斷點的設置

29、。當選中的變量波形值發(fā)生變化時,仿真自動暫停。56圖7.2-3 Wave窗口57要養(yǎng)成保存波形文件的良好習慣,以便進行項目的檢查和對比。ModelSim中可以保存的波形文件大致有以下三種。(1) Format文件。在Wave窗口的主菜單中選擇File/Save命令保存wave format(波形格式),在新打開的窗口中填入DO文件(仿真腳本文件)的存儲路徑E:/shiftregist/wave.do,單擊OK按鈕完成文件存儲。58如果需要加載該文件,則在打開的Wave窗口中選擇“File Open Format”,然后在Open Format窗口中選擇wave.do文件,單擊Open按鈕打開該

30、文件。ModelSim將恢復該窗口的信號和游標的前一次狀態(tài)。(2) WLF文件(Datasets)。ModelSim仿真結果也可以存儲到一個波形格式記錄文件中,用于以后瀏覽和與當前仿真結果的比較。通常使用術語“Datasets”表示已創(chuàng)建并可重加載的WLF文件。59可在主菜單中選擇“File/Datasets/Save as”命令,在打開的Save as對話框中輸入要保存的波形文件名稱,點擊OK按鈕就完成了波形文件的保存。若使用File/Datasets/Open命令,在彈出的Open Dataset對話框中的Browse中輸入Datasets的路徑,則可打開已保存的波形文件。(3) VCD文

31、件。VCD文件是IEEE 1364標準(Verilog HDL語言標準)中定義的一種ASCII文件。它是一種EDA工具普遍支持的通用的波形信息記錄文件。如何使用Verilog HDL中的系統(tǒng)函數來生成VCD文件請參考第5章。602) 使用Dataflow窗口Dataflow窗口能夠對VHDL信號或者Verilog HDL的線網型變量進行圖示化追蹤,在界面中驅動信號或驅動線網變量的進程顯示在左邊,反之被驅動信號顯示在右邊。雙擊Wave窗口中需要追蹤的信號即可打開Dataflow窗口,如圖7.2-4所示。61圖7.2-4 Dataflow窗口62Dataflow窗口有以下四個功能:(1) 觀察設計

32、的連續(xù)性。可以檢查設計的物理連接性,可以逐個單元地觀測所關注的信號、互聯(lián)網絡或寄存器的輸入/輸出情況。(2) 追蹤事件:跟蹤一個非預期輸出的事件,使用嵌入波形觀察器,可以由一個信號的跳變回溯追蹤,查到事件源頭。63(3) 追蹤未知態(tài):該功能是工程師比較青睞的,在Dataflow窗口中使用Trace/ChaseX功能,會不斷往驅動級追蹤不定態(tài)傳遞的源頭。當選擇ChaseX,圖形界面不再變化時,就是不定態(tài)的源頭了。之后就可以根據Dataflow窗口的結果,去定位源代碼產生不定態(tài)的語句,并加以改正。(4) 顯示層次結構:可以使用層次化實例顯示設計的連通性。643) 使用List窗口List窗口以表格

33、化的方式顯示數據,可以方便地通過搜索特殊值或者特定條件的數據,簡化分析數據的過程。選擇菜單中的View/List命令打開List窗口,如圖7.2-5所示。List窗口的左邊顯示的是仿真的時間點,右邊顯示的是每個時間點對應的變量值。65圖7.2-5 List窗口66當要搜索特定的數值時,可在List窗口中選擇Edit/Search選項,在彈出的List Signal Search對話框中選擇Search Type下的Search for Signal Value項,并輸入想要搜索的數值。這種方式可以很方便地查找仿真中的特殊值,還可以確定特殊值在什么時間點發(fā)生,并以此時間點在Wave窗口中定位相應

34、的波形。除此之外還可以設置條件搜索,方法是在Search Type下的Search for Expression中點擊后面的Builder建立搜索條件。條件可以是信號、事件、邊沿等。67與Wave窗口一樣,List窗口可以保存數據的列表格式和列表內容。在List窗口中選擇File/Save菜單命令,在彈出的Save Format對話框中輸入所保存列表的名稱,點擊保存即可。數據列表也是一個后綴名為.do的可執(zhí)行腳本文件,通過命令do file_name.do可以打開列表文件。在File/Write List選項下選擇一種格式,可完成對列表內容的保存。列表內容文件是.lst格式的文件,要查看文件內

35、容可通過記事本打開該文件。6812ModeSim常用交互命令常用交互命令ModelSim圖形化界面提供了多種指令,既可以是單步指令,通過在主窗口的命令窗口中輸入命令;也可以構成批處理文件(如DO文件),用來控制編輯、編譯和仿真流程。下面介紹ModelSim中用于仿真的一些常用指令,其它指令可參考ModelSim說明書或幫助。691) run指令指令格式:run 其中,參數timesteps(時間步長)和time_unit(時間單位)是可選項,time_unit可以是fs(10-15s)、ps(10-12s)、ns(10-9s)、ms(10-6s)、sec(s)等幾種。例如:“run”表示運行;

36、“run 1000”表示運行1000個默認的時間單元(ps);“run 3500ns”表示運行3500 ns;“run-continue”表示繼續(xù)運行;“run-all”表示運行全程。702) force指令指令格式:force , 其中,參數item_name不能默認,它可以是端口信號,也可以是內部信號,而且還支持通配符號,但只能匹配一個;參數value也不能默認,其類型必須與item_name一致;time是可選項,支持時間單元。例如:“force clr 1 100”表示經歷100個默認時間單元延遲后為clr賦值1;“force clr 1,0 1000”表示為clr賦值1后,經歷100

37、0個默認時間單元延遲后為clr賦值0。713) force-repeat指令指令格式:force , -repeat 指令功能:每隔一定的周期(period)重復一定的force指令。該指令常用來產生時鐘信號。例如:“force clk 0 0,1 30-repeat 100”(-repeat指令可以用-r替代)表示強制clk從0時間單元開始,起始電平為0,結束電平為1,忽略時間(即0電平保持時間)為30個默認時間單元,周期為100個默認時間單元,占空比為(100-30)/100=70%。724) force-cancel指令指令格式:force-cancel 指令功能:執(zhí)行period周期時

38、間后取消force指令。例如:“force clk 0 0,1 30-repeat 60-cancel 1000”表示強制clk從0時間單元開始,直到1000個時間單元結束。735) view指令指令格式:view窗口名指令功能:打開ModelSim窗口。例如:“view source”表示打開源代碼窗口;“view wave”表示打開波形窗口;“view dataflow”表示打開數據流窗口。7413DO文件文件創(chuàng)建DO文件就像在文本文件中輸入命令行一樣簡單,當然也可以將主窗口的復本保存為DO文件。在ModelSim中創(chuàng)建一個DO文件,在該DO文件中向波形窗口添加信號,并給這些信號提供激勵,

39、而后進行仿真。75選擇File/New/Source/Do菜單命令,創(chuàng)建一個DO文件。在窗口中輸入以下命令:vlib workvmap workvlog shiftregist.v testbench_shiftregist.vvsim shiftregist.v add wave/testbench_shiftregist.v/ *run 2000view dataflow76將以上文件保存為shiftregist.do文件,每次使用命令do shiftregist.do即可自動執(zhí)行想要的仿真動作。shiftregist.do的功能:新建work庫,將work庫映射到當前工作目錄,編譯shi

40、ftregist.v、testbench_shiftregist.v文件(默認編譯到work庫下),仿真work庫中名為testbench_shiftregist的模塊將testbench_shiftregist的所有信號加入到波形圖中。完成計數器仿真批處理文件的編輯后,以“shiftregist.do”為文件名將其保存在與計數器設計文件相同的文件夾中,并通過ModelSim編譯。77在ModelSim的命令窗口中執(zhí)行“shiftregist.do”命令,可完成對移位寄存器的仿真。787.2.2 NC-Verilog的使用的使用Cadence NC-Verilog 是業(yè)界優(yōu)秀的Verilog

41、HDL仿真器,提供了高性能、高容量的事務/信號視窗和集成的覆蓋率分析,并支持Verilog HDL 2001特性。NC-Verilog 完全兼容Incisive一體化平臺(unified platform),使得用戶能夠很容易實現納米(nanometer)工藝集成電路上系統(tǒng)設計的數字化驗證。NC-Verilog 為Verilog HDL設計提供了業(yè)界優(yōu)秀的仿真性能,它使用獨特的本地Incisive一體化仿真器編譯架構,從Verilog HDL直接生成高效的機器碼用于高速執(zhí)行。 79一體化的NC-Verilog 仿真和調試環(huán)境,很容易管理多個設計的運行和分析設計與測試平臺。它的事務/波形視窗和原

42、理圖追蹤器能迅速追蹤設計行為到源代碼。NC-Verilog是全編譯仿真器,它直接將Verilog HDL代碼編譯為機器碼執(zhí)行。其過程為:利用ncvlog命令來編譯Verilog HDL源文件,按照編譯指導(compile directive)檢查語義及語法,產生中間數據;ncelab(描述)按照設計指示構造設計的數據結構,建立信號連接,產生可執(zhí)行代碼和中間數據;ncsim(仿真)啟動仿真核,核調入設計的數據結構,構造事件序列,調度并執(zhí)行事件的機器碼。801工作模式的選擇工作模式的選擇運行NC-Verilog的命令是nclaunch。第一次運行的時候,需要用戶選擇工作模式。這里可供選擇的主要是M

43、ultiple Step和Single Step,請選擇Multiple模式,此模式對應的仿真流程是ncvlog(編譯)、ncelab(描述)、ncsim(仿真)三步。兩種工作模式的詳細說明可見參考手冊。圖7.2-6為NC-Verilog的啟動界面。81圖7.2-6 NC-Verilog的啟動界面822建立工作環(huán)境建立工作環(huán)境作為編譯仿真工具,最核心的是源代碼部分,由于NC-Verilog的源文件編輯界面效果不佳,這里建議使用其它支持VHDL/Verilog HDL語言的工具編寫代碼,在確保沒有語法錯誤后再導入到NC-Verilog中進行編譯。選擇File/Set Design Directo

44、ry菜單命令,在彈出的對話框中設置如下選項。83 Design Directory:一般是項目所在的目錄,即啟動NCLaunch 時所在的目錄。 Library Mapping File:點擊“Create cds.lib File”按鈕,會彈出一個“Create a cds.lib file”對話框,其中的文件名是“cds.lib”,選擇“Save”,此時在彈出的對話框中選擇“Include Default Libraries”,將會在當前項目目錄下建立INCA_lib 文件夾用來保存整個設計中全部的庫信息。 Work Library:在建立了cds.lib 之后將出現worklib 的默認

45、選項,無需更改。84需要說明的是,當完成上述環(huán)境設置之后,在工作平臺的右上方將出現“Error:Unable to find an hdl.var file to load in”的警告,暫時無需關注此警告,在進行任意文件編譯之后軟件將自動生成hdl.var 文件,重新載入工作目錄后(File/Set Design Directory)警告將消失。853編譯編譯用鼠標左鍵選擇NCLaunch界面左窗口中的源文件drink_machine.v和test_drink_machine.v。若有多個設計文件,可以按住Ctrl鍵的同時選擇。第一次編譯時選擇Tool/Verilog HDL Compile

46、r菜單項,以后可以直接點擊工具欄中的vlog按鈕。應特別注意的是,在編譯成功第一個文件后應重新載入工作目錄(File/Set Design Directory),以確保警告消失。864載入設計文件載入設計文件用鼠標左鍵選擇NCLaunch界面右窗口中工作目錄(worklib)下的頂層實體worklib/counter_tb/module(必須提醒的是:如果右邊的worklib 前面沒有出現“+”,則請首先檢查右邊工作平臺上對應的的工作路徑,確定工作路徑已經轉換到了和左邊一致的目錄下),然后選擇Tool/Elaborator菜單命令,在彈出的對話框里選中“Access visibility”的R

47、ead屬性,然后確定。載入設計文件后的NCLaunch界面如圖7.2-7所示。87圖7.2-7 載入設計文件885仿真仿真用鼠標左鍵選擇NCLaunch界面右窗口中Snapshots下的頂層實體(snapshots/ worklib.shiftregist_tb:module)。然后選擇Tool/Simulator菜單命令,在彈出的對話框中單擊“確定”按鈕,將彈出仿真器窗口。彈出的默認窗口有兩個,點擊Design Browser/SimVision窗口工具欄中的波形按鈕,開啟波形仿真窗口。展開Design Browser/SimVision窗口左邊瀏覽器中的Simulator,在右邊的列表中選

48、擇希望觀察的信號。然后,點擊鼠標右鍵選擇send to Waveform Windows。89根據實際波形的需要,在 Waveform/SimVision 窗口內把時間顯示單位換成s、ns或ps,然后開始仿真,有兩種方法:(1) 選擇Simulation/Run或者直接點擊工具欄中的“開始”按鈕,開始波形仿真。如果加入了新的信號,需要重新仿真,點擊復位,再次仿真。(2) 在Console窗口直接輸入命令使仿真一段時間,如輸入run 2000 ns。90仿真驗證在整個項目的過程中有著重要的意義,科學合理的仿真方法和仿真技巧可以達到事半功倍的效果;反之,如果只是一味地進行理論分析而不會利用多種工具

49、的優(yōu)點,則可能會使實際項目寸步難行。設計者在設計過程中應時刻仿真驗證自己的設計。一個系統(tǒng)由很多模塊構成,建議每個模塊完成后都進行完整的仿真測試,不要等到整個系統(tǒng)完成了再仿真。這樣可以縮短整個設計的周期,提高設計效率。91邏輯綜合是前端電路模塊設計的重要步驟之一。邏輯綜合是在標準單元庫和特定設計約束的基礎上,把設計的高層次描述轉換成優(yōu)化的門級網表的過程。Design Compiler是Synopsys公司用于電路邏輯綜合的核心工具,7.3 綜綜 合合 工工 具具92它可以方便地將HDL語言描述的電路轉換到基于工藝庫的門級網表,它是ASIC設計領域使用較多的邏輯綜合工具之一。FPGA邏輯綜合領域存

50、在著多種邏輯綜合工具,其中Synplify以其邏輯綜合速度快、邏輯綜合效果好而備受關注,成為FPGA設計邏輯綜合的常用工具。937.3.1 Synplify的使用的使用Synplify、Synplify Pro和Synplify Premier是Synplicity公司(Synopsys公司于2008年收購了Synplicity公司)提供的專門針對FPGA和CPLD實現的邏輯綜合工具,Synplicity的工具涵蓋了可編程邏輯器件(FPGAs、PLDs和CPLDs)的綜合、驗證、調試、物理綜合及原型驗證等領域。Synplify Pro是高性能的FPGA綜合工具,為復雜可編程邏輯設計提供了優(yōu)秀的

51、HDL綜合解決方案:包含的BEST算法可對設計進行整體優(yōu)化;94自動對關鍵路徑做Retiming,可以提高性能25%以上;支持VHDL和Verilog HDL的混合設計輸入,并支持網表*.edn文件的輸入;增強了對System Verilog的支持;Pipeline功能提高了乘法器和ROM的性能;有限狀態(tài)機優(yōu)化器可以自動找到最優(yōu)的編碼方法;在Timing報告和RTL視圖及RTL源代碼之間可進行交互索引;自動識別RAM,避免了繁復的RAM例化。95Synplify Premier是功能強大的FPGA綜合環(huán)境。Synplify Premier不僅集成了Synplify Pro所有的優(yōu)化選項,而且集

52、成了專利的Graph-Based Physical Synthesis綜合技術,并提供有Floor Plan選項,是業(yè)界領先的FPGA物理綜合解決方案,能把高端FPGA性能發(fā)揮到最好,從而可以輕松應對復雜的高端FPGA設計和單芯片ASIC原型驗證。這些特有的功能包括:全面兼容ASIC代碼;支持Gated Clock的轉換;支持Design Ware的轉換。同時,因為整合了在線調試工具Identify,極大地方便了用戶進行軟硬件協(xié)同仿真,確保設計一次成功,從而大大縮短了整個軟硬件開發(fā)和調試的周期。96Identify是RTL級調試工具,能夠在FPGA運行時對其進行實時調試,加快整個FPGA驗證的

53、速度。Identify軟件有Instrumentor和Debugger兩部分。在調試前,通過Instrumentor設定需要觀測的信號和斷點信息,然后進行綜合,布局布線。最后,通過Debugger進行在線調試。Synplify Premier HDL Analyst提供優(yōu)秀的代碼優(yōu)化和圖形化分析調試界面;Certify確保客戶在使用多片FPGA進行ASIC/SoC驗證時快速而高效地完成工作;現在Synopsys公司又推出了基于DSP算法的代碼產生和綜合工具Synplify DSP,架起了算法驗證和RTL代碼實現之間的橋梁;97HAPS是高性能的ASIC原型驗證系統(tǒng),大大減少了一次流片成功的風險

54、及節(jié)省了產品推向市場的時間。Synplify軟件的界面如圖7.3-1所示。98圖7.3-1 Synplify軟件的界面991創(chuàng)建工程創(chuàng)建工程選擇File/New/Project File菜單項,然后填入工程名,點擊OK按鈕保存。創(chuàng)建工程后,其中的rev_1表示版本一。Synplify 允許對同一個設計根據不同的綜合約束條件,創(chuàng)建多個不同的綜合版本。1002添加文件添加文件接下來的步驟是把設計的源文件添加到工程中,設計文件可以是一個,也可以是多個。具體方法是,選擇Project/Add Source File菜單項或者單擊界面左邊的“Add File”按鈕,在彈出的對話框中選擇要添加的源文件即可

55、。如果事先沒有源文件,可以選擇新建VHDL或者Verilog HDL源文件,然后在HDL編輯器中編寫代碼并保存。1013保存工程保存工程點擊工具欄中的save圖標,對工程及源文件進行保存。4語法和綜合檢測語法和綜合檢測可以用Run菜單中的“Syntax check”和“Synthesis”對源程序進行檢測,檢測的結果保存在“Syntax.log”文件中。如果有錯誤將用紅色標出,雙擊可以對錯誤進行定位。 另外,在Run/Compiler Only菜單項中也可以對源文件進行檢測。1025編譯綜合前的設置編譯綜合前的設置選擇Project/Implementation Options菜單項或者單擊界

56、面左側的“Implementation Options”按鈕,即可出現設置對話框。在該對話框中設計者可以選擇器件、添加一些簡單約束等。選擇“Altera Cyclone ”器件,同時,還可以對與器件映射有關的選項進行設定,包括最大扇出、IO、Pipelining等。103在Options中可以對Physical Synthesis、FSM Compiler、Resource Sharing、Retiming等優(yōu)化選項進行設定;在Constraints中可以對時鐘頻率進行約束;在Timing Report中可以設定關鍵路徑的數量。在Verilog HDL的Top Level Module中填入s

57、hiftregist。1046編譯編譯選擇Run/Compiler Only菜單項可以對設計進行單獨編譯。編譯后產生的文件中,擴展名為.srr的文件是工程報告文件,包括工程檢錯、編譯、綜合和時序等所有工程信息;擴展名為.tlg的文件是工程組織結構信息文件;擴展名為.srs的為RTL視圖文件,是設計者經常要檢查的,雙擊該文件或者點擊工具欄的圖標,移位寄存器的RTL視圖如圖7.3-2所示。105圖7.3-2 移位寄存器的RTL視圖106RTL視圖由兩部分組成,左邊區(qū)域是模塊、結構的分類目錄,包括例化(Instances)、端口(Ports)、網線(Nets)和時鐘樹(Clock Tree)四部分。

58、Instances目錄下是本工程所有調用的模塊的實例名和硬件原語,Ports是模塊各個層次IO端口的組織關系,Nets是模塊中所有連線名稱,Clock Tree是以樹狀結構圖顯示的時鐘依賴關系。RTL視圖具有強大的CrossProbing互連切換功能,通過雙擊RTL視圖的某一模塊,可以連接到產生該模塊的RTL源代碼處,這有利于用戶理解代碼與硬件的對應關系,方便調試。1077綜合綜合選擇Run/Synthesize菜單項或者單擊面板上的Run按鈕,就進行了綜合。綜合后主要產生了設計的門級網表,門級網表可以拿到布局布線工具中進行設計的最后實現。綜合后還產生了一些其它的文件,包括綜合報告、Log文件

59、、腳本文件等。綜合后已經根據所選的器件產生了門級電路,設計者可以通過Technology視圖功能觀察門級電路,方法是選擇HDL Analyst/RTL/Hierarchical View菜單項,或者點擊工具欄的圖標即可,這種方法可以查看層次結構以顯示與工藝相關的綜合結果。移位寄存器的Technology視圖如圖7.3-3所示。108圖7.3-3 移位寄存器的Technology視圖109在Technology視圖下可以利用Push/Pop層次功能進入硬件的更底層,也可以在此圖上顯示關鍵路徑;還可以把Technology視圖展平成門級,方法是選擇HDL Analyst/RTL/Flattened

60、 to Gates View項,如圖7.3-4所示,可查看到與門級電路工藝相關綜合結果。需要注意的是,之前介紹的RTL Viewer看到的其實是綜合工具對RTL代碼的編譯結果,是由基本電路單元連接成的電路,與綜合器件無關。由于不同語句、不同方法會導致不同的RTL電路,因此RTL電路可以用于客觀地評價電路的設計效果。RTL視圖看到的不是實際綜合出來的結果,而只有通過Hierarchical View工具才能觀測到最后的綜合結果。110圖7.3-4 移位寄存器的門級電路視圖111在綜合后生成的srr文件中包含了詳細的時序和資源利用的報告,包括時間特性(Timing Report),即最長延遲時間/

溫馨提示

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

評論

0/150

提交評論