Re: [分享] verilog 雙向inout問題

看板Electronics作者 (咖啡杯)時間9年前 (2016/12/27 02:09), 9年前編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
感謝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
文章代碼(AID): #1OOLpno5 (Electronics)