DC课程笔记-数字逻辑综合工具-DC Environment Attributes
文章目錄
- 課程內容筆記46:57開始至末尾
本節來源網絡視頻筆記
主要介紹DC的時序timing約束
課程內容筆記46:57開始至末尾
移除設計
remove_design -hierarchy查看所有的design設計
list_designs重新讀入設計:
analyze -format verilog [list top.v counter.v fsm_moor.v] elaborate -architecture verilog top此時可以不用link,也不用current design
雖然都進來了,但是應該檢查讀進來的設計是否有問題,要在綜合之前檢查。前面兩個命令會檢查語法錯誤,至于check_design有無遞歸設計,或者引腳連錯。
check_design通常,如果進行check_design進行檢查時候,會返回一個值如果是0那么就會有錯,所以我們定義了如下腳本,同樣如果我們進行link的時候,link也會返回一個值,如果這個值是0,就代表link有錯。exit就代表退出DC
if {[link]==0} {echo "link with error";exit } if {[check_design]==0} {echo "Check designing with error! ";exit;}為了確保在添加約束之前,約束是干凈的,需要把之前的約束給清楚掉。所以建議,reset_design,此時你的設計是非常干凈的,因為此時還沒有約束。
reset_design此時開始創建約束,下面創建了一個時鐘周期的約束,如果沒有-name那么默認這個時鐘的名字就等價于這個端口的名字,都叫clk_i,當然還可以加-waveform [list 0 5],對于單沿觸發一般影響不大
create_clock -period 10 [get_ports clk_i]下面還要輸入input delay,外面留6成,里面留4成,并且需要指定你相對于哪一個參考時鐘
set_input_delay 6 -clock clk-i [all_inputs]由于輸入時鐘端口不需要做一個delay,因此需要把輸入時鐘端口的delay給排除掉
remove_input_delay [get_ports clk_i]此時設置輸出端口的延遲,相對于時鐘端口clock clk_i
set_output_delay 6 -clock clk_i [all_outputs]在DC進行綜合之前需要對所有的路徑添加約束,除了跨時鐘域的可以設置為false_path。如果你不添加完成,他如何選擇合適的cell,所以必須要全部添加約束。用check_timing檢查有沒有漏掉的時鐘約束
check_timing此時約束路徑全部有了之后,可以跑一個簡單的綜合
compile在綜合完畢后,可以先看一下有沒有違規的地方。
report_constraint -all_violators此時線負載模型、驅動、面積等等都沒有約束。此時約束條件是比較寬松的。
如何檢查自己的tcl約束腳本是否正確。
dcprocheck filename.tcl總結
以上是生活随笔為你收集整理的DC课程笔记-数字逻辑综合工具-DC Environment Attributes的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux如何显示文件数目的技巧比较两个
- 下一篇: DC课程笔记-数字逻辑综合工具-DC S