分享下SpinalHDL中SpinalConfig中的三项参数

》namewhenbyfile
测试代码如下:
当我们采用spinalsystemverilog(demo0())的方式生成rtl代码时其生成的代码风格如下:
在spinalhdl中对于when的使用,when中所包含的条件往往会生成以一个when+filename+行号的变量来替代,看起来无非代码多了几行,并不影响功能。
因为有行号的引入,我们一旦对spinalhdl代码中这部分代码哪怕是添加了几行注释也会引起生成代码的部分修改,虽然不影响功能,但对于那些喜欢看rtl代码的人就显得略显得不爽了。
对于when的使用,可以在生成rtl代码时采用下面的形式来生成:
spinalconfig(    namewhenbyfile = false ).generatesystemverilog(demo0())
生成代码如下:
如此生成的代码不会再对when语句声明单独的变量,代码看起来和那些采用verilog写代码的人毫无差异吧~
这对于生层的rtl尽可能减少非必要的信号名称变化。
》genlinecomments
更近一步,对于代码生成时采用下面的形式生成:
spinalconfig( namewhenbyfile = false, genlinecomments = true ).generatesystemverilog(demo0())  
此时生成的代码风格如下:
当genlinecomments声明为true时,在生成rtl代码中会标注映射对应的spinalhdl代码行号,这对于初学者在对比生成的rtl代码学习spinalhdl还是非常的有帮助~
》bitvectorwidthmax
spinalhdl中对于信号位宽默认是最大不超过4096(intel ddr校准控制ip里面就有信号位宽就是4096 bit位宽),当设计里定义了信号 位宽超过4096,则会在生成rtl代码时报错,可通过spianlconfig中的bitvectorwidthmax对最大位宽进行修改:


浅谈电弧光保护装置系统在10KV电力系统中的应用方案
各大科技巨头大举进军医疗市场,兼顾拯救生命和巨大商机的一个领域
疏散应急照明灯和疏散警示标志的要求有哪些
2019云南人工智能峰会:AI教育对于未来社会市场需求及发展的必要
全球汽车企业转型成风 中国和欧洲起带头作用
分享下SpinalHDL中SpinalConfig中的三项参数
JTAG仿真接口设计
AMEYA:蔡司三坐标测量机使用参数
挥发性盐基氮检测仪的功能介绍
中国移动OneOS携手青岛国创,加速推进家电智能化创新
Maxim 推出MAX32670低功耗Arm® Cortex®-M4微控制器
氮化镓在电力电子领域的意义
金士顿DataTravelerEliteG2评测 材料和做工以及使用体验都有着优秀的表现
消息称苹果与台积电合作开发自动驾驶芯片
亚马逊、苹果、谷歌联手 开发统一的智能家居通信标准
外媒都快吵翻了 做硬件的公司到底还有没有未来?
如何在MCUXpresso IDE中测量能耗?
小米或首发高通骁龙775G芯片
基于分布式光纤传感技术的高压海底电缆外力损坏仿真
PPP的工作原理是什么?单片机PPP协议有什么应用?