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

 找回密码
 注册

手机号码,快捷登录

手机号码,快捷登录

搜帖子
查看: 2412|回复: 3

[求助] 例化转移怎么改呢?I2C PAD

[复制链接]
发表于 2019-7-23 16:39:39 | 显示全部楼层 |阅读模式

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

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

×
//i2c pad instantion
//------------------------------------------------------
//PHDB08S_I2C_ISO u_scl(.I(scl_pad_i),.OE(scl_pad_oe),.PAD(SCL),.Y(scl_out),.IE(1'b1));
//PHDB08S_I2C_ISO u_sda(.I(sda_pad_i),.OE(sda_pad_oe),.PAD(SDA),.Y(sda_out),.IE(1'b1));


这个例化在验证平台转移到vivado后,后续转移后没有这个例化的源设计,请问一下,在新的test beach我要怎么处理呢?
1.找到vivado的i2c  pad端口例化?test beach 是模拟了一个I2C激励,主设备的scl和sda时序模拟,通过总线SCL和SDA传输到从设备。

在信号转接上是怎么处理的呢?
2.或者是我自己写个这个例化端口处理代码?这个部分要怎么写呢?
1.JPG

这样可以吗?mark掉的是源设计,上面后4行是用inout端口双向赋值的方式可以等效这个端口例化吗?
请大神帮忙修改下

发表于 2019-7-24 15:30:44 | 显示全部楼层
不要管以前的那个例化模块的功能,找一个普通三态门的代码作参考,自己去写一下就可以了。我印象中记得是输入直通,输出通过oe判断选择输出还是高阻,或者是反过来,手头没有资料,不好确认,感觉你写的有点多了。
回复 支持 反对

使用道具 举报

发表于 2019-7-24 15:56:18 | 显示全部楼层
一般都是?:赋值,然后加个pullup()
回复 支持 反对

使用道具 举报

发表于 2019-9-26 04:43:18 | 显示全部楼层
//PHDB08S_I2C_ISO u_scl(.I(scl_pad_i),.OE(scl_pad_oe),.PAD(SCL),.Y(scl_out),.IE(1'b1));
//PHDB08S_I2C_ISO u_sda(.I(sda_pad_i),.OE(sda_pad_oe),.PAD(SDA),.Y(sda_out),.IE(1'b1));

按照TSMC的IO pad的写法, I指的是输出的信号,Y是指输入的信号(站在芯片内部的角度看)
如果是这样的话,应该这样写:
assign SCL = scl_pad_oe ? scl_pad_i : 1'bz;
assign SDA = sda_pad_oe ? sda_pad_i : 1'bz;
assign scl_out = SCL;
assign sda_out = SDA;

simulation时,外部testbench需要加pullup(SDA);pullup(SCL).或者PCB板上需要加上拉电阻。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2025-8-24 23:04 , Processed in 0.014857 second(s), 4 queries , Gzip On, Redis On.

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