[modelsim]

verilog中从高电平到高阻跳变,算不算一次下降沿?

[复制链接]
1730|6
手机看帖
扫描二维码
随时随地手机跟帖
平常心kxy|  楼主 | 2014-7-29 22:05 | 显示全部楼层 |阅读模式
本帖最后由 平常心kxy 于 2014-7-29 22:07 编辑

今天用modelsim仿真夏宇闻老师的一个并转串的一个程序。
always@(negedge sda)
  begin
  if(scl)
    start<=1;
  else if(stop)
    start<=0;
  end

这段在sda的下降沿对start进行操作。。。。仿真中,start在sda到高阻的跳变中start   <=0.了。。。不知道为什么?如图所示。
2014-07-29_220245.png

相关帖子

llf021421| | 2014-7-30 09:20 | 显示全部楼层
不算啊

使用特权

评论回复
玄德| | 2014-7-31 16:37 | 显示全部楼层
不解,关注。

使用特权

评论回复
luyaker| | 2014-7-31 19:08 | 显示全部楼层
楼主可以加一个if(sda==1‘b0)来判断是不是从1变0;实际电路中高阻态这个电平是没有的,所以仿真时尽量避开吧。

使用特权

评论回复
评论
502593045 2014-8-4 09:29 回复TA
正解 
502593045 2014-8-4 09:29 回复TA
正解 
平常心kxy|  楼主 | 2014-7-31 20:17 | 显示全部楼层
luyaker 发表于 2014-7-31 19:08
楼主可以加一个if(sda==1‘b0)来判断是不是从1变0;实际电路中高阻态这个电平是没有的,所以仿真时尽量避 ...

我也是初学者。电路中应该有三态的概念吧。如果是控制信号为0,那输入就是高阻了
就是这条语句assign sda=link_sda_sdabuf? sda_buf:1'bz;
sda是模块1送给模块2的信号。。如果link _buf=0。那对于模块2就是高阻输入了。
我这样理解对不对:对于模块2,来说,输入信号是高阻态,那sda的电平可高可低,这取决于负载。如果负载是低电平,那sda会被拉低。同理负载是高电平,sda为置高

使用特权

评论回复
luyaker| | 2014-8-1 10:06 | 显示全部楼层
实际电路里面,你只能量到它的电压,所以我说没有高阻态这个电平;所以实际中,不存在从高电平跳到高阻这种情况,因为你只能量到电压

使用特权

评论回复
luyaker| | 2014-8-1 10:14 | 显示全部楼层
再多说一下。高阻态,往往意味着它的电平是由和它连接的网络决定;楼主的这个从高跳到高阻,很可能是因为设计或仿真有问题,但不一定。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

23

主题

107

帖子

3

粉丝