搜索
bottom↓
回复: 6

用Verilog怎么描述双向IO口

[复制链接]

出0入0汤圆

发表于 2011-1-27 21:40:50 | 显示全部楼层 |阅读模式
坛中有人用Verilog写过能用的双向IO口没,可否发共享一例程学习

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

发表于 2011-1-27 22:24:27 | 显示全部楼层
inout io_data;
reg out_data;
reg io_link;
assign io_data = io_link ? out_data : 1'bz;

出0入0汤圆

发表于 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)器实现等效逻辑。

出0入0汤圆

 楼主| 发表于 2011-1-28 11:23:00 | 显示全部楼层
谢谢1楼2楼的回答!学习中、、、

出0入0汤圆

发表于 2011-1-28 13:24:46 | 显示全部楼层
支持

出0入0汤圆

发表于 2014-8-31 22:57:28 | 显示全部楼层
本帖最后由 aozima 于 2014-8-31 23:01 编辑

网上搜了一圈大家都是写
  1. input in_data;
复制代码

对FPGA里面来说,IO模块的in_data不应该是输出类型的么?

学习写了一段
  1. module iopin
  2. (
  3.         io_pin,
  4.         in_data,
  5.         out_data,
  6.         oe
  7. );

  8. inout io_pin;
  9. output in_data;
  10. input out_data;
  11. input oe;

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

  14. endmodule
复制代码

RTL viewer显示如下图

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2014-9-17 21:30:40 | 显示全部楼层
inout ,,,,,,,,,,,,,,,
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-24 03:19

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表