Fix width warnings in A instruction decode, add don't-care to bus rdata picking logic
This commit is contained in:
		
							parent
							
								
									116e34df49
								
							
						
					
					
						commit
						7d2fa6a049
					
				|  | @ -862,7 +862,8 @@ always @ (*) begin | |||
| 		{MEMOP_LBU , 2'b01}: m_rdata_pick_sext = {{24{1'b0           }}, bus_rdata_d[15: 8]}; | ||||
| 		{MEMOP_LBU , 2'b10}: m_rdata_pick_sext = {{24{1'b0           }}, bus_rdata_d[23:16]}; | ||||
| 		{MEMOP_LBU , 2'b11}: m_rdata_pick_sext = {{24{1'b0           }}, bus_rdata_d[31:24]}; | ||||
| 		default:             m_rdata_pick_sext = bus_rdata_d; | ||||
| 		{MEMOP_LW  , 2'bzz}: m_rdata_pick_sext = bus_rdata_d; | ||||
| 		default:             m_rdata_pick_sext = 32'hxxxx_xxxx; | ||||
| 	endcase | ||||
| 
 | ||||
| 	if (|EXTENSION_A && xm_memop == MEMOP_SC_W) begin | ||||
|  |  | |||
|  | @ -244,17 +244,17 @@ always @ (*) begin | |||
| 	RV_REM:       if (EXTENSION_M) begin d_aluop = ALUOP_MULDIV; d_mulop = M_OP_REM;    end else begin d_invalid_32bit = 1'b1; end | ||||
| 	RV_REMU:      if (EXTENSION_M) begin d_aluop = ALUOP_MULDIV; d_mulop = M_OP_REMU;   end else begin d_invalid_32bit = 1'b1; end | ||||
| 
 | ||||
| 	RV_LR_W:      if (EXTENSION_A) begin d_imm = X0; d_alusrc_b = ALUSRCB_IMM; d_rs2 = X0; d_memop = MEMOP_LR_W;      end else begin d_invalid_32bit = 1'b1; end | ||||
| 	RV_SC_W:      if (EXTENSION_A) begin d_imm = X0; d_alusrc_b = ALUSRCB_IMM;             d_memop = MEMOP_SC_W;      end else begin d_invalid_32bit = 1'b1; end | ||||
| 	RV_AMOSWAP_W: if (EXTENSION_A) begin d_imm = X0; d_alusrc_b = ALUSRCB_IMM;             d_memop = MEMOP_AMOSWAP_W; end else begin d_invalid_32bit = 1'b1; end | ||||
| 	RV_AMOADD_W:  if (EXTENSION_A) begin d_imm = X0; d_alusrc_b = ALUSRCB_IMM;             d_memop = MEMOP_AMOADD_W;  end else begin d_invalid_32bit = 1'b1; end | ||||
| 	RV_AMOXOR_W:  if (EXTENSION_A) begin d_imm = X0; d_alusrc_b = ALUSRCB_IMM;             d_memop = MEMOP_AMOXOR_W;  end else begin d_invalid_32bit = 1'b1; end | ||||
| 	RV_AMOAND_W:  if (EXTENSION_A) begin d_imm = X0; d_alusrc_b = ALUSRCB_IMM;             d_memop = MEMOP_AMOAND_W;  end else begin d_invalid_32bit = 1'b1; end | ||||
| 	RV_AMOOR_W:   if (EXTENSION_A) begin d_imm = X0; d_alusrc_b = ALUSRCB_IMM;             d_memop = MEMOP_AMOOR_W;   end else begin d_invalid_32bit = 1'b1; end | ||||
| 	RV_AMOMIN_W:  if (EXTENSION_A) begin d_imm = X0; d_alusrc_b = ALUSRCB_IMM;             d_memop = MEMOP_AMOMIN_W;  end else begin d_invalid_32bit = 1'b1; end | ||||
| 	RV_AMOMAX_W:  if (EXTENSION_A) begin d_imm = X0; d_alusrc_b = ALUSRCB_IMM;             d_memop = MEMOP_AMOMAX_W;  end else begin d_invalid_32bit = 1'b1; end | ||||
| 	RV_AMOMINU_W: if (EXTENSION_A) begin d_imm = X0; d_alusrc_b = ALUSRCB_IMM;             d_memop = MEMOP_AMOMINU_W; end else begin d_invalid_32bit = 1'b1; end | ||||
| 	RV_AMOMAXU_W: if (EXTENSION_A) begin d_imm = X0; d_alusrc_b = ALUSRCB_IMM;             d_memop = MEMOP_AMOMAXU_W; end else begin d_invalid_32bit = 1'b1; end | ||||
| 	RV_LR_W:      if (EXTENSION_A) begin d_rs2 = X0;                                       d_memop = MEMOP_LR_W;      end else begin d_invalid_32bit = 1'b1; end | ||||
| 	RV_SC_W:      if (EXTENSION_A) begin d_imm = {W_DATA{1'b0}}; d_alusrc_b = ALUSRCB_IMM; d_memop = MEMOP_SC_W;      end else begin d_invalid_32bit = 1'b1; end | ||||
| 	RV_AMOSWAP_W: if (EXTENSION_A) begin d_imm = {W_DATA{1'b0}}; d_alusrc_b = ALUSRCB_IMM; d_memop = MEMOP_AMOSWAP_W; end else begin d_invalid_32bit = 1'b1; end | ||||
| 	RV_AMOADD_W:  if (EXTENSION_A) begin d_imm = {W_DATA{1'b0}}; d_alusrc_b = ALUSRCB_IMM; d_memop = MEMOP_AMOADD_W;  end else begin d_invalid_32bit = 1'b1; end | ||||
| 	RV_AMOXOR_W:  if (EXTENSION_A) begin d_imm = {W_DATA{1'b0}}; d_alusrc_b = ALUSRCB_IMM; d_memop = MEMOP_AMOXOR_W;  end else begin d_invalid_32bit = 1'b1; end | ||||
| 	RV_AMOAND_W:  if (EXTENSION_A) begin d_imm = {W_DATA{1'b0}}; d_alusrc_b = ALUSRCB_IMM; d_memop = MEMOP_AMOAND_W;  end else begin d_invalid_32bit = 1'b1; end | ||||
| 	RV_AMOOR_W:   if (EXTENSION_A) begin d_imm = {W_DATA{1'b0}}; d_alusrc_b = ALUSRCB_IMM; d_memop = MEMOP_AMOOR_W;   end else begin d_invalid_32bit = 1'b1; end | ||||
| 	RV_AMOMIN_W:  if (EXTENSION_A) begin d_imm = {W_DATA{1'b0}}; d_alusrc_b = ALUSRCB_IMM; d_memop = MEMOP_AMOMIN_W;  end else begin d_invalid_32bit = 1'b1; end | ||||
| 	RV_AMOMAX_W:  if (EXTENSION_A) begin d_imm = {W_DATA{1'b0}}; d_alusrc_b = ALUSRCB_IMM; d_memop = MEMOP_AMOMAX_W;  end else begin d_invalid_32bit = 1'b1; end | ||||
| 	RV_AMOMINU_W: if (EXTENSION_A) begin d_imm = {W_DATA{1'b0}}; d_alusrc_b = ALUSRCB_IMM; d_memop = MEMOP_AMOMINU_W; end else begin d_invalid_32bit = 1'b1; end | ||||
| 	RV_AMOMAXU_W: if (EXTENSION_A) begin d_imm = {W_DATA{1'b0}}; d_alusrc_b = ALUSRCB_IMM; d_memop = MEMOP_AMOMAXU_W; end else begin d_invalid_32bit = 1'b1; end | ||||
| 
 | ||||
| 	RV_SH1ADD:    if (EXTENSION_ZBA) begin d_aluop = ALUOP_SH1ADD;                                                        end else begin d_invalid_32bit = 1'b1; end | ||||
| 	RV_SH2ADD:    if (EXTENSION_ZBA) begin d_aluop = ALUOP_SH2ADD;                                                        end else begin d_invalid_32bit = 1'b1; end | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue