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

描述

》nameWhenByFile     

测试代码如下:     

DDR

当我们采用SpinalSystemVerilog(demo0())的方式生成RTL代码时其生成的代码风格如下:

DDR

在SpinalHDL中对于when的使用,when中所包含的条件往往会生成以一个when+fileName+行号的变量来替代,看起来无非代码多了几行,并不影响功能。

因为有行号的引入,我们一旦对SpinalHDL代码中这部分代码哪怕是添加了几行注释也会引起生成代码的部分修改,虽然不影响功能,但对于那些喜欢看RTL代码的人就显得略显得不爽了。    

 对于when的使用,可以在生成RTL代码时采用下面的形式来生成:

 

SpinalConfig(
    nameWhenByFile = false
  ).generateSystemVerilog(demo0())

生成代码如下:

 

DDR

如此生成的代码不会再对when语句声明单独的变量,代码看起来和那些采用Verilog写代码的人毫无差异吧~    

 这对于生层的RTL尽可能减少非必要的信号名称变化。

》genLineComments

更近一步,对于代码生成时采用下面的形式生成:

 

  SpinalConfig(
    nameWhenByFile = false,
    genLineComments = true
  ).generateSystemVerilog(demo0())

 

此时生成的代码风格如下:

DDR

当genLineComments声明为true时,在生成RTL代码中会标注映射对应的SpinalHDL代码行号,这对于初学者在对比生成的RTL代码学习SpinalHDL还是非常的有帮助~

》bitVectorWidthMax

SpinalHDL中对于信号位宽默认是最大不超过4096(Intel DDR校准控制IP里面就有信号位宽就是4096 bit位宽),当设计里定义了信号 位宽超过4096,则会在生成RTL代码时报错,可通过SpianlConfig中的bitVectorWidthMax对最大位宽进行修改:

DDR

DDR







审核编辑:刘清

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分