樱木花道长

不忘初心,方得始终

小小数字钟之我们为什么要模块化

2
阅读(2082)

    最近在武汉至芯参加FPGA就业班培训,正好赶上至芯的优惠大酬宾,只要6000的学费,心里还是蛮开心的,虽然以前自学过一段时间的FPGA,但是学的零零散散,不成体系,基础不牢。来这边快有半个月了,学到的第一件事就是模块化的设计,感觉对自己还是挺受用的。以前都没什么这方面的意识,不会太去在意模块与模块之间的联系,甚至更多时候把所有代码写在一个模块里,例化这玩意只在仿真的时候用的上,现在想想都觉得可怕。废话不多说了,下面是我终结的几点模块化设计的好处。顺便附上一张上周设计的数字钟的顶层模块的RTL视图。

blob.png










第一、模块化的设计便于理清思路。每一个大的系统都可以根据功能划分为若干个子模块,大系统可能结构复杂,但是我们将它自顶向下,一层一层的划分为若干的小模块之后,就会出现功能单一的简单模块,我们把各个简单的模块解决掉之后,再把模块例化拼接起来,大的系统就完成了。


第二、便于调试。大的系统写TB相应的也会比较复杂,但是如果是模块化了,你怀疑那一块有问题,你就将那个模块设为顶层文件,然后对他写TB,仿真就可以了,能够极大的减小任务量。


第三、便于移植。很多的小模块是非常常用的,例如这个数字钟系统中的数码管动态显示模块,系统时钟分频模块,按键消抖模块,在其他的系统中也经常用到。如果你把它写成一个通用的模块,那么你在做其他设计的时候就可以直接调用它了。像我们这周正在做的简易计算器,就会用到上面说的三个模块。这样我们就不用重新写了。

以上是我关于模块化设计的一点点愚见,若有不对的地方,还望各位指教。今天很晚了,就写到这吧,下次我写具体的设计,下面po一张我的数字钟的上板图,现在时间0:22晚安

blob.png