SpinalHDL中可以在一个class(extends Component )中定义任意多个Area
Area定义的逻辑可以认为是内嵌到class的另一个“class”,更方便简洁
ClockingArea是一种特殊的Area
不定义时钟是会有一个默认的时钟(包括clk和rst两个信号)
手动添加的话需要手动定义,例化
Area另外一个特性便是可以在Component代码实现里将代码按模块放置在Area里进行按功能分类,而在生成Verilog时定义在Area中的变量也会加上Area的前缀,如此可以在仿真或上板抓线时方便的进行信号提取。
apply的妙用:
用括号传递给变量(对象)一个或多个参数时,Scala 会把它转换成对 apply 方法的调用。