芯动力——硬件加速设计方法 (20).pdf

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
本小节核心内容提纲 1. 为什么需要格雷码做读写指针?由于异步FIFO 是工作在两个不同的时钟域中,如果读 地址在某一时刻从 0111-1000 转变;恰好写时钟要在这时刻采样读地址,那么得到的 值有可能是 0000~1111 中的任一个值;这个不确定的读地址值会导致空满状态判断错 误。这个不确定的读地址值会导致空满状态判断错误。 2. 如何在 2 次幂和非 2 次幂深度下设计相应的读写指针?什么情况下,需要用格雷码来 进行读写指针编码?什么时候不可以使用格雷码? 3. 并不是一定要用格雷码做读写指针,而是当深度为2 次幂的时候,刚好格雷码满足消除 亚稳态的需求;在非2 次幂深度情况下,格雷码已经不再适用,此时的解决方法通常有: 若深度为偶数,可采用最接近的2 次幂的格雷码编码,在此基础上修改;深度为一般数 值时,可自行设计一种逻辑电路,或者查找表,以实现指针每次只跳变一次的功能;以 上方法通常在设计层面较为复杂,若无特定需求,可将FIFO 深度设置为2 次幂,浪费 一些存储空间,来化简控制电路的复杂度。 4. 两拍同步或者多拍同步的差异?将地址总线打两拍,这是为了避免亚稳态传播,理论上 将打两拍不能消除亚稳态现象,因为时钟异步,亚稳态不可避免,但是可以极大降低亚 稳态传播的概率,低频情况下甚至 STA 不需要分析这里的异步时序,因为寄存器都可 以在一拍内将亚稳态消除,恢复到正常0/1 态。而在高频情况下则不一定,尤其在 28nm 工艺以下,需要检查两级触发器的延迟,保证延迟低,这样可以提高Tr ,提高系统MTBF 。 多拍能够将亚稳态出现的概率进一步降低。 5. 空满标志的判断方法是否有漏洞?异步FIFO 通过比较读写地址进行满空判断,但是读 写地址属于不同的时钟域,所以在比较之前需要先将读写地址进行同步处理,此机制保 证了FIFO 在空满极限情况下,依然留有余量,存在一定的冗余空间。这种方法使得FIFO 不会发生写满溢出、读空多读的情况。 6. 如何对FIFO 进行逻辑综合静态时序分析。从电路结构上分析,FIFO 主要包括memory 、 写时钟域电路、读时钟域电路、跨时钟域同步器这几个部分。在逻辑综合阶段,这几部 分都需要单独处理。Memory 需要例化memory compiler 生成的库文件。写时钟域电路、 读时钟域电路要分别定义不同的时钟。低频情况下,跨时钟域同步器需要设置wclk 和 rclk 之间的false path 。高频情况下,尤其在 28nm 工艺以下,需要检查两级触发器的延 迟,保证延迟低;PR 时,要注意将两级同步器放置在一起,不要被工具自动分开。

文档评论(0)

恬淡虚无 + 关注
实名认证
内容提供者

学高为师,身正为范.师者,传道授业解惑也。做一个有理想,有道德,有思想,有文化,有信念的人。 学无止境:活到老,学到老!有缘学习更多关注桃报:奉献教育,点店铺。

1亿VIP精品文档

相关文档