置當(dāng)前設(shè)計(jì))
相關(guān)閱讀SDC命令詳解https://blog.csdn.net/weixin_45791458/category_12931432.html?spm1001.2014.3001.5482current_design命令用于設(shè)置當(dāng)前設(shè)計(jì)當(dāng)前設(shè)計(jì)以及當(dāng)前實(shí)例是許多命令的默認(rèn)目標(biāo)對(duì)象關(guān)于當(dāng)前實(shí)例可以參考下面的博客。SDC命令詳解使用相對(duì)路徑訪問設(shè)計(jì)對(duì)象(current_instance命令)https://chenzhang.blog.csdn.net/article/details/147156354本文針對(duì)Design Compiler但該命令同樣存在于PrimeTime、IC Compiler等工具中它們大致相同略有差別。current_design命令的BNF范式有關(guān)BNF范式可以參考以往文章為current_design [design]指定設(shè)計(jì)指定一個(gè)已加載進(jìn)內(nèi)存的設(shè)計(jì)可以使用list_designs命令列出內(nèi)存中所有的可用設(shè)計(jì)。如果不指定該參數(shù)則會(huì)列出當(dāng)前設(shè)計(jì)而不是設(shè)置當(dāng)前設(shè)計(jì)。簡(jiǎn)單使用在使用analyzeelaborate命令讀取設(shè)計(jì)時(shí)一般不會(huì)用到current_design命令因?yàn)閑laborate命令會(huì)自動(dòng)將指定的設(shè)計(jì)設(shè)置為當(dāng)前設(shè)計(jì)。但在使用read類命令讀取設(shè)計(jì)時(shí)當(dāng)前設(shè)計(jì)的自動(dòng)設(shè)置情況就更加復(fù)雜了下面給出幾個(gè)例子進(jìn)行說明。1、當(dāng)使用多條read類命令讀取設(shè)計(jì)時(shí)最后一個(gè)命令讀取的文件將被自動(dòng)設(shè)置為當(dāng)前設(shè)計(jì)每次使用read類命令都會(huì)重新設(shè)置當(dāng)前設(shè)計(jì)如下所示。// A.v module A(); endmodule // B.v module B(); endmodule // TOP.v module TOP(); endmodule dc_shell read_verilog A.v ***** Current design is A. dc_shell read_verilog B.v ***** Current design is B. dc_shell read_verilog TOP.v ***** Current design is TOP.2、當(dāng)使用一條read類命令讀取多個(gè)設(shè)計(jì)時(shí)列表中的第一個(gè)文件將被自動(dòng)設(shè)置為當(dāng)前設(shè)計(jì)如下所示。// A.v module A(); endmodule // B.v module B(); endmodule // TOP.v module TOP(); endmodule dc_shell read_verilog {A.v B.v TOP.v} ***** Current design is A.3、當(dāng)一個(gè)文件中存在多個(gè)設(shè)計(jì)時(shí) 文件中的第一個(gè)設(shè)計(jì)將被自動(dòng)設(shè)置為當(dāng)前設(shè)計(jì)如下所示。// TOP_hier.v module TOP(); endmodule module A(); endmodule module B(); endmodule dc_shell read_verilog TOP_hier.v ***** Current design is TOP.對(duì)于更復(fù)雜的情況讀者可以基于以上三例自行分析如果不希望使用read類命令自動(dòng)設(shè)置當(dāng)前設(shè)計(jì)的行為則可以使用current_design命令在讀取設(shè)計(jì)后顯式設(shè)置當(dāng)前設(shè)計(jì)。