作者: 佚名 浏览: 日期:2023-09-28
我还想求介绍一些文章或者书籍是介绍verilog综合优化方面的?
1:Generate 在里面写for loop
2:调用module
3:大块的register file/SRAM
4:除法器,乘法器;尤其是大bit的
5:巨多输入的MUX,比如:265选1/1024 选1
———————————————————————————————
推荐两个电子科大06届师兄的数字设计入门课,可以跟着学。
https://ke.qq.com/course/2900266?tuin=64ce5e2a (数字IC/FOGA设计入门,1/2课免费。两期已累计服务超120位小伙伴)
https://ke.qq.com/course/package/24207?tuin=64ce5e2a (On-Chip-Bus精讲,ddr/cache行为,ahb的burst与hready,AXI的cmd outstanding, data out-of-order,bus效率分析与提高,efficiency与latency平衡 全覆盖)
哪些Verilog语法优化对综合后电路的面积、资源、功耗等有比较大的影响?
这个问题比较绕,很难回答。什么样的Verilog语法优化对PPA(性能功耗面积)有大影响?答:如果你代码写得比较烂,很难综合,那么无论怎么做综合优化都很难取得好的PPA结果。就是说,坏代码对PPA有坏影响,跟优化不优化无关。除非你说的优化是把坏代码改成好代码。
取得好PPA结果的根本手段是:把电路结构规划好。在代码上做语法修饰几乎没有意义,写得再漂亮也不行。
如果你问用什么样的语法结构能综合出更好的PPA?那么答案就是:尽量写综合工具友好的代码。
什么样的代码是综合工具友好的呢?你可以直接看综合工具的使用手册,手册里面有大量的所谓的可综合代码示例,这些描述结构示例就是那个综合工具最容易辨认最不容易绕弯路的代码。一个直观的建议就是:尽量写简单句式,写一眼就能看出来是个什么电路的代码。不要写出“最精简”的代码。(软件和高级语言编程的追求之一就是代码精简,一行代码搞定一个复杂的算法。用软件的思路写电路描述那真的很麻烦。)
或许,你真正想问的是:什么样的电路结构对综合后的PPA有好影响?这是一个好问题,涉及面很广,也很深,可以写一本书。等我有空有闲时再来补充。先说几条原则:
优化PPA有哪些技巧(电路结构)? 这个以后慢慢补充。
理论上没有。Verilog只是逻辑描述,综合后只到电路级,换不同的工艺库会造成面积的影响,和逻辑描述无关。
(1)先知道用于工艺库去综合。如果知道这个库,可以用Verilog调用这个块,在综合时直接用工艺库的块,控制某些功能直接利用工艺库的功能块,而不是傻等综合从门级实现功能,特别是半定制设计尤为重要。
(2)如何有效减少综合后的门数,这是一个同一功能不同描述方法可以进行比较。用Verilog的不同方法描述功能(一定是复杂功能),进行综合,看综合后门数的变化,找到性能,功能,门数最合理的那段Verilog描述。