版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、數(shù)字集成電路可測性設(shè)計及驗證平臺,2015年4月,主要內(nèi)容,可測性基礎(chǔ)可測性設(shè)計工具驗證的必要性驗證方法學(xué)介紹驗證工具介紹,2,共99頁,2024/3/26,主要內(nèi)容,可測性基礎(chǔ)可測性設(shè)計工具驗證的必要性驗證方法學(xué)介紹驗證工具介紹,3,共99頁,2024/3/26,可測性基礎(chǔ),什么是可測性設(shè)計?物理瑕疵及故障模型單一故障模型:SAF Model可測性設(shè)計常用方法檢測SAF的算法:D算法測試矢量集故障覆蓋率,4
2、,共99頁,2024/3/26,什么是可測性設(shè)計?,可測性設(shè)計, Design For Test,即DFT 。 為了測試所設(shè)計IC有沒有被正確的制造出來(測試半導(dǎo)體生產(chǎn)處理過程中的瑕疵,不是測試芯片設(shè)計的對錯)。 DFT=增加芯片邏輯+生成測試矢量集(供測試設(shè)備用),5,共99頁,2024/3/26,物理瑕疵和故障模型,1.開路和短路 2.金屬線之間的電橋 3.漏源穿通,CMOS反相器中的物理缺陷,6
3、,共99頁,2024/3/26,,物理故障 邏輯故障 封裝引腳間的漏電或短路 單一固定故障芯片焊接點到管腳連線斷裂 延時故障表面玷污、含濕氣 短路或者開路故障金屬層遷移、應(yīng)力、脫皮 …金屬層開路、短路 ………,,,,7,共99頁,2024/3/26,DFT常用方法,功能點測試 需在每個測試點增加可控的輸入和輸出,I/O增加掃描測試(
4、基于D算法) 結(jié)構(gòu)化的DFT技術(shù),全掃描和部分掃描內(nèi)建自測試 消除了對ATE的存儲能力和頻率的限制,更具發(fā)展?jié)摿?8,共99頁,2024/3/26,D算法,D算法是20世紀60年代IBM提出測試SAF(stuck-at fault model,簡稱SAF模型)的,D算法在沒有故障和有故障的電路之間產(chǎn)生了邏輯的差異(Discrepancy),D為Discrepancy縮寫,D算法即為差異算法。經(jīng)典的D算法如下:
5、1、瞄準特定的SAF。2、驅(qū)動故障節(jié)點為反向值。3、把錯誤傳送到輸出端口。4、記錄測試向量,減掉已測試過的故障。,9,共99頁,2024/3/26,D算法,第一步:是把某個節(jié)點作為測試目標,我們把U1的輸出端作為測試的目標,探測它有無SA0的故障。,10,共99頁,2024/3/26,D算法,第二步:是通過驅(qū)動該節(jié)點為相反的值以激活(activate)目標的故障。 輸入端口輸入邏輯“0”,如U1輸出沒有SA0的故障,
6、其邏輯“1”;如U1輸出有SA0的故障,其邏輯為“0”。 可以通過測試其邏輯值來判斷值該節(jié)點是否有SA0的故障。,11,共99頁,2024/3/26,D算法,第三步:是把故障效應(yīng)傳送到輸出端口,可以在輸出端口觀測到其邏輯值,有故障節(jié)點的邏輯值通過組合電路后可能會反向,但是差異還保留著。,12,共99頁,2024/3/26,D算法,第四步:記錄向量。成功的測試向量被記錄在內(nèi)存里,已測試的故障從目標故障的清單里減掉。,13,共
7、99頁,2024/3/26,可測試的觸發(fā)器有兩種模式: 正常模式——在這種模式下,所設(shè)計芯片以設(shè)計的原來功能工作; 測試模式——在這種模式下,所設(shè)計芯片進行生產(chǎn)測試。,掃描測試,14,共99頁,2024/3/26,掃描測試,標準D觸發(fā)器,與標準D觸發(fā)器等效的掃描觸發(fā)器,15,共99頁,2024/3/26,使用掃描觸發(fā)器,會增加設(shè)計的面積,增加了路徑的延遲,增大了觸發(fā)器的輸出負載和電路的功耗。,掃描測試,16,共99頁,
8、2024/3/26,掃描測試流程,,17,共99頁,2024/3/26,測試矢量集(Test Pattern),由一個或多個測試序列組成的測試矢量,測試矢量包含輸入激勵和預(yù)期的輸出響應(yīng),以測試一個目標的故障。,18,共99頁,2024/3/26,業(yè)界產(chǎn)品測試方法,,,ATE: Automatic Test Equipment,19,共99頁,2024/3/26,,20,共99頁,2024/3/26,主要內(nèi)容,可測性基礎(chǔ)可測性設(shè)計工具
9、驗證的必要性驗證方法學(xué)介紹驗證工具介紹,21,共99頁,2024/3/26,DFT Compiler,Synopsys公司的集成于Design Compiler的先進測試綜合工具獨創(chuàng)的“一遍測試綜合”技術(shù)功能強大的掃描式可測性設(shè)計分析、綜合和驗證技術(shù)支持RTL級、門級的掃描測試設(shè)計規(guī)則檢查,以及給予約束的掃描鏈插入和優(yōu)化啟動命令source /opt/demo/synopsys.env d
10、esign_vision &,22,共99頁,2024/3/26,設(shè)計流程,,23,共99頁,2024/3/26,1.Scan-Ready Synthesis,DFT Compiler,24,共99頁,2024/3/26,2.Set ATE Configuration,25,共99頁,2024/3/26,即測試時鐘周期為100ns,輸入端口的數(shù)據(jù)輸入到達時間為5ns,雙向端口的數(shù)據(jù)輸入到達時間為55ns,輸出端口的數(shù)據(jù)程序采樣(
11、strobe)時間為40ns。 測試時間參數(shù)的設(shè)置一般放在.synopsys_dc.setup文件中,也可以包含在DC綜合腳本文件里。測試時鐘定義了驅(qū)動所有掃描觸發(fā)器的時鐘,測試時鐘一般與電路的工作時鐘不同,它是由ATE提供的,只在測試時使用。DFTC進行設(shè)計時,假設(shè)ATE對芯片做測試的所有時鐘周期是相同的,等于test_default _period。,2.Set ATE Configuration,26,共99頁,2024/3/
12、26,3.Pre-Scan Check,執(zhí)行create_test_protocol命令,生成測試協(xié)議執(zhí)行dft_drc命令,檢查設(shè)計中有無測試設(shè)計規(guī)則的違規(guī)。典型的設(shè)計綜合規(guī)則有: capacitance, transition, and fanout典型的測試設(shè)計規(guī)則主要檢查 1. 設(shè)計中是否有測試違規(guī)使得無法插入掃描鏈 2. 設(shè)計中是否有測試違規(guī)使得無法捕獲數(shù)據(jù) 3. 設(shè)計中是否有測試違規(guī)使得測試覆
13、蓋率降低,27,共99頁,2024/3/26,4.Scan Specification,在DFTC中,可以用set_scan_configuration命 令進行掃描路徑的管理set_scan_configuration -chain_count 6set_scan_configuration -clock_mixing mix_clocksset_scan_configuration -internal_clocks
14、trueset_scan_configuration -add_lockup false,28,共99頁,2024/3/26,4.Scan Specification,用下面的命令定義設(shè)計中其中一條掃描鏈:set_dft_signal -view spec -type ScanDataIn -port SI1set_dft_signal -view spec -type ScanDataOut -port SO1
15、set_dft_signal -view spec -type ScanEnable -port SE –active_satate1set_san_path -view spec C1 -scan_data_in SI1 –scan_data_out S01,29,共99頁,2024/3/26,5.Scan Preview,執(zhí)行preview_dft:1.檢查掃描路徑的一致性2.確定掃描鏈的數(shù)目3.分派掃描單元和
16、為掃描單元排次序4.加入連接的硬件,30,共99頁,2024/3/26,6.Scan Chain Synthesis,執(zhí)行insert_dft,讀取已預(yù)覽的掃描結(jié)構(gòu)進行所需要的掃描代替插入測試點保證沒有競爭連接掃描路徑把違規(guī)減少到最少,31,共99頁,2024/3/26,Setting the Effort Level,32,共99頁,2024/3/26,7.Post-Scan Check,33,共99頁,2024/3/2
17、6,34,共99頁,2024/3/26,8.Estimate Test coverage,35,共99頁,2024/3/26,File Output,,write -format verilog –hierarchy –output ./netlist/top_pad.svwrite_sdc ./sdc/top_pad.sdcwrite_test_protocol -format stil -output ./spf/top
18、_pad.spf.sv文件和.sdc文件供布局布線工具Astro生成芯片版圖.spf文件供測試矢量生成工具Tetramax生成與測試矢量集,待芯片流片封裝好后,測試矢量集供ATE設(shè)備來測試芯片。,36,共99頁,2024/3/26,主要內(nèi)容,可測性基礎(chǔ)可測性設(shè)計工具驗證的必要性驗證方法學(xué)介紹驗證工具介紹,37,共99頁,2024/3/26,驗證的必要性,驗證的概念,驗證與測試的區(qū)別。經(jīng)驗表明,驗證已經(jīng)占到整個產(chǎn)品開
19、發(fā)周期的70%以上,它已經(jīng)成為復(fù)雜SOC(System on-Chip)開發(fā)中的重要壁壘。,38,共99頁,2024/3/26,典型流程,時序 不滿足,動態(tài)仿真正確,Verification is not just very hard, it is very, very hard?沒有一個簡單的工具可以解決你所有的驗證問題。(VSIA,Virtual Socket Interface Alliance),3
20、9,共99頁,2024/3/26,主要內(nèi)容,可測性基礎(chǔ)可測性設(shè)計工具驗證的必要性驗證方法學(xué)介紹驗證工具介紹,40,共99頁,2024/3/26,驗證方法學(xué),方法學(xué):又稱方法論,是一門學(xué)問采用的方法、規(guī)則與公理;一種特定的做法或一套做法。驗證方法學(xué):指完成驗證過程中的一系列方法、技術(shù)和規(guī)范。 仿真技術(shù) 靜態(tài)技術(shù) 物理驗證,41,共99頁,2024/3/26,仿真技術(shù),基于事件的仿真--任何一個輸入的變化都被標記
21、為事件,即常說的功能仿真,精度高,速度慢。比如Modelsim, VCS?;谥芷诘姆抡?-單周期內(nèi)只檢查一次輸入并計算設(shè)計的輸出邏輯值。速度快,無時序、毛刺。比如Cyclone。事務(wù)級仿真--一堆事件的集合即為事務(wù),即常說的驗證平臺。軟硬件協(xié)同驗證--需要專門的軟硬件,成本高 。,42,共99頁,2024/3/26,傳統(tǒng)仿真系統(tǒng),DUT:Design Under Test適用于基于事件的仿真和基于周期的仿真。適用于簡單的設(shè)計
22、。,缺點:1.可擴展性差2.可重用性差,43,共99頁,2024/3/26,層次化的驗證系統(tǒng),,適用于事務(wù)級仿真優(yōu)點:1.可擴展性好2.可重用性好,44,共99頁,2024/3/26,為什么要用事務(wù)級仿真?,基于事件的仿真與事務(wù)級仿真的比較,45,共99頁,2024/3/26,事務(wù)級仿真,RVM: Reference Methodology Methodology, Synopsys公司。VMM:Verificatio
23、n Methodology Manual, ARM公司和Synopsys公司。AVM:Advanced Verification Methodology, Mentor公司。OVM:Open Verification Methodology, Cadence公司和Mentor公司UVM: Universal Verification Methodology, Cadence公司,46,共9
24、9頁,2024/3/26,為什么選用OVM?,各種驗證方法學(xué)比較,47,共99頁,2024/3/26,SystemVerilog介紹,SystemVerilog結(jié)合了Verilog和C++的概念,具有如下新功能:1.面向?qū)ο缶幊?OOP) 、2.隨機約束(Constraint Random)、3.斷言(Assertion) 、4.功能覆蓋率(Functional Coverage) 。,48,共99頁,2024/3/26,OOP
25、:Object-oriented programming類:定義實物的抽象特點,包含方法和屬性。對象:類的實例。方法:類的行為。繼承:子類包含類的特性。,SystemVerilog介紹-面向?qū)ο缶幊?49,共99頁,2024/3/26,CRT:Constraint Random Test class my_transaction extends ovm_transaction;
26、 rand int data_i;
27、 constraint c_data_i { data_i >= 0; data_i < 262144; } virtual funct
28、ion void randomize_();data_i = $random & 18'h3ffff; endfunction,SystemVerilog介紹-隨機約束,50,共99頁,2024/3/26,SystemVeril
29、og介紹-斷言,Assertion 示例property p10;@(posedge clock) (io.data_check_o=data_out_design_for_check-2);endpropertya10: assert property (p10);,51,共99頁,2024/3/26,Functional Coveragecovergroup:覆蓋率模型sample():采樣函數(shù)bins: 倉Cov
30、ergroup Covkind;coverpoint tr.kind{ //kind 為4位數(shù)據(jù)bins zero={0};bins hi[ ] = {[8:$]};};endgroup,SystemVerilog介紹-功能覆蓋率,52,共99頁,2024/3/26,OVM介紹,OVM是一種基于SystemVerilog的驗證方法或者策略。OVM已經(jīng)實現(xiàn)了一個基本的層次化驗證平臺,大大簡化驗證工程師的工作量。OVM可以驗證HD
31、L代碼或者網(wǎng)表文件OVM特點: 1.開放性:支持所有驗證工具 2.開源:OVM庫都是基于SystemVerilog實現(xiàn) 的,可以在網(wǎng)上下載。 3.可靠性:兩大公司共同開發(fā)維護,53,共99頁,2024/3/26,OVM結(jié)構(gòu),,ovm_envovm_sequecerovm_agentovm_transcationovm_scoreboardovm_driverovm_monitor
32、,54,共99頁,2024/3/26,靜態(tài)技術(shù),語法檢查--用戶可以自由控制需要檢查的規(guī)則,如代碼風(fēng)格,可綜合檢查,DFT檢查。 nlint工具。靜態(tài)時序分析--檢查建立、保持時間以及其他延時信息是否滿足設(shè)計時序要求。 Prime Time。形式驗證—不考慮時序信息,通常用于驗證兩個設(shè)計是否在功能上等效。 Formality 工具。,55,共99頁,2024/3/26,一般來說,要分析或檢驗一個電路設(shè)計的時序方面的特征有兩種主要手段
33、:動態(tài)時序仿真(Dynamic Timing Simulation)和靜態(tài)時序分析(Static Timing Analysis) 1.動態(tài)時序仿真:利用仿真器和延遲文件,通過反標節(jié)點延遲信息來仿真。 優(yōu)點:可直觀查看波形;缺點:速度慢,看不到關(guān)鍵路徑。 2.靜態(tài)時序分析:分析每條時間路徑上的延遲,來查看是否存在setup/hold違反。 優(yōu)點:分析速度比較快,全面;缺點:不能查看功能是否正確。,,靜
34、態(tài)時序分析,56,共99頁,2024/3/26,所謂形式驗證,就是通過比較兩個設(shè)計在邏輯功能是否等同的方法來驗證電路的功能。優(yōu)點: 1.不依賴于測試矢量,因此能提供更完全的驗證; 2.可以實現(xiàn)RTL-to-RTL、RTL-to-gate、gate-to-gate之 間的驗證; 3.有定位功能,可以幫助你找出兩個設(shè)計之間功能不等同的原因; 4.可以使用的文件格式有V
35、HDL、Verilog、Synopsys 的.db格式,以及EDIF網(wǎng)表等; 5.可以實現(xiàn)自動的分層驗證;,,形式驗證,57,共99頁,2024/3/26,物理驗證--版圖級,電源電壓降電遷移功耗 Astro布局布線工天線效應(yīng) 具中完成串?dāng)_,,58,共99頁,2024/3/26,主要內(nèi)容,驗證的必要性驗證
36、方法學(xué)介紹驗證工具介紹演示,59,共99頁,2024/3/26,,如何利用OVM完成驗證?,60,共99頁,2024/3/26,基于OVM的數(shù)字濾波器驗證平臺,數(shù)模轉(zhuǎn)化器(DAC)中的數(shù)字插值濾波器做為此驗證平臺的DUT數(shù)字插值濾波器的功能: 1.提高采樣頻率 2. 濾除帶外(帶寬20KHz)噪聲,61,共99頁,2024/3/26,傳統(tǒng)的濾波器驗證平臺仿真結(jié)果,傳統(tǒng)的驗證平臺:基于定向測試矢量+波形查看的方式,6
37、2,共99頁,2024/3/26,傳統(tǒng)驗證平臺沒找到BUG的原因,1.仿真時間沒有足夠長 2.借助波形來判斷 3.沒有與理想?yún)⒖寄P捅容^ 基于OVM的驗證平臺,,63,共99頁,2024/3/26,OVM驗證平臺驗證步驟,利用OVM庫完成平臺代碼啟動驗證工具創(chuàng)建編譯庫編譯驗證平臺代碼啟動仿真,64,共99頁,2024/3/26,利用OVM庫完成平臺代碼,擴展OVM類逐層完成 接口
38、 數(shù)據(jù)產(chǎn)生 驅(qū)動器 驗證環(huán)境 比較器,65,共99頁,2024/3/26,OVM平臺--接口,interface io_if(); logic [17:0] data_i; logic [17:0] data_o; logic [17:0] data_check_o
39、; modport dut_if(input data_i, output data_o);// DUT接口 modport check_if(input dat
40、a_i, output data_check_o);// 比較器模塊接口 Endinterface io_if my_io();//裝載接口 module check(io_if.check_if io, input clock,rst,en);dut dut(.io(my_io), .clock(clock), .rst(rst), .en(rst_check));
41、 check check(.io(my_io), .clock(clock), .rst(rst), .en(rst_check)) ;,66,共99頁,2024/3/26,OVM平臺—數(shù)據(jù)產(chǎn)生,class my_transaction extends ovm_transaction; rand int data_i;
42、 function new (string name = ""); super.new(name);
43、 endfunction: new //產(chǎn)生隨機事件的約束條件 constraint c_data_i { data_i >= 0; data_i <262144; } virtual function
44、void randomize_(); data_i = $random & 18'h3ffff; endfunction`ovm_object_utils_begin(my_transaction)//在程序中 `ovm_field_int(data_i, OVM_ALL_ON + OVM_D
45、EC) `ovm_object_utils_end endclass: my_transaction,67,共99頁,2024/3/26,OVM平臺—驅(qū)動器,class my_driver extends ovm_driver;// `ovm_component_utils(my_driver)//注冊本類,這個宏的結(jié)
46、尾沒有符號; virtual io_if v_io;//裝載虛擬接口 ovm_get_port #(my_transaction) get_port;//裝載與激勵發(fā)生器通信的通道接口:
47、 function new(string name, ovm_component parent); super.new(name, parent);
48、 //〖建議〗驗證程序中可寫一些ovm_report_info的語句供提示用: ovm_report_info("", "Called my_driver::new");//在測試結(jié)果顯示此函數(shù)被調(diào)用 endfunction: new,68
49、,共99頁,2024/3/26,function void build; super.build(); ovm_report_info(
50、"", "Called my_driver::build"); get_port = new("get_port", this);//初始化 endfunction : build
51、 virtual task run;
52、 ovm_report_info("", "Called my_driver::run"); forever
53、 begin my_transaction tx; #1600 get_port.get
54、(tx);//從通道中取一個事件 ovm_report_info("",$psprintf("data_i = %2h",tx.data_i)); v_io.dut_if.data_i = tx.data_i;
55、 end endtask: run
56、 endclass: my_driver,69,共99頁,2024/3/26,OVM平臺—驗證環(huán)境,class my_env extends ovm_env;// `ovm_component_utils(my_env)//注冊本類
57、 ovm_random_stimulus #(my_transaction) env_stimulus;//裝載激勵器 tlm_fifo #(my
58、_transaction) env_fifo;//裝載通道 my_driver env_driver;//裝載驅(qū)動器
59、function new(string name = "my_env", ovm_component parent = null); super.new(name, parent); ovm_report_info("
60、", "Called my_env::new"); endfunction: new,70,共99頁,2024/3/26,virtual function void build; s
61、uper.build(); ovm_report_info("", "Called my_env::build"); env_stimulus =
62、new("env_stimulus", this);//初始化激勵器 env_fifo = new("env_fifo", this);//初始化通道 env_driver = new("env.driver"
63、;, this);//初始化驅(qū)動器 endfunction: build
64、 virtual function void connect;//設(shè)定連接關(guān)系 ovm_report_info("", "Called my_env::connect");
65、 env_stimulus.blocking_put_port.connect(env_fifo.put_export);//激勵器側(cè)接口-放事件 env_driver.get_port.connect(env_fifo.get_export);//驅(qū)動器側(cè)接口-取事件 endfunction: connect,71,共99頁,2024/3/26,virtual func
66、tion void configure;// ovm_report_info("", "Called my_env::configure"); env_stimulus.set_report_
67、id_action("stimulus generation", OVM_NO_ACTION);//限制顯示信息 endfunction: configure//你可刪除上一行,看看有什么變化?
68、 task run(); ovm_report_info("","Called my_env::run");
69、 endtask: run virtual function void repor
70、t; ovm_report_info("", "Called my_env::report"); endfunction: report
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)字集成電路驗證方法學(xué)
- 基于FPGA數(shù)字集成電路的可測性實現(xiàn).pdf
- 數(shù)字集成電路綜合設(shè)計
- 大規(guī)模數(shù)字集成電路驗證方法研究.pdf
- 數(shù)字集成電路的設(shè)計形式
- 數(shù)字集成電路可測試性設(shè)計研究與應(yīng)用.pdf
- 數(shù)字集成電路的設(shè)計流程
- 數(shù)字集成電路復(fù)習(xí)筆記
- 數(shù)字集成電路課程設(shè)計報告——通訊集成電路
- 數(shù)字集成電路設(shè)計方法的研究.pdf
- 數(shù)字集成電路低功耗設(shè)計方法研究.pdf
- 常用基本數(shù)字集成電路
- 數(shù)字集成電路設(shè)計與分析
- 數(shù)字集成電路設(shè)計與實現(xiàn)
- 中國數(shù)字集成電路行業(yè)調(diào)查分析與數(shù)字集成電路龍頭企業(yè)研究
- 亞微米數(shù)字集成電路測試與驗證方法研究及實現(xiàn).pdf
- 數(shù)字集成電路的可靠性設(shè)計.pdf
- 數(shù)字集成電路功能驗證中的變異測試方法研究.pdf
- 畢業(yè)論文——數(shù)字集成電路
- 數(shù)字集成電路測試壓縮方法研究.pdf
評論
0/150
提交評論