日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

DFTug - Getting Started(下篇)

發(fā)布時(shí)間:2025/4/5 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 DFTug - Getting Started(下篇) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

文章目錄

  • 引言
  • Performing Scan Extraction
  • Hierarchical Scan Synthesis
  • Introduction to Test Models
  • Reading In and Using CTL Models at the TOP Level
  • Checking Connectivity to Cores at the Top Level
  • Linking Test Models to Library Cells
  • 本節(jié)需要記住的腳本

引言

本篇博客是對(duì)DFTug的第六章Getting started進(jìn)行介紹。是對(duì)DFTug的一個(gè)總結(jié),并加上了一個(gè)自己的理解,并希望對(duì)一些重要的的腳本進(jìn)行背住,而不是記住一個(gè)大概,因?yàn)橹挥斜匙?#xff0c;完全寫出來(lái),才能給人感覺(jué)是非常專業(yè)的, 所以,今年目標(biāo)是希望能塑造自己的專業(yè)性。

Performing Scan Extraction

Scan extraction 僅僅支持標(biāo)準(zhǔn)的scan design,并不支持extract scan structures for compressed scan designs。

步驟:
1、read_verilog my_design_dft.v
2、current_design my_design_dft

set_scan_state scan_existing

3、定義基本的basic signal

dc_shell> set_dft_signal -view existing_dft -type ScanDataIn -port {TEST_SI1 TEST_SI2} dc_shell> set_dft_signal -view existing_dft -type ScanDataOut -port {TEST_SO1 TEST_SO2} dc_shell> set_scan_path chain1 -view existing_dft -scan_data_in TEST_SI1 -scan_data_out TEST_SO1 dc_shell> set_scan_path chain2 -view existing_dft -scan_data_in TEST_SI2 -scan_data_out TEST_SO2 dc_shell> create_test_protocol dc_shell> dft_drc dc_shell> report_scan_path -view existing_dft -chain all dc_shell> report_scan_path -view existing_dft -cell all

值得注意的是,在執(zhí)行scan extraction的時(shí)候,定義你的test structure必須要以DFT existing的認(rèn)知(view)來(lái)定義。因?yàn)樗麄円呀?jīng)存在于設(shè)計(jì)中了,所有的連線已經(jīng)connect好了。
那么現(xiàn)在再來(lái)說(shuō)上述,做的這些工作有什么作用,也就是說(shuō)為什么要設(shè)置這些,才能夠?qū)崿F(xiàn)extraction,不是已經(jīng)都connect好了嗎,工具為什么不能自動(dòng)識(shí)別出來(lái)?
Scan extraction is the process of reading in an ASICII netlist that lacks test attributes。
如官方所說(shuō),Scanextraction是一個(gè)缺乏測(cè)試屬性的netlist,因此我們需要去知道tool來(lái)識(shí)別到netlist中的scan chain structure,雖然,我們不會(huì)對(duì)這個(gè)netlist進(jìn)行改動(dòng)。只要能夠正確的識(shí)別到了scan structure,你就可以write out test model and test protocol。
對(duì)于給定你的設(shè)計(jì),你如果指定不同的scan chain會(huì)導(dǎo)致不同的測(cè)試協(xié)議。
所以,tool沒(méi)法自動(dòng)去識(shí)別到你的scan structure,你必須要去指導(dǎo)tool,如果你指導(dǎo)不正確,也會(huì)導(dǎo)致錯(cuò)誤的測(cè)試協(xié)議,從而在某一時(shí)間,會(huì)輸入不正確的測(cè)試數(shù)據(jù),導(dǎo)致測(cè)試失敗。

Hierarchical Scan Synthesis

Bottom-Up Hierarchical Scan Synthesis, 簡(jiǎn)稱為HSS Flow, 與之對(duì)應(yīng)的是Top down Flow,如下圖是 Top-down 方法,這種方法,一旦有一點(diǎn)改動(dòng),將會(huì)導(dǎo)致整個(gè)chip層全部重新insertion。下圖分別是TOP-down和Bottom-UP的示意圖。


以下情況,官方建議使用HSS Flow
1、你的設(shè)計(jì)非常大
2、你想要重新定義一個(gè)block的DFT結(jié)構(gòu)。
3、你想要?jiǎng)?chuàng)建的DFT-inserted block是可以在將來(lái)復(fù)用的。
此外注意以下,官方特別提醒的術(shù)語(yǔ):DFT-inserted block稱之為core,當(dāng)前的level稱之為core level。與之對(duì)應(yīng)的是top level。(即使當(dāng)top-level,放到更上一層又變?yōu)閏ore level) 。在DFT的文獻(xiàn)中,術(shù)語(yǔ)“block” 值得是層次化的設(shè)計(jì)模塊,而術(shù)語(yǔ)“core"特指的是有CTL 模型信息的DFT-inserted blocks。

Introduction to Test Models

