mirror of
				https://github.com/openhwgroup/cvw
				synced 2025-02-11 06:05:49 +00:00 
			
		
		
		
	Moved X-1 to preproc
This commit is contained in:
		
							parent
							
								
									fe77b5e37b
								
							
						
					
					
						commit
						47d02db2eb
					
				@ -56,7 +56,7 @@ module fdivsqrt(
 | 
				
			|||||||
  logic [`DIVb+3:0]  NextWSN, NextWCN;
 | 
					  logic [`DIVb+3:0]  NextWSN, NextWCN;
 | 
				
			||||||
  logic [`DIVb+3:0]  WS, WC;
 | 
					  logic [`DIVb+3:0]  WS, WC;
 | 
				
			||||||
  logic [`DIVb+3:0] StickyWSA;
 | 
					  logic [`DIVb+3:0] StickyWSA;
 | 
				
			||||||
  logic [`DIVb:0] X;
 | 
					  logic [`DIVb+3:0] X;
 | 
				
			||||||
  logic [`DIVN-2:0]  D; // U0.N-1
 | 
					  logic [`DIVN-2:0]  D; // U0.N-1
 | 
				
			||||||
  logic [`DIVN-2:0] Dpreproc;
 | 
					  logic [`DIVN-2:0] Dpreproc;
 | 
				
			||||||
  logic [`DIVb:0] FirstS, FirstSM, FirstQ, FirstQM;
 | 
					  logic [`DIVb:0] FirstS, FirstSM, FirstQ, FirstQM;
 | 
				
			||||||
 | 
				
			|||||||
@ -38,7 +38,7 @@ module fdivsqrtiter(
 | 
				
			|||||||
  input  logic XZeroE, YZeroE, 
 | 
					  input  logic XZeroE, YZeroE, 
 | 
				
			||||||
  input  logic SqrtE,
 | 
					  input  logic SqrtE,
 | 
				
			||||||
  input  logic SqrtM,
 | 
					  input  logic SqrtM,
 | 
				
			||||||
  input  logic [`DIVb:0] X,
 | 
					  input  logic [`DIVb+3:0] X,
 | 
				
			||||||
  input  logic [`DIVN-2:0] Dpreproc,
 | 
					  input  logic [`DIVN-2:0] Dpreproc,
 | 
				
			||||||
  output logic [`DIVN-2:0]  D, // U0.N-1
 | 
					  output logic [`DIVN-2:0]  D, // U0.N-1
 | 
				
			||||||
  output logic [`DIVb+3:0]  NextWSN, NextWCN,
 | 
					  output logic [`DIVb+3:0]  NextWSN, NextWCN,
 | 
				
			||||||
@ -106,7 +106,7 @@ module fdivsqrtiter(
 | 
				
			|||||||
  assign initC = 0;
 | 
					  assign initC = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // mux2   #(`DIVb+4) wsmux(NextWSN, {3'b0, X}, DivStart, WSN);
 | 
					  // mux2   #(`DIVb+4) wsmux(NextWSN, {3'b0, X}, DivStart, WSN);
 | 
				
			||||||
  mux2   #(`DIVb+4) wsmux(NextWSN, {{3{SqrtE}}, X}, DivStart, WSN);
 | 
					  mux2   #(`DIVb+4) wsmux(NextWSN, X, DivStart, WSN);
 | 
				
			||||||
  flopen   #(`DIVb+4) wsflop(clk, DivStart|DivBusy, WSN, WS[0]);
 | 
					  flopen   #(`DIVb+4) wsflop(clk, DivStart|DivBusy, WSN, WS[0]);
 | 
				
			||||||
  mux2   #(`DIVb+4) wcmux(NextWCN, '0, DivStart, WCN);
 | 
					  mux2   #(`DIVb+4) wcmux(NextWCN, '0, DivStart, WCN);
 | 
				
			||||||
  flopen   #(`DIVb+4) wcflop(clk, DivStart|DivBusy, WCN, WC[0]);
 | 
					  flopen   #(`DIVb+4) wcflop(clk, DivStart|DivBusy, WCN, WC[0]);
 | 
				
			||||||
 | 
				
			|||||||
@ -39,7 +39,7 @@ module fdivsqrtpreproc (
 | 
				
			|||||||
  input  logic Sqrt,
 | 
					  input  logic Sqrt,
 | 
				
			||||||
  input logic XZero,
 | 
					  input logic XZero,
 | 
				
			||||||
  output logic  [`NE+1:0] QeM,
 | 
					  output logic  [`NE+1:0] QeM,
 | 
				
			||||||
  output logic [`DIVb:0] X,
 | 
					  output logic [`DIVb+3:0] X,
 | 
				
			||||||
  output logic [`DIVN-2:0] Dpreproc
 | 
					  output logic [`DIVN-2:0] Dpreproc
 | 
				
			||||||
);
 | 
					);
 | 
				
			||||||
  // logic  [`XLEN-1:0] PosA, PosB;
 | 
					  // logic  [`XLEN-1:0] PosA, PosB;
 | 
				
			||||||
@ -70,7 +70,7 @@ module fdivsqrtpreproc (
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
  assign SqrtX = Xe[0]^XZeroCnt[0] ? {1'b0, ~XZero, PreprocX} : {~XZero, PreprocX, 1'b0};
 | 
					  assign SqrtX = Xe[0]^XZeroCnt[0] ? {1'b0, ~XZero, PreprocX} : {~XZero, PreprocX, 1'b0};
 | 
				
			||||||
  assign X = Sqrt ? {SqrtX, {`DIVb-1-`NF{1'b0}}} : {~XZero, PreprocX, {`DIVb-`NF{1'b0}}};
 | 
					  assign X = Sqrt ? {3'b111, SqrtX, {`DIVb-1-`NF{1'b0}}} : {3'b000, ~XZero, PreprocX, {`DIVb-`NF{1'b0}}};
 | 
				
			||||||
  assign Dpreproc = {PreprocY, {`DIVN-1-`NF{1'b0}}};
 | 
					  assign Dpreproc = {PreprocY, {`DIVN-1-`NF{1'b0}}};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  //           radix 2     radix 4
 | 
					  //           radix 2     radix 4
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user