Re: [分享] verilog 雙向inout問題
感謝r901042004的解答 !
---------------------------------------------------
module PAD( pad_A, EN );
inout pad_A ;
input EN ;
reg data_inner=1'd1;
assign pad_A = EN ? data_inner : 1'bz ;
endmodule
module tb;
reg EN;
wire pad_A;
reg data_outer ;
PAD I1 ( pad_A, EN );
assign pad_A = EN ? 1'bz : data_outer ;
initial EN=0;
always #10 EN = EN + 1 ;
initial data_outer = 0;
initial begin
#100 $finish;
end
always #10 $display("EN=%d pad_A=%d",EN,pad_A);
endmodule
----------------------------------------------------
※ 引述《pat12345 (咖啡杯)》之銘言:
: 有一個verilog code的問題想要問你,試了一天以上...
: 我想把pad_A當雙向pin ,
: 在EN = 1 時候,pad_A當輸出pin,把data傳出去,
: 反之,EN = 1,從外部收訊號,
: 我照下面的寫法,是會有Error的,
: 高手們可以給我一些指點嗎,感激不盡~
: ---------------------------------------------------------
: module PAD( pad_A, EN );
: inout pad_A ;
: input EN ;
: reg data=1;
: assign pad_A = EN ? data : 1'bz ;
: endmodule
: module tb;
: reg EN;
: wire pad_A;
: PAD I1 ( pad_A, EN );
: initial fork
: #0 pad_A=0;
: #22 pad_A=1;
: #35 pad_A=0;
: #40 pad_A=1;
: #62 pad_A=0;
: #78 pad_A=1;
: #90 pad_A=0;
: join
: initial EN=0;
: always #25 EN = EN + 1 ;
: initial begin
: $fsdbDumpfile("DUT.fsdb");
: #100 $finish;
: end
: endmodule
: --------------------------------------------------
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.224.252.226
※ 文章網址: https://www.ptt.cc/bbs/Electronics/M.1482775793.A.C85.html
※ 編輯: pat12345 (36.224.252.226), 12/27/2016 02:10:09
※ 編輯: pat12345 (42.72.208.111), 12/27/2016 12:10:38