不可综合语法
(1)task中若不含延迟可以被综合,初始化initial结果不能被综合; (2)#带来的延迟不可被综合 (3)并行快fork join不可被综合 (4)用户自定义原语不可被综合,时间变量time和实数变量real不可被综合 (5)wait event repeat forever等行为级语法不可被综合
多重驱动问题
一个信号的赋值只发生在一个always块中,如果出现在两个always块中就造成了多重驱动。
例如
reg clk,reset;
reg [1:0] out,a,s;
always@(posedge clk)
if(reset)
out=2'b00;
.
.
.
always@(posedge clk)
if(s=2'b11)
out=2'b10;
.
.
.
应该写成
reg clk,reset;
reg [1:0] out,a,s;
always@(posedge clk)
if(reset)
out=2'b00;
else if(s=2'b11)
out=2'b10;
.
.
.