インテルのみ表示可能 — GUID: mwh1409959613013
Ixiasoft
1.4.1.1. 同期メモリーブロックの使用
1.4.1.2. サポートされないリセットおよびコントロール条件の回避
1.4.1.3. Read-During-Write動作の確認
1.4.1.4. RAMの推論と実装の制御
1.4.1.5. シングルクロック同期RAM (古いデータでのRead-During-Write動作)
1.4.1.6. シングルクロック同期RAM (新しいデータでのRead-During-Write動作)
1.4.1.7. シンプル・デュアルポート、デュアルクロック同期RAM
1.4.1.8. トゥルー・デュアルポート同期RAM
1.4.1.9. 混合幅デュアルポートRAM
1.4.1.10. バイト・イネーブル信号を備えるRAM
1.4.1.11. 電源投入時の初期のメモリーコンテンツの指定
インテルのみ表示可能 — GUID: mwh1409959613013
Ixiasoft
1.6.4.2.2. SystemVerilogのステートマシン・コーディング例
次のコーディング・スタイルを使用して、SystemVerilogでステートマシンを記述します。
列挙型を使用するSystemVerilogステートマシン
モジュール enum_fsm は、列挙型を使用するSystemVerilogステートマシンの実装例です。
インテル® Quartus® Prime プロ・エディション の合成では、ステートマシンのステートを定義する列挙型を符号なし整数型にする必要があります。列挙型を int unsigned として指定しないと、合成ではデフォルトで符号付き int 型が使用されます。この場合、 インテル® Quartus® Prime開発ソフトウェアはデザインを合成しますが、ロジックをステートマシンとして推論または最適化しません。
module enum_fsm (input clk, reset, input int data[3:0], output int o); enum int unsigned { S0 = 0, S1 = 2, S2 = 4, S3 = 8 } state, next_state; always_comb begin : next_state_logic next_state = S0; case(state) S0: next_state = S1; S1: next_state = S2; S2: next_state = S3; S3: next_state = S3; endcase end always_comb begin case(state) S0: o = data[3]; S1: o = data[2]; S2: o = data[1]; S3: o = data[0]; endcase end always_ff@(posedge clk or negedge reset) begin if(~reset) state <= S0; else state <= next_state; end endmodule