作者pat12345 (咖啡杯)
看板Electronics
标题Re: [请益] verilog 双向inout问题
时间Tue Dec 27 02:09:50 2016
感谢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://webptt.com/cn.aspx?n=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