xilinx verilog構文テクニック(2)--総合プロパティ

2933 ワード

xilinx verilog構文テクニック(2)-総合プロパティ
Vivado Design Suiteでは、Vivado統合で複数のタイプの属性を合成できます.ほとんどの場合、これらの属性には同じ構文と同じ動作があります.•Vivadoがこの属性を総合的にサポートしている場合、この属性が使用され、使用されている属性を反映する論理が作成されます.•ツールが指定した属性を認識できない場合、Vivado統合は生成されたネットワークテーブルに属性とその値を渡します.
1.ASYNC_REG
ASYNC_REGは、Vivadoツールフローの多くのプロセスに影響を与えるプロパティです.この属性の目的は、D入力ピンにおいてソースクロックに対する非同期データを受信できること、または同期チェーンにおける同期レジスタであることをツールレジスタに通知することである.このプロパティに遭遇すると、Vivado統合ではDONT_とみなされます.TOUCHプロパティを使用して、ASYNC_をネットワークテーブルにプッシュします.REG属性.この手順により、ASYNC_が保証されます.REGプロパティのオブジェクトは最適化されておらず、後でツールがプロパティを受信して正しく処理します.このプロパティを任意のレジスタに配置できます.値はFALSE(デフォルト)とTRUEです.この属性はRTLまたはXDCで設定できます.ASYNC_REG Verilog Example:
(* ASYNC_REG = “TRUE” *) reg [2:0] sync_regs;

2.CLOCK_BUFFER_TYPE
入力クロックにCLOCK_を適用BUFFER_TYPEは、使用するクロックバッファタイプを記述する.デフォルトでは、VivadoはBUFGをクロックバッファとして統合して使用します.サポートされる値は、「BUFG」、「BUFH」、「BUFIO」、「BUFMR」、「BUFR」または「なし」です.CLOCK_BUFFER_TYPEプロパティは、任意のトップクロックポートに配置できます.RTLとXDCで設定できます.CLOCK_BUFFER_TYPE Verilog Example
(* clock_buffer_type = “none” *) input clk1; 
CLOCK_BUFFER_TYPE XDC Example
set_property CLOCK_BUFFER_TYPE BUFG [get_ports clk]

3 FSM_ENCODING
FSM_ENCODINGはステータスマシンのエンコードを制御します.通常、Vivadoツールは、ほとんどの設計に最も適した啓発的な方法に基づいてステータスマシンのエンコードプロトコルを選択します.特定の設計タイプでは、特定のコーディングプロトコルを使用してFSM_をよりよく動作させることができます.ENCODINGはステータスマシンレジスタに置くことができます.その合法的価値は「one_hot」、「sequential」、「johnson」、「grey」、「auto」、「none」である.「auto」の値はデフォルトで、ツールが最適な符号化を決定できます.このプロパティは、RTLまたはXDCで設定できます.FSM_ENCODING Example (Verilog)
(* fsm_encoding = “one_hot” *) reg [7:0] my_state;

4 KEEP
KEEP属性を使用すると、信号の最適化または論理ブロックに吸収される最適化を防止することができる.このプロパティは、統合ツールがその信号を保持し、ネットワークテーブルに入れることを示します.例えば、信号が2ビットのANDゲートの出力であり、他のANDゲートを駆動する場合、KEEP属性は、2つのANDゲートを含む大きなLUTに信号が結合することを防止するために使用され得る.KEEPはタイミング制約にもよく用いられる.通常最適化される信号に対してタイミング制約が存在する場合、KEEPはその動作を阻止し、正しいタイミングルールKEEP Example(Verilog)の使用を許可する.
(* keep = “true” *) wire sig1;
assign sig1 = in1 & in2;
assign out1 = sig1 & in2;

5 RAM_STYLE
RAM_STYLEは、Vivado統合ツールがメモリを推定する方法を示します.許容できる値は、•block:指示ツールがRAM Bタイプのコンポーネントを推定することです.•distributed:ツールにLUT RAMの推定を指示します.•レジスタ:RAMではなくレジスタを推定するツールを示します.•ultra:UltraScale+を使用するツールを示します™URAM原語.デフォルトでは、ツールは、ほとんどの設計に最適な結果をもたらすために、推定するRAMを啓発的に選択します.このプロパティは、RAMに対して宣言された配列または階層レベルに配置されます.•信号が設定されている場合、この属性は特定の信号に影響します.•階層レベルに設定すると、その階層レベルのすべてのRAMに影響します.階層のサブレベルは影響を受けません.これはRTLまたはXDCで設定できます.RAM_STYLE Example (Verilog)
(* ram_style = “distributed” *) reg [data_size-1:0] myram [2**addr_size-1:0];

6 ROM_STYLE
ROM_STYLEは、統合ツールがROMメモリを推定する方法を示す.許容できる値は、•block:ツール推定RAMMBタイプコンポーネント•distributed:ツール推定LUT ROM.デフォルトでは、ツールは、ほとんどの設計に最適な結果をもたらすために、推定するROMを啓発的に選択します.これはRTLとXDCで設定できます.ROM_STYLE Example (Verilog)
(* rom_style = “distributed” *) reg [data_size-1:0] myrom [2**addr_size-1:0];

私の《FPGA自習学院》に参加することを歓迎して、参加した後に更に無料の学習資料とオリジナルの工事コードを得ることができます.