参数化的延迟链代码分享

描述

参数化的延迟链代码分享

在日常写代码的过程中,我们经常会用到“打拍”的操作。如图1代码段所示。这个打拍的作用,很多时候主要是为了减少亚稳态。图1这样的写法,是我们的常规操作。这样写的好处是简单明了,让人一看就能明白。 大部分时候,我们都采取这样的写法。今天,想从参数化和模块化的角度,来看下该怎么实现这种打拍操作。虽然对于“打拍”操作来说有点化简为繁,画蛇添足的感觉,但是重点是想通过这个实例来介绍设计中的一种思想:就是我们要尽量把经常用的模块进行参数化和模块化,这样可以提高开发效率,避免重复造轮子。

代码

图1 

这里给出一个名词:延迟链。可能你没有听过,但是上面的“打拍”操作是不是有点像这个名词的字面意思?这里就不介绍它了,下面直接给出我的代码,本代码实现了参数化的延迟链功能。其中,DW是Data Width的缩写,意思是待延迟的数据的位宽。比如上面图1代码中的数据位宽为1位(cs_n1dly)。比如有些地址、数据位32位,打3拍,那么把DW设置为32,LEN设置为3。本代码已经经过仿真,功能正确。 放出完整代码,如下:

代码

代码

代码

代码

图3

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分