From 320b1a7a89fa6ab4ac950a541c8ba3b62173685d Mon Sep 17 00:00:00 2001 From: Cedar Turek <cturek@g.hmc.edu> Date: Fri, 30 Dec 2022 11:01:02 -0800 Subject: [PATCH] Described internal signals of fdivsqrt top --- pipelined/src/fpu/fdivsqrt/fdivsqrt.sv | 30 ++++++++++++++------------ 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/pipelined/src/fpu/fdivsqrt/fdivsqrt.sv b/pipelined/src/fpu/fdivsqrt/fdivsqrt.sv index d6f382892..7538c48ef 100644 --- a/pipelined/src/fpu/fdivsqrt/fdivsqrt.sv +++ b/pipelined/src/fpu/fdivsqrt/fdivsqrt.sv @@ -57,23 +57,25 @@ module fdivsqrt( ); // Floating-point division and square root module, with optional integer division and remainder + // Computes X/Y, sqrt(X), A/B, or A%B - logic [`DIVb+3:0] WS, WC; - logic [`DIVb+3:0] X; - logic [`DIVb-1:0] D; - logic [`DIVb-1:0] DPreproc; - logic [`DIVb:0] FirstU, FirstUM; - logic [`DIVb+1:0] FirstC; - logic Firstun; - logic WZeroE; - logic SpecialCaseM; - logic DivStartE; + logic [`DIVb+3:0] WS, WC; // Partial remainder components + logic [`DIVb+3:0] X; // Iterator Initial Value (from dividend) + logic [`DIVb-1:0] DPreproc, D; // Iterator Divisor + logic [`DIVb:0] FirstU, FirstUM; // Intermediate result values + logic [`DIVb+1:0] FirstC; // Step tracker + logic Firstun; // Quotient selection + logic WZeroE; // Early termination flag + logic SpecialCaseM; // Divide by zero, square root of negative, etc. + logic DivStartE; // Enable signal for flops during stall // Integer div/rem signals - logic AZeroM, BZeroM, AZeroE, BZeroE, MDUM; - logic [`DIVBLEN:0] nE, nM, mM; - logic NegQuotM, ALTBM, AsM, W64M; - logic [`XLEN-1:0] AM; + logic AZeroE, BZeroE; // Numerator/Denominator is zero (Execute) + logic AZeroM, BZeroM; // Numerator/Denominator is zero (Memory) + logic MDUM; // Integer operation + logic [`DIVBLEN:0] nE, nM, mM; // Shift amounts + logic NegQuotM, ALTBM, AsM, W64M; // Special handling for postprocessor + logic [`XLEN-1:0] AM; // Original Numerator for postprocessor fdivsqrtpreproc fdivsqrtpreproc( // Preprocessor // Inputs