参数化的延迟链代码分享
在日常写代码的过程中,我们经常会用到“打拍”的操作。如图1代码段所示。这个打拍的作用,很多时候主要是为了减少亚稳态。图1这样的写法,是我们的常规操作。这样写的好处是简单明了,让人一看就能明白。 大部分时候,我们都采取这样的写法。今天,想从参数化和模块化的角度,来看下该怎么实现这种打拍操作。虽然对于“打拍”操作来说有点化简为繁,画蛇添足的感觉,但是重点是想通过这个实例来介绍设计中的一种思想:就是我们要尽量把经常用的模块进行参数化和模块化,这样可以提高开发效率,避免重复造轮子。
图1
这里给出一个名词:延迟链。可能你没有听过,但是上面的“打拍”操作是不是有点像这个名词的字面意思?这里就不介绍它了,下面直接给出我的代码,本代码实现了参数化的延迟链功能。其中,DW是Data Width的缩写,意思是待延迟的数据的位宽。比如上面图1代码中的数据位宽为1位(cs_n1dly)。比如有些地址、数据位32位,打3拍,那么把DW设置为32,LEN设置为3。本代码已经经过仿真,功能正确。 放出完整代码,如下:
图3
全部0条评论
快来发表一下你的评论吧 !