mirror of
				https://github.com/openhwgroup/cvw
				synced 2025-02-11 06:05:49 +00:00 
			
		
		
		
	Merge branch 'main' of github.com:davidharrishmc/riscv-wally into main
This commit is contained in:
		
						commit
						851335ac98
					
				@ -22,3 +22,6 @@ add wave -group {Divide} -noupdate /testbenchfp/srtradix4/*
 | 
			
		||||
add wave -group {Divide} -noupdate /testbenchfp/srtradix4/qsel4/*
 | 
			
		||||
add wave -group {Divide} -noupdate /testbenchfp/srtradix4/otfc4/*
 | 
			
		||||
add wave -group {Divide} -noupdate /testbenchfp/srtradix4/preproc/*
 | 
			
		||||
add wave -group {Divide} -noupdate /testbenchfp/srtradix4/divcounter/*
 | 
			
		||||
add wave -group {Testbench} -noupdate /testbenchfp/*
 | 
			
		||||
add wave -group {Testbench} -noupdate /testbenchfp/readvectors/*
 | 
			
		||||
 | 
			
		||||
@ -164,7 +164,57 @@ module qsel4 (
 | 
			
		||||
	// Wmsbs = |        |
 | 
			
		||||
 | 
			
		||||
	logic [3:0] QSel4[1023:0];
 | 
			
		||||
	initial $readmemh("../srt/qsel4.dat", QSel4);
 | 
			
		||||
 | 
			
		||||
  initial begin 
 | 
			
		||||
    integer d, w, i, w2;
 | 
			
		||||
    for(d=0; d<8; d++)
 | 
			
		||||
      for(w=0; w<128; w++)begin
 | 
			
		||||
        i = d*128+w;
 | 
			
		||||
        w2 = w-128*(w>=64); // convert to two's complement
 | 
			
		||||
        case(d)
 | 
			
		||||
          0: if($signed(w2)>=$signed(12))      QSel4[i] = 4'b1000;
 | 
			
		||||
            else if(w2>=4)   QSel4[i] = 4'b0100; 
 | 
			
		||||
            else if(w2>=-4)  QSel4[i] = 4'b0000; 
 | 
			
		||||
            else if(w2>=-13) QSel4[i] = 4'b0010; 
 | 
			
		||||
            else            QSel4[i] = 4'b0001; 
 | 
			
		||||
          1: if(w2>=14)      QSel4[i] = 4'b1000;
 | 
			
		||||
            else if(w2>=4)   QSel4[i] = 4'b0100; 
 | 
			
		||||
            else if(w2>=-6)  QSel4[i] = 4'b0000; 
 | 
			
		||||
            else if(w2>=-15) QSel4[i] = 4'b0010; 
 | 
			
		||||
            else            QSel4[i] = 4'b0001; 
 | 
			
		||||
          2: if(w2>=15)      QSel4[i] = 4'b1000;
 | 
			
		||||
            else if(w2>=4)   QSel4[i] = 4'b0100; 
 | 
			
		||||
            else if(w2>=-6)  QSel4[i] = 4'b0000; 
 | 
			
		||||
            else if(w2>=-16) QSel4[i] = 4'b0010; 
 | 
			
		||||
            else            QSel4[i] = 4'b0001; 
 | 
			
		||||
          3: if(w2>=16)      QSel4[i] = 4'b1000;
 | 
			
		||||
            else if(w2>=4)   QSel4[i] = 4'b0100; 
 | 
			
		||||
            else if(w2>=-6)  QSel4[i] = 4'b0000; 
 | 
			
		||||
            else if(w2>=-18) QSel4[i] = 4'b0010; 
 | 
			
		||||
            else            QSel4[i] = 4'b0001; 
 | 
			
		||||
          4: if(w2>=18)      QSel4[i] = 4'b1000;
 | 
			
		||||
            else if(w2>=6)   QSel4[i] = 4'b0100; 
 | 
			
		||||
            else if(w2>=-8)  QSel4[i] = 4'b0000; 
 | 
			
		||||
            else if(w2>=-20) QSel4[i] = 4'b0010; 
 | 
			
		||||
            else            QSel4[i] = 4'b0001; 
 | 
			
		||||
          5: if(w2>=20)      QSel4[i] = 4'b1000;
 | 
			
		||||
            else if(w2>=6)   QSel4[i] = 4'b0100; 
 | 
			
		||||
            else if(w2>=-8)  QSel4[i] = 4'b0000; 
 | 
			
		||||
            else if(w2>=-20) QSel4[i] = 4'b0010; 
 | 
			
		||||
            else            QSel4[i] = 4'b0001; 
 | 
			
		||||
          6: if(w2>=20)      QSel4[i] = 4'b1000;
 | 
			
		||||
            else if(w2>=8)   QSel4[i] = 4'b0100; 
 | 
			
		||||
            else if(w2>=-8)  QSel4[i] = 4'b0000; 
 | 
			
		||||
            else if(w2>=-22) QSel4[i] = 4'b0010; 
 | 
			
		||||
            else            QSel4[i] = 4'b0001; 
 | 
			
		||||
          7: if(w2>=24)      QSel4[i] = 4'b1000;
 | 
			
		||||
            else if(w2>=8)   QSel4[i] = 4'b0100; 
 | 
			
		||||
            else if(w2>=-8)  QSel4[i] = 4'b0000; 
 | 
			
		||||
            else if(w2>=-24) QSel4[i] = 4'b0010; 
 | 
			
		||||
            else            QSel4[i] = 4'b0001; 
 | 
			
		||||
        endcase
 | 
			
		||||
      end
 | 
			
		||||
  end
 | 
			
		||||
	assign q = QSel4[{Dmsbs,Wmsbs}];
 | 
			
		||||
	
 | 
			
		||||
endmodule
 | 
			
		||||
 | 
			
		||||
@ -899,7 +899,7 @@ module readvectors (
 | 
			
		||||
 | 
			
		||||
  // apply test vectors on rising edge of clk
 | 
			
		||||
  // Format of vectors Inputs(1/2/3)_AnsFlg
 | 
			
		||||
  always @(TestNum) begin
 | 
			
		||||
  always @(VectorNum) begin
 | 
			
		||||
    #1; 
 | 
			
		||||
    AnsFlg = TestVector[4:0];
 | 
			
		||||
    DivStart = 1'b0;
 | 
			
		||||
@ -971,6 +971,7 @@ module readvectors (
 | 
			
		||||
            X = TestVector[8+3*(`Q_LEN)-1:8+2*(`Q_LEN)];
 | 
			
		||||
            Y = TestVector[8+2*(`Q_LEN)-1:8+(`Q_LEN)];
 | 
			
		||||
            Ans = TestVector[8+(`Q_LEN-1):8];
 | 
			
		||||
            if (~clk) #5;
 | 
			
		||||
            DivStart = 1'b1; #10 // one clk cycle
 | 
			
		||||
            DivStart = 1'b0;
 | 
			
		||||
          end
 | 
			
		||||
@ -978,6 +979,7 @@ module readvectors (
 | 
			
		||||
            X = {{`FLEN-`D_LEN{1'b1}}, TestVector[8+3*(`D_LEN)-1:8+2*(`D_LEN)]};
 | 
			
		||||
            Y = {{`FLEN-`D_LEN{1'b1}}, TestVector[8+2*(`D_LEN)-1:8+(`D_LEN)]};
 | 
			
		||||
            Ans = {{`FLEN-`D_LEN{1'b1}}, TestVector[8+(`D_LEN-1):8]};
 | 
			
		||||
            if (~clk) #5;
 | 
			
		||||
            DivStart = 1'b1; #10
 | 
			
		||||
            DivStart = 1'b0;
 | 
			
		||||
          end
 | 
			
		||||
@ -985,6 +987,7 @@ module readvectors (
 | 
			
		||||
            X = {{`FLEN-`S_LEN{1'b1}}, TestVector[8+3*(`S_LEN)-1:8+2*(`S_LEN)]};
 | 
			
		||||
            Y = {{`FLEN-`S_LEN{1'b1}}, TestVector[8+2*(`S_LEN)-1:8+1*(`S_LEN)]};
 | 
			
		||||
            Ans = {{`FLEN-`S_LEN{1'b1}}, TestVector[8+(`S_LEN-1):8]};
 | 
			
		||||
            if (~clk) #5;
 | 
			
		||||
            DivStart = 1'b1; #10
 | 
			
		||||
            DivStart = 1'b0;
 | 
			
		||||
          end
 | 
			
		||||
@ -992,6 +995,7 @@ module readvectors (
 | 
			
		||||
            X = {{`FLEN-`H_LEN{1'b1}}, TestVector[8+3*(`H_LEN)-1:8+2*(`H_LEN)]};
 | 
			
		||||
            Y = {{`FLEN-`H_LEN{1'b1}}, TestVector[8+2*(`H_LEN)-1:8+(`H_LEN)]};
 | 
			
		||||
            Ans = {{`FLEN-`H_LEN{1'b1}}, TestVector[8+(`H_LEN-1):8]};
 | 
			
		||||
            if (~clk) #5;
 | 
			
		||||
            DivStart = 1'b1; #10
 | 
			
		||||
            DivStart = 1'b0;
 | 
			
		||||
          end
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user