各位大佬好啊,讨论一个问题代码如下:
第一种情况是使用IF ELSE语句 这样有优先级如下代码:
always @(posedge clk)
begin
if(!rst_n)
begin
addr <= 0 ;
end
else
begin
if(ce1 == 1'b1)
begin
addr <= 8'd1 ;
end
else if(ce2 == 1'b1)
begin
addr <= 8'd2 ;
end
else if(ce3 == 1'b1)
begin
addr <= 8'd3 ;
end
else if(ce4 == 1'b1)
begin
addr <= 8'd4 ;
end
else if(en == 1'b1)
begin
addr <= addr + 8'd1 ;
end
else ;
end
end
endmodule
第二种情况是:在always里面使用几个平行的 if else 代码如下:
always @(posedge clk)
begin
if(!rst_n)
begin
addr <= 0 ;
end
else
begin
if(ce1 == 1'b1)
begin
addr <= 8'd1 ;
end
else if(en == 1'b1)
begin
addr <= addr + 8'd1 ;
end
else ;
end
if(!rst_n)
begin
addr <= 0 ;
end
else
begin
if(ce2 == 1'b1)
begin
addr <= 8'd2 ;
end
else if(en == 1'b1)
begin
addr <= addr + 8'd1 ;
end
else ;
end
if(!rst_n)
begin
addr <= 0 ;
end
else
begin
if(ce3 == 1'b1)
begin
addr <= 8'd3 ;
end
else if(en == 1'b1)
begin
addr <= addr + 8'd1 ;
end
else ;
end
if(!rst_n)
begin
addr <= 0 ;
end
else
begin
if(ce4 == 1'b1)
begin
addr <= 8'd4 ;
end
else if(en == 1'b1)
begin
addr <= addr + 8'd1 ;
end
else ;
end