mirror of
				https://github.com/openhwgroup/cvw
				synced 2025-02-11 06:05:49 +00:00 
			
		
		
		
	Removed unnecessary configuration conditions from subwordread sign extension/NaN boxing
This commit is contained in:
		
							parent
							
								
									c20bc13ead
								
							
						
					
					
						commit
						fde4832642
					
				@ -85,19 +85,10 @@ module subwordread
 | 
			
		||||
    always_comb
 | 
			
		||||
    case(Funct3M)
 | 
			
		||||
      3'b000:  ReadDataM = {{`LLEN-8{ByteM[7]}}, ByteM};                              // lb
 | 
			
		||||
      3'b001:  if(`ZFH_SUPPORTED) 
 | 
			
		||||
                    ReadDataM = {{`LLEN-16{HalfwordM[15]|FpLoadStoreM}}, HalfwordM[15:0]}; // lh/flh
 | 
			
		||||
               else ReadDataM = {{`LLEN-16{HalfwordM[15]}}, HalfwordM[15:0]};         // lh 
 | 
			
		||||
      3'b010:  if(`F_SUPPORTED) 
 | 
			
		||||
                    ReadDataM = {{`LLEN-32{WordM[31]|FpLoadStoreM}}, WordM[31:0]};         // lw/flw
 | 
			
		||||
               else ReadDataM = {{`LLEN-32{WordM[31]}}, WordM[31:0]};                 // lw
 | 
			
		||||
      3'b011:  if(`D_SUPPORTED) 
 | 
			
		||||
                    ReadDataM = {{`LLEN-64{DblWordM[63]|FpLoadStoreM}}, DblWordM[63:0]};   // ld/fld
 | 
			
		||||
               else ReadDataM = {{`LLEN-64{DblWordM[63]}}, DblWordM[63:0]};           // ld/fld
 | 
			
		||||
      3'b100:    if(`Q_SUPPORTED) 
 | 
			
		||||
                    ReadDataM = FpLoadStoreM ? ReadDataWordMuxM : {{`LLEN-8{1'b0}}, ByteM[7:0]}; // lbu/flq
 | 
			
		||||
                 else 
 | 
			
		||||
                    ReadDataM = {{`LLEN-8{1'b0}}, ByteM[7:0]};    // lbu
 | 
			
		||||
      3'b001:  ReadDataM = {{`LLEN-16{HalfwordM[15]|FpLoadStoreM}}, HalfwordM[15:0]}; // lh/flh
 | 
			
		||||
      3'b010:  ReadDataM = {{`LLEN-32{WordM[31]|FpLoadStoreM}}, WordM[31:0]};         // lw/flw
 | 
			
		||||
      3'b011:  ReadDataM = {{`LLEN-64{DblWordM[63]|FpLoadStoreM}}, DblWordM[63:0]};   // ld/fld
 | 
			
		||||
      3'b100:  ReadDataM = FpLoadStoreM ? ReadDataWordMuxM : {{`LLEN-8{1'b0}}, ByteM[7:0]}; // lbu/flq
 | 
			
		||||
      3'b101:  ReadDataM = {{`LLEN-16{1'b0}}, HalfwordM[15:0]};   // lhu
 | 
			
		||||
      3'b110:  ReadDataM = {{`LLEN-32{1'b0}}, WordM[31:0]};       // lwu
 | 
			
		||||
      default: ReadDataM = ReadDataWordMuxM; // Shouldn't happen
 | 
			
		||||
@ -124,12 +115,8 @@ module subwordread
 | 
			
		||||
    always_comb
 | 
			
		||||
    case(Funct3M)
 | 
			
		||||
      3'b000:  ReadDataM = {{`LLEN-8{ByteM[7]}}, ByteM};                              // lb
 | 
			
		||||
      3'b001:  if(`ZFH_SUPPORTED) 
 | 
			
		||||
                    ReadDataM = {{`LLEN-16{HalfwordM[15]|FpLoadStoreM}}, HalfwordM[15:0]}; // lh/flh
 | 
			
		||||
               else ReadDataM = {{`LLEN-16{HalfwordM[15]}}, HalfwordM[15:0]};         // lh 
 | 
			
		||||
      3'b010:  if(`F_SUPPORTED) 
 | 
			
		||||
                    ReadDataM = {{`LLEN-32{ReadDataWordMuxM[31]|FpLoadStoreM}}, ReadDataWordMuxM[31:0]};         // lw/flw
 | 
			
		||||
               else ReadDataM = {{`LLEN-32{ReadDataWordMuxM[31]}}, ReadDataWordMuxM[31:0]};                 // lw
 | 
			
		||||
      3'b001:  ReadDataM = {{`LLEN-16{HalfwordM[15]|FpLoadStoreM}}, HalfwordM[15:0]}; // lh/flh
 | 
			
		||||
      3'b010:  ReadDataM = {{`LLEN-32{ReadDataWordMuxM[31]|FpLoadStoreM}}, ReadDataWordMuxM[31:0]};         // lw/flw
 | 
			
		||||
      3'b011:  ReadDataM = ReadDataWordMuxM;                      // fld
 | 
			
		||||
      3'b100:  ReadDataM = {{`LLEN-8{1'b0}}, ByteM[7:0]};         // lbu
 | 
			
		||||
      3'b101:  ReadDataM = {{`LLEN-16{1'b0}}, HalfwordM[15:0]};   // lhu
 | 
			
		||||
 | 
			
		||||
@ -414,5 +414,6 @@ module wallypipelinedcore (
 | 
			
		||||
      assign FDivBusyE = 0;
 | 
			
		||||
      assign IllegalFPUInstrM = 1;
 | 
			
		||||
      assign SetFflagsM = 0;
 | 
			
		||||
      assign FpLoadStoreM = 0;
 | 
			
		||||
   end
 | 
			
		||||
endmodule
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user