学习至简设计法,学会模块设计和模块划分技巧。
模块划分,顾名思义是指模块的划分。但是,***至简设计法提出的模块划分,是广义的“模块划分”。后续所提及的“模块划分”,不单单指模块的划分,还包括模块划分好后,模块的端口及模块之间数据流向的确定。
模块划分原则
原则一:对每个同步时序设计的子模块的输出使用寄存器(Registering)。
原则二:将相关的逻辑或者可以复用的逻辑划分在同一个模块。
原则三:将不同优化目标的逻辑分开。
原则四:将松约束的逻辑归到同一个模块。
原则五:将存储逻辑独立划分成模块。
原则六:合适的模块规模。
模块划分技巧非常重要,好的模块结构,能极大地精简各模块的结构,从而能用最少的代码实现所需的功能;使各模块顺畅运行,保证系统更加稳定。大家深有体会的就是ISO和安卓系统,虽然任何手机功能都可以在两者系统上实现,但ISO的稳定性、效率远超过了安卓,这可以归功于ISO良好的系统结构。可以说模块划分更考究人的智慧,中国人至今没有设计出好的芯片结构,华为海思的架构师基本上都是国外的专家来担任。
如何进行模块划分,列出了非常多的实用技巧。
1. 讲述了模块之间连接的常用信号。一般模块之间就通过这些信号来连接,读者定义模块信号时基本上套上这几个信号就可以了,也不用再去烦信号的命名问题。
2. 对于FPGA内部模块,讲述了模块之间数据交互的几种模式和应用场景。读者可以按照项目情况选择合适的模式来使用。
3. FPGA经常与外设通信,至简设计法也讲述了与外设连接时,FPGA模块标准,如一般可分为接口模块和命令模块。接口模块负责时序,命令模块负责发布命令。
4. 对于复杂的、内部有寄存器的外设。至简设计述定义了模块标准,方便调试和使用的同时,也减少了出错的可能。
研究出来的至简设计法,综合考虑了调试、使用和降错机率,要让每个学员都能设计出最优秀的代码。
『本文转载自网络,版权归原作者所有,如有侵权请联系删除』