在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
EETOP诚邀模拟IC相关培训讲师 创芯人才网--重磅上线啦!
查看: 2416|回复: 1

[原创] 如何仿真开漏(Open Drain)IO口

[复制链接]
发表于 2016-4-9 23:54:58 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

x
本帖最后由 quantumdot 于 2016-4-10 10:57 编辑

如图所示的I2C协议中SDA实际电路:

SDA driver

SDA driver


像这种带OPEN-Drain MOS及上拉电阻在纯verilog中仿真比较难搞,特别是同一总线连接多个器件的情况,但是可以近似处理




  1. //----for synthesizable block---//
  2. inout SDA;

  3. wire sdai,sdao,tri_sda;

  4. assign sdai=tri_sda?SDA:1'b0;
  5. assign SDA=sdao?1'bz:1'b0;

  6. //---------for testbench---------//
  7. inout SDA;

  8. wire RX;
  9. reg EN,TX;

  10. assign SDA=EN?TX:1'bz;
  11. assign RX=SDA;
  12. pullup pu(SDA);


复制代码

不过这种近似还是不够准确,根据hdl标准,可以使用wire AND 线网




  1. //---综合电路中--
  2. inout SDA;

  3. wand SDA;

  4. assign SDAI=tri_sda?SDA:0;
  5. assign SDA=SDAO;

  6. //--testbench----
  7. inout SDA;
  8. wire RX;
  9. reg EN,TX;

  10. assign SDA=EN?TX:1'bz;
  11. assign RX=SDA;


复制代码


此方式定义在仿真中只要有一边定义了wand线名,双向口就可以完全模拟如图所示的功能
发表于 2017-7-24 13:36:31 | 显示全部楼层
请问什么是open-drain mos
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-4-27 18:24 , Processed in 0.018702 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表