|
生成块语句有三种形式:循环生成,条件生成,Case生成。
循环生成可以用一个语句来完成对所有类似语句的生成,那条件生成和Case生成有什么用呢?
我看的是Verilog教材是Samir Palnitkar的,里面的关于条件生成块的例句是这样的:
...//声明略去,一个参数化乘法器,a0_width和a1_width是参数,值都为8,product 16位,a0,a1 8位
generate
if (a0_width<8)||(a1_width<8)
cla_multiplier #(a0_width,a1_width) m0 (product,a0,a1);
else
tree_multiplier #(a0_width,a1_width) m0 (product,a0,a1);
endgenerate
关于上面这段代码,这个#()代表的是什么?是延迟吗?在这里生成块是什么意思?在书上对那条语句解释说“不能在实例引用时通过传递参数语句,即#(参数1,参数2..)的方法修改”这句话是什么意思? |
|