吉田/覚書/SFL-Verilog
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[吉田>吉田]]/[[覚書>吉田/覚書]]
#contents
**SFL - VerilogHDL [#sca60925]
***言語の方向性 [#lae4a423]
-VerilogHDL
--回路図をそのまま書き出した感じ
--各回路(module)を制御線(端子名)で繋いで記述
-SFL
--状態遷移図から書き出すイメージ?
--各回路の「動作」と状態(stage)の遷移を軸に記述
--パイプライン化が上の状態記述を用いて楽に?できる
***モジュールの定義と呼び出し [#w326138e]
-VerilogHDL
--使用する回路(module)はどこで宣言されていてもいい
module A (cin, in1, in2, out1);
input cin;
input [] in1;
input [] in2;
output [] out1;
B b (.b_cin(cin), .b_in1(in1), , , );
endmodule
module B ();
xxx
endmodule
-SFL
--Cの関数のように、使用する回路の後に呼び出される回路を記述するときは先に宣言しておく
declare B {
input b_cin;
input b_in1<>;
input b_in2<>;
output b_out1<>;
instrin do;
instr_arg do(b_cin, b_in1, b_in2);
}
module A {
input cin;
input in1<>;
input in2<>;
output out1<>;
B b;
}
module B {
xxx
}
***式記述 [#p2241462]
-VerilogHDL
--
assign a = b;
assign c = d;
always@( b d )
begin
a <= b;
c <= d;
end
if( xxx ) a <= b;
else a <= c;
-SFL
--
par {
a := b; <「:=」はレジスタ入力(値は次回更新まで保持される)
c := d;
}
if( xxx ) a := b;
any {
xxx1 : a = b; <「=」ならデータ端子への入力(今サイクルのみに有効)
xxx2 : a = c;
else : a = d;
}
***xxx [#q336cee6]
終了行:
[[吉田>吉田]]/[[覚書>吉田/覚書]]
#contents
**SFL - VerilogHDL [#sca60925]
***言語の方向性 [#lae4a423]
-VerilogHDL
--回路図をそのまま書き出した感じ
--各回路(module)を制御線(端子名)で繋いで記述
-SFL
--状態遷移図から書き出すイメージ?
--各回路の「動作」と状態(stage)の遷移を軸に記述
--パイプライン化が上の状態記述を用いて楽に?できる
***モジュールの定義と呼び出し [#w326138e]
-VerilogHDL
--使用する回路(module)はどこで宣言されていてもいい
module A (cin, in1, in2, out1);
input cin;
input [] in1;
input [] in2;
output [] out1;
B b (.b_cin(cin), .b_in1(in1), , , );
endmodule
module B ();
xxx
endmodule
-SFL
--Cの関数のように、使用する回路の後に呼び出される回路を記述するときは先に宣言しておく
declare B {
input b_cin;
input b_in1<>;
input b_in2<>;
output b_out1<>;
instrin do;
instr_arg do(b_cin, b_in1, b_in2);
}
module A {
input cin;
input in1<>;
input in2<>;
output out1<>;
B b;
}
module B {
xxx
}
***式記述 [#p2241462]
-VerilogHDL
--
assign a = b;
assign c = d;
always@( b d )
begin
a <= b;
c <= d;
end
if( xxx ) a <= b;
else a <= c;
-SFL
--
par {
a := b; <「:=」はレジスタ入力(値は次回更新まで保持される)
c := d;
}
if( xxx ) a := b;
any {
xxx1 : a = b; <「=」ならデータ端子への入力(今サイクルのみに有効)
xxx2 : a = c;
else : a = d;
}
***xxx [#q336cee6]
ページ名: