Modelsim添加sdf 數字后端modelsim后仿真
數字后端布局布線之后生成.v網表文件,可用Modelsim進行功能仿真;
首先綜合用到的cell_lib庫和IO_lib庫,需要找生產廠商要對應庫的.v文件添加到工程目錄;
添加.v網表文件,和testbench.v,全部編譯;
此時可進行仿真,並且仿真能夠加載cell的延遲,較dc綜合的結果更接近真實情況;
但是連線延遲沒有加上,需要后端工程師抓取sdf文件(更為准確的是根據后端工程師提供的.v和SPEF文件做PT時序分析,自動生成SS和FF兩類sdf)按下面的方法添加
Modelsim仿真前,點擊Simulation->Start Simulation,點擊SDF功能框;
點擊Add,出現添加文件框;
SDF File選擇要添加的sdf文件,可以使用Browse...快速添加
Apply to Region是選擇sdf作用內容的,一定要填寫,格式如下,根據自己的工程修改
/tb/top ——tb是testbench的名稱,top是testbench中.v網表的例化名
Ok確定之后,選擇仿真testbench文件
此時可能出現如下問題,表示sdf的內容並沒有被加載上,
Warning: Out of 55980 SDF statements, 55980 had null values
根據網友經驗,將SDF框左下角的兩個選項勾上,再次仿真錯誤提示消失;
不過此時查看仿真結果,延時信息還是沒有加載上,因為有的sdf文件有min/max而缺少typ的延時信息;
解決辦法是,添加sdf文件時,將Delay類型由默認的typ改為min或者max;
再次進行仿真,結果顯示,線延遲加載上了。此時仿真接近真實情況。
后話:
1、modelsim的操作都可以采用命令的方式實現;第一次不清楚命令時可以采用圖像化的方法,操作框內會出現對應的命令,將命令記下,下次直接修改命令操作會快捷很多;
2、判斷sdf線延時是否加載上的方法:可以查看sdf中的一個線延時,在仿真時將線的兩端加入仿真,根據仿真結果判斷是否有延遲。