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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

DFTug - Getting Started(上篇)

發布時間:2025/4/5 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 DFTug - Getting Started(上篇) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

引言

本篇將從DFTug的第六章Getting Started進行介紹從而熟悉DFT的基本流程。本篇博客是對DFTug的一個總結概括,所以總結出來的命令是希望背下來的。

Setting Up Your Design Environment

首先,下面的幾個SNPS的系統參數變量需要你在環境中定義。
link_library: 用于resolve 你的cell。
target_library:一般來說與link_library是相同的,除非你想translatng a design between technologies。
symbol_library: cell的圖形
search_path:搜索的路徑列表

hdlin_enable_rtldrc_info: Reports file names and line numbers associated with each violation during test design ruled checking. This makes it easier fr you to later edit the source code and fix violations.

For example:

# configuration logic libraries set_app_var target_library {my_library.db} set_app_var link_library {* my_library.db} set_app_var hdlin_enable_rtldrc_info true

上面例子中,其實應該不熟悉的只有hdlin_enable_rtldrc_info了,查看syn3手冊,解釋如下:

官方的意思,我個人理解的應該是:開啟了這個后,當我們使用dft_drc的時候,如果有violation,會定位到HDL code的行號,該選項默認是關閉的,所以官方的建議是打開。

Read In Your Design

接下來就是讀入你的設計,
讀取設計有三個命令:read_ddc, read_verilog, read_vhdl(verilog是我在項目中見過最多的)
dc_shell> read_verilog {my_design.v my_block.v}
dc_shell> current_design my_design
dc_shell> link
dc_shell> read_sdc top_constraints.sdc

Setting Scan Style

SNPS提供了下面四種style,其中第一種mux FF是最常用的一種,后面三種,待有機會,我會再來理解。
如下cmd是默認mux style。

dc_shell > set_scan_configuration -style multiplexed_flip_flop

Configuring te Test Cycle Timing

設置下面的測試時間變量需要詢問半導體廠商,默認為下面的設置值:

dc_shell> set_app_var test_default_delay 0 dc_shell> set_app_var test_default_bidir_delay 0 dc_shell> set_app_var test_default_strobe 40 dc_shell> set_app_var test_default_period 100

Define the DFT Signals

設置DFT signals 的view有兩種,一種是-view existing_dft .。另外一種是,-view spec。二者的區別,初學者可能并不能真正理解,existing_dft是不會在dft_insert階段做make connection的動作(比如時鐘信號、復位信號),而-view spec是會做make connection的動作(比如 scan_enbale信號),這是二者的本質區別。

dc_shell> set_dft_signal -view existing_dft -type ScanClock dc_shell> set_dft_signal -view existing_dft -type Reset -active_state 0dc_shell> set_dft_signal -view spec -type ScanEnable -port scan_enbale_port -active_state 1

即使,你是用已經存在的ports作為Scan_in和Scan_out仍然要使用-view spec的認知,因為在chain上內部是還沒有連接的。這里我把-view翻譯為“認知”。

dc_shell> set_dft_sgnal -view spec -type ScanDataIn -port DAT_IN[7] dc_shell> set_dft_signal -view spec -type ScanDataOut -port DAT_OUT[7] dc_shell> set_dft_signal -view spec -type ScanDataIn -port TEST_SI dc_shell> set_dft_signal -view spec -type ScanDataOut -port TEST_SO dc_shell> set_dft_signal -view spec -type ScanEnable -port TEST_SE

Configuring Scan Insertion

為了配置scan insertion,你可以指定test ports,define test modes, adn identify and mark any cells taht you do not want to have scaned.

dc_shell> set_scan_configuration -chain_count 4

接下來,你需要創建測試協議,即使你是讀入了一個test_protocol,你也需要再create一下。

dc_shell> create_test_protocol

然后run pre-DFT test DRC

dc_shell> dft_drc

Preview Scan Insertion

dc_shell> preview_dft

Performing Post-DFT Optimization

默認情況下,在wire load mode中,insert_dft會自動的執行基本的門級優化,但建議是關掉他,某視頻里面說他做優化做的并不好。

dc_shell> set_dft_insertion_configuration -synthesis_optimization none

但是在topographical mode下,inser_dft是不會執行post-DFT optimization的。

Inserting the DFT Logic

dc_shell> insert_dft

Analyzing Your Post-DFT Design

dc_shell> dft_drc

該過程稱之為post_DFT DRC ,DFTC會檢查設計測試的潛在問題。這個檢查機制會比pre-DFT更加復雜。they check for the correct operation of the scan chain.

dc_shell> write -formate ddc -hierarchy -output my_design.ddc dc_shell> write_test_protocol -output my_design_final.spf

但是有一些錯誤是不支持DRC的,因此只能在TMAX中來報錯出來。

Reporting

接下來就是查看report,查看report是一向非常重要的技能。

dc_shell> report_scan_path -view existing_dft -chain all dc_shell> report_scan_path -view existing_dft -cell all

#DFT Configuration Report
dc_shell> report_dft_configuration

#Scan Configuration Report
dc_shell> report_scan_configuration

#DFT Signal Report
dc_shell> report_dft_signal -view existing_dft
dc_shell>report_dft_signal -view spec

#Report on a user-specified scan path
dc_shell> report_scan_path -view spec -chain all

#autofix configuration report
dc_shell> report_autofix_configuration

本節腳本匯總,加強記憶

set_app_var target_library { xx.db} set_app_var link_library {xx.db} set_app_var hdlin_enable_rtldrc_info trueset_app_var test_default_delay 0 set_app_var test_default_bidir_delay 0 set_app_var test_default_strobe 40 set_app_var test_default_period 100set_dft_signal -view existing_dft -type ScanClock set_dft_signal -view existing_dft -type Reset -active_state 0 set_dft_signal -view spec -type ScanDataIn -port DAT_IN[7] set_dft_signal -view spec -type ScanDataOut -port DAT_OUT[7]set_scan_configuration -style multiplexed_flip_flop set_scan_configuration -chain_count 4 set_dft_insertion_configuration -synthesis_optimization none set_dft_configuration -clock_mix mix_clocks set_dft_configuration -clock_mix mix_edges create_test_protocoldft_drcpreview_dftinsert_dftdft_drcwrite -formate ddc -hierarchy -output my_design.ddc write -formate verilog -hierarchy -output my_design.v write_test_protocol -output my_design_final.spf report_scan_path -view existing_dft -chain all report_scan_path -view exisiting_dft -cell allreport_dft_configuration report_scan_configuration report_dft_signal -view existing_dft report_dft_signal -view spec report_scan_path -view spec -chain all report_autofix_configuration

如何查看報告








preview_dft -show后面有幾個比較好用的選項,需要背下來。
preview_dft -show scan_clocks

參考

DFTug 第六章 p103-p121
可以結合axr的第一個lab記錄進行對比鞏固。
https://blog.csdn.net/ciscomonkey/article/details/110942075
https://blog.csdn.net/ciscomonkey/article/details/112221279

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。