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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 2125|回复: 3

[求助] 寄存器本来可以写1后自动回0,加进去其他IP后,就无法回0

[复制链接]
发表于 2015-12-16 15:35:32 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 whynoreason 于 2015-12-16 15:37 编辑

碰到一很奇怪的问题,搞了两个多礼拜了,还是没法搞定,望各位大侠帮忙解答下,谢谢!

         always @ (posedge clk or negedge reset_n)
      if(~reset_n)
          cntrl[31:0]         <= 0;
      else
          if (cntrl[2])
            cntrl[2] <= 1'b0;
          else if (byte_en[0] && cntrl_write)
            cntrl[2]<= regb_wdata[2];

      以上是一个成熟IP的代码,我把这个简化了呈现出来。cntrl[2]有写1后,下一个clk会自动回0的功能。
     cntrl寄存器共有32位,其他位的写入读出是完全OK的。cntrl[2]在我的SOC加进来的模块IP不多的情况下,读写也是正常的。但一旦我把自身的加解密IP加进去后,写1就没办法回0了。起初在Nexys4板子上用的XC7A100T的时候,LUT占用到了60%多,一度以为是资源紧张引起的问题。可后来用AC701的XC7A200T,LUT才占用不到30%,问题依旧出现。
        SOC规模有点大,vivado布局布线后的网表又有点分辨不清楚,目前怀疑是不是vivado工具把这个电路给优化精简后出问题了?
        是不是有其他策略设置可以避免类似情形的发生?(怕电路中仍旧隐藏一些类似的现象,只是暂时没发觉)。
        vivado 2014.1, vivado 2015.3都试过了,一样的现象
发表于 2015-12-16 16:48:28 | 显示全部楼层
用综合后的网表做下仿真就可以了。
 楼主| 发表于 2015-12-16 16:57:05 | 显示全部楼层
回复 2# whz7783478

跑综合后function仿真是OK的啊,imple后的还没仿,机器跑起来龟爬啊。。。
发表于 2015-12-16 18:46:39 | 显示全部楼层
回复 3# whynoreason


   布局布线后的网表,如果不加SDF,速度还是可以接受的,如果加SDF,速度会比较慢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-12-27 04:27 , Processed in 0.019963 second(s), 8 queries , Gzip On, Redis On.

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