Chisel 如何在凿子中使用参数化模块生成Verilog代码?

Chisel 如何在凿子中使用参数化模块生成Verilog代码?,chisel,Chisel,凿子中的以下模块定义: class Mux2 (width: Int = 4) extends Module 不会导致参数化的Verilog模块。生成的Verilog RTL将替换用户实例化模块时使用的参数值 有没有办法用实际的参数化模块定义生成Verilog module Mux2 #(parameter width = 4) 如果没有办法做到这一点,这将是一个非常有用的功能添加。不幸的是,这可能是一个不可能添加的功能。凿子实际上只是一个硬件原语的Scala库,它使您能够编写Scala程序

凿子中的以下模块定义:

class Mux2 (width: Int = 4) extends Module
不会导致参数化的Verilog模块。生成的Verilog RTL将替换用户实例化模块时使用的参数值

有没有办法用实际的参数化模块定义生成Verilog

module Mux2 #(parameter width = 4)

如果没有办法做到这一点,这将是一个非常有用的功能添加。

不幸的是,这可能是一个不可能添加的功能。凿子实际上只是一个硬件原语的Scala库,它使您能够编写Scala程序来阐述电路。凿子生成器的参数化是任意的Scala代码,在一般情况下不可能映射到Verilog结构。事实上,凿子的主要用途是使设计师能够使用[synthesizable]Verilog中不存在的这些高级结构(例如面向对象编程、函数式编程)