1. 程式人生 > >DC學習(11)綜合產生的文件

DC學習(11)綜合產生的文件

ilog HA 必須 流程 存儲 標準 編譯 syn 輸出

一:綜合產生的文件

  前面也講了一些綜合後的需要進行的一些工作,這裏就集中講一下DC完成綜合了,產生了一些文件,我們就要查看它生成的網表和信息,下面就來介紹DC綜合完成之後要進行哪些工作:

                  技術分享圖片技術分享圖片

也就是說,DC一般完成綜合後,主要生成.ddc、.def、.v和.sdc,.sdf格式的文件(當然還有各種報告和log)

.sdc文件:write_sdc -version 1.7 filename.sdc

  標準延時約束文件:

                  技術分享圖片

  裏面都是一些約束,用來給後端的布局布線提供參考。

Scan_def.def文件:DFT、形式驗證可能用到

              技術分享圖片

  裏面包含的是一些掃描鏈的布局信息,需要註意的是,必須在生成ddc網表文件之前生成.def(也就先生成.def文件),以便將def文件包含在ddc文件中。

.sdf、.v文件:write_sdf -version 2.1 filename.sdf; write -f verilog -hierarchy output filename.v

標準延時格式和網表格式文件,用於後仿真

下面是輸出(生成)文件的一些命令:

             技術分享圖片

1:綜合網表的處理:

  完成綜合並通過時序等的分析後,我們需要把設計和約束以某種格式存儲好,作為後端工具的輸入。

  把設計以VHDL或Verilog格式存檔時,需要去掉或避免文件中有assign指令,因為該指令會使非Synopsys公司的工具在讀入文件時產生問題。該指令也可能會在反標( back-annotation)流程中產生問題。此外,要保證網表中沒有特別的字符。例如,寫出網表時,有時網表中會有反斜線符號“\”,對於這個符號,不同的工具有不一樣的理解。

·assign:

多端口連線(multiple port nets)會在網表中用assign指令表示,如下圖所示:

          技術分享圖片

  上面的設計中有冗余的端口(包括內部端口,又稱層次引腳)。如果我們將設計展開(flatten), DC可能把它們優化掉,即去掉這些端口。但是如果我們不展開設計,將得到下面的結果:

    Output Reset_AluRegs,Latch_Instr,....

    assign Reset_AluRegs=Latch_Instr;

  多端口連線,即一條連線連接多個端口,三種類型:直通連線(Feedthroughs),即從輸入端直接到輸出端;連線驅動多個端口(也就是上面的那個情況);常數連線驅動多個端口。

  在默認的情況下,如遇到上述的情況,DC寫出網表時,會在網表產生assign指令。如果設計中有多端口連線,應該在編譯過程中將它們去掉。去掉多端口連線使用下面的命令:

  set_fix_multiple_port_nets -all -buffer_constants [get_designs *]

·特殊符號:  

  特別字符是指除數字,字母或下劃線以外的任何字符。當DC寫出網表時,如果遇到信號Bus[31],它會插入反斜線符號“\”,將其變為\BUS[31]。但是總線Bus[31:0」中的一個信號還用Bus[31],沒有用反斜線符號,也就是說設計裏面可能會遇到即使用到了Bus[31]又用到Bus[31:0]這種情況(比如一組總線網A方向走,而同時又有這組總線的最高位充當某個控制信號)。這時方括弧不是名字的一部分,它們是位分隔符。這時候,同一個信號用了兩種符號串表示(也就是Bus[31]和Bus[31:0]中的第31位是同一個信號,但是卻有不同的字符串表示,這是不好的,一些工具可能解讀出錯)。最好的辦法是把設計中的反斜線符號去掉,用有效的字符代替非有效(特別)的字符。

  用change_names命令可將設計中的特別字符去掉。change_names命令的其中一選項是“-rules",後面可跟用自定義的命名規則或Verilog命名規則。在DC中用define_name_rules命令來規定自定義的命名規則。例如我們可以用該命令來指定可以使用哪些字符,禁止使用哪些字符,名字的長度等。一般來說,Verilog命名規則可以處理幾乎所有的特殊字符。

  執行change_names命令後,它會把不允許使用的字符用允許使用的字符來代替。VHDL語言中,多維數組(multi-dimensionalarrays)使用方括弧作為字下標的分隔符(word subscript delimiters)。為了避免使用反斜線符號,先使用change_names命令把字下標的分隔符轉換為下劃線。如下所示:

                 技術分享圖片

                       技術分享圖片

2)相關文件的生成

  經過處理之後的網表就可以生成了,除了了網表之外,我們還可以生成時序、面積報告等,相關命令如下所示:

               技術分享圖片

  一個是生成.ddc文件,裏面包含了很多信息。一個是生成.v的門級網表。一個是生成標準約束文件,以供後面進行布局布線提供參考。

  write -f -hierarchy -output filename.ddc

  最後,進行網表處理和生成文件的綜合命令如下所示:

               技術分享圖片

                    技術分享圖片

               技術分享圖片

               

二:DC理想網絡

  set_ideal_network [get_ports {set rst}]

  

               

                    

               

DC學習(11)綜合產生的文件