axr_Lab1_scan_top_down_flow(下)
文章目錄
- Top_down_Flow
- 1、read_design
- 2、create_test_protocol
- 3、preview_dft
- 4、insert_dft
- 6、handoff
本文基于axr教程,但并非對原來lab的照搬,而是加上了自己的理解以及補充。在上一篇博客中介紹了LAB1會出現(xiàn)violation,因此需要先吃入spf文件,對寄存器進行賦值,然后再進行create_test_protocol,在這篇博文中,將flow來掌握當前flow的遇到的TCL。
Top_down_Flow
文件結構:
在說文件結構之前,首先還要提一下 .synopsys_dc.setup文件,該文件里面已經(jīng)配置好了target_library,link_library,但是,需要注意的是link_linbrary的內(nèi)容多于了target_library,其實,在我遇到的項目也是如此,這里想必是有一些需要resolve的模塊,比如IP,memory之類的。
1、read_design
首先是read_design.tcl里面的內(nèi)容
重點是test_simulation_library:
里面的內(nèi)容都是非常簡單的三個module,不同大小的memory,這個僅僅是用數(shù)字邏輯來模擬的ram的寫入和讀出,并不是真正的ram。是為了讓其通過DFTC,告訴DFTC,我這里有一個ram。具體里面的內(nèi)容,你不必care,我只給你正確的輸入輸出邏輯值即可。
接著就是
read_ddc
那下面,我需要補充的是查看我吃進了哪些design:
report_design
可以看到當前dc吃了哪些lib
list_designs
查看當前的design
2、create_test_protocol
首先是吃入
test_simulation_library
然后
set_dft_signal
讀入一個setup的spf文件
寫出spf文件。
lib.v的文件如下。
注意:這里讀入spf文件,不能讀取整個spf文件,因為我們要的是setup這部分內(nèi)容,所以必須要加上-section的選項。否則已經(jīng)存在了spf文件,就不可以再創(chuàng)建測試協(xié)議了。
3、preview_dft
當我執(zhí)行完了
這里面有幾條report的cmd,可能需要熟悉掌握。
report_scan_state
當我已經(jīng)create_test_protocol后,進行report_scan_state后的結果如下:
好,現(xiàn)在我退出dc,重新吃入netlist后就report_scan_state, 仍然報告是scan cells replaced with loops
好,現(xiàn)在我進行insert_dft之后再來report_scan_state
結果發(fā)現(xiàn)dc是可以識別到當前的scan state狀態(tài)是scan signals routed。
list_test_modes
all_test_modes
列出你所有的test modes
preview_dft
preview_dft -show scan_summary
可以詳細看到每條chain有多少個cell之外,出口port,以及時鐘相關
preciew_dft -show scan_clocks
此命令看起來會更加方便,每條chain上的cell都基于時鐘。給出了詳細的in和out
4、insert_dft
setings_insert_dft.tcl的文件如下所示:
在insert_dft之前就需要把下面的tc跑一下。
set_scan_configuration -chain_count 6 -add_lockup true -clock_mixing mix_clocks
這條命令是建議添加的,為了后續(xù)的timing,希望在不同沿的地方,不同時鐘域的地方都增加lockup_latch。
接下來是將scan_in和scan_out的pin連接到pad上。因此需要指定hookup_pin,將6條chain的pin口,-hookup連接到pad上面,并且指定scan_path,指定哪一個chain,輸入輸出使用哪一個pad。
好,現(xiàn)在再次回到inset的文件。如下圖,紅線的部分視頻的原話解釋是:
在實際的操作過程中,建議開啟這個cmd,因為,在insert_dft以后,還會進行增量優(yōu)化,而insert_dft這個cmd的優(yōu)化性能是非常差的,所以建議insert_dft的cmd不要去管綜合優(yōu)化時序,真正的優(yōu)化交給后面。preview_design name設置為true,意思是把原始的名字保留住。
set compile_instance_nameprefix DFTC_
這一條cmd是指新加入的cell,都會帶一個DFTC_ ,從而你在看網(wǎng)表的時候,指導哪些是新加入的cell。
dft_drc -coverage_estimate
將會報告出coverage,但是TMAX會實際比這個高。
6、handoff
change_name就是針對DFTC自動新加入的一些Cell,可能不符合Verilog的規(guī)則,可能會有 \ 。需要將其重新命名,讓其符合規(guī)則。
總結
以上是生活随笔為你收集整理的axr_Lab1_scan_top_down_flow(下)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Verdi - GUI技能操作 Befo
- 下一篇: Scan Chain的原理与实现(实践)