• 検索結果がありません。

BLACK_BOX の VHDL 例

ドキュメント内 Vivado Design Suite ユーザー ガイド : 合成 (UG901) (ページ 102-105)

attribute black_box : string;

attribute black_box of beh : architecture is "yes";

FSM コ ンポーネ ン ト

コ ー ド 例は、 次のサ イ ト か ら ダ ウ ン ロ ー ド で き ます。

http://japan.xilinx.com/txpatches/pub/documentation/misc/vivado_synthesis_ug_examples.zip

Vivado 合成の機能

• 同期有限ス テー ト マシ ン (FSM) コ ンポーネ ン ト に特定の推論機能

• 最適化の目標に対応 し た ビル ト イ ン FSM エン コー ド ス ト ラ テジ

• FSM 抽出はデフ ォ ル ト で イ ネーブル

• FSM 抽出をデ ィ ス エーブルにす る には -fsm_extraction off を使用

FSM 記述

Vivado 合成では、 ムーア型 と ミ ー リ ー型の両方の有限ス テー ト マシ ン (FSM) がサポー ト さ れます。

FSM には、 次が含まれます。

• ス テー ト レ ジ ス タ

• 次ス テー ト 関数

• 出力関数

FSM の図

次に、 ミ ー リ ー型マシ ン と ムーア型マシ ン を組み込んだ FSM の図を示 し ます。

X-Ref Target - Figure C-2

図 C-2 : ミ ー リ ー型マシ ン と ムーア型マシ ン を組み込んだ FSM

次に、3 つのプ ロ セ ス を使用 し た FSM の図を示 し ます。

ス テー ト レ ジ ス タ

• リ セ ッ ト ま たは電源投入ス テー ト を指定 し て、 有限ス テー ト マシ ン (FSM) を認識 さ せます。

• ス テー ト レ ジ ス タ は、 特定の ス テー ト に対 し て非同期ま たは同期に リ セ ッ ト で き ます。

• FSM には、 非同期 リ セ ッ ト ロ ジ ッ ク よ り も 同期 リ セ ッ ト ロ ジ ッ ク をお勧め し ます。

自動ス テー ト エ ン コ ー ド

Vivado 合成では、 各 FSM に最適なエン コ ー ド 方法が自動的に選択 さ れます。

ワ ン ホ ッ ト ス テー ト エ ン コ ー ド

ワ ン ホ ッ ト ス テー ト エン コ ー ド には、 次の よ う な特徴があ り ます。

• 32 ス テー ト ま での ス テー ト マシ ンのデフ ォ ル ト エン コ ー ド 方法です。

• 速度を最適化 し た り 、 消費電力を削減する 場合に適 し てい ます。

• 各 FSM ス テー ト に コ ー ド の各ビ ッ ト が割 り 当て ら れます。

• 各ス テー ト に 1 つの フ リ ッ プ フ ロ ッ プを使用 し た ス テー ト レ ジ ス タ を イ ンプ リ メ ン ト し ます。

• 1 つの ク ロ ッ ク サ イ ク ルで 1 つの ス テー ト レ ジ ス タ のみがアサー ト さ れます。

• 2 つの ス テー ト 間を遷移する 際、2 つのビ ッ ト のみが ト グル し ます。

グ レ ー ス テー ト エ ン コ ー ド

グ レース テー ト エン コ ー ド には、 次の よ う な特徴があ り ます。

• 連続 し た 2 つの ス テー ト 間では、1 ビ ッ ト し か切 り 替わ り ません。

• 分岐のない長いパ ス を持つコ ン ト ロ ー ラ に適 し てい ます。

• ハザー ド やグ リ ッ チを最小限に抑え ます。

• 消費電力を最小限に抑え る ために使用で き ます。

ジ ョ ン ソ ン ス テー ト エ ン コ ー ド

ジ ョ ン ソ ンス テー ト エン コー ド は、 グ レース テー ト エン コ ー ド と 同様、分岐のない長いパ ス を含むス テー ト マシ ン に適 し てい ます。

X-Ref Target - Figure C-3

図 C-3 : 3 つのプ ロ セス を使用 し た FSM

RAM の HDL コ ーデ ィ ング手法

シーケ ン シ ャ ル ス テー ト エ ン コ ー ド

シーケ ン シ ャ ル ス テー ト エン コ ー ド には、 次の よ う な特徴があ り ます。

• 長いパ ス を識別 し ます。

• こ れ ら のパ ス の ス テー ト に連続する 基数コ ー ド を 2 つ適用 し ます。

• 次ス テー ト の論理式を最小限に抑え ます。

FSM の Verilog 例

// State Machine with single sequential block module fsm_test(clk,reset,flag,sm_out);

input clk,reset,flag;

output reg sm_out;

parameter s1 = 2'b00;

parameter s2 = 2'b01;

parameter s3 = 2'b10;

parameter s4 = 2'b11;

reg [1:0] state;

always@(posedge clk) begin

if(reset) begin

state <= s1;

sm_out <= 1'b1;

end else begin

case(state) s1: if(flag)

begin

state <= s2;

sm_out <= 1'b1;

end

else begin

state <= s3;

sm_out <= 1'b0;

end

s2: begin state <= s4; sm_out <= 1'b0; end s3: begin state <= s4; sm_out <= 1'b0; end s4: begin state <= s1; sm_out <= 1'b1; end endcase

end end endmodule

ドキュメント内 Vivado Design Suite ユーザー ガイド : 合成 (UG901) (ページ 102-105)

関連したドキュメント