ユース ケース 1: ネットの論理値の反転 - 2023.2 日本語

Vivado Design Suite ユーザー ガイド: インプリメンテーション (UG904)

Document ID
UG904
Release Date
2023-11-01
Version
2023.2 日本語

ネットの論理値を反転するには、LUTx プリミティブの既存の LUT 論理式を変更するだけでよい場合もありますが、入力からの出力を反転するために LUT1 を挿入する必要がある場合もあります。次の図に、OBUF を介して出力ポート wbOutputData[0] を駆動する FDRE プリミティブの回路図を示します。

図 1. OBUF を介して出力ポートを駆動する FDRE プリミティブ

次の Tcl コマンドは、FDRE の出力と OBUF の間にインバーターを追加します。

create_cell -reference LUT1 ECO_INV set_property INIT 2'h1 [get_cells ECO_INV]
disconnect_net -net {n_0_SuspendM_pad_0_o_reg} -objects \ [get_pins {SuspendM_pad_0_o_reg/Q}]
connect_net -net {n_0_SuspendM_pad_0_o_reg} -objects [get_pins {ECO_INV/O}] create_net ECO_INV_in
connect_net -net ECO_INV_in -objects [get_pins {SuspendM_pad_0_o_reg/Q ECO_INV/I0}]

このスクリプト例は、まず LUT1 セル ECO_INV を作成し、INIT 値が反転をインプリメントする 2'h1 に設定します。その後 FDRE と OBUF の間のネットを FDRE の Q 出力ピンから接続解除し、反転 LUT1 セル ECO_INV の出力を OBUF の I 入力ピンに接続します。最後に、ネットを作成して FDRE の Q 出力ピンと反転 LUT1 セルの I0 入力を接続します。

次の図に、論理ネットリストの変更が反映された回路図を示します。

図 2. 反転が追加されたネットリストを示す回路図

ネットリストを変更したら、論理的な変更をインプリメントする必要があります。LUT1 セルを配置し、セルに入出力されるネットを配置する必要があります。これは、デザインの変更されていない部分の配置配線を変更せずに実行する必要があります。変更したネットリストの対して place_design を実行すると、Vivado インプリメンテーション コマンドは自動的にインクリメンタル モードで実行され、ログ ファイルに「Incremental Placement Summary」 (インクリメンタル配置サマリ) セクションが含まれます。


+--------------------------------------------------+
|Incremental Placement Summary	                 |
+--------------------------------------------------+
|	     Type	         | Count    | Percentage |
+--------------------------+----------+------------+
|  Total instances  	   | 	3834 | 	100.00 |
|  Reused instances  	  | 	3833 |  	99.97 |
|  Non-reused instances    |    	1 |   	0.03 |
|    New	               |    	1 |   	0.03 |
+--------------------------+----------+------------+

既存の配線を保持して変更されたネットのみを配線するには、route_design コマンドを使用します。これにより、変更のみがインクリメンタルに配線され、ログ ファイルに「Incremental Routing Reuse Summary」 (インクリメンタル配線再利用サマリ) セクションが含まれます。


+--------------------------------------------------+
|Incremental Routing Reuse Summary	             |
+--------------------------------------------------+
|          Type            | Count	| Percentage |
+----000-------------------+----------+------------+
|Fully reused nets         |	  6401|      99.97 |
|Partially reused nets     |         0|       0.00 |
|Non-reused nets	       |	 	2|	   0.03 |
+---------------------+-----------+----------------+

インクリメンタル place_design および route_design コマンドを使用して変更したネットリストを自動的に配置配線する代わりに、手動配置および配線制約を使用して論理的な変更を確定できます。詳細は、この章の配置の変更および配線の変更を参照してください。