gaohaosky 发表于 2011-1-27 21:40:50

用Verilog怎么描述双向IO口

坛中有人用Verilog写过能用的双向IO口没,可否发共享一例程学习

zyx_avr 发表于 2011-1-27 22:24:27

inout io_data;
reg out_data;
reg io_link;
assign io_data = io_link ? out_data : 1'bz;

mcupro 发表于 2011-1-28 01:46:15

module iopin(
input din,
input oe,
output dout,
inout io
);

assign din = io ;

assign io = (oe)? dout : 1'bz;

endmodule
使用的时候例化下这个模块就可。
注意IO应该是约束在具体的CPLD/FPGA上的接口,如果在逻辑内部,由于CPLD/FPGA不支持内部的三态,将生成多路(MUX)器实现等效逻辑。

gaohaosky 发表于 2011-1-28 11:23:00

谢谢1楼2楼的回答!学习中、、、

rafd 发表于 2011-1-28 13:24:46

支持

aozima 发表于 2014-8-31 22:57:28

本帖最后由 aozima 于 2014-8-31 23:01 编辑

网上搜了一圈大家都是写input in_data;
对FPGA里面来说,IO模块的in_data不应该是输出类型的么?

学习写了一段module iopin
(
        io_pin,
        in_data,
        out_data,
        oe
);

inout io_pin;
output in_data;
input out_data;
input oe;

assign in_data = io_pin;
assign io_pin = (oe)?out_data:1'bz;

endmodule
RTL viewer显示如下图

zhangfeng0115 发表于 2014-9-17 21:30:40

inout ,,,,,,,,,,,,,,,
页: [1]
查看完整版本: 用Verilog怎么描述双向IO口