DRC ルール名または DRC ルールのパターンを見たときに、そのルールの機能の説明が必要な場合があります。これには、DRC オブジェクトのプロパティをレポートします。
次のスクリプト例は、入力して DRC ルールの検索パターンを指定することにより、各ルールの説明と重要度を表示します。パターンに一致するルール場ない場合は、エラー メッセージが表示されます。
proc explain_drc { drcs } {
package require struct::matrix
set loop_drcs [get_drc_checks $drcs -quiet]
if {$loop_drcs == {}} {
puts " Error: $drcs does not match any existing DRC rule"
return
}
struct::matrix drcsm
drcsm add columns 3
drcsm add row {DRC_ID SEVERITY DESCRIPTION}
foreach drc $loop_drcs {
set description "\{[get_property DESCRIPTION [get_drc_checks $drc]]\}"
set severity "\{[get_property SEVERITY [get_drc_checks $drc]]\}"
set key "\{[get_property NAME [get_drc_checks $drc]]\}"
drcsm add row "$key $severity $description"
}
puts "[drcsm format 2chan]";
drcsm destroy
}
Vivado 内に組み込まれている Tcl パッケージも多数あり、このスクリプト例では struct::matrix
パッケージを使用してサマリ表が見やすく表示されるようにしています。
次に、explain_drc
プロシージャの出力例を示します。
Vivado% explain_drc CFGBVS-1
DRC_ID SEVERITY DESCRIPTION
CFGBVS-1 Warning Missing CFGBVS and CONFIG_VOLTAGE Design Properties
Vivado% explain_drc CFGBVS-*
DRC_ID SEVERITY DESCRIPTION
CFGBVS-1 Warning Missing CFGBVS and CONFIG_VOLTAGE Design Properties
CFGBVS-2 Critical Warning CFGBVS Design Property
CFGBVS-3 Warning CONFIG_VOLTAGE Design Property
CFGBVS-4 Critical Warning CFGBVS and CONFIG_VOLTAGE Design Properties
CFGBVS-5 Critical Warning CONFIG_VOLTAGE Design Property
CFGBVS-6 Critical Warning CONFIG_VOLTAGE with HP Config Banks
CFGBVS-7 Warning CONFIG_VOLTAGE with Config Bank VCCO
Vivado% explain_drc foo
Error: foo does not match any existing DRC rule