版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
第四章設計驗證隨著集成度的提高,系統(tǒng)的規(guī)模日益龐大且復雜。強壯的系統(tǒng)應有完備的驗證作保障。驗證工作量遠大于系統(tǒng)設計工作量。驗證工作的基本技術(shù)和方法。Page1目前,驗證一般通過仿真實現(xiàn)本章節(jié)中,驗證和仿真不加區(qū)分1精選課件ppt4.1驗證概述Page2驗證過程是證明設計正確的過程,驗證的目的是為了保證設計實現(xiàn)與設計規(guī)范是一致的,保證從設計規(guī)范開始,經(jīng)過一系列變換后得到的網(wǎng)表與最初的規(guī)范是一致的,整個變換的過程是正確的。4.1.1驗證的概念2精選課件pptPage34.1驗證概述從自然語言表述的系統(tǒng)規(guī)范變換成完整的、可驗證和無二義性的系統(tǒng)規(guī)范。從系統(tǒng)規(guī)范變換成可實現(xiàn)的模塊設計規(guī)范。從模塊設計規(guī)范變換成RTL及代碼描述。從RTL代碼通過綜合工具變換成門級網(wǎng)表。從門級網(wǎng)表通過后端布局布線工具變換成具有延時信息的網(wǎng)表。FPGA設計可能包含的幾個變換:3精選課件pptPage44.1驗證概述驗證是一個多次重復的過程,是一個不斷向期望結(jié)果靠近的過程。系統(tǒng)規(guī)范網(wǎng)表交換驗證4精選課件pptPage54.1驗證概述驗證和測試是ASIC設計流程中兩個不同的環(huán)節(jié)。驗證的目的則是為了確認設計符合設計規(guī)范,目前驗證一般通過仿真實現(xiàn)。測試的目的是為了確認生產(chǎn)后的設計產(chǎn)品是否合格、正確,一般由加工廠家或封裝測試廠家完成。4.1.2驗證和測試(VerificationvsTest)5精選課件ppt4.1驗證概述系統(tǒng)規(guī)范網(wǎng)表芯片電路設計生產(chǎn)驗證(仿真)測試對物理器件高低電平的確認不屬于本教材范疇對設計規(guī)范及功能的確認6精選課件pptPage64.1驗證概述傳統(tǒng)的電子線路設計驗證方法4.1.3Top-Down/Bottom-Up驗證方法目前的電子線路設計驗證方法邏輯設計、畫電路圖、搭建電路、測試驗證借助EDA工具在計算機上進行RTL級設計和驗證。7精選課件pptPage74.1.3Top-Down/Bottom-Up驗證方法Top-Down驗證法系統(tǒng)級驗證:根據(jù)系統(tǒng)規(guī)范對系統(tǒng)進行建模,并對建立的模型進行驗證。功能驗證:驗證設計的RTL代碼應符合系統(tǒng)規(guī)范。主要方法--功能仿真(形式化驗證為輔)。門級網(wǎng)表驗證:通過功能仿真或形式化工具檢驗RTL代碼和綜合后網(wǎng)表的是否相等。時序驗證:驗證綜合后含有延時信息的網(wǎng)表時序是否滿足要求。對于同步設計一般通過靜態(tài)時序分析工具完成驗證。8精選課件pptPage84.1.3Top-Down/Bottom-Up驗證方法Bottom-Up驗證法模塊級驗證驗證模塊的各種工作情況,保證每個單元的設計質(zhì)量。子系統(tǒng)驗證、系統(tǒng)級驗證分層次組裝模塊進行子系統(tǒng)驗證直至完成系統(tǒng)級驗證。備注:系統(tǒng)級驗證,目標是驗證整個設計的功能。驗證主要集中在設計和外環(huán)境之間能否協(xié)調(diào)工作,包括一些極端情況、邊界條件和錯誤處理等。9精選課件pptPage9目前主流的兩類“驗證技術(shù)”:4.1.4驗證技術(shù)(1)基于形式化的驗證通過數(shù)學的方法,證明設計的功能是否與規(guī)范一致。等價性檢驗:比較兩個設計是否完全等價。兩個網(wǎng)表比較,網(wǎng)表與RTL代碼比較模型檢驗:根據(jù)設計的RTL代碼,提取有限狀態(tài)機并窮舉搜索設計狀態(tài)空間,驗證設計特性。模型檢驗工具:Cadence的FormalCheck、IBM的Sugar和
Sypopsys的Vera局限性很大1、設計規(guī)模越來越大復雜2、模型檢驗所描述的特性有限10精選課件ppt4.1.4驗證技術(shù)(2)基于TestBench的驗證(目前主要的驗證方式)Testbench——測試平臺即:Testbench產(chǎn)生激勵給被驗證設計(DUV)或待測設計(DUT),同時檢查DUV/DUT輸出是否滿足要求11精選課件pptPage104.1.4驗證技術(shù)
TB結(jié)構(gòu)模型黑盒驗證法白盒驗證法灰盒驗證法解釋:DUV/DUTDesignUnderVerificationDesignUnderTest12精選課件pptTestbench功能:為DUV/DUT提供激勵信號正確實例化DUV/DUT將仿真數(shù)據(jù)顯示在終端或者存為文件,也可以顯示在波形窗口用于分析復雜設計可以使用EDA工具,自動比較仿真結(jié)果與理想值。激勵實例化DUT終端顯示值、存成文件波形顯示自動比較結(jié)果正確性13精選課件ppt4.1.5仿真工具1、仿真器仿真器是驗證中最常用的工具。仿真器試圖創(chuàng)建一個能夠模擬真實設計的工作環(huán)境,使驗證工程師和設計進行交互,在設計生產(chǎn)之前發(fā)現(xiàn)設計錯誤,以減少損失。之所以稱為仿真器,是因為它們是真實狀態(tài)的一種近似。Page1114精選課件pptPage124.1.5仿真工具驗證人員在仿真器中,通過testbench為設計提供輸入激勵(為電路建立模擬工作環(huán)境),仿真器通過一定方式與驗證人員交互,將電路的輸出狀態(tài)隨環(huán)境變化的信息反映給驗證人員。業(yè)界常用的仿真器有:Cadence的NC-Verilog,Synopsys的VCS和Mentor的ModelSim15精選課件pptPage134.1.5仿真工具最常見的和仿真器一起使用的驗證工具。通過波形觀察器的圖形界面,設計人員可以直觀地觀察隨時間變化的信號以及信號之間的相互關系,定位設計錯誤或測試文件的錯誤。2、波形觀察器工具TB運行中即統(tǒng)計被測設計代碼的測試覆蓋情況,給出報告,驗證者可依據(jù)此報告分析判斷驗證工作的完備性。幾個主要覆蓋分析方面:3、代碼覆蓋分析工具16精選課件ppt4.1.5仿真工具使用代碼覆蓋技術(shù)必須非常了解設計細節(jié),通過代碼覆蓋分析工具了解哪些語句、路徑已經(jīng)被執(zhí)行,那些表達式已經(jīng)被執(zhí)行,那些過程沒有被觸發(fā)等等,然后修改測試程序,提高代碼覆蓋率。提高覆蓋率可以提高測試的完備性。語句覆蓋路徑覆蓋表達式覆蓋觸發(fā)覆蓋自動機覆蓋17精選課件pptPage154.1.6驗證計劃和流程隨著設計規(guī)模的加大,驗證工作量越來越大,制定驗證計劃或者《驗證規(guī)范》是驗證過程的一個重要環(huán)節(jié),驗證計劃可以提高驗證效率,減少驗證的盲目性。制定《驗證規(guī)范》在《系統(tǒng)設計規(guī)范》簽收(signoff)后開始。18精選課件pptPage164.1.6驗證計劃和流程應該注意:驗證工程師應與總體設計師以及設計人員一起討論整個設計功能、模塊劃分、接口方式等,詳盡理解設計規(guī)范。在此基礎上制定《驗證方案》確定需要驗證的功能特性,確定驗證策略,規(guī)劃驗證環(huán)境和驗證程序的開發(fā),確定整個驗證所需的驗證人員的數(shù)目,資源和時間等等。19精選課件pptPage174.1.6驗證計劃和流程典型的驗證流程20精選課件pptPage184.1.6驗證計劃和流程《驗證方案》的要點(驗證什么、如何驗證)確定設計需要驗證的特性(驗證內(nèi)容);確定驗證策略系統(tǒng)級/模塊級,黑/白/灰盒式驗證,激勵產(chǎn)生策略,驗證響應方式(觀察法、記錄法、自檢查法),人員、設備、環(huán)境管理安排等。確定驗證方法具體驗證的步驟和方法,如自頂向下/自下向上,激勵的具體方式等。21精選課件ppt4.1.6驗證計劃和流程制作標準的測試組件和測試模板。個人編制相關部分的測試方案;編制、調(diào)試測試程序,進行系統(tǒng)測試。測試記錄及分析,編制測試報告。回歸測試:對發(fā)現(xiàn)問題修改后的設計重新測試。
(1)確認修改是否正確(2)修改是否影響其他設計22精選課件ppt4.2功能驗證所謂的“驗證程序”是對“待測電路”的輸入序列和預期輸出相應的代碼集合。4.2.1驗證程序(TestBench)的組成一個典型的驗證程序模型23精選課件ppt4.2.1驗證程序(TestBench)的組成一個典型的Testbench的六個組成部分:DUV(被驗證的設計)DesignUnderVerification,可能是RTL設計,也可以是網(wǎng)表。輸入激勵
產(chǎn)生DUV需要的各種輸入信號。時序控制模塊
產(chǎn)生TB和DUV所需的時鐘信號。參考模塊
產(chǎn)生預期信號(行為級編碼模塊/以驗證過正確的設計)。診斷記錄
相關信號變化情況的記錄。斷言檢查器
對特定的信號形式檢測。24精選課件ppt編寫仿真激勵:1、仿真激勵與被測對象的連接模塊實例的端口方式:(1)名稱對應:將模塊實例外部的信號直接對應于模塊的端口名稱。modulehalfadd(x,y,sum,cout);……endmodule名稱對應halfaddu_halfadd_a(.x(ax),.y(ay),.sum(asum),.cout(acout));(2)位置對應:外部信號按照該模塊端口聲明的順序一一對應。Halfaddu_halfadd_b(bx,by,bsum,bcout);25精選課件ppt2、使用initial語句和always語句
通常主動產(chǎn)生激勵用initial,被動檢測響應用always。前者執(zhí)行一次,后者不斷重復執(zhí)行。在initial中多次運行一個語句塊,使用嵌入循環(huán)語句:while、repeat、for和forever。initialbeginforeverbengin…..endend條件發(fā)生時執(zhí)行always@(posedgeclk)beginsiga=sigb……end26精選課件ppt3、時鐘、復位寫法(1)普通時鐘信號
//產(chǎn)生一個周期為10的時鐘
parameterFAST_PERIOD=10;regclk;initialbeginclk=0;forever#(FAST_PERIOD/2)clk=~clk;end27精選課件ppt用always產(chǎn)生一個周期為10的時鐘parameterFAST_PERIOD=10;regclk;initialclk=0;always#(FAST_PERIOD/2)clk=~clk;
28精選課件ppt(2)非50%占空比時鐘parameterHi_time=5;parameterLo_time=10;regclk;alwaysbegin#Hi_timeclk=0;#Lo_timeclk=1;end由于clk0時刻未初始化,前5納秒輸出為x29精選課件ppt(3)固定數(shù)目時鐘\\產(chǎn)生兩個高脈沖parameterPulseCount=4,PERIOD=10;regclk;initialbeginclk=0;repeat(PulseCount)#(PERIOD/2)clk=~clk;end30精選課件ppt(4)異步復位信號parameterPERIOD=10;regRst_n;initialbeginRst_n=1;#PERIODRst_n=0;#(5*PERIOD)Rst_n=1;endRst_n為低有效,代碼表示10ns時復位,復位延時50ns31精選課件ppt(5)同步復位:initialbeginRst_n=1;@(negedgeclk);//等待時鐘下降沿Rst_n=0;#30;@(negedgeclk);//等待時鐘下降沿Rst_n=1;end32精選課件ppt另一種同步復位initialbeginRst_n=1;@(negedgeclk);//等待時鐘下降沿Rst_n=0;//復位開始repeat(3)@(negedgeclk);//經(jīng)過3個時鐘下降沿Rst_n=1;//復位撤銷end33精選課件ppt4、利用系統(tǒng)函數(shù)和系統(tǒng)任務
display在顯示數(shù)據(jù)$display(“Addr:%b->Data:%d”,add,data);時序檢查系統(tǒng)任務$setup(sig_d,posedgeclk,1);//若clk上升沿到達之前的1ns時間內(nèi)sig_d發(fā)生跳變,則建立時間不足告警$hold(posedgeclk,sig_d,0.1);//若clk上升沿到達之后的0.1ns時間內(nèi)sig_d發(fā)生跳變,則保持時間不足告警dato_out={$random}%256;從文本文件中讀出和寫入數(shù)據(jù)(類似C語言文件操作)34精選課件ppt搭建仿真環(huán)境35精選課件ppt單頂層的TestBench代碼:moduletestbench;//測試平臺頂層//時鐘激勵產(chǎn)生initialbengin…end//復位激勵產(chǎn)生initialbegin…end//各種測試激勵initialbengin…end//設計模塊實例mpiu_mpi(.clk(clk),.rst_n(rst_n),.mpi_data(data),.mpi_addr(addr),.mpi_csn(csn),.mpi_rw(rw));36精選課件ppt確認仿真結(jié)果1、直接觀測波形2、觀察文本輸出利用系統(tǒng)任務打印的信息查看仿真結(jié)果,$display、$monitor、$fdisplay3自動檢查仿真結(jié)果(1)數(shù)據(jù)庫比較法。(數(shù)據(jù)庫存儲期望結(jié)果)(2)波形比較法。(存儲標準波形,仿真結(jié)果與其比較)(3)動態(tài)自檢法。編寫行為級與DUT功能一致代碼,同時讀入激勵,比較輸出結(jié)果37精選課件ppt舉例:加法器38精選課件ppt39精選課件pptPage224.2.1驗證程序(TestBench)的組成BookPage141例:一個編碼器的驗證。40精選課件pptPage234.2.2實用構(gòu)造Testbench技術(shù)1、使用行為級代碼描述驗證模型設計工程師編寫的電路模型代碼,要從實現(xiàn)的角度出發(fā),從物理實現(xiàn)上考慮verilog代碼的寫法,寫出的代碼必須是可綜合的。驗證工程師編寫的用于驗證的代碼不必考慮到內(nèi)部的實現(xiàn)問題,只要按規(guī)范描述出一個設計的功能就可以了,也就是說只要建立一個設計“邏輯模型”。行為模型代碼的描述往往比RTL代碼的描述簡單的多,容易正確描述電路功能。41精選課件pptPage244.2.2實用構(gòu)造Testbench技術(shù)2、使用抽象數(shù)據(jù)類型
行為級代碼可以不受可綜合要求的約束,可以在更高的層次上實現(xiàn)數(shù)據(jù)的抽象,使得驗證程序編寫時更方便。①實數(shù)數(shù)據(jù)類型數(shù)字濾波器的仿真例子(P148;例4.4)。②記錄數(shù)據(jù)類型記錄是一種抽象的數(shù)據(jù)結(jié)構(gòu),可以由不同類型信息組成,可以方便的表示在具有一定結(jié)構(gòu)的數(shù)據(jù)。Verilog語言本身并不支持記錄結(jié)構(gòu),通過一些方法可以模擬記錄的實現(xiàn)。42精選課件pptPage25記錄的用法記錄的用途在仿真中主要用于描述一定格式的數(shù)據(jù)塊。創(chuàng)建一個沒有參數(shù)的module,內(nèi)部的所有變量都用寄存器類型聲明。當模塊實例化后,用模塊中定義的變量表示記錄中的域。對記錄可以進行行為級的處理,準備好仿真數(shù)據(jù)。(備注:行為級數(shù)據(jù)準備不占用信號時序時間)
4.2.2實用構(gòu)造Testbench技術(shù)43精選課件pptPage304.2.2實用構(gòu)造Testbench技術(shù)③多維數(shù)組數(shù)據(jù)類型數(shù)組類型是記錄類型的特例(域等長,二維數(shù)組在設計中也用于對RAM等數(shù)據(jù)結(jié)構(gòu)的建模)。測試激勵需要構(gòu)造有固定格式的數(shù)據(jù)幀時,使用二維數(shù)組是一種較好的方法。(例如SDH數(shù)據(jù)幀信元的構(gòu)成等)44精選課件pptPage314.2.2實用構(gòu)造Testbench技術(shù)3、編寫結(jié)構(gòu)化的仿真代碼行為代碼通常按功能和需求劃分結(jié)構(gòu),復雜的仿真功能,可以按功能劃分若干個子功能,然后編寫行為代碼實現(xiàn)這些子功能。在Verilog中,可以用module,function和task實現(xiàn)仿真代碼結(jié)構(gòu)化。封裝是實現(xiàn)結(jié)構(gòu)化仿真編碼的主要手段,封裝的主要思想是將實現(xiàn)的細節(jié)隱藏起來,將功能和它的實現(xiàn)完全分離開,只要封裝的接口不變,實現(xiàn)的修改和優(yōu)化不影響用戶的使用。45精選課件pptPage324.2.2實用構(gòu)造Testbench技術(shù)實現(xiàn)封裝的幾種方法變量局部化
方法一:變量聲明時局部化盡可能地將變量的聲明局部化,避免變量在其它模塊間相互作用,產(chǎn)生不正確地結(jié)果。方法二:用task和function使變量局部化在verilog語言中,用task和function也可以使說明局部化。46精選課件pptPage334.2.2實用構(gòu)造Testbench技術(shù)integerI;//全局Ialwaysbeginfor(I=0;I<=32,I=I+1)begin…end
endalwaysbeginfor(I=5;I>0,I=I-1)begin…endendalwaysbegin:block_1integerI;//局部Ifor(I=0;I<=32,I=I+1)begin…endendalwaysbegin:block_2integerI;//局部Ifor(I=5;I>0,I=I-1)begin…endend47精選課件pptPage344.2.2實用構(gòu)造Testbench技術(shù)實現(xiàn)封裝的幾種方法總線功能模型
BFM(BusFunctionModule)總線功能模型BFM,也稱為事務處理程序(transactions)描述模塊。所謂BFM就是DUV和TB之間的一種抽象,它是任務的集合,集合中的每個任務完成一個特定的事務,事務可以是非常簡單的操作,如內(nèi)存的一次讀、寫,也可以是非常復雜的操作,如通信中結(jié)構(gòu)化的數(shù)據(jù)包。BFM被直接鏈接到DUV上,TB通過“函數(shù)/功能”調(diào)用實現(xiàn)DUV的操作。48精選課件pptPage354.2.2實用構(gòu)造Testbench技術(shù)TB-BFM-DUV模型49精選課件pptPage36例4.11帶有微機接口芯片MPI的仿真(8255、8251等)。CPU接口可抽象成右圖形式。根據(jù)預定義的協(xié)議,由CPUBFM產(chǎn)生CPU接口所需要的實際物理信號(圖右側(cè)信號),圖左側(cè)接口用特定的數(shù)據(jù)初始化一個事務,根據(jù)不同的事務,CPUBFM產(chǎn)生不同物理信號,把左側(cè)的接口稱為過程接口。在BFM中根據(jù)CPU接口的時序,應用task產(chǎn)生一次CPU讀寫操作所需要的各種信號。50精選課件pptPage37modulecpu_bfm(A,D,ALE,WRB,RDB,CSB);
output[13:0]A; //地址總線inout[7:0]D; //雙向數(shù)據(jù)總線outputALE,WRB,RDB,CSB; //控制線reg[13:0]A;regALE,WRB,RDB,CSB;
//定義CPU讀寫信號的所需要的時序參數(shù)
parametertSalr=10,tSlr=5,Prd=30,tHrd=10; parametertHar=10,tVl=5,tSalw=10,tVwr=40,parametertSdw=20,tSlr=5; parameterdata_width=8,addr_width=14; reg[data_width-1:0]work_reg;51精選課件pptPage38taskrd_cpu;
//讀操作的時序;
input[addr_width-1:0]addr;begin
#10A=addr;CSB=1’b0;
#(tSalr-tVl)ALE=1’b1;
#tVlALE=1’B0;
#tSlrRDB=1’B0;
#Prdwork_reg=D; RDB=1’B1;
#tHarA=14’hzzzz;CSB=1’b1;endendtask
taskwr_cpu;
//寫CPU操作input[addr_width:0]addr;input[data_width:0]write_value;begin#10A=addr;CSB=1’B0;#(tSalw-tVl)ALE=1’B1;#tVlALE=1’B0;#tSlwWRB=1’B0;#(tVwr-tSdw)D=write_value;WRB=1’b1;#tHdwReleaseD;A=14’Hzzzz;CSB=1’B0;endendtaskendmodule//cpu_interface52精選課件pptPage39在測試程序中,實例化cpu_bfm模塊,直接和被測試的設計連接,通過層次關系調(diào)用元件的cpu任務,實現(xiàn)對目標器件的讀寫操作。moduletestbench;….
cpu_bfmcpu_inst(.A(A),.D(D),.ALE(ALE),.WRB(WRB),.RDB(RDB),.CSB(CSB));DUVDUV_inst(/*othersignal*/…
/*cpusignal*/.A(A),.D(D),.ALE(ALE),.WRB(WRB),.RDB(RDB),.CSB(CSB),
/*othersignal*/….);例4.12cpu_interface的使用方法53精選課件pptPage40initialbegin#300cpu_inst.rd_cpu(14’h0010);
//此時cpu_inst.work_reg中既存儲了讀出的數(shù)…;//otheroperation#1000cpu_inst.wr_cpu(14’h0001,8’h3C);…;//otheroperationendendmodule//testbench例4.12
cpu_interface
的使用方法54精選課件pptPage414、編寫具有層次結(jié)構(gòu)的仿真代碼4.2.2實用構(gòu)造Testbench技術(shù)上面的CPU接口的仿真代碼例子中包含了一定的層次結(jié)構(gòu)。驗證工程師在最頂層,只需要寫出特定的完成某項功能驗證的事務序列,而這些序列中的事務去調(diào)用不同的事務處理程序,這些不同的事務處理程序又可以去調(diào)用更低層的事務處理程序,以產(chǎn)生CPU接口所需要的物理信號。這種層次化結(jié)構(gòu),可以為驗證工程師提供一個良好的可操作環(huán)境,使他們更關注于DUV的驗證而不是注意如何產(chǎn)生DUV接口信號。55精選課件pptPage425、編寫具有自檢查功能的仿真程序4.2.2實用構(gòu)造Testbench技術(shù)設計的有效性必須通過設計對激勵響應的結(jié)果得以體現(xiàn),有幾種方式可以檢查設計響應是否正確。通過人工觀測DUV輸出波形的結(jié)果是否正確;通過日志的方式,將一些結(jié)果輸出到文件中,在仿真結(jié)束后,分析日志文件;自檢查方式;56精選課件pptPage436、驗證代碼的重用4.2.2實用構(gòu)造Testbench技術(shù)大規(guī)模FPGA/ASIC設計一般由多個層次構(gòu)成,設計人員應對各個層次上的子模塊逐一驗證,然后將這些驗證過的模塊連接在一起形成高層規(guī)模較大的設計。為這些不同的子模塊開發(fā)不同的驗證環(huán)境需要花費大量的時間和精力,驗證重用是解決這一問題的有效方法,驗證人員利用大量的可重用驗證模塊構(gòu)造出不同層次模塊的驗證環(huán)境。57精選課件pptPage446、驗證代碼的重用兩種形式4.2.2實用構(gòu)造Testbench技術(shù)①同一個芯片設計中驗證重用在驗證的不同周期或設計的不同階段驗證代碼的重用。好的驗證代碼可以在子模塊級和系統(tǒng)級驗證時均可重用。②不同芯片設計之間的重用驗證代碼可以用于同一芯片的更新?lián)Q代上,或用于一個包含許多標準設計模塊的芯片或與以前設計有相同性的新設計中。58精選課件pptPage456、驗證代碼的重用4.2.2實用構(gòu)造Testbench技術(shù)重用的模塊越多,所考慮的事項和投入的精力就越多。需要在驗證重用所取得的效果和投入重用的資源做些平衡。仿真程序被劃分成兩個主要的部分:可重用的驗證代碼與專用的驗證代碼。59精選課件pptPage464.3基于斷言的驗證基于斷言的驗證是一種有效的“白盒”驗證方法,它在RTL設計的源代碼中監(jiān)視系統(tǒng)的關鍵行為,特別是在某些特殊情況下的行為。通過斷言的方法,可以增加觀測點,在仿真過程中及時發(fā)現(xiàn)設計錯誤。斷言中用到的概念:特性(Property):用于刻畫設計特征的一些行為屬性。事件(Event):驗證過程的一個行為。斷言(Assertion):用于監(jiān)控或檢查施加在設計上的一些規(guī)則和假設的一種機制。60精選課件pptPage474.3基于斷言的驗證用戶可以用各種硬件描述語言如Verilog、VHDL或SystemC等形成斷言以監(jiān)視設計在仿真過程中的行為。也可以利用已有的斷言庫,將斷言直接加入到設計中。如:Accellera()推出的采用了斷言思想的驗證庫OVL(OpenVerificationLibrary),該庫中用HDL語言(VHDL和Verilog),定義和實現(xiàn)了一些非常常用的屬性聲明。一些專用的硬件特性描述語言(PropertySpecificationLanguage:PSL)和斷言語言已經(jīng)稱為工業(yè)標準,并開始推向市場,例如IBM公司開發(fā)的Suger語言已被Accellera組織接受,成為PSL工業(yè)的標準。61精選課件pptPage484.3基于斷言的驗證斷言可以有多種實現(xiàn)方法,最常用、最簡單的方法是所謂的“敘述性”的實現(xiàn)方法,即在設計結(jié)構(gòu)中描述斷言,斷言和設計中的其他結(jié)構(gòu)一起并發(fā)地計算。敘述性斷言實際上是一些代碼,這些代碼中一般包含三部分:①斷言的條件,②報告信息,③錯誤的嚴重程度以及相關的處理。例:assert_always[#(severity_level,options,msg)]inst_name(clk,
reset_n,
test_expr)備注:assert_always模塊是Accellera組織OVL庫中的標準件,詳見書中page166。62精選課件pptPage49modulecounter_0_to_9(reset_n,clk);
`defineASSERT_ON1
inputreset_n,clk;reg[3:0]count;always@(posedgeclk)beginif(reset_n==0||count>=9)count=1’b0;elsecount=count+1;end
assert_always#(0,0,"error:countnotwithin0and9")valid_count(clk,reset_n,(count>=4’b0000)&&(count<=4’b1001));//always斷言endmodule例4.14模9計數(shù)器中使用always斷言。63精選課件pptPage504.3基于斷言的驗證一個斷言實際上就是一段Verilog代碼,用模塊的形式將其封裝起來。使用時直接實例化,把斷言嵌入在設計中,當測試條件不成立的時候,觸發(fā)該斷言。在驗證中使用斷言的優(yōu)點:節(jié)約仿真時間,一旦出現(xiàn)了仿真錯誤,可以立即停止仿真;增加了設計的可觀察性;減少設計錯誤定位時間,可以準確而快速定位設計錯誤;減少人為干預,自動監(jiān)控測試。64精選課件pptPage514.4時序驗證時序驗證的目的是為了確認物理實現(xiàn)的電路時序是否滿足時序規(guī)范要求。時序驗證的方法分為動態(tài)驗證和靜態(tài)驗證兩種,本節(jié)簡單地介紹靜態(tài)時序分析中的一些基本概念。(備注:簡介動態(tài)時序分析概念。)4.4.1靜態(tài)時序分析概述靜態(tài)時序分析是通過分析設計中所有可能的信號路徑以確定時序約束是否滿足時序規(guī)范,不依賴于激勵,且可以窮盡所有路徑,運行速度快,占用內(nèi)存少。對于同步設計電路,僅借助于靜態(tài)時序分析工具即可完成時序驗證的任務。65精選課件pptPage524.4時序驗證常見的靜態(tài)時序分析的工具Synopsys公司的Primetime和MentorGraphic公司的SSTVelocity是比較有影響的用于全定制IC時序分析的工具。FPGA供應商如Altera,Xilinx和Actel也在其集成環(huán)境中嵌入了靜態(tài)時序分析工具。66精選課件pptPage53四種基本時序路徑:路徑1(Path1):從輸入管腳到D觸發(fā)器的輸入;路徑2(Path2):從D觸發(fā)器的輸入到下一個D出發(fā)器的輸入;路徑3(Path3):從D觸發(fā)器的輸入到輸出管腳;路徑4(Path4):從輸入到輸出;時鐘路徑(clockpath):從一個時鐘的輸入通過一個或多個緩沖器到達一個時序元件的時鐘管腳的路徑;67精選課件pptPage544.4.1靜態(tài)時序分析概述一條路徑的延時等于在該條路徑上所有元件延時和連線延時之和。靜態(tài)分析工具通過反向跟蹤路徑終點到起點所有的延時來計算路徑的傳輸延時。在時序分析中,禁止組合環(huán)的存在,要求所有的反饋路徑都可以在時鐘邊界被打斷。元件延時是一個門的輸入到輸出之間的延時。連線延時是時序分析路徑上一個元件的輸出到下一個元件輸入之間的路徑延時(寄生電容,線電阻,驅(qū)動強度等都會引起延時)。一條路徑的延時是由該路徑的組合電路、存儲元件、路徑上門的扇出負載、信號之間的互連線負載、時鐘的歪斜率、時鐘抖動和信號的壓擺率等所決定。goonfromhere06.11.2268精選課件pptPage554.4.2靜態(tài)時序分析中的基本概念1.扇入和扇出一個邏輯門的扇入是指連接到該門輸入的數(shù)目,一個邏輯門的扇出是指連接到該門輸出的負載門的數(shù)目,扇出越多,延時越大。69精選課件pptPage564.4.2靜態(tài)時序分析中的基本概念2.壓擺率(slewrate)壓擺率(slewrate):電壓變化的速度。70精選課件pptPage574.4.2靜態(tài)時序分析中的基本概念3.時鐘
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 克羅恩病診療新進展:從機制突破到臨床實踐
- 2025年河北省公需課學習-建筑施工高處作業(yè)安全技術(shù)規(guī)范
- 2025年招錄政府專職消防文員筆試判讀題170題及答案
- 2025年泥工安全教育培訓試題及答案
- 2025年人才引進面談真題及答案
- 中考藝術(shù)科目試卷及答案
- 物業(yè)崗前考試題庫及答案
- 鎮(zhèn)海中考英語試卷及答案
- 四川省成都市蓉城名校聯(lián)盟2024-2025學年高二上學期期中考試生物考試生物學試題
- 上海德語高考真題及答案
- 莒縣寵物殯葬管理辦法
- 2025版煤礦安全規(guī)程學習培訓課件
- 2025年食品安全員考試試題及答案食品安全考試試題及答案
- 醫(yī)療機構(gòu)靜脈輸液使用管理制度2025版
- 煤礦自動隔爆裝置(巖粉隔爆棚)專項安全風險辨識評估會議紀要
- 2025至2030中國除甲醛行業(yè)市場深度調(diào)研及競爭格局及有效策略與實施路徑評估報告
- 履約能力及交貨進度保證措施
- 合規(guī)大講堂培訓課件
- 肉毒素的護理課件
- 模板工程技術(shù)培訓課件
- 健康體檢注意事項
評論
0/150
提交評論