INOUT
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[ASAP Top]]
verilogのinout制御はメモリ制御に深くかかわるはず。
そこでここではわかっている範囲の使いかたを紹介します。
まちがっていれば、ばんばん指摘してくださいませ。
FPGA側はデータバスからデータを読み込む時はHi-Zにする。
一方ターゲット側はFPGAがデータバスに書き込みを行っている...
verilogでは以下のようにかけるはず。
module biDirection( bus, readWrite);
inout bus;
input readWrite; // 0 = Write, 1 = Read
assign bus = (readWrite) ? 1'bz : 1'b1 // readWriteがHig...
endmodule
testベンチは次の感じ。
'timescale 1ns/1ps
module biDirection_test;
wire bus;
reg readWrite;
reg bus_register;
parameter STEP=10
assign bus = bus_register;
initial begin
readWrite=1;
bus_register=1'b0;
#(STEP*10);
bus_register=1'bz;
readWrite=0;
#(STEP*10);
bus_register=1'b0;
readWrite = 1;
#(STEP * 10);
$finish;
end
biDirection BD( .bus( bus),
.readWrite( readWrite));
endmodule
終了行:
[[ASAP Top]]
verilogのinout制御はメモリ制御に深くかかわるはず。
そこでここではわかっている範囲の使いかたを紹介します。
まちがっていれば、ばんばん指摘してくださいませ。
FPGA側はデータバスからデータを読み込む時はHi-Zにする。
一方ターゲット側はFPGAがデータバスに書き込みを行っている...
verilogでは以下のようにかけるはず。
module biDirection( bus, readWrite);
inout bus;
input readWrite; // 0 = Write, 1 = Read
assign bus = (readWrite) ? 1'bz : 1'b1 // readWriteがHig...
endmodule
testベンチは次の感じ。
'timescale 1ns/1ps
module biDirection_test;
wire bus;
reg readWrite;
reg bus_register;
parameter STEP=10
assign bus = bus_register;
initial begin
readWrite=1;
bus_register=1'b0;
#(STEP*10);
bus_register=1'bz;
readWrite=0;
#(STEP*10);
bus_register=1'b0;
readWrite = 1;
#(STEP * 10);
$finish;
end
biDirection BD( .bus( bus),
.readWrite( readWrite));
endmodule
ページ名: