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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 2718|回复: 6

[求助] 对于assign赋值出错的问题

[复制链接]
发表于 2018-9-3 23:07:06 | 显示全部楼层 |阅读模式

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

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

x
语句是 assign SRAM_ADDR = oe ? iWR_ADDR : mADDR;
在下图1和图2的波形中,oe信号一直是高电平,也就是说输出端口SRAM_ADDR的数值会等于输入端口iWR_ADDR的地址,可是通过signal tapⅡ查看波形,并不是如此,

SRAM_ADDR和iWR_ADDR都是

20位的地址线,出现个别bit传输数据延迟(蓝色线地方),导致数据出错。刚学FPGA,不知这个是否就是时序的问题呢,请高人指点解惑?
图1.png
图1
图2.png
图2
发表于 2018-9-4 10:03:54 | 显示全部楼层
数据有传输延时是正常的啊,你不能直接用组逻辑进行数据采集,这里面是有竞争,冒险风险,你接受的时候,需要有随路时钟进行采集才行。
发表于 2018-9-4 10:07:18 | 显示全部楼层
首先,这个是纯组合电路;然后,signal tap采集这个数据用的时钟是什么?
使用一个无关的时钟作为逻辑分析仪的时钟去采集另外一个时钟域的电路是一种常见错误,有可能会出现这种问题。
 楼主| 发表于 2018-9-4 14:12:07 | 显示全部楼层
回复 3# tao2000


    感谢指点!以后我会注意您说的这个点。
    我用的时钟是PLL倍频输出的100M时钟,也是该模块的主时钟,但iWR_ADDR是中外面FIFO读过来的数据,读FIFO用的读时钟是50M,不懂这样用signal tapⅡ看波形会不会不妥?
 楼主| 发表于 2018-9-4 14:28:25 | 显示全部楼层
本帖最后由 taoqing 于 2018-9-4 14:29 编辑

回复 2# rosshardware


   

感谢您的意见,那就是要改成时序逻辑,等于加了一级D触发器来打一拍了。

发表于 2018-9-4 14:51:18 | 显示全部楼层
不应该用组合电路采集数据,还是用时序电路!
时序电路不只是加了一级D触发器来打一拍。
主要是时序要满足你的设计要求,尤其是读写MEM,因为有可能多读或者漏读数据。
发表于 2018-9-4 16:29:37 | 显示全部楼层
回复 5# taoqing


    如果是同步接口,需要你在接口两边都打拍,一个打拍输出,一个打拍输入接收,并按照同步时序进行STA约束
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-11-25 03:28 , Processed in 0.019049 second(s), 8 queries , Gzip On, Redis On.

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