以下内容依据2015-7-10版的Chisel 2.2 Tutorial整理
我们可以把一些重复的逻辑定义为函数,然后在多处使用,例如:如下定义了一个简单的函数:
def clb(a:UInt, b:UInt, c:UInt, d:UInt) = (a & b) | (~c & d)
函数clb有四个参数a、b、c、d,此处的def是Scala中定义的关键字,用来定义函数,每个参数后面跟一个冒号,然后是数据类型。在参数之后定义返回类型,也可以不定义,Chisel会自动推测,上例中就没有定义返回类型。等号之后的就是函数体。函数定义之后,其使用方法如下:
val out = clb(a, b, c, d)