[GL] 多条件下尽量使用 case 语句,不使用嵌套 If-else if-else if 语句
多条件组合逻辑可以用case语句描述,也可以用if-else if嵌套描述。使用case比if要快,两者占用内存差不多。
模拟速度较慢的写法
if (sel == 3'd0) y = i[0];
else if (sel == 3'd1) y = i[1];
else if (sel == 3'd2) y = i[2];
else if (sel == 3'd3) y = i[3];
else if (sel == 3'd4) y = i[4];
else if (sel == 3'd5) y = i[5];
else if (sel == 3'd6) y = i[6];
else if (sel == 3'd7) y = i[7];
模拟速度较快的写法
always @(i or sel)
case (sel)
3'd0: y = i[0];
3'd1: y = i[1];
3'd2: y = i[2];
3'd3: y = i[3];
3'd4: y = i[4];
3'd5: y = i[5];
3'd6: y = i[6];
3'd7: y = i[7];
endcase
always @(posedge clk) begin
b <= a;
c <= b;
d <= c;
e <= d;
end
就不要写成
always @(posedge clk) begin
b <= a;
end
always @(posedge clk) begin
c <= b;
end
always @(posedge clk) begin
d <= c;
end
always @(posedge clk) begin
e <= d;
end