如下圖所示
CTL - Core Test Language
我們說(shuō)的test models通常就是指的CTL model。CTL models可以被下面三種格式讀寫:
ddc :包含了所有的信息,最全。
ctl ASCII格式的ctl語(yǔ)言,這個(gè)可以打開,不含網(wǎng)表約束物理scandef信息
ctlddc二進(jìn)制的ctl,不含網(wǎng)表約束物理scandef信息
這里我打開過(guò)ctl的文件,其實(shí)和spf的文件寫法類似。你可以看到一條chain上面連了具體的哪些cell,但是這些cell是沒(méi)有順序的。

下圖是CTL的文件部分內(nèi)容:

官方的建議是,希望用戶在完成一個(gè)block之后,就寫出所有格式的文件,以備后續(xù)使用。下面write_out出來(lái)的文件,有如下部分:

# write out core-level design information write_test_model -formate ddc -output [format "%s%s" ./out/$design _scan.ctlddc] write_test_model -formate ctl -output [format "%s%s" ./out/$design _scan.ctl] write_scan_def -output [formate "%s%s" ./out/$design _scan.def] write -hierarchy -formate ddc -output [formate "%s%s" ./out/$design _scan.ddc] write -formate verilog -hierarchy -output [formate "%s%s" ./out/$design _scan.v]

Reading In and Using CTL Models at the TOP Level

在頂層,你需要讀入CTL模型,然后讀入他的netlist,工具會(huì)自動(dòng)整合core-level的scan-structure 到top-level scan structure。

list_test_models
列出在內(nèi)存中,具有CTL test models的design。

DFTug給出了一個(gè)簡(jiǎn)單的top-level的腳本,一個(gè)是ddc格式,一個(gè)是ctl格式。后續(xù),我會(huì)再查一下lab中的腳本。
a Simple top-level scripts:

set link_library {* my_lib.db} set target_library {my_lib.db} read_ddc DDC/core.ddc ;#contains netlist and CTL model info read_verilog GATES/IPBLK.vg ;#Verilog netlist for IP blockread_verilog RTL/top.v current_design top link compile -scan set_dft_signal -view existing_dft -type ScanClock -port clk -timing [list 45 55] create_test_protocol dft_drc set_scan_configuration -chain_count 2 preview_dft insert_dft write -formate ddc -hierarchy -output DDC/top.ddc write -formate verilog -hierarchy -output GATES/top.vg write_test_protocol -output SPF/top.spf

Checking Connectivity to Cores at the Top Level

在core integration flow的時(shí)候,你必須要確保進(jìn)入block的TestMode 和 Constant 信號(hào)能夠match到block上用于shift chain所需要的信號(hào),如果條件不滿足,會(huì)被堵塞到。所以,個(gè)人感覺(jué)精髓在于本小節(jié)的標(biāo)題,checking connectivity to cores at the top level.
你可以在DFT insertion之前,使用DRC來(lái)確認(rèn)這些條件是否符合,在運(yùn)行DRC之前,你需要設(shè)置以下的變量:
如下的該選項(xiàng)是默認(rèn)關(guān)閉的。一旦開啟后,DFT—DRC會(huì)自己運(yùn)行內(nèi)部仿真一個(gè)初始值,然后有一個(gè)期望值,看初始值與期望值是否匹配,從而驗(yàn)證connectivity是否正確。

dc_shell> set_app_var test_validate_test_model_connectivity true

一旦connectivity的mimatch被檢測(cè)到了,scan segment就不會(huì)被stitch onto the scan chains。(可以再次結(jié)合之前的bottom-up的示意圖進(jìn)行理解)

Linking Test Models to Library Cells

有一些Cell是自己內(nèi)建立(build-in)scan chains, 也就是說(shuō)在top-level的時(shí)候需要連接到這些cell的CTL model 。
這時(shí)候也可以去link到,這里不介紹,暫時(shí)沒(méi)遇到過(guò)這種情況。
如果你要
check library cells for CTL Model Information
使用
report_lib
如下,會(huì)發(fā)現(xiàn)這個(gè)cell具有ctl屬性。

此外,Getting Start部分還簡(jiǎn)單介紹了DC Explorer,這里不再另外介紹。

本節(jié)需要記住的腳本

set_scan_state scan_existing # write out core-level design information write_test_model -formate ddc -output [format "%s%s" ./out/$design _scan.ctlddc] write_test_model -formate ctl -output [format "%s%s" ./out/$design _scan.ctl] write_scan_def -output [formate "%s%s" ./out/$design _scan.def] write -hierarchy -formate ddc -output [formate "%s%s" ./out/$design _scan.ddc] write -formate verilog -hierarchy -output [formate "%s%s" ./out/$design _scan.v] list_test_models dc_shell> set_app_var test_validate_test_model_connectivity true

至此,DFTug 第六章Getting start的部分,總結(jié)全部結(jié)束。

總結(jié)

以上是生活随笔為你收集整理的DFTug - Getting Started(下篇)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。