前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >当我们做后仿时我们究竟在仿些什么(三)

当我们做后仿时我们究竟在仿些什么(三)

作者头像
icsoc
发布2020-07-07 11:38:21
1.5K0
发布2020-07-07 11:38:21
举报
文章被收录于专栏:ICSOC.TECHICSOC.TECH

最近又做了一些后仿debug的工作,有两点是之前两篇没有提到太多的,趁假期有点时间记录下来。标题也照旧,加个吧。

异步电路之间必须消除毛刺

之前提到过,数字电路后仿的一个主要目的就是动态验证异步电路时序。异步电路的时序是目前STA工具无法覆盖的。

例如异步复位的release是同步事件,其时序是可以靠STA保证的;但是reset是异步事件,它的时序只能靠设计来保证、动态仿真来检查。产生reset的逻辑可能来自多个时钟域,但是在送入异步复位电路的时候,还是需要在设计上做到最终是单独一个时钟域的触发器输出。这样才能保证异步复位信号本身无毛刺。

话说回来,现在的代码静态检查工具,已经能够很好的检查出类似的CDC问题了。不过工具虽然强大,但决定工具发挥作用大小的还是站在工具背后的人。

所以后仿成了最后一道关口。

遗憾的是,在上面这个例子中,后仿这个关口也并不是百分百能截住所有问题。如果后仿侥幸发现了类似的设计问题,真是应该去买张彩票、改行去捞鱼了。为什么捞鱼呢?因为整个设计流程肯定漏洞很多,说不定是一张上好的渔网。

X 态的问题

后仿中,难免会碰到X态的问题,而且波形工具还很贴心的用红色绘制出来,血淋淋的、吓你没商量。如果STA都干净了,很多时候X态还是异步电路造成的问题。

大家都知道,多bit信号跨时钟域的时候,除了用同步指示信号的方法外,常用的还是用异步FIFO。异步FIFO形成读数据的逻辑里,可以分为两部分。一部分是写数据,这部分是写时钟域的,是异步跨时钟域的。另一部分是读地址,这部分是读时钟域的,是同步的。大部分情况下,读数据中呈现的X态,是因为写数据的异步造成的。而异步FIFO的设计,是需要保证写数据稳定足够的时间(多个读时钟周期),以便读时钟来稳定采样的。

所以在这样的情形中,读数据局部出现了X态(时序违例),是不应该影响正常功能的。

可以看出,芯片设计是一个系统工程,不但设计、验证和流程是紧密结合在一起的,而且还有许多设计者很少考虑到的因素也参与其中,比如进度要求,比如芯片运营(chip operation)等等,都会在我们芯片设计的整个过程中产生影响。最近这个芯片项目,做得真是很辛苦,也感触很多,希望能有时间做深入的思考和总结,分享给各位读者。

References

[1] 当我们做后仿时我们究竟在仿些什么 [2] 当我们做后仿时我们究竟在仿些什么(补充)

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-05-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 icsoc 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 异步电路之间必须消除毛刺
  • X 态的问题
  • References
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档