代码为:
module fp_verilog(
clk,rst_n,
fm
);
parameter devide=32'd99;
input clk; //时钟信号
input rst_n; //复位
output fm; //输出 低亮高不亮
wire a;
reg[31:0] cnt;
//assign a=clk||!rst_n;
always @(posedge clk or posedge rst_n)
begin
if(rst_n==1)
cnt<=devide;
else if(cnt==32'd0)
cnt<=devide;
else
cnt<=cnt-32'd1;
end
assign fm=(cnt>=(devide/2))? 1'b0:1'b1;
endmodule[/mw_shl_code]
正确,通过编译
当代码为:
[mw_shl_code=c,true]module fp_verilog(
clk,rst_n,
fm
);
parameter devide=32'd99;
input clk; //时钟信号
input rst_n; //复位
output fm; //输出 低亮高不亮
wire a;
reg[31:0] cnt;
//assign a=clk||!rst_n;
always @(posedge clk or posedge rst_n)
begin
if(cnt==32'd0)
cnt<=devide;
else if(rst_n==1)
cnt<=devide;
else
cnt<=cnt-32'd1;
end
assign fm=(cnt>=(devide/2))? 1'b0:1'b1;
endmodule[/mw_shl_code]
就出现编译错误,两个程序单纯的调换了if判断的顺序,为何always下第一个 if 语句里面的变量为什么一定要是always里的敏感变量呢 |