anchor.diff:  
      rule doFCVT_LU_S ( validReq && isFCVT_LU_S );
         FSingle f = sV1;
  -      match {.v, .e} = Tuple2#(UInt#(64),FloatingPoint::Exception)'(vFloatToFixed( 6'd0, f,rmd ));
  +
  +      // Handle negative operands separately. Pass the absolute value to the
  +      // converter
  +      FSingle absf = f; absf.sign = False;
  +      match {.v, .e} = Tuple2#(UInt#(64),FloatingPoint::Exception)'(vFloatToFixed( 6'd0, absf,rmd ));
  +
  +      // Extra work if the operand is negative. The original convert function
  +      // prioritizes the sign of the operand before inexact checks
  +      if (f.sign) begin
  +         // Result is zero
  +         v = 0;
  +         // No exceptions were signalled, signal invalid exception, otherwise
  +         // let original exception remain
  +         if (pack (e) == 0)
  +            e.invalid_op = True;
  +      end
  +
  +      // Handle infinity and NaNs
  +      if (   (isNaN (f))
  +          || (!(f.sign) && (isInfinity (f)))) 
  +         v = 64'hffffffffffffffff;
  +
         Bit #(64) res = ( pack (v) );
         let fcsr = exception_to_fcsr(e);
         fa_driveResponse (res, fcsr);
  
positive.code:    rule doFCVT_L_S ( validReq && isFCVT_L_S );
        FSingle f = sV1;
        match {.v, .e} = Tuple2#(Int#(64),FloatingPoint::Exception)'(vFloatToFixed( 6'd0, f, rmd));
        Bit #(64) res = ( pack (v) );
        let fcsr = exception_to_fcsr(e);
        fa_driveResponse (res, fcsr);
  
negative.code: 
     rule doFCVT_LU_D ( validReq && isFCVT_LU_D );
        FDouble f = dV1;
  
        // Handle negative operands separately. Pass the absolute value to the
        // converter
        FDouble absf = f; absf.sign = False;
        match {.v, .e} = Tuple2#(UInt#(64),FloatingPoint::Exception)'(vFloatToFixed( 6'd0, absf,rmd ));
  
        // Extra work if the operand is negative. The original convert function
        // prioritizes the sign of the operand before inexact checks
        if (f.sign) begin
           // Result is zero
           v = 0;
           // No exceptions were signalled, signal invalid exception, otherwise
           // let original exception remain
           if (pack (e) == 0)
              e.invalid_op = True;
        end
  
        // Handle infinity and NaNs
        if (   (isNaN (f))
            || (!(f.sign) && (isInfinity (f)))) 
           v = 64'hffffffffffffffff;
  
        Bit #(64) res = pack (v);
        let fcsr    = exception_to_fcsr(e);
        fa_driveResponse (res, fcsr);
  