关于verilog双向三态门实现语句的疑问
【例 9.4】三态双向驱动器module bidir(tri_inout,out,in,en,b);
inout tri_inout;
output out;
input in,en,b;
assign tri_inout = en ? in : 'bz;
assign out = tri_inout ^ b;
endmodule
以上程序摘自王金明:《Verilog HDL 程序设计教程》
我自己的理解:
http://cache.amobbs.com/bbs_upload782111/files_31/ourdev_571730.JPG
(原文件名:1.JPG)
en在这里应该仅仅是控制输入端是否为高阻的,当en==0时,输入呈z态。
令人费解的是输出端为什么仅仅是tri_inout和b作了个异或运算,当b为低电平时,out端输出tri_inout当前值,当b为高电平时out端等于对tri_inout取反,输出是无论如何不会进入高阻态的,那么又怎么实现三态中的高阻态呢?
页:
[1]