下面这段Verilog代码如何用其它语句化简?
时间:10-02
整理:3721RD
点击:
下面这段Verilog代码如何用其它语句化简?
always @ (posedge clk or negedge rst_n)
if (enable == 1'd1 || oneByteOk == 1'd1) begin
case(Bcnt) //!改长度标记
6'd0:d<=indata[7:0];
6'd1:d<=indata[15:8];
6'd2:d<=indata[23:16];
6'd3:d<=indata[31:24];
6'd4:d<=indata[39:32];
6'd5:d<=indata[47:40];
6'd6:d<=indata[55:48];
6'd7:d<=indata[63:56];
6'd8:d<=indata[71:64];
6'd9:d<=indata[79:72];
6'd10:d<=indata[87:80];
6'd11:d<=indata[95:88];
6'd12:d<=indata[103:96];
6'd13:d<=indata[111:104];
6'd14:d<=indata[119:112];
6'd15:d<=indata[127:120];
default: d <= 8'h00;
endcase
现在15行还好,要是150行的话我该怎么办?
还请各位前辈赐教!
always @ (posedge clk or negedge rst_n)
if (enable == 1'd1 || oneByteOk == 1'd1) begin
case(Bcnt) //!改长度标记
6'd0:d<=indata[7:0];
6'd1:d<=indata[15:8];
6'd2:d<=indata[23:16];
6'd3:d<=indata[31:24];
6'd4:d<=indata[39:32];
6'd5:d<=indata[47:40];
6'd6:d<=indata[55:48];
6'd7:d<=indata[63:56];
6'd8:d<=indata[71:64];
6'd9:d<=indata[79:72];
6'd10:d<=indata[87:80];
6'd11:d<=indata[95:88];
6'd12:d<=indata[103:96];
6'd13:d<=indata[111:104];
6'd14:d<=indata[119:112];
6'd15:d<=indata[127:120];
default: d <= 8'h00;
endcase
现在15行还好,要是150行的话我该怎么办?
还请各位前辈赐教!
always @ (posedge clk or negedge rst_n)
if (enable == 1'd1 || oneByteOk == 1'd1) begin
d_tmp <= indata >> {bcnt,3'h0};
end
assign d = d_tmp[7:0];
学到了,谢谢您!
