Put repository of fpdivsqrt with RTL-based adder instead of structural implementation

This commit is contained in:
James E. Stine 2021-06-11 14:35:22 -04:00
parent 49b5fa3994
commit 11c88c15d5
61 changed files with 18560 additions and 0 deletions

View File

@ -0,0 +1,9 @@
module adder_ip #(parameter WIDTH=8)
(input logic [WIDTH-1:0] a, b,
input logic cin,
output logic [WIDTH-1:0] y,
output logic cout);
assign {cout, y} = a + b + cin;
endmodule // adder

View File

@ -0,0 +1,51 @@
// This module takes as inputs two operands (op1 and op2)
// and the result precision (P). Based on the operation and precision,
// it conditionally converts single precision values to double
// precision values and modifies the sign of op1.
// The converted operands are Float1 and Float2.
module convert_inputs(Float1, Float2b, op1, op2, op_type, P);
input logic [63:0] op1; // 1st input operand (A)
input logic [63:0] op2; // 2nd input operand (B)
input logic P; // Result Precision (0 for double, 1 for single)
input logic op_type; // Operation
output logic [63:0] Float1; // Converted 1st input operand
output logic [63:0] Float2b; // Converted 2nd input operand
logic [63:0] Float2;
logic Zexp1; // One if the exponent of op1 is zero
logic Zexp2; // One if the exponent of op2 is zero
logic Oexp1; // One if the exponent of op1 is all ones
logic Oexp2; // One if the exponent of op2 is all ones
// Test if the input exponent is zero, because if it is then the
// exponent of the converted number should be zero.
assign Zexp1 = ~(op1[62] | op1[61] | op1[60] | op1[59] |
op1[58] | op1[57] | op1[56] | op1[55]);
assign Zexp2 = ~(op2[62] | op2[61] | op2[60] | op2[59] |
op2[58] | op2[57] | op2[56] | op2[55]);
assign Oexp1 = (op1[62] & op1[61] & op1[60] & op1[59] &
op1[58] & op1[57] & op1[56] & op1[55]);
assign Oexp2 = (op2[62] & op2[61] & op2[60] & op2[59] &
op2[58] & op2[57] & op2[56] &op2[55]);
// Conditionally convert op1. Lower 29 bits are zero for single precision.
assign Float1[62:29] = P ? {op1[62], {3{(~op1[62]&~Zexp1)|Oexp1}}, op1[61:32]}
: op1[62:29];
assign Float1[28:0] = op1[28:0] & {29{~P}};
// Conditionally convert op2. Lower 29 bits are zero for single precision.
assign Float2[62:29] = P ? {op2[62], {3{(~op2[62]&~Zexp2)|Oexp2}}, op2[61:32]}
: op2[62:29];
assign Float2[28:0] = op2[28:0] & {29{~P}};
// Set the sign of Float1 based on its original sign
assign Float1[63] = op1[63];
assign Float2[63] = op2[63];
// For sqrt, assign Float2 same as Float1 for simplicity
assign Float2b = op_type ? Float1 : Float2;
endmodule // convert_inputs

View File

@ -0,0 +1,301 @@
`timescale 1ps/1ps
module divconv (q1, qm1, qp1, q0, qm0, qp0,
rega_out, regb_out, regc_out, regd_out,
regr_out, d, n,
sel_muxa, sel_muxb, sel_muxr,
reset, clk,
load_rega, load_regb, load_regc, load_regd,
load_regr, load_regs, load_regp,
P, op_type, exp_odd);
input logic [52:0] d, n;
input logic [2:0] sel_muxa, sel_muxb;
input logic sel_muxr;
input logic load_rega, load_regb, load_regc, load_regd;
input logic load_regr, load_regs;
input logic load_regp;
input logic P;
input logic op_type;
input logic exp_odd;
input logic reset;
input logic clk;
output logic [63:0] q1, qp1, qm1;
output logic [63:0] q0, qp0, qm0;
output logic [63:0] rega_out, regb_out, regc_out, regd_out;
output logic [127:0] regr_out;
supply1 vdd;
supply0 vss;
logic [63:0] muxa_out, muxb_out;
logic [10:0] ia_div, ia_sqrt;
logic [63:0] ia_out;
logic [127:0] mul_out;
logic [63:0] q_out1, qm_out1, qp_out1;
logic [63:0] q_out0, qm_out0, qp_out0;
logic [63:0] mcand, mplier, mcand_q;
logic [63:0] twocmp_out;
logic [64:0] three;
logic [127:0] Carry, Carry2;
logic [127:0] Sum, Sum2;
logic [127:0] constant, constant2;
logic [63:0] q_const, qp_const, qm_const;
logic [63:0] d2, n2;
logic [11:0] d3;
// Check if exponent is odd for sqrt
// If exp_odd=1 and sqrt, then M/2 and use ia_addr=0 as IA
assign d2 = (exp_odd&op_type) ? {vss,d,10'h0} : {d,11'h0};
assign n2 = op_type ? d2 : {n,11'h0};
// IA div/sqrt
sbtm ia1 (d[52:41], ia_div);
sbtm2 ia2 (d2[63:52], ia_sqrt);
assign ia_out = op_type ? {ia_sqrt, {53{1'b0}}} : {ia_div, {53{1'b0}}};
// Choose IA or iteration
mux6 #(64) mx1 (d2, ia_out, rega_out, regc_out, regd_out, regb_out, sel_muxb, muxb_out);
mux5 #(64) mx2 (regc_out, n2, ia_out, regb_out, regd_out, sel_muxa, muxa_out);
// Deal with remainder if [0.5, 1) instead of [1, 2)
mux2 #(128) mx3a ({~n, {75{1'b1}}}, {{1'b1}, ~n, {74{1'b1}}}, q1[63], constant2);
// Select Mcand, Remainder/Q''
mux2 #(128) mx3 (128'h0, constant2, sel_muxr, constant);
// Select mcand - remainder should always choose q1 [1,2) because
// adjustment of N in the from XX.FFFFFFF
mux2 #(64) mx4 (q0, q1, q1[63], mcand_q);
mux2 #(64) mx5 (muxb_out, mcand_q, sel_muxr&op_type, mplier);
mux2 #(64) mx6 (muxa_out, mcand_q, sel_muxr, mcand);
// TDM multiplier (carry/save)
multiplier mult1 (mcand, mplier, Sum, Carry);
// Q*D - N (reversed but changed in rounder.v to account for sign reversal)
csa #(128) csa1 (Sum, Carry, constant, Sum2, Carry2);
// Add ulp for subtraction in remainder
mux2 #(1) mx7 (1'b0, 1'b1, sel_muxr, muxr_out);
// Constant for Q''
mux2 #(64) mx8 ({64'h0000_0000_0000_0200}, {64'h0000_0040_0000_0000}, P, q_const);
mux2 #(64) mx9 ({64'h0000_0000_0000_0A00}, {64'h0000_0140_0000_0000}, P, qp_const);
mux2 #(64) mxA ({64'hFFFF_FFFF_FFFF_F9FF}, {64'hFFFF_FF3F_FFFF_FFFF}, P, qm_const);
logic [127:0] Sum_pipe;
logic [127:0] Carry_pipe;
logic muxr_pipe;
logic rega_pipe;
logic regb_pipe;
logic regc_pipe;
logic regd_pipe;
logic regs_pipe;
logic regr_pipe;
logic P_pipe;
logic op_type_pipe;
logic [63:0] q_const_pipe;
logic [63:0] qm_const_pipe;
logic [63:0] qp_const_pipe;
// Pipeline Stage 2 of iteration for Goldschmidt's algorithm
flopenr #(128) regp1 (clk, reset, load_regp, Sum2, Sum_pipe);
flopenr #(128) regp2 (clk, reset, load_regp, Carry2, Carry_pipe);
flopenr #(1) regp3 (clk, reset, load_regp, muxr_out, muxr_pipe);
flopenr #(1) regp4 (clk, reset, load_regp, load_rega, rega_pipe);
flopenr #(1) regp5 (clk, reset, load_regp, load_regb, regb_pipe);
flopenr #(1) regp6 (clk, reset, load_regp, load_regc, regc_pipe);
flopenr #(1) regp7 (clk, reset, load_regp, load_regd, regd_pipe);
flopenr #(1) regp8 (clk, reset, load_regp, load_regs, regs_pipe);
flopenr #(1) regp9 (clk, reset, load_regp, load_regr, regr_pipe);
flopenr #(1) regpA (clk, reset, load_regp, P, P_pipe);
flopenr #(1) regpB (clk, reset, load_regp, op_type, op_type_pipe);
flopenr #(64) regpC (clk, reset, load_regp, q_const, q_const_pipe);
flopenr #(64) regpD (clk, reset, load_regp, qp_const, qp_const_pipe);
flopenr #(64) regpE (clk, reset, load_regp, qm_const, qm_const_pipe);
// CPA (from CSA)/Remainder addition/subtraction
adder_ip #(128) cpa1 (Sum_pipe, Carry_pipe, muxr_pipe, mul_out, cout1);
// ldf128 cpa1 (cout1, mul_out, Sum_pipe, Carry_pipe, muxr_pipe);
// One's complement instead of two's complement (for hw efficiency)
assign three = {~mul_out[126] , mul_out[126], ~mul_out[125:63]};
mux2 #(64) mxTC (~mul_out[126:63], three[64:1], op_type_pipe, twocmp_out);
// Assuming [1,2) - q1
adder_ip #(64) cpa2 (regb_out, q_const_pipe, 1'b0, q_out1, cout2);
adder_ip #(64) cpa3 (regb_out, qp_const_pipe, 1'b0, qp_out1, cout3);
adder_ip #(64) cpa4 (regb_out, qm_const_pipe, 1'b1, qm_out1, cout4);
adder_ip #(64) cpa5 ({regb_out[62:0], vss}, q_const_pipe, 1'b0, q_out0, cout5);
adder_ip #(64) cpa6 ({regb_out[62:0], vss}, qp_const_pipe, 1'b0, qp_out0, cout6);
adder_ip #(64) cpa7 ({regb_out[62:0], vss}, qm_const_pipe, 1'b1, qm_out0, cout7);
//ldf64 cpa2 (cout2, q_out1, regb_out, q_const_pipe, 1'b0);
//ldf64 cpa3 (cout3, qp_out1, regb_out, qp_const_pipe, 1'b0);
//ldf64 cpa4 (cout4, qm_out1, regb_out, qm_const_pipe, 1'b1);
// Assuming [0.5,1) - q0
//ldf64 cpa5 (cout5, q_out0, {regb_out[62:0], vss}, q_const_pipe, 1'b0);
//ldf64 cpa6 (cout6, qp_out0, {regb_out[62:0], vss}, qp_const_pipe, 1'b0);
//ldf64 cpa7 (cout7, qm_out0, {regb_out[62:0], vss}, qm_const_pipe, 1'b1);
// regs
flopenr #(64) regc (clk, reset, regc_pipe, twocmp_out, regc_out);
flopenr #(64) regb (clk, reset, regb_pipe, mul_out[126:63], regb_out);
flopenr #(64) rega (clk, reset, rega_pipe, mul_out[126:63], rega_out);
flopenr #(64) regd (clk, reset, regd_pipe, mul_out[126:63], regd_out);
// remainder
flopenr #(128) regr (clk, reset, regr_pipe, mul_out, regr_out);
// Assuming [1,2)
flopenr #(64) rege (clk, reset, regs_pipe, {q_out1[63:39], (q_out1[38:10] & {29{~P_pipe}}), 10'h0}, q1);
flopenr #(64) regf (clk, reset, regs_pipe, {qm_out1[63:39], (qm_out1[38:10] & {29{~P_pipe}}), 10'h0}, qm1);
flopenr #(64) regg (clk, reset, regs_pipe, {qp_out1[63:39], (qp_out1[38:10] & {29{~P_pipe}}), 10'h0}, qp1);
// Assuming [0,1)
flopenr #(64) regh (clk, reset, regs_pipe, {q_out0[63:39], (q_out0[38:10] & {29{~P_pipe}}), 10'h0}, q0);
flopenr #(64) regj (clk, reset, regs_pipe, {qm_out0[63:39], (qm_out0[38:10] & {29{~P_pipe}}), 10'h0}, qm0);
flopenr #(64) regk (clk, reset, regs_pipe, {qp_out0[63:39], (qp_out0[38:10] & {29{~P_pipe}}), 10'h0}, qp0);
endmodule // divconv
module adder #(parameter WIDTH=8)
(input logic [WIDTH-1:0] a, b,
output logic [WIDTH-1:0] y);
assign y = a + b;
endmodule // adder
module flopenr #(parameter WIDTH = 8)
(input logic clk, reset, en,
input logic [WIDTH-1:0] d,
output logic [WIDTH-1:0] q);
always_ff @(posedge clk, posedge reset)
if (reset) q <= #10 0;
else if (en) q <= #10 d;
endmodule // flopenr
module flopr #(parameter WIDTH = 8)
(input logic clk, reset,
input logic [WIDTH-1:0] d,
output logic [WIDTH-1:0] q);
always_ff @(posedge clk, posedge reset)
if (reset) q <= #10 0;
else q <= #10 d;
endmodule // flopr
module flopenrc #(parameter WIDTH = 8)
(input logic clk, reset, en, clear,
input logic [WIDTH-1:0] d,
output logic [WIDTH-1:0] q);
always_ff @(posedge clk, posedge reset)
if (reset) q <= #10 0;
else if (en)
if (clear) q <= #10 0;
else q <= #10 d;
endmodule // flopenrc
module floprc #(parameter WIDTH = 8)
(input logic clk, reset, clear,
input logic [WIDTH-1:0] d,
output logic [WIDTH-1:0] q);
always_ff @(posedge clk, posedge reset)
if (reset) q <= #10 0;
else
if (clear) q <= #10 0;
else q <= #10 d;
endmodule // floprc
module mux2 #(parameter WIDTH = 8)
(input logic [WIDTH-1:0] d0, d1,
input logic s,
output logic [WIDTH-1:0] y);
assign y = s ? d1 : d0;
endmodule // mux2
module mux3 #(parameter WIDTH = 8)
(input logic [WIDTH-1:0] d0, d1, d2,
input logic [1:0] s,
output logic [WIDTH-1:0] y);
assign y = s[1] ? d2 : (s[0] ? d1 : d0);
endmodule // mux3
module mux4 #(parameter WIDTH = 8)
(input logic [WIDTH-1:0] d0, d1, d2, d3,
input logic [1:0] s,
output logic [WIDTH-1:0] y);
assign y = s[1] ? (s[0] ? d3 : d2) : (s[0] ? d1 : d0);
endmodule // mux4
module mux5 #(parameter WIDTH = 8)
(input logic [WIDTH-1:0] d0, d1, d2, d3, d4,
input logic [2:0] s,
output logic [WIDTH-1:0] y);
always_comb
casez (s)
3'b000 : y = d0;
3'b001 : y = d1;
3'b010 : y = d2;
3'b011 : y = d3;
3'b1?? : y = d4;
endcase // casez (s)
endmodule // mux5
module mux6 #(parameter WIDTH = 8)
(input logic [WIDTH-1:0] d0, d1, d2, d3, d4, d5,
input logic [2:0] s,
output logic [WIDTH-1:0] y);
always_comb
casez (s)
3'b000 : y = d0;
3'b001 : y = d1;
3'b010 : y = d2;
3'b011 : y = d3;
3'b10? : y = d4;
3'b11? : y = d5;
endcase // casez (s)
endmodule // mux6
module eqcmp #(parameter WIDTH = 8)
(input logic [WIDTH-1:0] a, b,
output logic y);
assign y = (a == b);
endmodule // eqcmp
module fa (input logic a, b, c, output logic sum, carry);
assign sum = a^b^c;
assign carry = a&b|a&c|b&c;
endmodule // fa
module csa #(parameter WIDTH=8)
(input logic [WIDTH-1:0] a, b, c,
output logic [WIDTH-1:0] sum, carry);
logic [WIDTH:0] carry_temp;
genvar i;
generate
for (i=0;i<WIDTH;i=i+1)
begin : genbit
fa fa_inst (a[i], b[i], c[i], sum[i], carry_temp[i+1]);
end
endgenerate
assign carry = {1'b0, carry_temp[WIDTH-1:1], 1'b0};
endmodule // csa

View File

@ -0,0 +1,96 @@
// Exception logic for the floating point adder. Note: We may
// actually want to move to where the result is computed.
module exception (Ztype, Invalid, Denorm, ANorm, BNorm, A, B, op_type);
input logic [63:0] A; // 1st input operand (op1)
input logic [63:0] B; // 2nd input operand (op2)
input logic op_type; // Determine operation
output logic [2:0] Ztype; // Indicates type of result (Z)
output logic Invalid; // Invalid operation exception
output logic Denorm; // Denormalized input
output logic ANorm; // A is not zero or Denorm
output logic BNorm; // B is not zero or Denorm
logic AzeroM; // '1' if the mantissa of A is zero
logic BzeroM; // '1' if the mantissa of B is zero
logic AzeroE; // '1' if the exponent of A is zero
logic BzeroE; // '1' if the exponent of B is zero
logic AonesE; // '1' if the exponent of A is all ones
logic BonesE; // '1' if the exponent of B is all ones
logic ADenorm; // '1' if A is a denomalized number
logic BDenorm; // '1' if B is a denomalized number
logic AInf; // '1' if A is infinite
logic BInf; // '1' if B is infinite
logic AZero; // '1' if A is 0
logic BZero; // '1' if B is 0
logic ANaN; // '1' if A is a not-a-number
logic BNaN; // '1' if B is a not-a-number
logic ASNaN; // '1' if A is a signalling not-a-number
logic BSNaN; // '1' if B is a signalling not-a-number
logic ZQNaN; // '1' if result Z is a quiet NaN
logic ZInf; // '1' if result Z is an infnity
logic square_root; // '1' if square root operation
logic Zero; // '1' if result is zero
parameter [51:0] fifty_two_zeros = 52'h0; // Use parameter?
// Determine if mantissas are all zeros
assign AzeroM = (A[51:0] == fifty_two_zeros);
assign BzeroM = (B[51:0] == fifty_two_zeros);
// Determine if exponents are all ones or all zeros
assign AonesE = A[62]&A[61]&A[60]&A[59]&A[58]&A[57]&A[56]&A[55]&A[54]&A[53]&A[52];
assign BonesE = B[62]&B[61]&B[60]&B[59]&B[58]&B[57]&B[56]&B[55]&B[54]&B[53]&B[52];
assign AzeroE = ~(A[62]|A[61]|A[60]|A[59]|A[58]|A[57]|A[56]|A[55]|A[54]|A[53]|A[52]);
assign BzeroE = ~(B[62]|B[61]|B[60]|B[59]|B[58]|B[57]|B[56]|B[55]|B[54]|B[53]|B[52]);
// Determine special cases. Note: Zero is not really a special case.
assign ADenorm = AzeroE & ~AzeroM;
assign BDenorm = BzeroE & ~BzeroM;
assign AInf = AonesE & AzeroM;
assign BInf = BonesE & BzeroM;
assign ANaN = AonesE & ~AzeroM;
assign BNaN = BonesE & ~BzeroM;
assign ASNaN = ANaN & A[50];
assign BSNaN = ANaN & A[50];
assign AZero = AzeroE & AzeroM;
assign BZero = BzeroE & BzeroE;
// A and B are normalized if their exponents are not zero.
assign ANorm = ~AzeroE;
assign BNorm = ~BzeroE;
// An "Invalid Operation" exception occurs if (A or B is a signalling NaN)
// or (A and B are both Infinite)
assign Invalid = ASNaN | BSNaN | (((AInf & BInf) | (AZero & BZero))&~op_type) |
(A[63] & op_type);
// The Denorm flag is set if A is denormlized or if B is normalized
assign Denorm = ADenorm | BDenorm;
// The result is a quiet NaN if (an "Invalid Operation" exception occurs)
// or (A is a NaN) or (B is a NaN).
assign ZQNaN = Invalid | ANaN | BNaN;
// The result is zero
assign Zero = (AZero | BInf)&~op_type | AZero&op_type;
// The result is +Inf if ((A is Inf) or (B is 0)) and (the
// result is not a quiet NaN).
assign ZInf = (AInf | BZero)&~ZQNaN&~op_type | AInf&op_type&~ZQNaN;
// Set the type of the result as follows:
// Ztype Result
// 000 Normal
// 001 Quiet NaN
// 010 Infinity
// 011 Zero
// 110 DivZero
assign Ztype[0] = ZQNaN | Zero;
assign Ztype[1] = ZInf | Zero;
assign Ztype[2] = BZero&~op_type;
endmodule // exception

View File

@ -0,0 +1,56 @@
# Copyright 1991-2016 Mentor Graphics Corporation
#
# Modification by Oklahoma State University
# Use with Testbench
# James Stine, 2008
# Go Cowboys!!!!!!
#
# All Rights Reserved.
#
# THIS WORK CONTAINS TRADE SECRET AND PROPRIETARY INFORMATION
# WHICH IS THE PROPERTY OF MENTOR GRAPHICS CORPORATION
# OR ITS LICENSORS AND IS SUBJECT TO LICENSE TERMS.
# Use this run.do file to run this example.
# Either bring up ModelSim and type the following at the "ModelSim>" prompt:
# do run.do
# or, to run from a shell, type the following at the shell prompt:
# vsim -do run.do -c
# (omit the "-c" to see the GUI while running from the shell)
onbreak {resume}
# create library
if [file exists work] {
vdel -all
}
vlib work
# compile source files
vlog adder_ip.sv mult_R4_64_64_cs.v sbtm_a1.sv sbtm_a0.sv sbtm.sv sbtm_a4.sv sbtm_a5.sv sbtm3.sv fsm.v divconvDP.sv convert_inputs.sv exception.sv rounder.sv fpdiv.sv tb_f32_div_rd.sv
# start and run simulation
vsim -voptargs=+acc work.tb
#view wave
-- display input and output signals as hexidecimal values
# Diplays All Signals recursively
-- Set Wave Output Items
TreeUpdate [SetDefaultTree]
WaveRestoreZoom {0 ps} {75 ns}
configure wave -namecolwidth 150
configure wave -valuecolwidth 100
configure wave -justifyvalue left
configure wave -signalnamewidth 0
configure wave -snapdistance 10
configure wave -datasetprefix 0
configure wave -rowmargin 4
configure wave -childrowmargin 2
-- Run the Simulation
-- 39,052 vectors, 390,565ns
run 9269690000 ns
quit

View File

@ -0,0 +1,56 @@
# Copyright 1991-2016 Mentor Graphics Corporation
#
# Modification by Oklahoma State University
# Use with Testbench
# James Stine, 2008
# Go Cowboys!!!!!!
#
# All Rights Reserved.
#
# THIS WORK CONTAINS TRADE SECRET AND PROPRIETARY INFORMATION
# WHICH IS THE PROPERTY OF MENTOR GRAPHICS CORPORATION
# OR ITS LICENSORS AND IS SUBJECT TO LICENSE TERMS.
# Use this run.do file to run this example.
# Either bring up ModelSim and type the following at the "ModelSim>" prompt:
# do run.do
# or, to run from a shell, type the following at the shell prompt:
# vsim -do run.do -c
# (omit the "-c" to see the GUI while running from the shell)
onbreak {resume}
# create library
if [file exists work] {
vdel -all
}
vlib work
# compile source files
vlog adder_ip.sv mult_R4_64_64_cs.v sbtm_a1.sv sbtm_a0.sv sbtm.sv sbtm_a4.sv sbtm_a5.sv sbtm3.sv fsm.v divconvDP.sv convert_inputs.sv exception.sv rounder.sv fpdiv.sv tb_f32_div_rne.sv
# start and run simulation
vsim -voptargs=+acc work.tb
#view wave
-- display input and output signals as hexidecimal values
# Diplays All Signals recursively
-- Set Wave Output Items
TreeUpdate [SetDefaultTree]
WaveRestoreZoom {0 ps} {75 ns}
configure wave -namecolwidth 150
configure wave -valuecolwidth 100
configure wave -justifyvalue left
configure wave -signalnamewidth 0
configure wave -snapdistance 10
configure wave -datasetprefix 0
configure wave -rowmargin 4
configure wave -childrowmargin 2
-- Run the Simulation
-- 39,052 vectors, 390,565ns
run 9269690000 ns
quit

View File

@ -0,0 +1,56 @@
# Copyright 1991-2016 Mentor Graphics Corporation
#
# Modification by Oklahoma State University
# Use with Testbench
# James Stine, 2008
# Go Cowboys!!!!!!
#
# All Rights Reserved.
#
# THIS WORK CONTAINS TRADE SECRET AND PROPRIETARY INFORMATION
# WHICH IS THE PROPERTY OF MENTOR GRAPHICS CORPORATION
# OR ITS LICENSORS AND IS SUBJECT TO LICENSE TERMS.
# Use this run.do file to run this example.
# Either bring up ModelSim and type the following at the "ModelSim>" prompt:
# do run.do
# or, to run from a shell, type the following at the shell prompt:
# vsim -do run.do -c
# (omit the "-c" to see the GUI while running from the shell)
onbreak {resume}
# create library
if [file exists work] {
vdel -all
}
vlib work
# compile source files
vlog adder_ip.sv mult_R4_64_64_cs.v sbtm_a1.sv sbtm_a0.sv sbtm.sv sbtm_a4.sv sbtm_a5.sv sbtm3.sv fsm.v divconvDP.sv convert_inputs.sv exception.sv rounder.sv fpdiv.sv tb_f32_div_ru.sv
# start and run simulation
vsim -voptargs=+acc work.tb
#view wave
-- display input and output signals as hexidecimal values
# Diplays All Signals recursively
-- Set Wave Output Items
TreeUpdate [SetDefaultTree]
WaveRestoreZoom {0 ps} {75 ns}
configure wave -namecolwidth 150
configure wave -valuecolwidth 100
configure wave -justifyvalue left
configure wave -signalnamewidth 0
configure wave -snapdistance 10
configure wave -datasetprefix 0
configure wave -rowmargin 4
configure wave -childrowmargin 2
-- Run the Simulation
-- 39,052 vectors, 390,565ns
run 9269690000 ns
quit

View File

@ -0,0 +1,56 @@
# Copyright 1991-2016 Mentor Graphics Corporation
#
# Modification by Oklahoma State University
# Use with Testbench
# James Stine, 2008
# Go Cowboys!!!!!!
#
# All Rights Reserved.
#
# THIS WORK CONTAINS TRADE SECRET AND PROPRIETARY INFORMATION
# WHICH IS THE PROPERTY OF MENTOR GRAPHICS CORPORATION
# OR ITS LICENSORS AND IS SUBJECT TO LICENSE TERMS.
# Use this run.do file to run this example.
# Either bring up ModelSim and type the following at the "ModelSim>" prompt:
# do run.do
# or, to run from a shell, type the following at the shell prompt:
# vsim -do run.do -c
# (omit the "-c" to see the GUI while running from the shell)
onbreak {resume}
# create library
if [file exists work] {
vdel -all
}
vlib work
# compile source files
vlog adder_ip.sv mult_R4_64_64_cs.v sbtm_a1.sv sbtm_a0.sv sbtm.sv sbtm_a4.sv sbtm_a5.sv sbtm3.sv fsm.v divconvDP.sv convert_inputs.sv exception.sv rounder.sv fpdiv.sv tb_f32_div_rz.sv
# start and run simulation
vsim -voptargs=+acc work.tb
#view wave
-- display input and output signals as hexidecimal values
# Diplays All Signals recursively
-- Set Wave Output Items
TreeUpdate [SetDefaultTree]
WaveRestoreZoom {0 ps} {75 ns}
configure wave -namecolwidth 150
configure wave -valuecolwidth 100
configure wave -justifyvalue left
configure wave -signalnamewidth 0
configure wave -snapdistance 10
configure wave -datasetprefix 0
configure wave -rowmargin 4
configure wave -childrowmargin 2
-- Run the Simulation
-- 39,052 vectors, 390,565ns
run 9269690000 ns
quit

View File

@ -0,0 +1,55 @@
# Copyright 1991-2016 Mentor Graphics Corporation
#
# Modification by Oklahoma State University
# Use with Testbench
# James Stine, 2008
# Go Cowboys!!!!!!
#
# All Rights Reserved.
#
# THIS WORK CONTAINS TRADE SECRET AND PROPRIETARY INFORMATION
# WHICH IS THE PROPERTY OF MENTOR GRAPHICS CORPORATION
# OR ITS LICENSORS AND IS SUBJECT TO LICENSE TERMS.
# Use this run.do file to run this example.
# Either bring up ModelSim and type the following at the "ModelSim>" prompt:
# do run.do
# or, to run from a shell, type the following at the shell prompt:
# vsim -do run.do -c
# (omit the "-c" to see the GUI while running from the shell)
onbreak {resume}
# create library
if [file exists work] {
vdel -all
}
vlib work
# compile source files
vlog adder_ip.sv mult_R4_64_64_cs.v sbtm_a1.sv sbtm_a0.sv sbtm.sv sbtm_a4.sv sbtm_a5.sv sbtm3.sv fsm.v divconvDP.sv convert_inputs.sv exception.sv rounder.sv fpdiv.sv tb_f32_sqrt_rd.sv
# start and run simulation
vsim -voptargs=+acc work.tb
#view wave
-- display input and output signals as hexidecimal values
# Diplays All Signals recursively
-- Set Wave Output Items
TreeUpdate [SetDefaultTree]
WaveRestoreZoom {0 ps} {75 ns}
configure wave -namecolwidth 150
configure wave -valuecolwidth 100
configure wave -justifyvalue left
configure wave -signalnamewidth 0
configure wave -snapdistance 10
configure wave -datasetprefix 0
configure wave -rowmargin 4
configure wave -childrowmargin 2
-- Run the Simulation
-- 39,052 vectors, 390,565ns
run 9234244000 ns
quit

View File

@ -0,0 +1,55 @@
# Copyright 1991-2016 Mentor Graphics Corporation
#
# Modification by Oklahoma State University
# Use with Testbench
# James Stine, 2008
# Go Cowboys!!!!!!
#
# All Rights Reserved.
#
# THIS WORK CONTAINS TRADE SECRET AND PROPRIETARY INFORMATION
# WHICH IS THE PROPERTY OF MENTOR GRAPHICS CORPORATION
# OR ITS LICENSORS AND IS SUBJECT TO LICENSE TERMS.
# Use this run.do file to run this example.
# Either bring up ModelSim and type the following at the "ModelSim>" prompt:
# do run.do
# or, to run from a shell, type the following at the shell prompt:
# vsim -do run.do -c
# (omit the "-c" to see the GUI while running from the shell)
onbreak {resume}
# create library
if [file exists work] {
vdel -all
}
vlib work
# compile source files
vlog adder_ip.sv mult_R4_64_64_cs.v sbtm_a1.sv sbtm_a0.sv sbtm.sv sbtm_a4.sv sbtm_a5.sv sbtm3.sv fsm.v divconvDP.sv convert_inputs.sv exception.sv rounder.sv fpdiv.sv tb_f32_sqrt_rne.sv
# start and run simulation
vsim -voptargs=+acc work.tb
#view wave
-- display input and output signals as hexidecimal values
# Diplays All Signals recursively
-- Set Wave Output Items
TreeUpdate [SetDefaultTree]
WaveRestoreZoom {0 ps} {75 ns}
configure wave -namecolwidth 150
configure wave -valuecolwidth 100
configure wave -justifyvalue left
configure wave -signalnamewidth 0
configure wave -snapdistance 10
configure wave -datasetprefix 0
configure wave -rowmargin 4
configure wave -childrowmargin 2
-- Run the Simulation
-- 39,052 vectors, 390,565ns
run 9234244000 ns
quit

View File

@ -0,0 +1,55 @@
# Copyright 1991-2016 Mentor Graphics Corporation
#
# Modification by Oklahoma State University
# Use with Testbench
# James Stine, 2008
# Go Cowboys!!!!!!
#
# All Rights Reserved.
#
# THIS WORK CONTAINS TRADE SECRET AND PROPRIETARY INFORMATION
# WHICH IS THE PROPERTY OF MENTOR GRAPHICS CORPORATION
# OR ITS LICENSORS AND IS SUBJECT TO LICENSE TERMS.
# Use this run.do file to run this example.
# Either bring up ModelSim and type the following at the "ModelSim>" prompt:
# do run.do
# or, to run from a shell, type the following at the shell prompt:
# vsim -do run.do -c
# (omit the "-c" to see the GUI while running from the shell)
onbreak {resume}
# create library
if [file exists work] {
vdel -all
}
vlib work
# compile source files
vlog adder_ip.sv mult_R4_64_64_cs.v sbtm_a1.sv sbtm_a0.sv sbtm.sv sbtm_a4.sv sbtm_a5.sv sbtm3.sv fsm.v divconvDP.sv convert_inputs.sv exception.sv rounder.sv fpdiv.sv tb_f32_sqrt_ru.sv
# start and run simulation
vsim -voptargs=+acc work.tb
#view wave
-- display input and output signals as hexidecimal values
# Diplays All Signals recursively
-- Set Wave Output Items
TreeUpdate [SetDefaultTree]
WaveRestoreZoom {0 ps} {75 ns}
configure wave -namecolwidth 150
configure wave -valuecolwidth 100
configure wave -justifyvalue left
configure wave -signalnamewidth 0
configure wave -snapdistance 10
configure wave -datasetprefix 0
configure wave -rowmargin 4
configure wave -childrowmargin 2
-- Run the Simulation
-- 39,052 vectors, 390,565ns
run 9234244000 ns
quit

View File

@ -0,0 +1,55 @@
# Copyright 1991-2016 Mentor Graphics Corporation
#
# Modification by Oklahoma State University
# Use with Testbench
# James Stine, 2008
# Go Cowboys!!!!!!
#
# All Rights Reserved.
#
# THIS WORK CONTAINS TRADE SECRET AND PROPRIETARY INFORMATION
# WHICH IS THE PROPERTY OF MENTOR GRAPHICS CORPORATION
# OR ITS LICENSORS AND IS SUBJECT TO LICENSE TERMS.
# Use this run.do file to run this example.
# Either bring up ModelSim and type the following at the "ModelSim>" prompt:
# do run.do
# or, to run from a shell, type the following at the shell prompt:
# vsim -do run.do -c
# (omit the "-c" to see the GUI while running from the shell)
onbreak {resume}
# create library
if [file exists work] {
vdel -all
}
vlib work
# compile source files
vlog adder_ip.sv mult_R4_64_64_cs.v sbtm_a1.sv sbtm_a0.sv sbtm.sv sbtm_a4.sv sbtm_a5.sv sbtm3.sv fsm.v divconvDP.sv convert_inputs.sv exception.sv rounder.sv fpdiv.sv tb_f32_sqrt_rz.sv
# start and run simulation
vsim -voptargs=+acc work.tb
#view wave
-- display input and output signals as hexidecimal values
# Diplays All Signals recursively
-- Set Wave Output Items
TreeUpdate [SetDefaultTree]
WaveRestoreZoom {0 ps} {75 ns}
configure wave -namecolwidth 150
configure wave -valuecolwidth 100
configure wave -justifyvalue left
configure wave -signalnamewidth 0
configure wave -snapdistance 10
configure wave -datasetprefix 0
configure wave -rowmargin 4
configure wave -childrowmargin 2
-- Run the Simulation
-- 39,052 vectors, 390,565ns
run 9234244000 ns
quit

View File

@ -0,0 +1,56 @@
# Copyright 1991-2016 Mentor Graphics Corporation
#
# Modification by Oklahoma State University
# Use with Testbench
# James Stine, 2008
# Go Cowboys!!!!!!
#
# All Rights Reserved.
#
# THIS WORK CONTAINS TRADE SECRET AND PROPRIETARY INFORMATION
# WHICH IS THE PROPERTY OF MENTOR GRAPHICS CORPORATION
# OR ITS LICENSORS AND IS SUBJECT TO LICENSE TERMS.
# Use this run.do file to run this example.
# Either bring up ModelSim and type the following at the "ModelSim>" prompt:
# do run.do
# or, to run from a shell, type the following at the shell prompt:
# vsim -do run.do -c
# (omit the "-c" to see the GUI while running from the shell)
onbreak {resume}
# create library
if [file exists work] {
vdel -all
}
vlib work
# compile source files
vlog adder_ip.sv mult_R4_64_64_cs.v sbtm_a1.sv sbtm_a0.sv sbtm.sv sbtm_a4.sv sbtm_a5.sv sbtm3.sv fsm.v divconvDP.sv convert_inputs.sv exception.sv rounder.sv fpdiv.sv tb_f64_div_rd.sv
# start and run simulation
vsim -voptargs=+acc work.tb
#view wave
-- display input and output signals as hexidecimal values
# Diplays All Signals recursively
-- Set Wave Output Items
TreeUpdate [SetDefaultTree]
WaveRestoreZoom {0 ps} {75 ns}
configure wave -namecolwidth 350
configure wave -valuecolwidth 200
configure wave -justifyvalue left
configure wave -signalnamewidth 0
configure wave -snapdistance 10
configure wave -datasetprefix 0
configure wave -rowmargin 4
configure wave -childrowmargin 2
-- Run the Simulation
-- 39,052 vectors, 390,565ns
run 9338600000 ns
quit

View File

@ -0,0 +1,57 @@
# Copyright 1991-2016 Mentor Graphics Corporation
#
# Modification by Oklahoma State University
# Use with Testbench
# James Stine, 2008
# Go Cowboys!!!!!!
#
# All Rights Reserved.
#
# THIS WORK CONTAINS TRADE SECRET AND PROPRIETARY INFORMATION
# WHICH IS THE PROPERTY OF MENTOR GRAPHICS CORPORATION
# OR ITS LICENSORS AND IS SUBJECT TO LICENSE TERMS.
# Use this run.do file to run this example.
# Either bring up ModelSim and type the following at the "ModelSim>" prompt:
# do run.do
# or, to run from a shell, type the following at the shell prompt:
# vsim -do run.do -c
# (omit the "-c" to see the GUI while running from the shell)
onbreak {resume}
# create library
if [file exists work] {
vdel -all
}
vlib work
# compile source files
vlog adder_ip.sv mult_R4_64_64_cs.v sbtm_a1.sv sbtm_a0.sv sbtm.sv sbtm_a4.sv sbtm_a5.sv sbtm3.sv fsm.v divconvDP.sv convert_inputs.sv exception.sv rounder.sv fpdiv.sv tb_f64_div_rne.sv
# start and run simulation
vsim -voptargs=+acc work.tb
#view wave
-- display input and output signals as hexidecimal values
# Diplays All Signals recursively
-- Set Wave Output Items
TreeUpdate [SetDefaultTree]
WaveRestoreZoom {0 ps} {75 ns}
configure wave -namecolwidth 150
configure wave -valuecolwidth 100
configure wave -justifyvalue left
configure wave -signalnamewidth 0
configure wave -snapdistance 10
configure wave -datasetprefix 0
configure wave -rowmargin 4
configure wave -childrowmargin 2
-- Run the Simulation
-- 39,052 vectors, 390,565ns
run 9398600000 ns
quit

View File

@ -0,0 +1,56 @@
# Copyright 1991-2016 Mentor Graphics Corporation
#
# Modification by Oklahoma State University
# Use with Testbench
# James Stine, 2008
# Go Cowboys!!!!!!
#
# All Rights Reserved.
#
# THIS WORK CONTAINS TRADE SECRET AND PROPRIETARY INFORMATION
# WHICH IS THE PROPERTY OF MENTOR GRAPHICS CORPORATION
# OR ITS LICENSORS AND IS SUBJECT TO LICENSE TERMS.
# Use this run.do file to run this example.
# Either bring up ModelSim and type the following at the "ModelSim>" prompt:
# do run.do
# or, to run from a shell, type the following at the shell prompt:
# vsim -do run.do -c
# (omit the "-c" to see the GUI while running from the shell)
onbreak {resume}
# create library
if [file exists work] {
vdel -all
}
vlib work
# compile source files
vlog adder_ip.sv mult_R4_64_64_cs.v sbtm_a1.sv sbtm_a0.sv sbtm.sv sbtm_a4.sv sbtm_a5.sv sbtm3.sv fsm.v divconvDP.sv convert_inputs.sv exception.sv rounder.sv fpdiv.sv tb_f64_div_ru.sv
# start and run simulation
vsim -voptargs=+acc work.tb
#view wave
-- display input and output signals as hexidecimal values
# Diplays All Signals recursively
-- Set Wave Output Items
TreeUpdate [SetDefaultTree]
WaveRestoreZoom {0 ps} {75 ns}
configure wave -namecolwidth 150
configure wave -valuecolwidth 100
configure wave -justifyvalue left
configure wave -signalnamewidth 0
configure wave -snapdistance 10
configure wave -datasetprefix 0
configure wave -rowmargin 4
configure wave -childrowmargin 2
-- Run the Simulation
-- 39,052 vectors, 390,565ns
run 9338600000 ns
quit

View File

@ -0,0 +1,56 @@
# Copyright 1991-2016 Mentor Graphics Corporation
#
# Modification by Oklahoma State University
# Use with Testbench
# James Stine, 2008
# Go Cowboys!!!!!!
#
# All Rights Reserved.
#
# THIS WORK CONTAINS TRADE SECRET AND PROPRIETARY INFORMATION
# WHICH IS THE PROPERTY OF MENTOR GRAPHICS CORPORATION
# OR ITS LICENSORS AND IS SUBJECT TO LICENSE TERMS.
# Use this run.do file to run this example.
# Either bring up ModelSim and type the following at the "ModelSim>" prompt:
# do run.do
# or, to run from a shell, type the following at the shell prompt:
# vsim -do run.do -c
# (omit the "-c" to see the GUI while running from the shell)
onbreak {resume}
# create library
if [file exists work] {
vdel -all
}
vlib work
# compile source files
vlog adder_ip.sv mult_R4_64_64_cs.v sbtm_a1.sv sbtm_a0.sv sbtm.sv sbtm_a4.sv sbtm_a5.sv sbtm3.sv fsm.v divconvDP.sv convert_inputs.sv exception.sv rounder.sv fpdiv.sv tb_f64_div_rz.sv
# start and run simulation
vsim -voptargs=+acc work.tb
#view wave
-- display input and output signals as hexidecimal values
# Diplays All Signals recursively
-- Set Wave Output Items
TreeUpdate [SetDefaultTree]
WaveRestoreZoom {0 ps} {75 ns}
configure wave -namecolwidth 350
configure wave -valuecolwidth 250
configure wave -justifyvalue left
configure wave -signalnamewidth 0
configure wave -snapdistance 10
configure wave -datasetprefix 0
configure wave -rowmargin 4
configure wave -childrowmargin 2
-- Run the Simulation
-- 39,052 vectors, 390,565ns
run 9398600000 ns
quit

View File

@ -0,0 +1,55 @@
# Copyright 1991-2016 Mentor Graphics Corporation
#
# Modification by Oklahoma State University
# Use with Testbench
# James Stine, 2008
# Go Cowboys!!!!!!
#
# All Rights Reserved.
#
# THIS WORK CONTAINS TRADE SECRET AND PROPRIETARY INFORMATION
# WHICH IS THE PROPERTY OF MENTOR GRAPHICS CORPORATION
# OR ITS LICENSORS AND IS SUBJECT TO LICENSE TERMS.
# Use this run.do file to run this example.
# Either bring up ModelSim and type the following at the "ModelSim>" prompt:
# do run.do
# or, to run from a shell, type the following at the shell prompt:
# vsim -do run.do -c
# (omit the "-c" to see the GUI while running from the shell)
onbreak {resume}
# create library
if [file exists work] {
vdel -all
}
vlib work
# compile source files
vlog adder_ip.sv mult_R4_64_64_cs.v sbtm_a1.sv sbtm_a0.sv sbtm.sv sbtm_a4.sv sbtm_a5.sv sbtm3.sv fsm.v divconvDP.sv convert_inputs.sv exception.sv rounder.sv fpdiv.sv tb_f64_sqrt_rd.sv
# start and run simulation
vsim -voptargs=+acc work.tb
#view wave
-- display input and output signals as hexidecimal values
# Diplays All Signals recursively
-- Set Wave Output Items
TreeUpdate [SetDefaultTree]
WaveRestoreZoom {0 ps} {75 ns}
configure wave -namecolwidth 150
configure wave -valuecolwidth 100
configure wave -justifyvalue left
configure wave -signalnamewidth 0
configure wave -snapdistance 10
configure wave -datasetprefix 0
configure wave -rowmargin 4
configure wave -childrowmargin 2
-- Run the Simulation
-- 39,052 vectors, 390,565ns
run 94364000 ns
quit

View File

@ -0,0 +1,55 @@
# Copyright 1991-2016 Mentor Graphics Corporation
#
# Modification by Oklahoma State University
# Use with Testbench
# James Stine, 2008
# Go Cowboys!!!!!!
#
# All Rights Reserved.
#
# THIS WORK CONTAINS TRADE SECRET AND PROPRIETARY INFORMATION
# WHICH IS THE PROPERTY OF MENTOR GRAPHICS CORPORATION
# OR ITS LICENSORS AND IS SUBJECT TO LICENSE TERMS.
# Use this run.do file to run this example.
# Either bring up ModelSim and type the following at the "ModelSim>" prompt:
# do run.do
# or, to run from a shell, type the following at the shell prompt:
# vsim -do run.do -c
# (omit the "-c" to see the GUI while running from the shell)
onbreak {resume}
# create library
if [file exists work] {
vdel -all
}
vlib work
# compile source files
vlog adder_ip.sv mult_R4_64_64_cs.v sbtm_a1.sv sbtm_a0.sv sbtm.sv sbtm_a4.sv sbtm_a5.sv sbtm3.sv fsm.v divconvDP.sv convert_inputs.sv exception.sv rounder.sv fpdiv.sv tb_f64_sqrt_rne.sv
# start and run simulation
vsim -voptargs=+acc work.tb
#view wave
-- display input and output signals as hexidecimal values
# Diplays All Signals recursively
-- Set Wave Output Items
TreeUpdate [SetDefaultTree]
WaveRestoreZoom {0 ps} {75 ns}
configure wave -namecolwidth 150
configure wave -valuecolwidth 100
configure wave -justifyvalue left
configure wave -signalnamewidth 0
configure wave -snapdistance 10
configure wave -datasetprefix 0
configure wave -rowmargin 4
configure wave -childrowmargin 2
-- Run the Simulation
-- 39,052 vectors, 390,565ns
run 94364000 ns
quit

View File

@ -0,0 +1,55 @@
# Copyright 1991-2016 Mentor Graphics Corporation
#
# Modification by Oklahoma State University
# Use with Testbench
# James Stine, 2008
# Go Cowboys!!!!!!
#
# All Rights Reserved.
#
# THIS WORK CONTAINS TRADE SECRET AND PROPRIETARY INFORMATION
# WHICH IS THE PROPERTY OF MENTOR GRAPHICS CORPORATION
# OR ITS LICENSORS AND IS SUBJECT TO LICENSE TERMS.
# Use this run.do file to run this example.
# Either bring up ModelSim and type the following at the "ModelSim>" prompt:
# do run.do
# or, to run from a shell, type the following at the shell prompt:
# vsim -do run.do -c
# (omit the "-c" to see the GUI while running from the shell)
onbreak {resume}
# create library
if [file exists work] {
vdel -all
}
vlib work
# compile source files
vlog adder_ip.sv mult_R4_64_64_cs.v sbtm_a1.sv sbtm_a0.sv sbtm.sv sbtm_a4.sv sbtm_a5.sv sbtm3.sv fsm.v divconvDP.sv convert_inputs.sv exception.sv rounder.sv fpdiv.sv tb_f64_sqrt_ru.sv
# start and run simulation
vsim -voptargs=+acc work.tb
#view wave
-- display input and output signals as hexidecimal values
# Diplays All Signals recursively
-- Set Wave Output Items
TreeUpdate [SetDefaultTree]
WaveRestoreZoom {0 ps} {75 ns}
configure wave -namecolwidth 150
configure wave -valuecolwidth 100
configure wave -justifyvalue left
configure wave -signalnamewidth 0
configure wave -snapdistance 10
configure wave -datasetprefix 0
configure wave -rowmargin 4
configure wave -childrowmargin 2
-- Run the Simulation
-- 39,052 vectors, 390,565ns
run 94364000 ns
quit

View File

@ -0,0 +1,55 @@
# Copyright 1991-2016 Mentor Graphics Corporation
#
# Modification by Oklahoma State University
# Use with Testbench
# James Stine, 2008
# Go Cowboys!!!!!!
#
# All Rights Reserved.
#
# THIS WORK CONTAINS TRADE SECRET AND PROPRIETARY INFORMATION
# WHICH IS THE PROPERTY OF MENTOR GRAPHICS CORPORATION
# OR ITS LICENSORS AND IS SUBJECT TO LICENSE TERMS.
# Use this run.do file to run this example.
# Either bring up ModelSim and type the following at the "ModelSim>" prompt:
# do run.do
# or, to run from a shell, type the following at the shell prompt:
# vsim -do run.do -c
# (omit the "-c" to see the GUI while running from the shell)
onbreak {resume}
# create library
if [file exists work] {
vdel -all
}
vlib work
# compile source files
vlog adder_ip.sv mult_R4_64_64_cs.v sbtm_a1.sv sbtm_a0.sv sbtm.sv sbtm_a4.sv sbtm_a5.sv sbtm3.sv fsm.v divconvDP.sv convert_inputs.sv exception.sv rounder.sv fpdiv.sv tb_f64_sqrt_rz.sv
# start and run simulation
vsim -voptargs=+acc work.tb
#view wave
-- display input and output signals as hexidecimal values
# Diplays All Signals recursively
-- Set Wave Output Items
TreeUpdate [SetDefaultTree]
WaveRestoreZoom {0 ps} {75 ns}
configure wave -namecolwidth 150
configure wave -valuecolwidth 100
configure wave -justifyvalue left
configure wave -signalnamewidth 0
configure wave -snapdistance 10
configure wave -datasetprefix 0
configure wave -rowmargin 4
configure wave -childrowmargin 2
-- Run the Simulation
-- 39,052 vectors, 390,565ns
run 94364000 ns
quit

View File

@ -0,0 +1,109 @@
# Copyright 1991-2016 Mentor Graphics Corporation
#
# Modification by Oklahoma State University
# Use with Testbench
# James Stine, 2008
# Go Cowboys!!!!!!
#
# All Rights Reserved.
#
# THIS WORK CONTAINS TRADE SECRET AND PROPRIETARY INFORMATION
# WHICH IS THE PROPERTY OF MENTOR GRAPHICS CORPORATION
# OR ITS LICENSORS AND IS SUBJECT TO LICENSE TERMS.
# Use this run.do file to run this example.
# Either bring up ModelSim and type the following at the "ModelSim>" prompt:
# do run.do
# or, to run from a shell, type the following at the shell prompt:
# vsim -do run.do -c
# (omit the "-c" to see the GUI while running from the shell)
onbreak {resume}
# create library
if [file exists work] {
vdel -all
}
vlib work
# compile source files
vlog adder_ip.sv bk15.v mult_R4_64_64_cs.v ldf128.v ldf64.v sbtm_a1.sv sbtm_a0.sv sbtm.sv sbtm_a4.sv sbtm_a5.sv sbtm3.sv fsm.v divconvDP.sv convert_inputs.sv exception.sv rounder.sv fpdiv.sv test_fpdiv.sv
# start and run simulation
vsim -voptargs=+acc work.tb
view wave
-- display input and output signals as hexidecimal values
# Diplays All Signals recursively
add wave -hex -color gold /tb/dut/clk
add wave -hex -color gold /tb/dut/mantissaA
add wave -hex -color gold /tb/dut/mantissaB
add wave -hex -color gold /tb/dut/op1
add wave -hex -color gold /tb/dut/op2
add wave -hex -color gold /tb/dut/AS_Result
add wave -hex -color gold /tb/dut/Flags
add wave -hex -color gold /tb/dut/Denorm
#add wave -noupdate -divider -height 32 "exponent"
#add wave -hex /tb/dut/exp1
#add wave -hex /tb/dut/exp2
#add wave -hex /tb/dut/expF
#add wave -hex /tb/dut/bias
#add wave -hex /tb/dut/exp_diff
#add wave -hex /tb/dut/exp_odd
#add wave -hex -r /tb/dut/explogic2/*
#add wave -hex -r /tb/dut/explogic1/*
add wave -noupdate -divider -height 32 "FSM"
add wave -hex /tb/dut/control/CURRENT_STATE
add wave -hex /tb/dut/control/NEXT_STATE
add wave -hex -color #0080ff /tb/dut/control/start
add wave -hex -color #0080ff /tb/dut/control/reset
add wave -hex -color #0080ff /tb/dut/control/op_type
add wave -hex -color #0080ff /tb/dut/control/load_rega
add wave -hex -color #0080ff /tb/dut/control/load_regb
add wave -hex -color #0080ff /tb/dut/control/load_regc
add wave -hex -color #0080ff /tb/dut/control/load_regr
add wave -hex -color #0080ff /tb/dut/control/load_regs
add wave -hex -color #0080ff /tb/dut/control/sel_muxa
add wave -hex -color #0080ff /tb/dut/control/sel_muxb
add wave -hex -color #0080ff /tb/dut/control/sel_muxr
add wave -hex -color #0080ff /tb/dut/control/done
add wave -noupdate -divider -height 32 "Convert"
add wave -hex -r /tb/dut/conv1/*
add wave -noupdate -divider -height 32 "Exceptions"
add wave -hex -r /tb/dut/exc1/*
add wave -noupdate -divider -height 32 "Rounder"
add wave -hex -r /tb/dut/round1/*
add wave -noupdate -divider -height 32 "Pipe State"
add wave -hex -r /tb/dut/goldy/Sum_pipe;
add wave -hex -r /tb/dut/goldy/Carry_pipe;
add wave -hex -r /tb/dut/goldy/muxr_pipe;
add wave -hex -r /tb/dut/goldy/rega_pipe;
add wave -hex -r /tb/dut/goldy/regb_pipe;
add wave -hex -r /tb/dut/goldy/regc_pipe;
add wave -hex -r /tb/dut/goldy/regd_pipe;
add wave -hex -r /tb/dut/goldy/regs_pipe;
add wave -hex -r /tb/dut/goldy/regr_pipe;
add wave -hex -r /tb/dut/goldy/P_pipe;
add wave -hex -r /tb/dut/goldy/op_type_pipe;
add wave -hex -r /tb/dut/goldy/q_const_pipe;
add wave -hex -r /tb/dut/goldy/qm_const_pipe;
add wave -hex -r /tb/dut/goldy/qp_const_pipe;
add wave -noupdate -divider -height 32 "Goldschmidt"
add wave -hex -r /tb/dut/goldy/*
-- Set Wave Output Items
TreeUpdate [SetDefaultTree]
WaveRestoreZoom {0 ps} {75 ns}
configure wave -namecolwidth 350
configure wave -valuecolwidth 250
configure wave -justifyvalue left
configure wave -signalnamewidth 0
configure wave -snapdistance 10
configure wave -datasetprefix 0
configure wave -rowmargin 4
configure wave -childrowmargin 2
-- Run the Simulation
run 20ns
quit

View File

@ -0,0 +1,164 @@
//
// File name : fpdivP
// Title : Floating-Point Divider/Square-Root
// project : FPU
// Library : fpdiv
// Author(s) : James E. Stine, Jr.
// Purpose : definition of main unit to floating-point div/sqrt
// notes :
//
// Copyright Oklahoma State University
//
// Basic Operations
//
// Step 1: Load operands, set flags, and convert SP to DP
// Step 2: Check for special inputs ( +/- Infinity, NaN)
// Step 3: Exponent Logic
// Step 4: Divide/Sqrt using Goldschmidt
// Step 5: Normalize the result.//
// Shift left until normalized. Normalized when the value to the
// left of the binrary point is 1.
// Step 6: Round the result.//
// Step 7: Put quotient/remainder onto output.
//
`timescale 1ps/1ps
module fpdiv (done, AS_Result, Flags, Denorm, op1, op2, rm, op_type, P, OvEn, UnEn,
start, reset, clk);
input logic [63:0] op1; // 1st input operand (A)
input logic [63:0] op2; // 2nd input operand (B)
input logic [1:0] rm; // Rounding mode - specify values
input logic op_type; // Function opcode
input logic P; // Result Precision (0 for double, 1 for single)
input logic OvEn; // Overflow trap enabled
input logic UnEn; // Underflow trap enabled
input logic start;
input logic reset;
input logic clk;
output logic [63:0] AS_Result; // Result of operation
output logic [4:0] Flags; // IEEE exception flags
output logic Denorm; // Denorm on input or output
output logic done;
supply1 vdd;
supply0 vss;
logic [63:0] Float1;
logic [63:0] Float2;
logic [63:0] IntValue;
logic [12:0] exp1, exp2, expF;
logic [12:0] exp_diff, bias;
logic [13:0] exp_sqrt;
logic [12:0] exp_s;
logic [12:0] exp_c;
logic [10:0] exponent, exp_pre;
logic [63:0] Result;
logic [52:0] mantissaA;
logic [52:0] mantissaB;
logic [63:0] sum, sum_tc, sum_corr, sum_norm;
logic [5:0] align_shift;
logic [5:0] norm_shift;
logic [2:0] sel_inv;
logic op1_Norm, op2_Norm;
logic opA_Norm, opB_Norm;
logic Invalid;
logic DenormIn, DenormIO;
logic [4:0] FlagsIn;
logic exp_gt63;
logic Sticky_out;
logic signResult, sign_corr;
logic corr_sign;
logic zeroB;
logic convert;
logic swap;
logic sub;
logic [63:0] q1, qm1, qp1, q0, qm0, qp0;
logic [63:0] rega_out, regb_out, regc_out, regd_out;
logic [127:0] regr_out;
logic [2:0] sel_muxa, sel_muxb;
logic sel_muxr;
logic load_rega, load_regb, load_regc, load_regd, load_regr;
logic load_regp;
logic donev, sel_muxrv, sel_muxsv;
logic [1:0] sel_muxav, sel_muxbv;
logic load_regav, load_regbv, load_regcv;
logic load_regrv, load_regsv;
// Convert the input operands to their appropriate forms based on
// the orignal operands, the op_type , and their precision P.
// Single precision inputs are converted to double precision
// and the sign of the first operand is set appropratiately based on
// if the operation is absolute value or negation.
convert_inputs conv1 (Float1, Float2, op1, op2, op_type, P);
// Test for exceptions and return the "Invalid Operation" and
// "Denormalized" Input Flags. The "sel_inv" is used in
// the third pipeline stage to select the result. Also, op1_Norm
// and op2_Norm are one if op1 and op2 are not zero or denormalized.
// sub is one if the effective operation is subtaction.
exception exc1 (sel_inv, Invalid, DenormIn, op1_Norm, op2_Norm,
Float1, Float2, op_type);
// Determine Sign/Mantissa
assign signResult = ((Float1[63]^Float2[63])&~op_type) | Float1[63]&op_type;
assign mantissaA = {vdd, Float1[51:0]};
assign mantissaB = {vdd, Float2[51:0]};
// Early-ending detection
assign early_detection = |mantissaB[31:0];
// Perform Exponent Subtraction - expA - expB + Bias
assign exp1 = {2'b0, Float1[62:52]};
assign exp2 = {2'b0, Float2[62:52]};
// bias : DP = 2^{11-1}-1 = 1023
assign bias = {3'h0, 10'h3FF};
// Divide exponent
csa #(13) csa1 (exp1, ~exp2, bias, exp_s, exp_c);
//exp_add explogic1 (exp_cout1, {open, exp_diff},
// {vss, exp_s}, {vss, exp_c}, 1'b1);
adder_ip #(14) explogic1 ({vss, exp_s}, {vss, exp_c}, 1'b1, {open, exp_diff}, exp_cout1);
// Sqrt exponent (check if exponent is odd)
assign exp_odd = Float1[52] ? vss : vdd;
//exp_add explogic2 (exp_cout2, exp_sqrt,
// {vss, exp1}, {4'h0, 10'h3ff}, exp_odd);
adder_ip #(14) explogic2 ({vss, exp1}, {4'h0, 10'h3ff}, exp_odd, exp_sqrt, exp_cout2);
// Choose correct exponent
assign expF = op_type ? exp_sqrt[13:1] : exp_diff;
// Main Goldschmidt/Division Routine
divconv goldy (q1, qm1, qp1, q0, qm0, qp0, rega_out, regb_out, regc_out, regd_out,
regr_out, mantissaB, mantissaA,
sel_muxa, sel_muxb, sel_muxr, reset, clk,
load_rega, load_regb, load_regc, load_regd,
load_regr, load_regs, load_regp,
P, op_type, exp_odd);
// FSM : control divider
fsm_fpdivsqrt control (done, load_rega, load_regb, load_regc, load_regd,
load_regr, load_regs, load_regp,
sel_muxa, sel_muxb, sel_muxr,
clk, reset, start, error, op_type, P);
// Round the mantissa to a 52-bit value, with the leading one
// removed. The rounding units also handles special cases and
// set the exception flags.
rounder round1 (Result, DenormIO, FlagsIn,
rm, P, OvEn, UnEn, expF,
sel_inv, Invalid, DenormIn, signResult,
q1, qm1, qp1, q0, qm0, qp0, regr_out);
// Store the final result and the exception flags in registers.
flopenr #(64) rega (clk, reset, done, Result, AS_Result);
flopenr #(1) regb (clk, reset, done, DenormIO, Denorm);
flopenr #(5) regc (clk, reset, done, FlagsIn, Flags);
endmodule // fpdivP

View File

@ -0,0 +1,78 @@
.i 6
.o 2
.ilb SignR rm[1] rm[0] G zero_rem sign_rem
.ob M1 M0
000000 00
000001 00
000010 00
000011 00
000100 10
000101 00
000110 --
000111 --
001000 00
001001 01
001010 00
001011 00
001100 00
001101 00
001110 --
001111 --
010000 10
010001 00
010010 00
010011 00
010100 10
010101 10
010110 --
010111 --
011000 00
011001 01
011010 00
011011 00
011100 00
011101 00
011110 --
011111 --
100000 00
100001 00
100010 00
100011 00
100100 10
100101 00
100110 --
100111 --
101000 00
101001 01
101010 00
101011 00
101100 00
101101 00
101110 --
101111 --
110000 00
110001 01
110010 00
110011 00
110100 00
110101 00
110110 --
110111 --
111000 10
111001 00
111010 00
111011 00
111100 10
111101 10
111110 --
111111 --
.e

View File

@ -0,0 +1,98 @@
.i 7
.o 2
.ilb SignR rm[2] rm[1] rm[0] G zero_rem sign_rem
.ob M1 M0
0000000 00
0000001 00
0000010 00
0000011 00
0000100 10
0000101 00
0000110 --
0000111 --
0001000 00
0001001 01
0001010 00
0001011 00
0001100 00
0001101 00
0001110 --
0001111 --
0010000 10
0010001 00
0010010 00
0010011 00
0010100 10
0010101 10
0010110 --
0010111 --
0011000 00
0011001 01
0011010 00
0011011 00
0011100 00
0011101 00
0011110 --
0011111 --
01--000 10
01--001 00
01--010 00
01--011 00
01--100 10
01--101 10
01--110 --
01--111 --
1000000 00
1000001 00
1000010 00
1000011 00
1000100 10
1000101 00
1000110 --
1000111 --
1001000 00
1001001 01
1001010 00
1001011 00
1001100 00
1001101 00
1001110 --
1001111 --
1010000 00
1010001 01
1010010 00
1010011 00
1010100 00
1010101 00
1010110 --
1010111 --
1011000 10
1011001 00
1011010 00
1011011 00
1011100 10
1011101 10
1011110 --
1011111 --
11--000 10
11--001 00
11--010 00
11--011 00
11--100 10
11--101 10
11--110 --
11--111 --
.e

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,187 @@
//
// The rounder takes as inputs a 64-bit value to be rounded, A, the
// exponent of the value to be rounded, the sign of the final result, Sign,
// the precision of the results, P, and the two-bit rounding mode, rm.
// It produces a rounded 52-bit result, Z, the exponent of the rounded
// result, Z_exp, and a flag that indicates if the result was rounded,
// Inexact. The rounding mode has the following values.
// rm Modee
// 00 round-to-nearest-even
// 01 round-toward-zero
// 10 round-toward-plus infinity
// 11 round-toward-minus infinity
//
module rounder (Result, DenormIO, Flags, rm, P, OvEn,
UnEn, exp_diff, sel_inv, Invalid, DenormIn,
SignR, q1, qm1, qp1, q0, qm0, qp0, regr_out);
input logic [1:0] rm;
input logic P;
input logic OvEn;
input logic UnEn;
input logic [12:0] exp_diff;
input logic [2:0] sel_inv;
input logic Invalid;
input logic DenormIn;
input logic SignR;
input logic [63:0] q1;
input logic [63:0] qm1;
input logic [63:0] qp1;
input logic [63:0] q0;
input logic [63:0] qm0;
input logic [63:0] qp0;
input logic [127:0] regr_out;
output logic [63:0] Result;
output logic DenormIO;
output logic [4:0] Flags;
supply1 vdd;
supply0 vss;
logic Rsign;
logic [10:0] Rexp;
logic [12:0] Texp;
logic [51:0] Rmant;
logic [63:0] Tmant;
logic [51:0] Smant;
logic Rzero;
logic Gdp, Gsp, G;
logic UnFlow_SP, UnFlow_DP, UnderFlow;
logic OvFlow_SP, OvFlow_DP, OverFlow;
logic Inexact;
logic Round_zero;
logic Infinite;
logic VeryLarge;
logic Largest;
logic Div0;
logic Adj_exp;
logic Valid;
logic NaN;
logic Texp_l7z;
logic Texp_l7o;
logic OvCon;
logic [1:0] mux_mant;
logic sign_rem;
logic [63:0] q, qm, qp;
logic exp_ovf, exp_ovfSP, exp_ovfDP;
// Remainder = 0?
assign zero_rem = ~(|regr_out);
// Remainder Sign
assign sign_rem = ~regr_out[127];
// choose correct Guard bit [1,2) or [0,1)
assign Gdp = q1[63] ? q1[10] : q0[10];
assign Gsp = q1[63] ? q1[39] : q0[39];
assign G = P ? Gsp : Gdp;
// Selection of Rounding (from logic/switching)
assign mux_mant[1] = (SignR&rm[1]&rm[0]&G) | (!SignR&rm[1]&!rm[0]&G) |
(!rm[1]&!rm[0]&G&!sign_rem) |
(SignR&rm[1]&rm[0]&!zero_rem&!sign_rem) |
(!SignR&rm[1]&!rm[0]&!zero_rem&!sign_rem);
assign mux_mant[0] = (!SignR&rm[0]&!G&!zero_rem&sign_rem) |
(!rm[1]&rm[0]&!G&!zero_rem&sign_rem) |
(SignR&rm[1]&!rm[0]&!G&!zero_rem&sign_rem);
// Which Q?
mux2 #(64) mx1 (q0, q1, q1[63], q);
mux2 #(64) mx2 (qm0, qm1, q1[63], qm);
mux2 #(64) mx3 (qp0, qp1, q1[63], qp);
// Choose Q, Q+1, Q-1
mux3 #(64) mx4 (q, qm, qp, mux_mant, Tmant);
assign Smant = Tmant[62:11];
// Compute the value of the exponent
// exponent is modified if we choose:
// 1.) we choose any qm0, qp0, q0 (since we shift mant)
// 2.) we choose qp and we overflow (for RU)
assign exp_ovf = |{qp[62:40], (qp[39:11] & {29{~P}})};
assign Texp = exp_diff - {{13{vss}}, ~q1[63]} + {{13{vss}}, mux_mant[1]&qp1[63]&~exp_ovf};
// Overflow only occurs for double precision, if Texp[10] to Texp[0] are
// all ones. To encourage sharing with single precision overflow detection,
// the lower 7 bits are tested separately.
assign Texp_l7o = Texp[6]&Texp[5]&Texp[4]&Texp[3]&Texp[2]&Texp[1]&Texp[0];
assign OvFlow_DP = (~Texp[12]&Texp[11]) | (Texp[10]&Texp[9]&Texp[8]&Texp[7]&Texp_l7o);
// Overflow occurs for single precision if (Texp[10] is one) and
// ((Texp[9] or Texp[8] or Texp[7]) is one) or (Texp[6] to Texp[0]
// are all ones.
assign OvFlow_SP = Texp[10]&(Texp[9]|Texp[8]|Texp[7]|Texp_l7o);
// Underflow occurs for double precision if (Texp[11]/Texp[10] is one) or
// Texp[10] to Texp[0] are all zeros.
assign Texp_l7z = ~Texp[6]&~Texp[5]&~Texp[4]&~Texp[3]&~Texp[2]&~Texp[1]&~Texp[0];
assign UnFlow_DP = (Texp[12]&Texp[11]) | ~Texp[11]&~Texp[10]&~Texp[9]&~Texp[8]&~Texp[7]&Texp_l7z;
// Underflow occurs for single precision if (Texp[10] is zero) and
// (Texp[9] or Texp[8] or Texp[7]) is zero.
assign UnFlow_SP = ~Texp[10]&(~Texp[9]|~Texp[8]|~Texp[7]|Texp_l7z);
// Set the overflow and underflow flags. They should not be set if
// the input was infinite or NaN or the output of the adder is zero.
// 00 = Valid
// 10 = NaN
assign Valid = (~sel_inv[2]&~sel_inv[1]&~sel_inv[0]);
assign NaN = ~sel_inv[1]& sel_inv[0];
assign UnderFlow = (P & UnFlow_SP | UnFlow_DP) & Valid;
assign OverFlow = (P & OvFlow_SP | OvFlow_DP) & Valid;
assign Div0 = sel_inv[2]&sel_inv[1]&~sel_inv[0];
// The DenormIO is set if underflow has occurred or if their was a
// denormalized input.
assign DenormIO = DenormIn | UnderFlow;
// The final result is Inexact if any rounding occurred ((i.e., R or S
// is one), or (if the result overflows ) or (if the result underflows and the
// underflow trap is not enabled)) and (value of the result was not previous set
// by an exception case).
assign Inexact = (G|~zero_rem|OverFlow|(UnderFlow&~UnEn))&Valid;
// Set the IEEE Exception Flags: Inexact, Underflow, Overflow, Div_By_0,
// Invlalid.
assign Flags = {Inexact, UnderFlow, OverFlow, Div0, Invalid};
// Determine sign
assign Rzero = UnderFlow | (~sel_inv[2]&sel_inv[1]&sel_inv[0]);
assign Rsign = SignR;
// The exponent of the final result is zero if the final result is
// zero or a denorm, all ones if the final result is NaN or Infinite
// or overflow occurred and the magnitude of the number is
// not rounded toward from zero, and all ones with an LSB of zero
// if overflow occurred and the magnitude of the number is
// rounded toward zero. If the result is single precision,
// Texp[7] shoud be inverted. When the Overflow trap is enabled (OvEn = 1)
// and overflow occurs and the operation is not conversion, bits 10 and 9 are
// inverted for double precision, and bits 7 and 6 are inverted for single precision.
assign Round_zero = ~rm[1]&rm[0] | ~SignR&rm[0] | SignR&rm[1]&~rm[0];
assign VeryLarge = OverFlow & ~OvEn;
assign Infinite = (VeryLarge & ~Round_zero) | sel_inv[1];
assign Largest = VeryLarge & Round_zero;
assign Adj_exp = OverFlow & OvEn;
assign Rexp[10:1] = ({10{~Valid}} |
{Texp[10]&~Adj_exp, Texp[9]&~Adj_exp, Texp[8],
(Texp[7]^P)&~(Adj_exp&P), Texp[6]&~(Adj_exp&P), Texp[5:1]} |
{10{VeryLarge}})&{10{~Rzero | NaN}};
assign Rexp[0] = ({~Valid} | Texp[0] | Infinite)&(~Rzero | NaN)&~Largest;
// If the result is zero or infinity, the mantissa is all zeros.
// If the result is NaN, the mantissa is 10...0
// If the result the largest floating point number, the mantissa
// is all ones. Otherwise, the mantissa is not changed.
assign Rmant[51] = Largest | NaN | (Smant[51]&~Infinite&~Rzero);
assign Rmant[50:0] = {51{Largest}} | (Smant[50:0]&{51{~Infinite&Valid&~Rzero}});
// For single precision, the 8 least significant bits of the exponent
// and 23 most significant bits of the mantissa contain bits used
// for the final result. A double precision result is returned if
// overflow has occurred, the overflow trap is enabled, and a conversion
// is being performed.
assign OvCon = OverFlow & OvEn;
assign Result = (P&~OvCon) ? {Rsign, Rexp[7:0], Rmant[51:29], {32{vss}}}
: {Rsign, Rexp, Rmant};
endmodule // rounder

View File

@ -0,0 +1,36 @@
#!/bin/sh
echo 'f64 DIV RNE' > run_results.txt
cat f64_div_rne.out | grep '_0$' >> run_results.txt
echo 'f64 DIV RD' >> run_results.txt
cat f64_div_rd.out | grep '_0$' >> run_results.txt
echo 'f64 DIV RU' >> run_results.txt
cat f64_div_ru.out | grep '_0$' >> run_results.txt
echo 'f64 DIV RZ' >> run_results.txt
cat f64_div_rz.out | grep '_0$' >> run_results.txt
echo 'f32 DIV RNE' >> run_results.txt
cat f32_div_rne.out | grep '_0$' >> run_results.txt
echo 'f32 DIV RD' >> run_results.txt
cat f32_div_rd.out | grep '_0$' >> run_results.txt
echo 'f32 DIV RU' >> run_results.txt
cat f32_div_ru.out | grep '_0$' >> run_results.txt
echo 'f32 DIV RZ' >> run_results.txt
cat f32_div_rz.out | grep '_0$' >> run_results.txt
echo 'f64 SQRT RNE' >> run_results.txt
cat f64_sqrt_rne.out | grep '_0$' >> run_results.txt
echo 'f64 SQRT RD' >> run_results.txt
cat f64_sqrt_rd.out | grep '_0$' >> run_results.txt
echo 'f64 SQRT RU' >> run_results.txt
cat f64_sqrt_ru.out | grep '_0$' >> run_results.txt
echo 'f64 SQRT RZ' >> run_results.txt
cat f64_sqrt_rz.out | grep '_0$' >> run_results.txt
echo 'f32 SQRT RNE' >> run_results.txt
cat f32_sqrt_rne.out | grep '_0$' >> run_results.txt
echo 'f32 SQRT RD' >> run_results.txt
cat f32_sqrt_rd.out | grep '_0$' >> run_results.txt
echo 'f32 SQRT RU' >> run_results.txt
cat f32_sqrt_ru.out | grep '_0$' >> run_results.txt
echo 'f32 SQRT RZ' >> run_results.txt
cat f32_sqrt_rz.out | grep '_0$' >> run_results.txt

View File

@ -0,0 +1,940 @@
f64 DIV RNE
0010000000000000_3fffffffffffffff_0000000000000000_11000_1 | 0008000000000000_0
0010000000000000_4000000000000000_0000000000000000_11000_1 | 0008000000000000_0
0010000000000000_4000000000000001_0000000000000000_11100_1 | 0008000000000000_0
0010000000000000_400fffffffffffff_0000000000000000_11100_1 | 0004000000000000_0
0010000000000000_400ffffffffffffe_0000000000000000_11100_1 | 0004000000000000_0
0010000000000000_4010000000000000_0000000000000000_11100_1 | 0004000000000000_0
0010000000000000_4010000000000001_0000000000000000_11000_1 | 0004000000000000_0
0010000000000000_401fffffffffffff_0000000000000000_11000_1 | 0002000000000000_0
0010000000000000_401ffffffffffffe_0000000000000000_11000_1 | 0002000000000000_0
0010000000000000_bfffffffffffffff_8000000000000000_11000_1 | 8008000000000000_0
0010000000000000_c000000000000000_8000000000000000_11000_1 | 8008000000000000_0
0010000000000000_c000000000000001_8000000000000000_11100_1 | 8008000000000000_0
0010000000000000_c00fffffffffffff_8000000000000000_11100_1 | 8004000000000000_0
0010000000000000_c00ffffffffffffe_8000000000000000_11100_1 | 8004000000000000_0
0010000000000000_c010000000000000_8000000000000000_11100_1 | 8004000000000000_0
0010000000000000_c010000000000001_8000000000000000_11000_1 | 8004000000000000_0
0010000000000000_c01fffffffffffff_8000000000000000_11000_1 | 8002000000000000_0
0010000000000000_c01ffffffffffffe_8000000000000000_11000_1 | 8002000000000000_0
0010000000000001_4000000000000000_0000000000000000_11000_1 | 0008000000000000_0
0010000000000001_4000000000000001_0000000000000000_11000_1 | 0008000000000000_0
0010000000000001_400fffffffffffff_0000000000000000_11100_1 | 0004000000000000_0
0010000000000001_4010000000000000_0000000000000000_11100_1 | 0004000000000000_0
0010000000000001_4010000000000001_0000000000000000_11100_1 | 0004000000000000_0
0010000000000001_401fffffffffffff_0000000000000000_11000_1 | 0002000000000000_0
0010000000000001_401ffffffffffffe_0000000000000000_11000_1 | 0002000000000000_0
0010000000000001_c000000000000000_8000000000000000_11000_1 | 8008000000000000_0
0010000000000001_c000000000000001_8000000000000000_11000_1 | 8008000000000000_0
0010000000000001_c00fffffffffffff_8000000000000000_11100_1 | 8004000000000000_0
0010000000000001_c010000000000000_8000000000000000_11100_1 | 8004000000000000_0
0010000000000001_c010000000000001_8000000000000000_11100_1 | 8004000000000000_0
0010000000000001_c01fffffffffffff_8000000000000000_11000_1 | 8002000000000000_0
0010000000000001_c01ffffffffffffe_8000000000000000_11000_1 | 8002000000000000_0
001fffffffffffff_4000000000000000_0000000000000000_11000_1 | 0010000000000000_0
001fffffffffffff_400fffffffffffff_0000000000000000_11000_1 | 0008000000000000_0
001fffffffffffff_400ffffffffffffe_0000000000000000_11000_1 | 0008000000000000_0
001fffffffffffff_4010000000000000_0000000000000000_11100_1 | 0008000000000000_0
001fffffffffffff_401fffffffffffff_0000000000000000_11100_1 | 0004000000000000_0
001fffffffffffff_401ffffffffffffe_0000000000000000_11100_1 | 0004000000000000_0
001fffffffffffff_c000000000000000_8000000000000000_11000_1 | 8010000000000000_0
001fffffffffffff_c00fffffffffffff_8000000000000000_11000_1 | 8008000000000000_0
001fffffffffffff_c00ffffffffffffe_8000000000000000_11000_1 | 8008000000000000_0
001fffffffffffff_c010000000000000_8000000000000000_11100_1 | 8008000000000000_0
001fffffffffffff_c01fffffffffffff_8000000000000000_11100_1 | 8004000000000000_0
001fffffffffffff_c01ffffffffffffe_8000000000000000_11100_1 | 8004000000000000_0
001ffffffffffffe_400fffffffffffff_0000000000000000_11100_1 | 0008000000000000_0
001ffffffffffffe_400ffffffffffffe_0000000000000000_11000_1 | 0008000000000000_0
001ffffffffffffe_4010000000000000_0000000000000000_11100_1 | 0008000000000000_0
001ffffffffffffe_401fffffffffffff_0000000000000000_11000_1 | 0004000000000000_0
001ffffffffffffe_401ffffffffffffe_0000000000000000_11100_1 | 0004000000000000_0
001ffffffffffffe_c00fffffffffffff_8000000000000000_11100_1 | 8008000000000000_0
001ffffffffffffe_c00ffffffffffffe_8000000000000000_11000_1 | 8008000000000000_0
001ffffffffffffe_c010000000000000_8000000000000000_11100_1 | 8008000000000000_0
001ffffffffffffe_c01fffffffffffff_8000000000000000_11000_1 | 8004000000000000_0
001ffffffffffffe_c01ffffffffffffe_8000000000000000_11100_1 | 8004000000000000_0
3fd0000000000000_7fe0000000000000_0000000000000000_11000_1 | 0002000000000000_0
3fd0000000000000_7fe0000000000001_0000000000000000_11000_1 | 0002000000000000_0
3fd0000000000000_7fefffffffffffff_0000000000000000_11000_1 | 0001000000000000_0
3fd0000000000000_7feffffffffffffe_0000000000000000_11000_1 | 0001000000000000_0
3fd0000000000000_ffe0000000000000_8000000000000000_11000_1 | 8002000000000000_0
3fd0000000000000_ffe0000000000001_8000000000000000_11000_1 | 8002000000000000_0
3fd0000000000000_ffefffffffffffff_8000000000000000_11000_1 | 8001000000000000_0
3fd0000000000000_ffeffffffffffffe_8000000000000000_11000_1 | 8001000000000000_0
3fd0000000000001_7fe0000000000000_0000000000000000_11000_1 | 0002000000000000_0
3fd0000000000001_7fe0000000000001_0000000000000000_11000_1 | 0002000000000000_0
3fd0000000000001_7fefffffffffffff_0000000000000000_11000_1 | 0001000000000000_0
3fd0000000000001_7feffffffffffffe_0000000000000000_11000_1 | 0001000000000000_0
3fd0000000000001_ffe0000000000000_8000000000000000_11000_1 | 8002000000000000_0
3fd0000000000001_ffe0000000000001_8000000000000000_11000_1 | 8002000000000000_0
3fd0000000000001_ffefffffffffffff_8000000000000000_11000_1 | 8001000000000000_0
3fd0000000000001_ffeffffffffffffe_8000000000000000_11000_1 | 8001000000000000_0
3fdfffffffffffff_7fe0000000000000_0000000000000000_11000_1 | 0004000000000000_0
3fdfffffffffffff_7fe0000000000001_0000000000000000_11000_1 | 0004000000000000_0
3fdfffffffffffff_7fefffffffffffff_0000000000000000_11000_1 | 0002000000000000_0
3fdfffffffffffff_7feffffffffffffe_0000000000000000_11000_1 | 0002000000000000_0
3fdfffffffffffff_ffe0000000000000_8000000000000000_11000_1 | 8004000000000000_0
3fdfffffffffffff_ffe0000000000001_8000000000000000_11000_1 | 8004000000000000_0
3fdfffffffffffff_ffefffffffffffff_8000000000000000_11000_1 | 8002000000000000_0
3fdfffffffffffff_ffeffffffffffffe_8000000000000000_11000_1 | 8002000000000000_0
3fdffffffffffffe_7fe0000000000000_0000000000000000_11000_1 | 0004000000000000_0
3fdffffffffffffe_7fe0000000000001_0000000000000000_11000_1 | 0004000000000000_0
3fdffffffffffffe_7fefffffffffffff_0000000000000000_11000_1 | 0002000000000000_0
3fdffffffffffffe_7feffffffffffffe_0000000000000000_11000_1 | 0002000000000000_0
3fdffffffffffffe_ffe0000000000000_8000000000000000_11000_1 | 8004000000000000_0
3fdffffffffffffe_ffe0000000000001_8000000000000000_11000_1 | 8004000000000000_0
3fdffffffffffffe_ffefffffffffffff_8000000000000000_11000_1 | 8002000000000000_0
3fdffffffffffffe_ffeffffffffffffe_8000000000000000_11000_1 | 8002000000000000_0
3fe0000000000000_7fe0000000000000_0000000000000000_11100_1 | 0004000000000000_0
3fe0000000000000_7fe0000000000001_0000000000000000_11000_1 | 0004000000000000_0
3fe0000000000000_7fefffffffffffff_0000000000000000_11000_1 | 0002000000000000_0
3fe0000000000000_7feffffffffffffe_0000000000000000_11000_1 | 0002000000000000_0
3fe0000000000000_ffe0000000000000_8000000000000000_11100_1 | 8004000000000000_0
3fe0000000000000_ffe0000000000001_8000000000000000_11000_1 | 8004000000000000_0
3fe0000000000000_ffefffffffffffff_8000000000000000_11000_1 | 8002000000000000_0
3fe0000000000000_ffeffffffffffffe_8000000000000000_11000_1 | 8002000000000000_0
3fe0000000000001_7fe0000000000000_0000000000000000_11100_1 | 0004000000000000_0
3fe0000000000001_7fe0000000000001_0000000000000000_11100_1 | 0004000000000000_0
3fe0000000000001_7fefffffffffffff_0000000000000000_11000_1 | 0002000000000000_0
3fe0000000000001_7feffffffffffffe_0000000000000000_11000_1 | 0002000000000000_0
3fe0000000000001_ffe0000000000000_8000000000000000_11100_1 | 8004000000000000_0
3fe0000000000001_ffe0000000000001_8000000000000000_11100_1 | 8004000000000000_0
3fe0000000000001_ffefffffffffffff_8000000000000000_11000_1 | 8002000000000000_0
3fe0000000000001_ffeffffffffffffe_8000000000000000_11000_1 | 8002000000000000_0
3fefffffffffffff_7fe0000000000000_0000000000000000_11100_1 | 0008000000000000_0
3fefffffffffffff_7fefffffffffffff_0000000000000000_11100_1 | 0004000000000000_0
3fefffffffffffff_7feffffffffffffe_0000000000000000_11100_1 | 0004000000000000_0
3fefffffffffffff_ffe0000000000000_8000000000000000_11100_1 | 8008000000000000_0
3fefffffffffffff_ffefffffffffffff_8000000000000000_11100_1 | 8004000000000000_0
3fefffffffffffff_ffeffffffffffffe_8000000000000000_11100_1 | 8004000000000000_0
3feffffffffffffe_7fe0000000000000_0000000000000000_11100_1 | 0008000000000000_0
3feffffffffffffe_7fefffffffffffff_0000000000000000_11000_1 | 0004000000000000_0
3feffffffffffffe_7feffffffffffffe_0000000000000000_11100_1 | 0004000000000000_0
3feffffffffffffe_ffe0000000000000_8000000000000000_11100_1 | 8008000000000000_0
3feffffffffffffe_ffefffffffffffff_8000000000000000_11000_1 | 8004000000000000_0
3feffffffffffffe_ffeffffffffffffe_8000000000000000_11100_1 | 8004000000000000_0
3ff0000000000000_7fe0000000000000_0000000000000000_11000_1 | 0008000000000000_0
3ff0000000000000_7fe0000000000001_0000000000000000_11100_1 | 0008000000000000_0
3ff0000000000000_7fefffffffffffff_0000000000000000_11100_1 | 0004000000000000_0
3ff0000000000000_7feffffffffffffe_0000000000000000_11100_1 | 0004000000000000_0
3ff0000000000000_ffe0000000000000_8000000000000000_11000_1 | 8008000000000000_0
3ff0000000000000_ffe0000000000001_8000000000000000_11100_1 | 8008000000000000_0
3ff0000000000000_ffefffffffffffff_8000000000000000_11100_1 | 8004000000000000_0
3ff0000000000000_ffeffffffffffffe_8000000000000000_11100_1 | 8004000000000000_0
3ff0000000000001_7fe0000000000000_0000000000000000_11000_1 | 0008000000000000_0
3ff0000000000001_7fe0000000000001_0000000000000000_11000_1 | 0008000000000000_0
3ff0000000000001_7fefffffffffffff_0000000000000000_11100_1 | 0004000000000000_0
3ff0000000000001_ffe0000000000000_8000000000000000_11000_1 | 8008000000000000_0
3ff0000000000001_ffe0000000000001_8000000000000000_11000_1 | 8008000000000000_0
3ff0000000000001_ffefffffffffffff_8000000000000000_11100_1 | 8004000000000000_0
3fffffffffffffff_7fe0000000000000_0000000000000000_11000_1 | 0010000000000000_0
3fffffffffffffff_7fefffffffffffff_0000000000000000_11000_1 | 0008000000000000_0
3fffffffffffffff_7feffffffffffffe_0000000000000000_11000_1 | 0008000000000000_0
3fffffffffffffff_ffe0000000000000_8000000000000000_11000_1 | 8010000000000000_0
3fffffffffffffff_ffefffffffffffff_8000000000000000_11000_1 | 8008000000000000_0
3fffffffffffffff_ffeffffffffffffe_8000000000000000_11000_1 | 8008000000000000_0
3ffffffffffffffe_7fefffffffffffff_0000000000000000_11100_1 | 0008000000000000_0
3ffffffffffffffe_7feffffffffffffe_0000000000000000_11000_1 | 0008000000000000_0
3ffffffffffffffe_ffefffffffffffff_8000000000000000_11100_1 | 8008000000000000_0
3ffffffffffffffe_ffeffffffffffffe_8000000000000000_11000_1 | 8008000000000000_0
4000000000000000_7fefffffffffffff_0000000000000000_11000_1 | 0008000000000000_0
4000000000000000_ffefffffffffffff_8000000000000000_11000_1 | 8008000000000000_0
8010000000000000_3fffffffffffffff_8000000000000000_11000_1 | 8008000000000000_0
8010000000000000_4000000000000000_8000000000000000_11000_1 | 8008000000000000_0
8010000000000000_4000000000000001_8000000000000000_11100_1 | 8008000000000000_0
8010000000000000_400fffffffffffff_8000000000000000_11100_1 | 8004000000000000_0
8010000000000000_400ffffffffffffe_8000000000000000_11100_1 | 8004000000000000_0
8010000000000000_4010000000000000_8000000000000000_11100_1 | 8004000000000000_0
8010000000000000_4010000000000001_8000000000000000_11000_1 | 8004000000000000_0
8010000000000000_401fffffffffffff_8000000000000000_11000_1 | 8002000000000000_0
8010000000000000_401ffffffffffffe_8000000000000000_11000_1 | 8002000000000000_0
8010000000000000_bfffffffffffffff_0000000000000000_11000_1 | 0008000000000000_0
8010000000000000_c000000000000000_0000000000000000_11000_1 | 0008000000000000_0
8010000000000000_c000000000000001_0000000000000000_11100_1 | 0008000000000000_0
8010000000000000_c00fffffffffffff_0000000000000000_11100_1 | 0004000000000000_0
8010000000000000_c00ffffffffffffe_0000000000000000_11100_1 | 0004000000000000_0
8010000000000000_c010000000000000_0000000000000000_11100_1 | 0004000000000000_0
8010000000000000_c010000000000001_0000000000000000_11000_1 | 0004000000000000_0
8010000000000000_c01fffffffffffff_0000000000000000_11000_1 | 0002000000000000_0
8010000000000000_c01ffffffffffffe_0000000000000000_11000_1 | 0002000000000000_0
8010000000000001_4000000000000000_8000000000000000_11000_1 | 8008000000000000_0
8010000000000001_4000000000000001_8000000000000000_11000_1 | 8008000000000000_0
8010000000000001_400fffffffffffff_8000000000000000_11100_1 | 8004000000000000_0
8010000000000001_4010000000000000_8000000000000000_11100_1 | 8004000000000000_0
8010000000000001_4010000000000001_8000000000000000_11100_1 | 8004000000000000_0
8010000000000001_401fffffffffffff_8000000000000000_11000_1 | 8002000000000000_0
8010000000000001_401ffffffffffffe_8000000000000000_11000_1 | 8002000000000000_0
8010000000000001_c000000000000000_0000000000000000_11000_1 | 0008000000000000_0
8010000000000001_c000000000000001_0000000000000000_11000_1 | 0008000000000000_0
8010000000000001_c00fffffffffffff_0000000000000000_11100_1 | 0004000000000000_0
8010000000000001_c010000000000000_0000000000000000_11100_1 | 0004000000000000_0
8010000000000001_c010000000000001_0000000000000000_11100_1 | 0004000000000000_0
8010000000000001_c01fffffffffffff_0000000000000000_11000_1 | 0002000000000000_0
8010000000000001_c01ffffffffffffe_0000000000000000_11000_1 | 0002000000000000_0
801fffffffffffff_4000000000000000_8000000000000000_11000_1 | 8010000000000000_0
801fffffffffffff_400fffffffffffff_8000000000000000_11000_1 | 8008000000000000_0
801fffffffffffff_400ffffffffffffe_8000000000000000_11000_1 | 8008000000000000_0
801fffffffffffff_4010000000000000_8000000000000000_11100_1 | 8008000000000000_0
801fffffffffffff_401fffffffffffff_8000000000000000_11100_1 | 8004000000000000_0
801fffffffffffff_401ffffffffffffe_8000000000000000_11100_1 | 8004000000000000_0
801fffffffffffff_c000000000000000_0000000000000000_11000_1 | 0010000000000000_0
801fffffffffffff_c00fffffffffffff_0000000000000000_11000_1 | 0008000000000000_0
801fffffffffffff_c00ffffffffffffe_0000000000000000_11000_1 | 0008000000000000_0
801fffffffffffff_c010000000000000_0000000000000000_11100_1 | 0008000000000000_0
801fffffffffffff_c01fffffffffffff_0000000000000000_11100_1 | 0004000000000000_0
801fffffffffffff_c01ffffffffffffe_0000000000000000_11100_1 | 0004000000000000_0
801ffffffffffffe_400fffffffffffff_8000000000000000_11100_1 | 8008000000000000_0
801ffffffffffffe_400ffffffffffffe_8000000000000000_11000_1 | 8008000000000000_0
801ffffffffffffe_4010000000000000_8000000000000000_11100_1 | 8008000000000000_0
801ffffffffffffe_401fffffffffffff_8000000000000000_11000_1 | 8004000000000000_0
801ffffffffffffe_401ffffffffffffe_8000000000000000_11100_1 | 8004000000000000_0
801ffffffffffffe_c00fffffffffffff_0000000000000000_11100_1 | 0008000000000000_0
801ffffffffffffe_c00fffffffffffff_0000000000000000_11100_1 | 0008000000000000_0
801ffffffffffffe_c00ffffffffffffe_0000000000000000_11000_1 | 0008000000000000_0
801ffffffffffffe_c010000000000000_0000000000000000_11100_1 | 0008000000000000_0
801ffffffffffffe_c01fffffffffffff_0000000000000000_11000_1 | 0004000000000000_0
801ffffffffffffe_c01ffffffffffffe_0000000000000000_11100_1 | 0004000000000000_0
bfd0000000000000_7fe0000000000000_8000000000000000_11000_1 | 8002000000000000_0
bfd0000000000000_7fe0000000000001_8000000000000000_11000_1 | 8002000000000000_0
bfd0000000000000_7fefffffffffffff_8000000000000000_11000_1 | 8001000000000000_0
bfd0000000000000_7feffffffffffffe_8000000000000000_11000_1 | 8001000000000000_0
bfd0000000000000_ffe0000000000000_0000000000000000_11000_1 | 0002000000000000_0
bfd0000000000000_ffe0000000000001_0000000000000000_11000_1 | 0002000000000000_0
bfd0000000000000_ffefffffffffffff_0000000000000000_11000_1 | 0001000000000000_0
bfd0000000000000_ffeffffffffffffe_0000000000000000_11000_1 | 0001000000000000_0
bfd0000000000001_7fe0000000000000_8000000000000000_11000_1 | 8002000000000000_0
bfd0000000000001_7fe0000000000001_8000000000000000_11000_1 | 8002000000000000_0
bfd0000000000001_7fefffffffffffff_8000000000000000_11000_1 | 8001000000000000_0
bfd0000000000001_7feffffffffffffe_8000000000000000_11000_1 | 8001000000000000_0
bfd0000000000001_ffe0000000000000_0000000000000000_11000_1 | 0002000000000000_0
bfd0000000000001_ffe0000000000001_0000000000000000_11000_1 | 0002000000000000_0
bfd0000000000001_ffefffffffffffff_0000000000000000_11000_1 | 0001000000000000_0
bfd0000000000001_ffeffffffffffffe_0000000000000000_11000_1 | 0001000000000000_0
bfdfffffffffffff_7fe0000000000000_8000000000000000_11000_1 | 8004000000000000_0
bfdfffffffffffff_7fe0000000000001_8000000000000000_11000_1 | 8004000000000000_0
bfdfffffffffffff_7fefffffffffffff_8000000000000000_11000_1 | 8002000000000000_0
bfdfffffffffffff_7feffffffffffffe_8000000000000000_11000_1 | 8002000000000000_0
bfdfffffffffffff_ffe0000000000000_0000000000000000_11000_1 | 0004000000000000_0
bfdfffffffffffff_ffe0000000000001_0000000000000000_11000_1 | 0004000000000000_0
bfdfffffffffffff_ffefffffffffffff_0000000000000000_11000_1 | 0002000000000000_0
bfdfffffffffffff_ffeffffffffffffe_0000000000000000_11000_1 | 0002000000000000_0
bfdffffffffffffe_7fe0000000000000_8000000000000000_11000_1 | 8004000000000000_0
bfdffffffffffffe_7fe0000000000001_8000000000000000_11000_1 | 8004000000000000_0
bfdffffffffffffe_7fefffffffffffff_8000000000000000_11000_1 | 8002000000000000_0
bfdffffffffffffe_7feffffffffffffe_8000000000000000_11000_1 | 8002000000000000_0
bfdffffffffffffe_ffe0000000000000_0000000000000000_11000_1 | 0004000000000000_0
bfdffffffffffffe_ffe0000000000001_0000000000000000_11000_1 | 0004000000000000_0
bfdffffffffffffe_ffefffffffffffff_0000000000000000_11000_1 | 0002000000000000_0
bfdffffffffffffe_ffeffffffffffffe_0000000000000000_11000_1 | 0002000000000000_0
bfe0000000000000_7fe0000000000000_8000000000000000_11100_1 | 8004000000000000_0
bfe0000000000000_7fe0000000000001_8000000000000000_11000_1 | 8004000000000000_0
bfe0000000000000_7fefffffffffffff_8000000000000000_11000_1 | 8002000000000000_0
bfe0000000000000_7feffffffffffffe_8000000000000000_11000_1 | 8002000000000000_0
bfe0000000000000_ffe0000000000000_0000000000000000_11100_1 | 0004000000000000_0
bfe0000000000000_ffe0000000000001_0000000000000000_11000_1 | 0004000000000000_0
bfe0000000000000_ffefffffffffffff_0000000000000000_11000_1 | 0002000000000000_0
bfe0000000000000_ffeffffffffffffe_0000000000000000_11000_1 | 0002000000000000_0
bfe0000000000001_7fe0000000000000_8000000000000000_11100_1 | 8004000000000000_0
bfe0000000000001_7fe0000000000001_8000000000000000_11100_1 | 8004000000000000_0
bfe0000000000001_7fefffffffffffff_8000000000000000_11000_1 | 8002000000000000_0
bfe0000000000001_7feffffffffffffe_8000000000000000_11000_1 | 8002000000000000_0
bfe0000000000001_ffe0000000000000_0000000000000000_11100_1 | 0004000000000000_0
bfe0000000000001_ffe0000000000001_0000000000000000_11100_1 | 0004000000000000_0
bfe0000000000001_ffefffffffffffff_0000000000000000_11000_1 | 0002000000000000_0
bfe0000000000001_ffeffffffffffffe_0000000000000000_11000_1 | 0002000000000000_0
bfefffffffffffff_7fe0000000000000_8000000000000000_11100_1 | 8008000000000000_0
bfefffffffffffff_7fefffffffffffff_8000000000000000_11100_1 | 8004000000000000_0
bfefffffffffffff_7feffffffffffffe_8000000000000000_11100_1 | 8004000000000000_0
bfefffffffffffff_ffe0000000000000_0000000000000000_11100_1 | 0008000000000000_0
bfefffffffffffff_ffefffffffffffff_0000000000000000_11100_1 | 0004000000000000_0
bfefffffffffffff_ffeffffffffffffe_0000000000000000_11100_1 | 0004000000000000_0
bfeffffffffffffe_7fe0000000000000_8000000000000000_11100_1 | 8008000000000000_0
bfeffffffffffffe_7fefffffffffffff_8000000000000000_11000_1 | 8004000000000000_0
bfeffffffffffffe_7feffffffffffffe_8000000000000000_11100_1 | 8004000000000000_0
bfeffffffffffffe_ffe0000000000000_0000000000000000_11100_1 | 0008000000000000_0
bfeffffffffffffe_ffefffffffffffff_0000000000000000_11000_1 | 0004000000000000_0
bfeffffffffffffe_ffeffffffffffffe_0000000000000000_11100_1 | 0004000000000000_0
bff0000000000000_7fe0000000000000_8000000000000000_11000_1 | 8008000000000000_0
bff0000000000000_7fe0000000000001_8000000000000000_11100_1 | 8008000000000000_0
bff0000000000000_7fefffffffffffff_8000000000000000_11100_1 | 8004000000000000_0
bff0000000000000_7feffffffffffffe_8000000000000000_11100_1 | 8004000000000000_0
bff0000000000000_ffe0000000000000_0000000000000000_11000_1 | 0008000000000000_0
bff0000000000000_ffe0000000000001_0000000000000000_11100_1 | 0008000000000000_0
bff0000000000000_ffefffffffffffff_0000000000000000_11100_1 | 0004000000000000_0
bff0000000000000_ffeffffffffffffe_0000000000000000_11100_1 | 0004000000000000_0
bff0000000000001_7fe0000000000000_8000000000000000_11000_1 | 8008000000000000_0
bff0000000000001_7fe0000000000001_8000000000000000_11000_1 | 8008000000000000_0
bff0000000000001_7fefffffffffffff_8000000000000000_11100_1 | 8004000000000000_0
bff0000000000001_ffe0000000000000_0000000000000000_11000_1 | 0008000000000000_0
bff0000000000001_ffe0000000000001_0000000000000000_11000_1 | 0008000000000000_0
bff0000000000001_ffefffffffffffff_0000000000000000_11100_1 | 0004000000000000_0
bfffffffffffffff_7fe0000000000000_8000000000000000_11000_1 | 8010000000000000_0
bfffffffffffffff_7fefffffffffffff_8000000000000000_11000_1 | 8008000000000000_0
bfffffffffffffff_7feffffffffffffe_8000000000000000_11000_1 | 8008000000000000_0
bfffffffffffffff_ffe0000000000000_0000000000000000_11000_1 | 0010000000000000_0
bfffffffffffffff_ffefffffffffffff_0000000000000000_11000_1 | 0008000000000000_0
bfffffffffffffff_ffeffffffffffffe_0000000000000000_11000_1 | 0008000000000000_0
bffffffffffffffe_7fefffffffffffff_8000000000000000_11100_1 | 8008000000000000_0
bffffffffffffffe_7feffffffffffffe_8000000000000000_11000_1 | 8008000000000000_0
bffffffffffffffe_ffefffffffffffff_0000000000000000_11100_1 | 0008000000000000_0
bffffffffffffffe_ffeffffffffffffe_0000000000000000_11000_1 | 0008000000000000_0
c000000000000000_7fefffffffffffff_8000000000000000_11000_1 | 8008000000000000_0
c000000000000000_ffefffffffffffff_0000000000000000_11000_1 | 0008000000000000_0
bfdffffffffffffe_7fefffffffffffff_8000000000000000_11000_1 | 8002000000000000_0
f64 DIV RD
0010000000000000_3fffffffffffffff_0000000000000000_11000_1 | 0008000000000000_0
0010000000000000_3ffffffffffffffe_0000000000000000_11000_1 | 0008000000000000_0
0010000000000000_4000000000000000_0000000000000000_11000_1 | 0008000000000000_0
0010000000000000_400fffffffffffff_000fffffffffffff_11100_1 | 0004000000000000_0
0010000000000000_400ffffffffffffe_000fffffffffffff_11100_1 | 0004000000000000_0
0010000000000000_4010000000000000_000fffffffffffff_11100_1 | 0004000000000000_0
0010000000000000_401fffffffffffff_0000000000000000_11000_1 | 0002000000000000_0
0010000000000000_401ffffffffffffe_0000000000000000_11000_1 | 0002000000000000_0
0010000000000000_bff0000000000001_8000000000000000_11000_1 | 8010000000000000_0
0010000000000000_c000000000000000_8000000000000000_11000_1 | 8008000000000000_0
0010000000000000_c000000000000001_8000000000000000_11100_1 | 8008000000000000_0
0010000000000000_c010000000000000_8000000000000000_11100_1 | 8004000000000000_0
0010000000000000_c010000000000001_8000000000000000_11000_1 | 8004000000000000_0
0010000000000001_3fffffffffffffff_0000000000000000_11000_1 | 0008000000000000_0
0010000000000001_4000000000000000_0000000000000000_11000_1 | 0008000000000000_0
0010000000000001_4000000000000001_0000000000000000_11000_1 | 0008000000000000_0
0010000000000001_400fffffffffffff_000fffffffffffff_11100_1 | 0004000000000000_0
0010000000000001_400ffffffffffffe_000fffffffffffff_11100_1 | 0004000000000000_0
0010000000000001_4010000000000000_000fffffffffffff_11100_1 | 0004000000000000_0
0010000000000001_4010000000000001_000fffffffffffff_11100_1 | 0004000000000000_0
0010000000000001_401fffffffffffff_0000000000000000_11000_1 | 0002000000000000_0
0010000000000001_401ffffffffffffe_0000000000000000_11000_1 | 0002000000000000_0
0010000000000001_c000000000000001_8000000000000000_11000_1 | 8008000000000000_0
0010000000000001_c010000000000001_8000000000000000_11100_1 | 8004000000000000_0
001fffffffffffff_400fffffffffffff_0000000000000000_11000_1 | 0008000000000000_0
001fffffffffffff_400ffffffffffffe_0000000000000000_11000_1 | 0008000000000000_0
001fffffffffffff_401fffffffffffff_000fffffffffffff_11100_1 | 0004000000000000_0
001fffffffffffff_401ffffffffffffe_000fffffffffffff_11100_1 | 0004000000000000_0
001fffffffffffff_c000000000000000_8000000000000000_11000_1 | 8010000000000000_0
001fffffffffffff_c00fffffffffffff_8000000000000000_11000_1 | 8008000000000000_0
001fffffffffffff_c010000000000000_8000000000000000_11100_1 | 8008000000000000_0
001fffffffffffff_c010000000000001_8000000000000000_11100_1 | 8008000000000000_0
001fffffffffffff_c01fffffffffffff_8000000000000000_11100_1 | 8004000000000000_0
001ffffffffffffe_400ffffffffffffe_0000000000000000_11000_1 | 0008000000000000_0
001ffffffffffffe_401ffffffffffffe_000fffffffffffff_11100_1 | 0004000000000000_0
001ffffffffffffe_bfffffffffffffff_8000000000000000_11000_1 | 8010000000000000_0
001ffffffffffffe_c00fffffffffffff_8000000000000000_11100_1 | 8008000000000000_0
001ffffffffffffe_c00ffffffffffffe_8000000000000000_11000_1 | 8008000000000000_0
001ffffffffffffe_c010000000000000_8000000000000000_11100_1 | 8008000000000000_0
001ffffffffffffe_c010000000000001_8000000000000000_11100_1 | 8008000000000000_0
001ffffffffffffe_c01fffffffffffff_8000000000000000_11000_1 | 8004000000000000_0
001ffffffffffffe_c01ffffffffffffe_8000000000000000_11100_1 | 8004000000000000_0
3fd0000000000000_7fe0000000000000_0000000000000000_11000_1 | 0002000000000000_0
3fd0000000000000_7fefffffffffffff_0000000000000000_11000_1 | 0001000000000000_0
3fd0000000000000_7feffffffffffffe_0000000000000000_11000_1 | 0001000000000000_0
3fd0000000000000_ffe0000000000000_8000000000000000_11000_1 | 8002000000000000_0
3fd0000000000000_ffe0000000000001_8000000000000000_11000_1 | 8002000000000000_0
3fd0000000000001_7fe0000000000000_0000000000000000_11000_1 | 0002000000000000_0
3fd0000000000001_7fe0000000000001_0000000000000000_11000_1 | 0002000000000000_0
3fd0000000000001_7fefffffffffffff_0000000000000000_11000_1 | 0001000000000000_0
3fd0000000000001_7feffffffffffffe_0000000000000000_11000_1 | 0001000000000000_0
3fd0000000000001_ffe0000000000001_8000000000000000_11000_1 | 8002000000000000_0
3fdfffffffffffff_7fefffffffffffff_0000000000000000_11000_1 | 0002000000000000_0
3fdfffffffffffff_7feffffffffffffe_0000000000000000_11000_1 | 0002000000000000_0
3fdfffffffffffff_ffe0000000000000_8000000000000000_11000_1 | 8004000000000000_0
3fdfffffffffffff_ffe0000000000001_8000000000000000_11000_1 | 8004000000000000_0
3fdfffffffffffff_ffefffffffffffff_8000000000000000_11000_1 | 8002000000000000_0
3fdffffffffffffe_7feffffffffffffe_0000000000000000_11000_1 | 0002000000000000_0
3fdffffffffffffe_ffe0000000000000_8000000000000000_11000_1 | 8004000000000000_0
3fdffffffffffffe_ffe0000000000001_8000000000000000_11000_1 | 8004000000000000_0
3fdffffffffffffe_ffefffffffffffff_8000000000000000_11000_1 | 8002000000000000_0
3fdffffffffffffe_ffeffffffffffffe_8000000000000000_11000_1 | 8002000000000000_0
3fe0000000000000_7fe0000000000000_000fffffffffffff_11100_1 | 0004000000000000_0
3fe0000000000000_7fefffffffffffff_0000000000000000_11000_1 | 0002000000000000_0
3fe0000000000000_7feffffffffffffe_0000000000000000_11000_1 | 0002000000000000_0
3fe0000000000000_ffe0000000000000_8000000000000000_11100_1 | 8004000000000000_0
3fe0000000000000_ffe0000000000001_8000000000000000_11000_1 | 8004000000000000_0
3fe0000000000001_7fe0000000000000_000fffffffffffff_11100_1 | 0004000000000000_0
3fe0000000000001_7fe0000000000001_000fffffffffffff_11100_1 | 0004000000000000_0
3fe0000000000001_7fefffffffffffff_0000000000000000_11000_1 | 0002000000000000_0
3fe0000000000001_7feffffffffffffe_0000000000000000_11000_1 | 0002000000000000_0
3fe0000000000001_ffe0000000000001_8000000000000000_11100_1 | 8004000000000000_0
3fefffffffffffff_7fefffffffffffff_000fffffffffffff_11100_1 | 0004000000000000_0
3fefffffffffffff_7feffffffffffffe_000fffffffffffff_11100_1 | 0004000000000000_0
3fefffffffffffff_ffe0000000000000_8000000000000000_11100_1 | 8008000000000000_0
3fefffffffffffff_ffe0000000000001_8000000000000000_11100_1 | 8008000000000000_0
3fefffffffffffff_ffefffffffffffff_8000000000000000_11100_1 | 8004000000000000_0
3feffffffffffffe_7feffffffffffffe_000fffffffffffff_11100_1 | 0004000000000000_0
3feffffffffffffe_ffe0000000000000_8000000000000000_11100_1 | 8008000000000000_0
3feffffffffffffe_ffe0000000000001_8000000000000000_11100_1 | 8008000000000000_0
3feffffffffffffe_ffefffffffffffff_8000000000000000_11000_1 | 8004000000000000_0
3feffffffffffffe_ffeffffffffffffe_8000000000000000_11100_1 | 8004000000000000_0
3ff0000000000000_7fe0000000000000_0000000000000000_11000_1 | 0008000000000000_0
3ff0000000000000_7fefffffffffffff_000fffffffffffff_11100_1 | 0004000000000000_0
3ff0000000000000_7feffffffffffffe_000fffffffffffff_11100_1 | 0004000000000000_0
3ff0000000000000_ffe0000000000000_8000000000000000_11000_1 | 8008000000000000_0
3ff0000000000000_ffe0000000000001_8000000000000000_11100_1 | 8008000000000000_0
3ff0000000000001_7fe0000000000000_0000000000000000_11000_1 | 0008000000000000_0
3ff0000000000001_7fe0000000000001_0000000000000000_11000_1 | 0008000000000000_0
3ff0000000000001_7fefffffffffffff_000fffffffffffff_11100_1 | 0004000000000000_0
3ff0000000000001_7feffffffffffffe_000fffffffffffff_11100_1 | 0004000000000000_0
3ff0000000000001_ffe0000000000001_8000000000000000_11000_1 | 8008000000000000_0
3fffffffffffffff_7fefffffffffffff_0000000000000000_11000_1 | 0008000000000000_0
3fffffffffffffff_7feffffffffffffe_0000000000000000_11000_1 | 0008000000000000_0
3fffffffffffffff_ffe0000000000000_8000000000000000_11000_1 | 8010000000000000_0
3fffffffffffffff_ffefffffffffffff_8000000000000000_11000_1 | 8008000000000000_0
3ffffffffffffffe_7feffffffffffffe_0000000000000000_11000_1 | 0008000000000000_0
3ffffffffffffffe_ffefffffffffffff_8000000000000000_11100_1 | 8008000000000000_0
3ffffffffffffffe_ffeffffffffffffe_8000000000000000_11000_1 | 8008000000000000_0
4000000000000000_7fefffffffffffff_0000000000000000_11000_1 | 0008000000000000_0
4000000000000000_7feffffffffffffe_0000000000000000_11000_1 | 0008000000000000_0
4000000000000000_ffe0000000000001_8000000000000000_11000_1 | 8010000000000000_0
4000000000000001_7fefffffffffffff_0000000000000000_11000_1 | 0008000000000000_0
400ffffffffffffe_ffefffffffffffff_8000000000000000_11000_1 | 8010000000000000_0
8010000000000000_3ff0000000000001_8000000000000000_11000_1 | 8010000000000000_0
8010000000000000_4000000000000000_8000000000000000_11000_1 | 8008000000000000_0
8010000000000000_4000000000000001_8000000000000000_11100_1 | 8008000000000000_0
8010000000000000_4010000000000000_8000000000000000_11100_1 | 8004000000000000_0
8010000000000000_4010000000000001_8000000000000000_11000_1 | 8004000000000000_0
8010000000000000_bfffffffffffffff_0000000000000000_11000_1 | 0008000000000000_0
8010000000000000_bffffffffffffffe_0000000000000000_11000_1 | 0008000000000000_0
8010000000000000_c000000000000000_0000000000000000_11000_1 | 0008000000000000_0
8010000000000000_c00fffffffffffff_000fffffffffffff_11100_1 | 0004000000000000_0
8010000000000000_c00ffffffffffffe_000fffffffffffff_11100_1 | 0004000000000000_0
8010000000000000_c010000000000000_000fffffffffffff_11100_1 | 0004000000000000_0
8010000000000000_c01fffffffffffff_0000000000000000_11000_1 | 0002000000000000_0
8010000000000000_c01ffffffffffffe_0000000000000000_11000_1 | 0002000000000000_0
8010000000000001_4000000000000001_8000000000000000_11000_1 | 8008000000000000_0
8010000000000001_4010000000000001_8000000000000000_11100_1 | 8004000000000000_0
8010000000000001_bfffffffffffffff_0000000000000000_11000_1 | 0008000000000000_0
8010000000000001_c000000000000000_0000000000000000_11000_1 | 0008000000000000_0
8010000000000001_c000000000000001_0000000000000000_11000_1 | 0008000000000000_0
8010000000000001_c00fffffffffffff_000fffffffffffff_11100_1 | 0004000000000000_0
8010000000000001_c00ffffffffffffe_000fffffffffffff_11100_1 | 0004000000000000_0
8010000000000001_c010000000000000_000fffffffffffff_11100_1 | 0004000000000000_0
8010000000000001_c010000000000001_000fffffffffffff_11100_1 | 0004000000000000_0
8010000000000001_c01fffffffffffff_0000000000000000_11000_1 | 0002000000000000_0
8010000000000001_c01ffffffffffffe_0000000000000000_11000_1 | 0002000000000000_0
801fffffffffffff_4000000000000000_8000000000000000_11000_1 | 8010000000000000_0
801fffffffffffff_400fffffffffffff_8000000000000000_11000_1 | 8008000000000000_0
801fffffffffffff_4010000000000000_8000000000000000_11100_1 | 8008000000000000_0
801fffffffffffff_4010000000000001_8000000000000000_11100_1 | 8008000000000000_0
801fffffffffffff_401fffffffffffff_8000000000000000_11100_1 | 8004000000000000_0
801fffffffffffff_c00fffffffffffff_0000000000000000_11000_1 | 0008000000000000_0
801fffffffffffff_c00ffffffffffffe_0000000000000000_11000_1 | 0008000000000000_0
801fffffffffffff_c01fffffffffffff_000fffffffffffff_11100_1 | 0004000000000000_0
801fffffffffffff_c01ffffffffffffe_000fffffffffffff_11100_1 | 0004000000000000_0
801ffffffffffffe_3fffffffffffffff_8000000000000000_11000_1 | 8010000000000000_0
801ffffffffffffe_400fffffffffffff_8000000000000000_11100_1 | 8008000000000000_0
801ffffffffffffe_400ffffffffffffe_8000000000000000_11000_1 | 8008000000000000_0
801ffffffffffffe_4010000000000000_8000000000000000_11100_1 | 8008000000000000_0
801ffffffffffffe_4010000000000001_8000000000000000_11100_1 | 8008000000000000_0
801ffffffffffffe_401fffffffffffff_8000000000000000_11000_1 | 8004000000000000_0
801ffffffffffffe_401ffffffffffffe_8000000000000000_11100_1 | 8004000000000000_0
801ffffffffffffe_c00ffffffffffffe_0000000000000000_11000_1 | 0008000000000000_0
801ffffffffffffe_c01ffffffffffffe_000fffffffffffff_11100_1 | 0004000000000000_0
bfd0000000000000_7fe0000000000000_8000000000000000_11000_1 | 8002000000000000_0
bfd0000000000000_7fe0000000000001_8000000000000000_11000_1 | 8002000000000000_0
bfd0000000000000_ffe0000000000000_0000000000000000_11000_1 | 0002000000000000_0
bfd0000000000000_ffefffffffffffff_0000000000000000_11000_1 | 0001000000000000_0
bfd0000000000000_ffeffffffffffffe_0000000000000000_11000_1 | 0001000000000000_0
bfd0000000000001_7fe0000000000001_8000000000000000_11000_1 | 8002000000000000_0
bfd0000000000001_ffe0000000000000_0000000000000000_11000_1 | 0002000000000000_0
bfd0000000000001_ffe0000000000001_0000000000000000_11000_1 | 0002000000000000_0
bfd0000000000001_ffefffffffffffff_0000000000000000_11000_1 | 0001000000000000_0
bfd0000000000001_ffeffffffffffffe_0000000000000000_11000_1 | 0001000000000000_0
bfdfffffffffffff_7fe0000000000000_8000000000000000_11000_1 | 8004000000000000_0
bfdfffffffffffff_7fe0000000000001_8000000000000000_11000_1 | 8004000000000000_0
bfdfffffffffffff_7fefffffffffffff_8000000000000000_11000_1 | 8002000000000000_0
bfdfffffffffffff_ffefffffffffffff_0000000000000000_11000_1 | 0002000000000000_0
bfdfffffffffffff_ffeffffffffffffe_0000000000000000_11000_1 | 0002000000000000_0
bfdffffffffffffe_7fe0000000000000_8000000000000000_11000_1 | 8004000000000000_0
bfdffffffffffffe_7fe0000000000001_8000000000000000_11000_1 | 8004000000000000_0
bfdffffffffffffe_7fefffffffffffff_8000000000000000_11000_1 | 8002000000000000_0
bfdffffffffffffe_7feffffffffffffe_8000000000000000_11000_1 | 8002000000000000_0
bfdffffffffffffe_ffeffffffffffffe_0000000000000000_11000_1 | 0002000000000000_0
bfe0000000000000_7fe0000000000000_8000000000000000_11100_1 | 8004000000000000_0
bfe0000000000000_7fe0000000000001_8000000000000000_11000_1 | 8004000000000000_0
bfe0000000000000_ffe0000000000000_000fffffffffffff_11100_1 | 0004000000000000_0
bfe0000000000000_ffefffffffffffff_0000000000000000_11000_1 | 0002000000000000_0
bfe0000000000000_ffeffffffffffffe_0000000000000000_11000_1 | 0002000000000000_0
bfe0000000000001_7fe0000000000001_8000000000000000_11100_1 | 8004000000000000_0
bfe0000000000001_ffe0000000000000_000fffffffffffff_11100_1 | 0004000000000000_0
bfe0000000000001_ffe0000000000001_000fffffffffffff_11100_1 | 0004000000000000_0
bfe0000000000001_ffefffffffffffff_0000000000000000_11000_1 | 0002000000000000_0
bfe0000000000001_ffeffffffffffffe_0000000000000000_11000_1 | 0002000000000000_0
bfefffffffffffff_7fe0000000000000_8000000000000000_11100_1 | 8008000000000000_0
bfefffffffffffff_7fe0000000000001_8000000000000000_11100_1 | 8008000000000000_0
bfefffffffffffff_7fefffffffffffff_8000000000000000_11100_1 | 8004000000000000_0
bfefffffffffffff_ffefffffffffffff_000fffffffffffff_11100_1 | 0004000000000000_0
bfefffffffffffff_ffeffffffffffffe_000fffffffffffff_11100_1 | 0004000000000000_0
bfeffffffffffffe_7fe0000000000000_8000000000000000_11100_1 | 8008000000000000_0
bfeffffffffffffe_7fe0000000000001_8000000000000000_11100_1 | 8008000000000000_0
bfeffffffffffffe_7fefffffffffffff_8000000000000000_11000_1 | 8004000000000000_0
bfeffffffffffffe_7feffffffffffffe_8000000000000000_11100_1 | 8004000000000000_0
bfeffffffffffffe_ffeffffffffffffe_000fffffffffffff_11100_1 | 0004000000000000_0
bff0000000000000_7fe0000000000000_8000000000000000_11000_1 | 8008000000000000_0
bff0000000000000_7fe0000000000001_8000000000000000_11100_1 | 8008000000000000_0
bff0000000000000_ffe0000000000000_0000000000000000_11000_1 | 0008000000000000_0
bff0000000000000_ffefffffffffffff_000fffffffffffff_11100_1 | 0004000000000000_0
bff0000000000000_ffeffffffffffffe_000fffffffffffff_11100_1 | 0004000000000000_0
bff0000000000001_7fe0000000000001_8000000000000000_11000_1 | 8008000000000000_0
bff0000000000001_ffe0000000000000_0000000000000000_11000_1 | 0008000000000000_0
bff0000000000001_ffe0000000000001_0000000000000000_11000_1 | 0008000000000000_0
bff0000000000001_ffefffffffffffff_000fffffffffffff_11100_1 | 0004000000000000_0
bff0000000000001_ffeffffffffffffe_000fffffffffffff_11100_1 | 0004000000000000_0
bfffffffffffffff_7fe0000000000000_8000000000000000_11000_1 | 8010000000000000_0
bfffffffffffffff_7fefffffffffffff_8000000000000000_11000_1 | 8008000000000000_0
bfffffffffffffff_ffefffffffffffff_0000000000000000_11000_1 | 0008000000000000_0
bfffffffffffffff_ffeffffffffffffe_0000000000000000_11000_1 | 0008000000000000_0
bffffffffffffffe_7fefffffffffffff_8000000000000000_11100_1 | 8008000000000000_0
bffffffffffffffe_7feffffffffffffe_8000000000000000_11000_1 | 8008000000000000_0
bffffffffffffffe_ffeffffffffffffe_0000000000000000_11000_1 | 0008000000000000_0
c000000000000000_7fe0000000000001_8000000000000000_11000_1 | 8010000000000000_0
c000000000000000_ffefffffffffffff_0000000000000000_11000_1 | 0008000000000000_0
c000000000000000_ffeffffffffffffe_0000000000000000_11000_1 | 0008000000000000_0
c000000000000001_ffefffffffffffff_0000000000000000_11000_1 | 0008000000000000_0
c00ffffffffffffe_7fefffffffffffff_8000000000000000_11000_1 | 8010000000000000_0
bfdffffffffffffe_7fefffffffffffff_8000000000000000_11000_1 | 8002000000000000_0
f64 DIV RU
0010000000000000_3ff0000000000001_0000000000000000_11000_1 | 0010000000000000_0
0010000000000000_4000000000000000_0000000000000000_11000_1 | 0008000000000000_0
0010000000000000_4000000000000001_0000000000000000_11100_1 | 0008000000000000_0
0010000000000000_4010000000000000_0000000000000000_11100_1 | 0004000000000000_0
0010000000000000_4010000000000001_0000000000000000_11000_1 | 0004000000000000_0
0010000000000000_bfffffffffffffff_8000000000000000_11000_1 | 8008000000000000_0
0010000000000000_bffffffffffffffe_8000000000000000_11000_1 | 8008000000000000_0
0010000000000000_c000000000000000_8000000000000000_11000_1 | 8008000000000000_0
0010000000000000_c00fffffffffffff_800fffffffffffff_11100_1 | 8004000000000000_0
0010000000000000_c00ffffffffffffe_800fffffffffffff_11100_1 | 8004000000000000_0
0010000000000000_c010000000000000_800fffffffffffff_11100_1 | 8004000000000000_0
0010000000000000_c01fffffffffffff_8000000000000000_11000_1 | 8002000000000000_0
0010000000000000_c01ffffffffffffe_8000000000000000_11000_1 | 8002000000000000_0
0010000000000001_4000000000000001_0000000000000000_11000_1 | 0008000000000000_0
0010000000000001_4010000000000001_0000000000000000_11100_1 | 0004000000000000_0
0010000000000001_bfffffffffffffff_8000000000000000_11000_1 | 8008000000000000_0
0010000000000001_c000000000000000_8000000000000000_11000_1 | 8008000000000000_0
0010000000000001_c000000000000001_8000000000000000_11000_1 | 8008000000000000_0
0010000000000001_c00fffffffffffff_800fffffffffffff_11100_1 | 8004000000000000_0
0010000000000001_c00ffffffffffffe_800fffffffffffff_11100_1 | 8004000000000000_0
0010000000000001_c010000000000000_800fffffffffffff_11100_1 | 8004000000000000_0
0010000000000001_c010000000000001_800fffffffffffff_11100_1 | 8004000000000000_0
0010000000000001_c01fffffffffffff_8000000000000000_11000_1 | 8002000000000000_0
0010000000000001_c01ffffffffffffe_8000000000000000_11000_1 | 8002000000000000_0
001fffffffffffff_4000000000000000_0000000000000000_11000_1 | 0010000000000000_0
001fffffffffffff_400fffffffffffff_0000000000000000_11000_1 | 0008000000000000_0
001fffffffffffff_4010000000000000_0000000000000000_11100_1 | 0008000000000000_0
001fffffffffffff_4010000000000001_0000000000000000_11100_1 | 0008000000000000_0
001fffffffffffff_401fffffffffffff_0000000000000000_11100_1 | 0004000000000000_0
001fffffffffffff_c00fffffffffffff_8000000000000000_11000_1 | 8008000000000000_0
001fffffffffffff_c00ffffffffffffe_8000000000000000_11000_1 | 8008000000000000_0
001fffffffffffff_c01fffffffffffff_800fffffffffffff_11100_1 | 8004000000000000_0
001fffffffffffff_c01ffffffffffffe_800fffffffffffff_11100_1 | 8004000000000000_0
001ffffffffffffe_3fffffffffffffff_0000000000000000_11000_1 | 0010000000000000_0
001ffffffffffffe_400fffffffffffff_0000000000000000_11100_1 | 0008000000000000_0
001ffffffffffffe_400ffffffffffffe_0000000000000000_11000_1 | 0008000000000000_0
001ffffffffffffe_4010000000000000_0000000000000000_11100_1 | 0008000000000000_0
001ffffffffffffe_4010000000000001_0000000000000000_11100_1 | 0008000000000000_0
001ffffffffffffe_401fffffffffffff_0000000000000000_11000_1 | 0004000000000000_0
001ffffffffffffe_401ffffffffffffe_0000000000000000_11100_1 | 0004000000000000_0
001ffffffffffffe_c00ffffffffffffe_8000000000000000_11000_1 | 8008000000000000_0
001ffffffffffffe_c01ffffffffffffe_800fffffffffffff_11100_1 | 8004000000000000_0
3fd0000000000000_7fe0000000000000_0000000000000000_11000_1 | 0002000000000000_0
3fd0000000000000_7fe0000000000001_0000000000000000_11000_1 | 0002000000000000_0
3fd0000000000000_ffe0000000000000_8000000000000000_11000_1 | 8002000000000000_0
3fd0000000000000_ffefffffffffffff_8000000000000000_11000_1 | 8001000000000000_0
3fd0000000000000_ffeffffffffffffe_8000000000000000_11000_1 | 8001000000000000_0
3fd0000000000001_7fe0000000000001_0000000000000000_11000_1 | 0002000000000000_0
3fd0000000000001_ffe0000000000000_8000000000000000_11000_1 | 8002000000000000_0
3fd0000000000001_ffe0000000000001_8000000000000000_11000_1 | 8002000000000000_0
3fd0000000000001_ffefffffffffffff_8000000000000000_11000_1 | 8001000000000000_0
3fd0000000000001_ffeffffffffffffe_8000000000000000_11000_1 | 8001000000000000_0
3fdfffffffffffff_7fe0000000000000_0000000000000000_11000_1 | 0004000000000000_0
3fdfffffffffffff_7fe0000000000001_0000000000000000_11000_1 | 0004000000000000_0
3fdfffffffffffff_7fefffffffffffff_0000000000000000_11000_1 | 0002000000000000_0
3fdfffffffffffff_ffefffffffffffff_8000000000000000_11000_1 | 8002000000000000_0
3fdfffffffffffff_ffeffffffffffffe_8000000000000000_11000_1 | 8002000000000000_0
3fdffffffffffffe_7fe0000000000000_0000000000000000_11000_1 | 0004000000000000_0
3fdffffffffffffe_7fe0000000000001_0000000000000000_11000_1 | 0004000000000000_0
3fdffffffffffffe_7fefffffffffffff_0000000000000000_11000_1 | 0002000000000000_0
3fdffffffffffffe_7feffffffffffffe_0000000000000000_11000_1 | 0002000000000000_0
3fdffffffffffffe_ffeffffffffffffe_8000000000000000_11000_1 | 8002000000000000_0
3fe0000000000000_7fe0000000000000_0000000000000000_11100_1 | 0004000000000000_0
3fe0000000000000_7fe0000000000001_0000000000000000_11000_1 | 0004000000000000_0
3fe0000000000000_ffe0000000000000_800fffffffffffff_11100_1 | 8004000000000000_0
3fe0000000000000_ffefffffffffffff_8000000000000000_11000_1 | 8002000000000000_0
3fe0000000000000_ffeffffffffffffe_8000000000000000_11000_1 | 8002000000000000_0
3fe0000000000001_7fe0000000000001_0000000000000000_11100_1 | 0004000000000000_0
3fe0000000000001_ffe0000000000000_800fffffffffffff_11100_1 | 8004000000000000_0
3fe0000000000001_ffe0000000000001_800fffffffffffff_11100_1 | 8004000000000000_0
3fe0000000000001_ffefffffffffffff_8000000000000000_11000_1 | 8002000000000000_0
3fe0000000000001_ffeffffffffffffe_8000000000000000_11000_1 | 8002000000000000_0
3fefffffffffffff_7fe0000000000000_0000000000000000_11100_1 | 0008000000000000_0
3fefffffffffffff_7fe0000000000001_0000000000000000_11100_1 | 0008000000000000_0
3fefffffffffffff_7fefffffffffffff_0000000000000000_11100_1 | 0004000000000000_0
3fefffffffffffff_ffefffffffffffff_800fffffffffffff_11100_1 | 8004000000000000_0
3fefffffffffffff_ffeffffffffffffe_800fffffffffffff_11100_1 | 8004000000000000_0
3feffffffffffffe_7fe0000000000000_0000000000000000_11100_1 | 0008000000000000_0
3feffffffffffffe_7fe0000000000001_0000000000000000_11100_1 | 0008000000000000_0
3feffffffffffffe_7fefffffffffffff_0000000000000000_11000_1 | 0004000000000000_0
3feffffffffffffe_7feffffffffffffe_0000000000000000_11100_1 | 0004000000000000_0
3feffffffffffffe_ffeffffffffffffe_800fffffffffffff_11100_1 | 8004000000000000_0
3ff0000000000000_7fe0000000000000_0000000000000000_11000_1 | 0008000000000000_0
3ff0000000000000_7fe0000000000001_0000000000000000_11100_1 | 0008000000000000_0
3ff0000000000000_ffe0000000000000_8000000000000000_11000_1 | 8008000000000000_0
3ff0000000000000_ffefffffffffffff_800fffffffffffff_11100_1 | 8004000000000000_0
3ff0000000000000_ffeffffffffffffe_800fffffffffffff_11100_1 | 8004000000000000_0
3ff0000000000001_7fe0000000000001_0000000000000000_11000_1 | 0008000000000000_0
3ff0000000000001_ffe0000000000000_8000000000000000_11000_1 | 8008000000000000_0
3ff0000000000001_ffe0000000000001_8000000000000000_11000_1 | 8008000000000000_0
3ff0000000000001_ffefffffffffffff_800fffffffffffff_11100_1 | 8004000000000000_0
3ff0000000000001_ffeffffffffffffe_800fffffffffffff_11100_1 | 8004000000000000_0
3fffffffffffffff_7fe0000000000000_0000000000000000_11000_1 | 0010000000000000_0
3fffffffffffffff_7fefffffffffffff_0000000000000000_11000_1 | 0008000000000000_0
3fffffffffffffff_ffefffffffffffff_8000000000000000_11000_1 | 8008000000000000_0
3fffffffffffffff_ffeffffffffffffe_8000000000000000_11000_1 | 8008000000000000_0
3ffffffffffffffe_7fefffffffffffff_0000000000000000_11100_1 | 0008000000000000_0
3ffffffffffffffe_7feffffffffffffe_0000000000000000_11000_1 | 0008000000000000_0
3ffffffffffffffe_ffeffffffffffffe_8000000000000000_11000_1 | 8008000000000000_0
4000000000000000_7fe0000000000001_0000000000000000_11000_1 | 0010000000000000_0
4000000000000000_ffefffffffffffff_8000000000000000_11000_1 | 8008000000000000_0
4000000000000000_ffeffffffffffffe_8000000000000000_11000_1 | 8008000000000000_0
4000000000000001_ffefffffffffffff_8000000000000000_11000_1 | 8008000000000000_0
400ffffffffffffe_7fefffffffffffff_0000000000000000_11000_1 | 0010000000000000_0
8010000000000000_3fffffffffffffff_8000000000000000_11000_1 | 8008000000000000_0
8010000000000000_3ffffffffffffffe_8000000000000000_11000_1 | 8008000000000000_0
8010000000000000_4000000000000000_8000000000000000_11000_1 | 8008000000000000_0
8010000000000000_400fffffffffffff_800fffffffffffff_11100_1 | 8004000000000000_0
8010000000000000_400ffffffffffffe_800fffffffffffff_11100_1 | 8004000000000000_0
8010000000000000_4010000000000000_800fffffffffffff_11100_1 | 8004000000000000_0
8010000000000000_401fffffffffffff_8000000000000000_11000_1 | 8002000000000000_0
8010000000000000_401ffffffffffffe_8000000000000000_11000_1 | 8002000000000000_0
8010000000000000_bff0000000000001_0000000000000000_11000_1 | 0010000000000000_0
8010000000000000_c000000000000000_0000000000000000_11000_1 | 0008000000000000_0
8010000000000000_c000000000000001_0000000000000000_11100_1 | 0008000000000000_0
8010000000000000_c010000000000000_0000000000000000_11100_1 | 0004000000000000_0
8010000000000000_c010000000000001_0000000000000000_11000_1 | 0004000000000000_0
8010000000000001_3fffffffffffffff_8000000000000000_11000_1 | 8008000000000000_0
8010000000000001_4000000000000000_8000000000000000_11000_1 | 8008000000000000_0
8010000000000001_4000000000000001_8000000000000000_11000_1 | 8008000000000000_0
8010000000000001_400fffffffffffff_800fffffffffffff_11100_1 | 8004000000000000_0
8010000000000001_400ffffffffffffe_800fffffffffffff_11100_1 | 8004000000000000_0
8010000000000001_4010000000000000_800fffffffffffff_11100_1 | 8004000000000000_0
8010000000000001_4010000000000001_800fffffffffffff_11100_1 | 8004000000000000_0
8010000000000001_401fffffffffffff_8000000000000000_11000_1 | 8002000000000000_0
8010000000000001_401ffffffffffffe_8000000000000000_11000_1 | 8002000000000000_0
8010000000000001_c000000000000001_0000000000000000_11000_1 | 0008000000000000_0
8010000000000001_c010000000000001_0000000000000000_11100_1 | 0004000000000000_0
801fffffffffffff_400fffffffffffff_8000000000000000_11000_1 | 8008000000000000_0
801fffffffffffff_400ffffffffffffe_8000000000000000_11000_1 | 8008000000000000_0
801fffffffffffff_401fffffffffffff_800fffffffffffff_11100_1 | 8004000000000000_0
801fffffffffffff_401ffffffffffffe_800fffffffffffff_11100_1 | 8004000000000000_0
801fffffffffffff_c000000000000000_0000000000000000_11000_1 | 0010000000000000_0
801fffffffffffff_c00fffffffffffff_0000000000000000_11000_1 | 0008000000000000_0
801fffffffffffff_c010000000000000_0000000000000000_11100_1 | 0008000000000000_0
801fffffffffffff_c010000000000001_0000000000000000_11100_1 | 0008000000000000_0
801fffffffffffff_c01fffffffffffff_0000000000000000_11100_1 | 0004000000000000_0
801ffffffffffffe_400ffffffffffffe_8000000000000000_11000_1 | 8008000000000000_0
801ffffffffffffe_401ffffffffffffe_800fffffffffffff_11100_1 | 8004000000000000_0
801ffffffffffffe_c00fffffffffffff_0000000000000000_11100_1 | 0008000000000000_0
801ffffffffffffe_bfffffffffffffff_0000000000000000_11000_1 | 0010000000000000_0
801ffffffffffffe_c00fffffffffffff_0000000000000000_11100_1 | 0008000000000000_0
801ffffffffffffe_c00ffffffffffffe_0000000000000000_11000_1 | 0008000000000000_0
801ffffffffffffe_c010000000000000_0000000000000000_11100_1 | 0008000000000000_0
801ffffffffffffe_c010000000000001_0000000000000000_11100_1 | 0008000000000000_0
801ffffffffffffe_c01fffffffffffff_0000000000000000_11000_1 | 0004000000000000_0
801ffffffffffffe_c01ffffffffffffe_0000000000000000_11100_1 | 0004000000000000_0
bfd0000000000000_7fe0000000000000_8000000000000000_11000_1 | 8002000000000000_0
bfd0000000000000_7fefffffffffffff_8000000000000000_11000_1 | 8001000000000000_0
bfd0000000000000_7feffffffffffffe_8000000000000000_11000_1 | 8001000000000000_0
bfd0000000000000_ffe0000000000000_0000000000000000_11000_1 | 0002000000000000_0
bfd0000000000000_ffe0000000000001_0000000000000000_11000_1 | 0002000000000000_0
bfd0000000000001_7fe0000000000000_8000000000000000_11000_1 | 8002000000000000_0
bfd0000000000001_7fe0000000000001_8000000000000000_11000_1 | 8002000000000000_0
bfd0000000000001_7fefffffffffffff_8000000000000000_11000_1 | 8001000000000000_0
bfd0000000000001_7feffffffffffffe_8000000000000000_11000_1 | 8001000000000000_0
bfd0000000000001_ffe0000000000001_0000000000000000_11000_1 | 0002000000000000_0
bfdfffffffffffff_7fefffffffffffff_8000000000000000_11000_1 | 8002000000000000_0
bfdfffffffffffff_7feffffffffffffe_8000000000000000_11000_1 | 8002000000000000_0
bfdfffffffffffff_ffe0000000000000_0000000000000000_11000_1 | 0004000000000000_0
bfdfffffffffffff_ffe0000000000001_0000000000000000_11000_1 | 0004000000000000_0
bfdfffffffffffff_ffefffffffffffff_0000000000000000_11000_1 | 0002000000000000_0
bfdffffffffffffe_7feffffffffffffe_8000000000000000_11000_1 | 8002000000000000_0
bfdffffffffffffe_ffe0000000000000_0000000000000000_11000_1 | 0004000000000000_0
bfdffffffffffffe_ffe0000000000001_0000000000000000_11000_1 | 0004000000000000_0
bfdffffffffffffe_ffefffffffffffff_0000000000000000_11000_1 | 0002000000000000_0
bfdffffffffffffe_ffeffffffffffffe_0000000000000000_11000_1 | 0002000000000000_0
bfe0000000000000_7fe0000000000000_800fffffffffffff_11100_1 | 8004000000000000_0
bfe0000000000000_7fefffffffffffff_8000000000000000_11000_1 | 8002000000000000_0
bfe0000000000000_7feffffffffffffe_8000000000000000_11000_1 | 8002000000000000_0
bfe0000000000000_ffe0000000000000_0000000000000000_11100_1 | 0004000000000000_0
bfe0000000000000_ffe0000000000001_0000000000000000_11000_1 | 0004000000000000_0
bfe0000000000001_7fe0000000000000_800fffffffffffff_11100_1 | 8004000000000000_0
bfe0000000000001_7fe0000000000001_800fffffffffffff_11100_1 | 8004000000000000_0
bfe0000000000001_7fefffffffffffff_8000000000000000_11000_1 | 8002000000000000_0
bfe0000000000001_7feffffffffffffe_8000000000000000_11000_1 | 8002000000000000_0
bfe0000000000001_ffe0000000000001_0000000000000000_11100_1 | 0004000000000000_0
bfefffffffffffff_7fefffffffffffff_800fffffffffffff_11100_1 | 8004000000000000_0
bfefffffffffffff_7feffffffffffffe_800fffffffffffff_11100_1 | 8004000000000000_0
bfefffffffffffff_ffe0000000000000_0000000000000000_11100_1 | 0008000000000000_0
bfefffffffffffff_ffe0000000000001_0000000000000000_11100_1 | 0008000000000000_0
bfefffffffffffff_ffefffffffffffff_0000000000000000_11100_1 | 0004000000000000_0
bfeffffffffffffe_7feffffffffffffe_800fffffffffffff_11100_1 | 8004000000000000_0
bfeffffffffffffe_ffe0000000000000_0000000000000000_11100_1 | 0008000000000000_0
bfeffffffffffffe_ffe0000000000001_0000000000000000_11100_1 | 0008000000000000_0
bfeffffffffffffe_ffefffffffffffff_0000000000000000_11000_1 | 0004000000000000_0
bfeffffffffffffe_ffeffffffffffffe_0000000000000000_11100_1 | 0004000000000000_0
bff0000000000000_7fe0000000000000_8000000000000000_11000_1 | 8008000000000000_0
bff0000000000000_7fefffffffffffff_800fffffffffffff_11100_1 | 8004000000000000_0
bff0000000000000_7feffffffffffffe_800fffffffffffff_11100_1 | 8004000000000000_0
bff0000000000000_ffe0000000000000_0000000000000000_11000_1 | 0008000000000000_0
bff0000000000000_ffe0000000000001_0000000000000000_11100_1 | 0008000000000000_0
bff0000000000001_7fe0000000000000_8000000000000000_11000_1 | 8008000000000000_0
bff0000000000001_7fe0000000000001_8000000000000000_11000_1 | 8008000000000000_0
bff0000000000001_7fefffffffffffff_800fffffffffffff_11100_1 | 8004000000000000_0
bff0000000000001_7feffffffffffffe_800fffffffffffff_11100_1 | 8004000000000000_0
bff0000000000001_ffe0000000000001_0000000000000000_11000_1 | 0008000000000000_0
bfffffffffffffff_7fefffffffffffff_8000000000000000_11000_1 | 8008000000000000_0
bfffffffffffffff_7feffffffffffffe_8000000000000000_11000_1 | 8008000000000000_0
bfffffffffffffff_ffe0000000000000_0000000000000000_11000_1 | 0010000000000000_0
bfffffffffffffff_ffefffffffffffff_0000000000000000_11000_1 | 0008000000000000_0
bffffffffffffffe_7feffffffffffffe_8000000000000000_11000_1 | 8008000000000000_0
bffffffffffffffe_ffefffffffffffff_0000000000000000_11100_1 | 0008000000000000_0
bffffffffffffffe_ffeffffffffffffe_0000000000000000_11000_1 | 0008000000000000_0
c000000000000000_7fefffffffffffff_8000000000000000_11000_1 | 8008000000000000_0
c000000000000000_7feffffffffffffe_8000000000000000_11000_1 | 8008000000000000_0
c000000000000000_ffe0000000000001_0000000000000000_11000_1 | 0010000000000000_0
c000000000000001_7fefffffffffffff_8000000000000000_11000_1 | 8008000000000000_0
c00ffffffffffffe_ffefffffffffffff_0000000000000000_11000_1 | 0010000000000000_0
f64 DIV RZ
0010000000000000_3fffffffffffffff_0000000000000000_11000_1 | 0008000000000000_0
0010000000000000_3ffffffffffffffe_0000000000000000_11000_1 | 0008000000000000_0
0010000000000000_4000000000000000_0000000000000000_11000_1 | 0008000000000000_0
0010000000000000_400fffffffffffff_000fffffffffffff_11100_1 | 0004000000000000_0
0010000000000000_400ffffffffffffe_000fffffffffffff_11100_1 | 0004000000000000_0
0010000000000000_4010000000000000_000fffffffffffff_11100_1 | 0004000000000000_0
0010000000000000_401fffffffffffff_0000000000000000_11000_1 | 0002000000000000_0
0010000000000000_401ffffffffffffe_0000000000000000_11000_1 | 0002000000000000_0
0010000000000000_bfffffffffffffff_8000000000000000_11000_1 | 8008000000000000_0
0010000000000000_bffffffffffffffe_8000000000000000_11000_1 | 8008000000000000_0
0010000000000000_c000000000000000_8000000000000000_11000_1 | 8008000000000000_0
0010000000000000_c00fffffffffffff_800fffffffffffff_11100_1 | 8004000000000000_0
0010000000000000_c00ffffffffffffe_800fffffffffffff_11100_1 | 8004000000000000_0
0010000000000000_c010000000000000_800fffffffffffff_11100_1 | 8004000000000000_0
0010000000000000_c01fffffffffffff_8000000000000000_11000_1 | 8002000000000000_0
0010000000000000_c01ffffffffffffe_8000000000000000_11000_1 | 8002000000000000_0
0010000000000001_3fffffffffffffff_0000000000000000_11000_1 | 0008000000000000_0
0010000000000001_4000000000000000_0000000000000000_11000_1 | 0008000000000000_0
0010000000000001_4000000000000001_0000000000000000_11000_1 | 0008000000000000_0
0010000000000001_400fffffffffffff_000fffffffffffff_11100_1 | 0004000000000000_0
0010000000000001_400ffffffffffffe_000fffffffffffff_11100_1 | 0004000000000000_0
0010000000000001_4010000000000000_000fffffffffffff_11100_1 | 0004000000000000_0
0010000000000001_4010000000000001_000fffffffffffff_11100_1 | 0004000000000000_0
0010000000000001_401fffffffffffff_0000000000000000_11000_1 | 0002000000000000_0
0010000000000001_401ffffffffffffe_0000000000000000_11000_1 | 0002000000000000_0
0010000000000001_bfffffffffffffff_8000000000000000_11000_1 | 8008000000000000_0
0010000000000001_c000000000000000_8000000000000000_11000_1 | 8008000000000000_0
0010000000000001_c000000000000001_8000000000000000_11000_1 | 8008000000000000_0
0010000000000001_c00fffffffffffff_800fffffffffffff_11100_1 | 8004000000000000_0
0010000000000001_c00ffffffffffffe_800fffffffffffff_11100_1 | 8004000000000000_0
0010000000000001_c010000000000000_800fffffffffffff_11100_1 | 8004000000000000_0
0010000000000001_c010000000000001_800fffffffffffff_11100_1 | 8004000000000000_0
0010000000000001_c01fffffffffffff_8000000000000000_11000_1 | 8002000000000000_0
0010000000000001_c01ffffffffffffe_8000000000000000_11000_1 | 8002000000000000_0
001fffffffffffff_400fffffffffffff_0000000000000000_11000_1 | 0008000000000000_0
001fffffffffffff_400ffffffffffffe_0000000000000000_11000_1 | 0008000000000000_0
001fffffffffffff_401fffffffffffff_000fffffffffffff_11100_1 | 0004000000000000_0
001fffffffffffff_401ffffffffffffe_000fffffffffffff_11100_1 | 0004000000000000_0
001fffffffffffff_c00fffffffffffff_8000000000000000_11000_1 | 8008000000000000_0
001fffffffffffff_c00ffffffffffffe_8000000000000000_11000_1 | 8008000000000000_0
001fffffffffffff_c01fffffffffffff_800fffffffffffff_11100_1 | 8004000000000000_0
001fffffffffffff_c01ffffffffffffe_800fffffffffffff_11100_1 | 8004000000000000_0
001ffffffffffffe_400ffffffffffffe_0000000000000000_11000_1 | 0008000000000000_0
001ffffffffffffe_401ffffffffffffe_000fffffffffffff_11100_1 | 0004000000000000_0
001ffffffffffffe_c00ffffffffffffe_8000000000000000_11000_1 | 8008000000000000_0
001ffffffffffffe_c01ffffffffffffe_800fffffffffffff_11100_1 | 8004000000000000_0
3fd0000000000000_7fe0000000000000_0000000000000000_11000_1 | 0002000000000000_0
3fd0000000000000_7fefffffffffffff_0000000000000000_11000_1 | 0001000000000000_0
3fd0000000000000_7feffffffffffffe_0000000000000000_11000_1 | 0001000000000000_0
3fd0000000000000_ffe0000000000000_8000000000000000_11000_1 | 8002000000000000_0
3fd0000000000000_ffefffffffffffff_8000000000000000_11000_1 | 8001000000000000_0
3fd0000000000000_ffeffffffffffffe_8000000000000000_11000_1 | 8001000000000000_0
3fd0000000000001_7fe0000000000000_0000000000000000_11000_1 | 0002000000000000_0
3fd0000000000001_7fe0000000000001_0000000000000000_11000_1 | 0002000000000000_0
3fd0000000000001_7fefffffffffffff_0000000000000000_11000_1 | 0001000000000000_0
3fd0000000000001_7feffffffffffffe_0000000000000000_11000_1 | 0001000000000000_0
3fd0000000000001_ffe0000000000000_8000000000000000_11000_1 | 8002000000000000_0
3fd0000000000001_ffe0000000000001_8000000000000000_11000_1 | 8002000000000000_0
3fd0000000000001_ffefffffffffffff_8000000000000000_11000_1 | 8001000000000000_0
3fd0000000000001_ffeffffffffffffe_8000000000000000_11000_1 | 8001000000000000_0
3fdfffffffffffff_7fefffffffffffff_0000000000000000_11000_1 | 0002000000000000_0
3fdfffffffffffff_7feffffffffffffe_0000000000000000_11000_1 | 0002000000000000_0
3fdfffffffffffff_ffefffffffffffff_8000000000000000_11000_1 | 8002000000000000_0
3fdfffffffffffff_ffeffffffffffffe_8000000000000000_11000_1 | 8002000000000000_0
3fdffffffffffffe_7feffffffffffffe_0000000000000000_11000_1 | 0002000000000000_0
3fdffffffffffffe_ffeffffffffffffe_8000000000000000_11000_1 | 8002000000000000_0
3fe0000000000000_7fe0000000000000_000fffffffffffff_11100_1 | 0004000000000000_0
3fe0000000000000_7fefffffffffffff_0000000000000000_11000_1 | 0002000000000000_0
3fe0000000000000_7feffffffffffffe_0000000000000000_11000_1 | 0002000000000000_0
3fe0000000000000_ffe0000000000000_800fffffffffffff_11100_1 | 8004000000000000_0
3fe0000000000000_ffefffffffffffff_8000000000000000_11000_1 | 8002000000000000_0
3fe0000000000000_ffeffffffffffffe_8000000000000000_11000_1 | 8002000000000000_0
3fe0000000000001_7fe0000000000000_000fffffffffffff_11100_1 | 0004000000000000_0
3fe0000000000001_7fe0000000000001_000fffffffffffff_11100_1 | 0004000000000000_0
3fe0000000000001_7fefffffffffffff_0000000000000000_11000_1 | 0002000000000000_0
3fe0000000000001_7feffffffffffffe_0000000000000000_11000_1 | 0002000000000000_0
3fe0000000000001_ffe0000000000000_800fffffffffffff_11100_1 | 8004000000000000_0
3fe0000000000001_ffe0000000000001_800fffffffffffff_11100_1 | 8004000000000000_0
3fe0000000000001_ffefffffffffffff_8000000000000000_11000_1 | 8002000000000000_0
3fe0000000000001_ffeffffffffffffe_8000000000000000_11000_1 | 8002000000000000_0
3fefffffffffffff_7fefffffffffffff_000fffffffffffff_11100_1 | 0004000000000000_0
3fefffffffffffff_7feffffffffffffe_000fffffffffffff_11100_1 | 0004000000000000_0
3fefffffffffffff_ffefffffffffffff_800fffffffffffff_11100_1 | 8004000000000000_0
3fefffffffffffff_ffeffffffffffffe_800fffffffffffff_11100_1 | 8004000000000000_0
3feffffffffffffe_7feffffffffffffe_000fffffffffffff_11100_1 | 0004000000000000_0
3feffffffffffffe_ffeffffffffffffe_800fffffffffffff_11100_1 | 8004000000000000_0
3ff0000000000000_7fe0000000000000_0000000000000000_11000_1 | 0008000000000000_0
3ff0000000000000_7fefffffffffffff_000fffffffffffff_11100_1 | 0004000000000000_0
3ff0000000000000_7feffffffffffffe_000fffffffffffff_11100_1 | 0004000000000000_0
3ff0000000000000_ffe0000000000000_8000000000000000_11000_1 | 8008000000000000_0
3ff0000000000000_ffefffffffffffff_800fffffffffffff_11100_1 | 8004000000000000_0
3ff0000000000000_ffeffffffffffffe_800fffffffffffff_11100_1 | 8004000000000000_0
3ff0000000000001_7fe0000000000000_0000000000000000_11000_1 | 0008000000000000_0
3ff0000000000001_7fe0000000000001_0000000000000000_11000_1 | 0008000000000000_0
3ff0000000000001_7fefffffffffffff_000fffffffffffff_11100_1 | 0004000000000000_0
3ff0000000000001_7feffffffffffffe_000fffffffffffff_11100_1 | 0004000000000000_0
3ff0000000000001_ffe0000000000000_8000000000000000_11000_1 | 8008000000000000_0
3ff0000000000001_ffe0000000000001_8000000000000000_11000_1 | 8008000000000000_0
3ff0000000000001_ffefffffffffffff_800fffffffffffff_11100_1 | 8004000000000000_0
3ff0000000000001_ffeffffffffffffe_800fffffffffffff_11100_1 | 8004000000000000_0
3fffffffffffffff_7fefffffffffffff_0000000000000000_11000_1 | 0008000000000000_0
3fffffffffffffff_7feffffffffffffe_0000000000000000_11000_1 | 0008000000000000_0
3fffffffffffffff_ffefffffffffffff_8000000000000000_11000_1 | 8008000000000000_0
3fffffffffffffff_ffeffffffffffffe_8000000000000000_11000_1 | 8008000000000000_0
3ffffffffffffffe_7feffffffffffffe_0000000000000000_11000_1 | 0008000000000000_0
3ffffffffffffffe_ffeffffffffffffe_8000000000000000_11000_1 | 8008000000000000_0
4000000000000000_7fefffffffffffff_0000000000000000_11000_1 | 0008000000000000_0
4000000000000000_7feffffffffffffe_0000000000000000_11000_1 | 0008000000000000_0
4000000000000000_ffefffffffffffff_8000000000000000_11000_1 | 8008000000000000_0
4000000000000000_ffeffffffffffffe_8000000000000000_11000_1 | 8008000000000000_0
4000000000000001_7fefffffffffffff_0000000000000000_11000_1 | 0008000000000000_0
4000000000000001_ffefffffffffffff_8000000000000000_11000_1 | 8008000000000000_0
8010000000000000_3fffffffffffffff_8000000000000000_11000_1 | 8008000000000000_0
8010000000000000_3ffffffffffffffe_8000000000000000_11000_1 | 8008000000000000_0
8010000000000000_4000000000000000_8000000000000000_11000_1 | 8008000000000000_0
8010000000000000_400fffffffffffff_800fffffffffffff_11100_1 | 8004000000000000_0
8010000000000000_400ffffffffffffe_800fffffffffffff_11100_1 | 8004000000000000_0
8010000000000000_4010000000000000_800fffffffffffff_11100_1 | 8004000000000000_0
8010000000000000_401fffffffffffff_8000000000000000_11000_1 | 8002000000000000_0
8010000000000000_401ffffffffffffe_8000000000000000_11000_1 | 8002000000000000_0
8010000000000000_bfffffffffffffff_0000000000000000_11000_1 | 0008000000000000_0
8010000000000000_bffffffffffffffe_0000000000000000_11000_1 | 0008000000000000_0
8010000000000000_c000000000000000_0000000000000000_11000_1 | 0008000000000000_0
8010000000000000_c00fffffffffffff_000fffffffffffff_11100_1 | 0004000000000000_0
8010000000000000_c00ffffffffffffe_000fffffffffffff_11100_1 | 0004000000000000_0
8010000000000000_c010000000000000_000fffffffffffff_11100_1 | 0004000000000000_0
8010000000000000_c01fffffffffffff_0000000000000000_11000_1 | 0002000000000000_0
8010000000000000_c01ffffffffffffe_0000000000000000_11000_1 | 0002000000000000_0
8010000000000001_3fffffffffffffff_8000000000000000_11000_1 | 8008000000000000_0
8010000000000001_4000000000000000_8000000000000000_11000_1 | 8008000000000000_0
8010000000000001_4000000000000001_8000000000000000_11000_1 | 8008000000000000_0
8010000000000001_400fffffffffffff_800fffffffffffff_11100_1 | 8004000000000000_0
8010000000000001_400ffffffffffffe_800fffffffffffff_11100_1 | 8004000000000000_0
8010000000000001_4010000000000000_800fffffffffffff_11100_1 | 8004000000000000_0
8010000000000001_4010000000000001_800fffffffffffff_11100_1 | 8004000000000000_0
8010000000000001_401fffffffffffff_8000000000000000_11000_1 | 8002000000000000_0
8010000000000001_401ffffffffffffe_8000000000000000_11000_1 | 8002000000000000_0
8010000000000001_bfffffffffffffff_0000000000000000_11000_1 | 0008000000000000_0
8010000000000001_c000000000000000_0000000000000000_11000_1 | 0008000000000000_0
8010000000000001_c000000000000001_0000000000000000_11000_1 | 0008000000000000_0
8010000000000001_c00fffffffffffff_000fffffffffffff_11100_1 | 0004000000000000_0
8010000000000001_c00ffffffffffffe_000fffffffffffff_11100_1 | 0004000000000000_0
8010000000000001_c010000000000000_000fffffffffffff_11100_1 | 0004000000000000_0
8010000000000001_c010000000000001_000fffffffffffff_11100_1 | 0004000000000000_0
8010000000000001_c01fffffffffffff_0000000000000000_11000_1 | 0002000000000000_0
8010000000000001_c01ffffffffffffe_0000000000000000_11000_1 | 0002000000000000_0
801fffffffffffff_400fffffffffffff_8000000000000000_11000_1 | 8008000000000000_0
801fffffffffffff_400ffffffffffffe_8000000000000000_11000_1 | 8008000000000000_0
801fffffffffffff_401fffffffffffff_800fffffffffffff_11100_1 | 8004000000000000_0
801fffffffffffff_401ffffffffffffe_800fffffffffffff_11100_1 | 8004000000000000_0
801fffffffffffff_c00fffffffffffff_0000000000000000_11000_1 | 0008000000000000_0
801fffffffffffff_c00ffffffffffffe_0000000000000000_11000_1 | 0008000000000000_0
801fffffffffffff_c01fffffffffffff_000fffffffffffff_11100_1 | 0004000000000000_0
801fffffffffffff_c01ffffffffffffe_000fffffffffffff_11100_1 | 0004000000000000_0
801ffffffffffffe_400ffffffffffffe_8000000000000000_11000_1 | 8008000000000000_0
801ffffffffffffe_401ffffffffffffe_800fffffffffffff_11100_1 | 8004000000000000_0
801ffffffffffffe_c00ffffffffffffe_0000000000000000_11000_1 | 0008000000000000_0
801ffffffffffffe_c01ffffffffffffe_000fffffffffffff_11100_1 | 0004000000000000_0
bfd0000000000000_7fe0000000000000_8000000000000000_11000_1 | 8002000000000000_0
bfd0000000000000_7fefffffffffffff_8000000000000000_11000_1 | 8001000000000000_0
bfd0000000000000_7feffffffffffffe_8000000000000000_11000_1 | 8001000000000000_0
bfd0000000000000_ffe0000000000000_0000000000000000_11000_1 | 0002000000000000_0
bfd0000000000000_ffefffffffffffff_0000000000000000_11000_1 | 0001000000000000_0
bfd0000000000000_ffeffffffffffffe_0000000000000000_11000_1 | 0001000000000000_0
bfd0000000000001_7fe0000000000000_8000000000000000_11000_1 | 8002000000000000_0
bfd0000000000001_7fe0000000000001_8000000000000000_11000_1 | 8002000000000000_0
bfd0000000000001_7fefffffffffffff_8000000000000000_11000_1 | 8001000000000000_0
bfd0000000000001_7feffffffffffffe_8000000000000000_11000_1 | 8001000000000000_0
bfd0000000000001_ffe0000000000000_0000000000000000_11000_1 | 0002000000000000_0
bfd0000000000001_ffe0000000000001_0000000000000000_11000_1 | 0002000000000000_0
bfd0000000000001_ffefffffffffffff_0000000000000000_11000_1 | 0001000000000000_0
bfd0000000000001_ffeffffffffffffe_0000000000000000_11000_1 | 0001000000000000_0
bfdfffffffffffff_7fefffffffffffff_8000000000000000_11000_1 | 8002000000000000_0
bfdfffffffffffff_7feffffffffffffe_8000000000000000_11000_1 | 8002000000000000_0
bfdfffffffffffff_ffefffffffffffff_0000000000000000_11000_1 | 0002000000000000_0
bfdfffffffffffff_ffeffffffffffffe_0000000000000000_11000_1 | 0002000000000000_0
bfdffffffffffffe_7feffffffffffffe_8000000000000000_11000_1 | 8002000000000000_0
bfdffffffffffffe_ffeffffffffffffe_0000000000000000_11000_1 | 0002000000000000_0
bfe0000000000000_7fe0000000000000_800fffffffffffff_11100_1 | 8004000000000000_0
bfe0000000000000_7fefffffffffffff_8000000000000000_11000_1 | 8002000000000000_0
bfe0000000000000_7feffffffffffffe_8000000000000000_11000_1 | 8002000000000000_0
bfe0000000000000_ffe0000000000000_000fffffffffffff_11100_1 | 0004000000000000_0
bfe0000000000000_ffefffffffffffff_0000000000000000_11000_1 | 0002000000000000_0
bfe0000000000000_ffeffffffffffffe_0000000000000000_11000_1 | 0002000000000000_0
bfe0000000000001_7fe0000000000000_800fffffffffffff_11100_1 | 8004000000000000_0
bfe0000000000001_7fe0000000000001_800fffffffffffff_11100_1 | 8004000000000000_0
bfe0000000000001_7fefffffffffffff_8000000000000000_11000_1 | 8002000000000000_0
bfe0000000000001_7feffffffffffffe_8000000000000000_11000_1 | 8002000000000000_0
bfe0000000000001_ffe0000000000000_000fffffffffffff_11100_1 | 0004000000000000_0
bfe0000000000001_ffe0000000000001_000fffffffffffff_11100_1 | 0004000000000000_0
bfe0000000000001_ffefffffffffffff_0000000000000000_11000_1 | 0002000000000000_0
bfe0000000000001_ffeffffffffffffe_0000000000000000_11000_1 | 0002000000000000_0
bfefffffffffffff_7fefffffffffffff_800fffffffffffff_11100_1 | 8004000000000000_0
bfefffffffffffff_7feffffffffffffe_800fffffffffffff_11100_1 | 8004000000000000_0
bfefffffffffffff_ffefffffffffffff_000fffffffffffff_11100_1 | 0004000000000000_0
bfefffffffffffff_ffeffffffffffffe_000fffffffffffff_11100_1 | 0004000000000000_0
bfeffffffffffffe_7feffffffffffffe_800fffffffffffff_11100_1 | 8004000000000000_0
bfeffffffffffffe_ffeffffffffffffe_000fffffffffffff_11100_1 | 0004000000000000_0
bff0000000000000_7fe0000000000000_8000000000000000_11000_1 | 8008000000000000_0
bff0000000000000_7fefffffffffffff_800fffffffffffff_11100_1 | 8004000000000000_0
bff0000000000000_7feffffffffffffe_800fffffffffffff_11100_1 | 8004000000000000_0
bff0000000000000_ffe0000000000000_0000000000000000_11000_1 | 0008000000000000_0
bff0000000000000_ffefffffffffffff_000fffffffffffff_11100_1 | 0004000000000000_0
bff0000000000000_ffeffffffffffffe_000fffffffffffff_11100_1 | 0004000000000000_0
bff0000000000001_7fe0000000000000_8000000000000000_11000_1 | 8008000000000000_0
bff0000000000001_7fe0000000000001_8000000000000000_11000_1 | 8008000000000000_0
bff0000000000001_7fefffffffffffff_800fffffffffffff_11100_1 | 8004000000000000_0
bff0000000000001_7feffffffffffffe_800fffffffffffff_11100_1 | 8004000000000000_0
bff0000000000001_ffe0000000000000_0000000000000000_11000_1 | 0008000000000000_0
bff0000000000001_ffe0000000000001_0000000000000000_11000_1 | 0008000000000000_0
bff0000000000001_ffefffffffffffff_000fffffffffffff_11100_1 | 0004000000000000_0
bff0000000000001_ffeffffffffffffe_000fffffffffffff_11100_1 | 0004000000000000_0
bfffffffffffffff_7fefffffffffffff_8000000000000000_11000_1 | 8008000000000000_0
bfffffffffffffff_7feffffffffffffe_8000000000000000_11000_1 | 8008000000000000_0
bfffffffffffffff_ffefffffffffffff_0000000000000000_11000_1 | 0008000000000000_0
bfffffffffffffff_ffeffffffffffffe_0000000000000000_11000_1 | 0008000000000000_0
bffffffffffffffe_7feffffffffffffe_8000000000000000_11000_1 | 8008000000000000_0
bffffffffffffffe_ffeffffffffffffe_0000000000000000_11000_1 | 0008000000000000_0
c000000000000000_7fefffffffffffff_8000000000000000_11000_1 | 8008000000000000_0
c000000000000000_7feffffffffffffe_8000000000000000_11000_1 | 8008000000000000_0
c000000000000000_ffefffffffffffff_0000000000000000_11000_1 | 0008000000000000_0
c000000000000000_ffeffffffffffffe_0000000000000000_11000_1 | 0008000000000000_0
c000000000000001_7fefffffffffffff_8000000000000000_11000_1 | 8008000000000000_0
c000000000000001_ffefffffffffffff_0000000000000000_11000_1 | 0008000000000000_0
f32 DIV RNE
f32 DIV RD
f32 DIV RU
f32 DIV RZ
f64 SQRT RNE
f64 SQRT RD
f64 SQRT RU
f64 SQRT RZ
f32 SQRT RNE
f32 SQRT RD
f32 SQRT RU
f32 SQRT RZ

View File

@ -0,0 +1,3 @@
#!/bin/sh
vsim -do fpdiv.do -c
tail fpdiv.out

View File

@ -0,0 +1,5 @@
#!/bin/sh
vsim -do f32_div_rne.do -c
vsim -do f32_div_rz.do -c
vsim -do f32_div_rd.do -c
vsim -do f32_div_ru.do -c

View File

@ -0,0 +1,5 @@
#!/bin/sh
vsim -do f32_sqrt_rne.do -c
vsim -do f32_sqrt_rz.do -c
vsim -do f32_sqrt_rd.do -c
vsim -do f32_sqrt_ru.do -c

View File

@ -0,0 +1,5 @@
#!/bin/sh
vsim -do f64_div_rne.do -c
vsim -do f64_div_rz.do -c
vsim -do f64_div_rd.do -c
vsim -do f64_div_ru.do -c

View File

@ -0,0 +1,5 @@
#!/bin/sh
vsim -do f64_sqrt_rne.do -c
vsim -do f64_sqrt_rz.do -c
vsim -do f64_sqrt_rd.do -c
vsim -do f64_sqrt_ru.do -c

View File

@ -0,0 +1,34 @@
module sbtm (input logic [11:0] a, output logic [10:0] ia_out);
// bit partitions
logic [3:0] x0;
logic [2:0] x1;
logic [3:0] x2;
logic [2:0] x2_1cmp;
// mem outputs
logic [12:0] y0;
logic [4:0] y1;
// input to CPA
logic [14:0] op1;
logic [14:0] op2;
logic [14:0] p;
assign x0 = a[10:7];
assign x1 = a[6:4];
assign x2 = a[3:0];
sbtm_a0 mem1 ({x0, x1}, y0);
// 1s cmp per sbtm/stam
assign x2_1cmp = x2[3] ? ~x2[2:0] : x2[2:0];
sbtm_a1 mem2 ({x0, x2_1cmp}, y1);
assign op1 = {1'b0, y0, 1'b0};
// 1s cmp per sbtm/stam
assign op2 = x2[3] ? {1'b1, {8{1'b1}}, ~y1, 1'b1} :
{1'b0, 8'b0, y1, 1'b1};
// CPA
//bk15 cp1 (cout, p, op1, op2, 1'b0);
adder_ip #(15) cp1 (op1, op2, 1'b0, p, cout);
//assign ia_out = {p[14:4], {53{1'b0}}};
assign ia_out = p[14:4];
endmodule // sbtm

View File

@ -0,0 +1,40 @@
module sbtm2 (input logic [11:0] a, output logic [10:0] y);
// bit partitions
logic [4:0] x0;
logic [2:0] x1;
logic [3:0] x2;
logic [2:0] x2_1cmp;
// mem outputs
logic [13:0] y0;
logic [5:0] y1;
// input to CPA
logic [14:0] op1;
logic [14:0] op2;
logic [14:0] p;
assign x0 = a[11:7];
assign x1 = a[6:4];
assign x2 = a[3:0];
sbtm_a2 mem1 ({x0, x1}, y0);
assign op1 = {y0, 1'b0};
// 1s cmp per sbtm/stam
assign x2_1cmp = x2[3] ? ~x2[2:0] : x2[2:0];
sbtm_a3 mem2 ({x0, x2_1cmp}, y1);
// 1s cmp per sbtm/stam
assign op2 = x2[3] ? {{8{1'b1}}, ~y1, 1'b1} :
{8'b0, y1, 1'b1};
// CPA
//bk15 cp1 (cout, p, op1, op2, 1'b0);
adder_ip #(15) cp1 (op1, op2, 1'b0, p, cout);
assign y = p[14:4];
endmodule // sbtm2

View File

@ -0,0 +1,140 @@
module sbtm_a0 (input logic [6:0] a,
output logic [12:0] y);
always_comb
case(a)
7'b0000000: y = 13'b1111111100010;
7'b0000001: y = 13'b1111110100011;
7'b0000010: y = 13'b1111101100101;
7'b0000011: y = 13'b1111100101000;
7'b0000100: y = 13'b1111011101100;
7'b0000101: y = 13'b1111010110000;
7'b0000110: y = 13'b1111001110110;
7'b0000111: y = 13'b1111000111100;
7'b0001000: y = 13'b1111000000100;
7'b0001001: y = 13'b1110111001100;
7'b0001010: y = 13'b1110110010101;
7'b0001011: y = 13'b1110101011110;
7'b0001100: y = 13'b1110100101001;
7'b0001101: y = 13'b1110011110100;
7'b0001110: y = 13'b1110011000000;
7'b0001111: y = 13'b1110010001101;
7'b0010000: y = 13'b1110001011010;
7'b0010001: y = 13'b1110000101000;
7'b0010010: y = 13'b1101111110111;
7'b0010011: y = 13'b1101111000110;
7'b0010100: y = 13'b1101110010111;
7'b0010101: y = 13'b1101101100111;
7'b0010110: y = 13'b1101100111001;
7'b0010111: y = 13'b1101100001011;
7'b0011000: y = 13'b1101011011101;
7'b0011001: y = 13'b1101010110001;
7'b0011010: y = 13'b1101010000100;
7'b0011011: y = 13'b1101001011001;
7'b0011100: y = 13'b1101000101110;
7'b0011101: y = 13'b1101000000011;
7'b0011110: y = 13'b1100111011001;
7'b0011111: y = 13'b1100110101111;
7'b0100000: y = 13'b1100110000110;
7'b0100001: y = 13'b1100101011110;
7'b0100010: y = 13'b1100100110110;
7'b0100011: y = 13'b1100100001111;
7'b0100100: y = 13'b1100011101000;
7'b0100101: y = 13'b1100011000001;
7'b0100110: y = 13'b1100010011011;
7'b0100111: y = 13'b1100001110101;
7'b0101000: y = 13'b1100001010000;
7'b0101001: y = 13'b1100000101011;
7'b0101010: y = 13'b1100000000111;
7'b0101011: y = 13'b1011111100011;
7'b0101100: y = 13'b1011111000000;
7'b0101101: y = 13'b1011110011101;
7'b0101110: y = 13'b1011101111010;
7'b0101111: y = 13'b1011101011000;
7'b0110000: y = 13'b1011100110110;
7'b0110001: y = 13'b1011100010101;
7'b0110010: y = 13'b1011011110011;
7'b0110011: y = 13'b1011011010011;
7'b0110100: y = 13'b1011010110010;
7'b0110101: y = 13'b1011010010010;
7'b0110110: y = 13'b1011001110011;
7'b0110111: y = 13'b1011001010011;
7'b0111000: y = 13'b1011000110100;
7'b0111001: y = 13'b1011000010110;
7'b0111010: y = 13'b1010111110111;
7'b0111011: y = 13'b1010111011001;
7'b0111100: y = 13'b1010110111100;
7'b0111101: y = 13'b1010110011110;
7'b0111110: y = 13'b1010110000001;
7'b0111111: y = 13'b1010101100100;
7'b1000000: y = 13'b1010101001000;
7'b1000001: y = 13'b1010100101100;
7'b1000010: y = 13'b1010100010000;
7'b1000011: y = 13'b1010011110100;
7'b1000100: y = 13'b1010011011001;
7'b1000101: y = 13'b1010010111110;
7'b1000110: y = 13'b1010010100011;
7'b1000111: y = 13'b1010010001001;
7'b1001000: y = 13'b1010001101111;
7'b1001001: y = 13'b1010001010101;
7'b1001010: y = 13'b1010000111011;
7'b1001011: y = 13'b1010000100001;
7'b1001100: y = 13'b1010000001000;
7'b1001101: y = 13'b1001111101111;
7'b1001110: y = 13'b1001111010111;
7'b1001111: y = 13'b1001110111110;
7'b1010000: y = 13'b1001110100110;
7'b1010001: y = 13'b1001110001110;
7'b1010010: y = 13'b1001101110110;
7'b1010011: y = 13'b1001101011111;
7'b1010100: y = 13'b1001101000111;
7'b1010101: y = 13'b1001100110000;
7'b1010110: y = 13'b1001100011001;
7'b1010111: y = 13'b1001100000010;
7'b1011000: y = 13'b1001011101100;
7'b1011001: y = 13'b1001011010110;
7'b1011010: y = 13'b1001011000000;
7'b1011011: y = 13'b1001010101010;
7'b1011100: y = 13'b1001010010100;
7'b1011101: y = 13'b1001001111111;
7'b1011110: y = 13'b1001001101001;
7'b1011111: y = 13'b1001001010100;
7'b1100000: y = 13'b1001000111111;
7'b1100001: y = 13'b1001000101011;
7'b1100010: y = 13'b1001000010110;
7'b1100011: y = 13'b1001000000010;
7'b1100100: y = 13'b1000111101110;
7'b1100101: y = 13'b1000111011010;
7'b1100110: y = 13'b1000111000110;
7'b1100111: y = 13'b1000110110010;
7'b1101000: y = 13'b1000110011111;
7'b1101001: y = 13'b1000110001011;
7'b1101010: y = 13'b1000101111000;
7'b1101011: y = 13'b1000101100101;
7'b1101100: y = 13'b1000101010010;
7'b1101101: y = 13'b1000101000000;
7'b1101110: y = 13'b1000100101101;
7'b1101111: y = 13'b1000100011011;
7'b1110000: y = 13'b1000100001001;
7'b1110001: y = 13'b1000011110110;
7'b1110010: y = 13'b1000011100101;
7'b1110011: y = 13'b1000011010011;
7'b1110100: y = 13'b1000011000001;
7'b1110101: y = 13'b1000010110000;
7'b1110110: y = 13'b1000010011110;
7'b1110111: y = 13'b1000010001101;
7'b1111000: y = 13'b1000001111100;
7'b1111001: y = 13'b1000001101011;
7'b1111010: y = 13'b1000001011010;
7'b1111011: y = 13'b1000001001010;
7'b1111100: y = 13'b1000000111001;
7'b1111101: y = 13'b1000000101001;
7'b1111110: y = 13'b1000000011001;
7'b1111111: y = 13'b1000000001001;
default: y = 13'bxxxxxxxxxxxxx;
endcase // case (a)
endmodule // sbtm_a0

View File

@ -0,0 +1,140 @@
module sbtm_a1 (input logic [6:0] a,
output logic [4:0] y);
always_comb
case(a)
7'b0000000: y = 5'b11100;
7'b0000001: y = 5'b11000;
7'b0000010: y = 5'b10100;
7'b0000011: y = 5'b10000;
7'b0000100: y = 5'b01101;
7'b0000101: y = 5'b01001;
7'b0000110: y = 5'b00101;
7'b0000111: y = 5'b00001;
7'b0001000: y = 5'b11001;
7'b0001001: y = 5'b10101;
7'b0001010: y = 5'b10010;
7'b0001011: y = 5'b01111;
7'b0001100: y = 5'b01011;
7'b0001101: y = 5'b01000;
7'b0001110: y = 5'b00101;
7'b0001111: y = 5'b00001;
7'b0010000: y = 5'b10110;
7'b0010001: y = 5'b10011;
7'b0010010: y = 5'b10000;
7'b0010011: y = 5'b01101;
7'b0010100: y = 5'b01010;
7'b0010101: y = 5'b00111;
7'b0010110: y = 5'b00100;
7'b0010111: y = 5'b00001;
7'b0011000: y = 5'b10100;
7'b0011001: y = 5'b10001;
7'b0011010: y = 5'b01110;
7'b0011011: y = 5'b01100;
7'b0011100: y = 5'b01001;
7'b0011101: y = 5'b00110;
7'b0011110: y = 5'b00100;
7'b0011111: y = 5'b00001;
7'b0100000: y = 5'b10010;
7'b0100001: y = 5'b01111;
7'b0100010: y = 5'b01101;
7'b0100011: y = 5'b01010;
7'b0100100: y = 5'b01000;
7'b0100101: y = 5'b00110;
7'b0100110: y = 5'b00011;
7'b0100111: y = 5'b00001;
7'b0101000: y = 5'b10000;
7'b0101001: y = 5'b01110;
7'b0101010: y = 5'b01100;
7'b0101011: y = 5'b01001;
7'b0101100: y = 5'b00111;
7'b0101101: y = 5'b00101;
7'b0101110: y = 5'b00011;
7'b0101111: y = 5'b00001;
7'b0110000: y = 5'b01111;
7'b0110001: y = 5'b01101;
7'b0110010: y = 5'b01011;
7'b0110011: y = 5'b01001;
7'b0110100: y = 5'b00111;
7'b0110101: y = 5'b00101;
7'b0110110: y = 5'b00011;
7'b0110111: y = 5'b00001;
7'b0111000: y = 5'b01101;
7'b0111001: y = 5'b01100;
7'b0111010: y = 5'b01010;
7'b0111011: y = 5'b01000;
7'b0111100: y = 5'b00110;
7'b0111101: y = 5'b00100;
7'b0111110: y = 5'b00010;
7'b0111111: y = 5'b00000;
7'b1000000: y = 5'b01100;
7'b1000001: y = 5'b01011;
7'b1000010: y = 5'b01001;
7'b1000011: y = 5'b00111;
7'b1000100: y = 5'b00101;
7'b1000101: y = 5'b00100;
7'b1000110: y = 5'b00010;
7'b1000111: y = 5'b00000;
7'b1001000: y = 5'b01011;
7'b1001001: y = 5'b01010;
7'b1001010: y = 5'b01000;
7'b1001011: y = 5'b00111;
7'b1001100: y = 5'b00101;
7'b1001101: y = 5'b00011;
7'b1001110: y = 5'b00010;
7'b1001111: y = 5'b00000;
7'b1010000: y = 5'b01010;
7'b1010001: y = 5'b01001;
7'b1010010: y = 5'b01000;
7'b1010011: y = 5'b00110;
7'b1010100: y = 5'b00101;
7'b1010101: y = 5'b00011;
7'b1010110: y = 5'b00010;
7'b1010111: y = 5'b00000;
7'b1011000: y = 5'b01010;
7'b1011001: y = 5'b01000;
7'b1011010: y = 5'b00111;
7'b1011011: y = 5'b00110;
7'b1011100: y = 5'b00100;
7'b1011101: y = 5'b00011;
7'b1011110: y = 5'b00010;
7'b1011111: y = 5'b00000;
7'b1100000: y = 5'b01001;
7'b1100001: y = 5'b01000;
7'b1100010: y = 5'b00110;
7'b1100011: y = 5'b00101;
7'b1100100: y = 5'b00100;
7'b1100101: y = 5'b00011;
7'b1100110: y = 5'b00001;
7'b1100111: y = 5'b00000;
7'b1101000: y = 5'b01000;
7'b1101001: y = 5'b00111;
7'b1101010: y = 5'b00110;
7'b1101011: y = 5'b00101;
7'b1101100: y = 5'b00100;
7'b1101101: y = 5'b00010;
7'b1101110: y = 5'b00001;
7'b1101111: y = 5'b00000;
7'b1110000: y = 5'b01000;
7'b1110001: y = 5'b00111;
7'b1110010: y = 5'b00110;
7'b1110011: y = 5'b00100;
7'b1110100: y = 5'b00011;
7'b1110101: y = 5'b00010;
7'b1110110: y = 5'b00001;
7'b1110111: y = 5'b00000;
7'b1111000: y = 5'b00111;
7'b1111001: y = 5'b00110;
7'b1111010: y = 5'b00101;
7'b1111011: y = 5'b00100;
7'b1111100: y = 5'b00011;
7'b1111101: y = 5'b00010;
7'b1111110: y = 5'b00001;
7'b1111111: y = 5'b00000;
default: y = 5'bxxxxx;
endcase // case (a)
endmodule // sbtm_a0

View File

@ -0,0 +1,140 @@
module sbtm_a2 (input logic [6:0] a,
output logic [12:0] y);
always_comb
case(a)
7'b0000000: y = 13'b1111111110001;
7'b0000001: y = 13'b1111111010001;
7'b0000010: y = 13'b1111110110010;
7'b0000011: y = 13'b1111110010011;
7'b0000100: y = 13'b1111101110101;
7'b0000101: y = 13'b1111101010110;
7'b0000110: y = 13'b1111100111001;
7'b0000111: y = 13'b1111100011011;
7'b0001000: y = 13'b1111011111110;
7'b0001001: y = 13'b1111011100001;
7'b0001010: y = 13'b1111011000100;
7'b0001011: y = 13'b1111010101000;
7'b0001100: y = 13'b1111010001100;
7'b0001101: y = 13'b1111001110000;
7'b0001110: y = 13'b1111001010101;
7'b0001111: y = 13'b1111000111010;
7'b0010000: y = 13'b1111000011111;
7'b0010001: y = 13'b1111000000100;
7'b0010010: y = 13'b1110111101010;
7'b0010011: y = 13'b1110111010000;
7'b0010100: y = 13'b1110110110110;
7'b0010101: y = 13'b1110110011101;
7'b0010110: y = 13'b1110110000100;
7'b0010111: y = 13'b1110101101011;
7'b0011000: y = 13'b1110101010010;
7'b0011001: y = 13'b1110100111001;
7'b0011010: y = 13'b1110100100001;
7'b0011011: y = 13'b1110100001001;
7'b0011100: y = 13'b1110011110001;
7'b0011101: y = 13'b1110011011010;
7'b0011110: y = 13'b1110011000010;
7'b0011111: y = 13'b1110010101011;
7'b0100000: y = 13'b1110010010100;
7'b0100001: y = 13'b1110001111110;
7'b0100010: y = 13'b1110001100111;
7'b0100011: y = 13'b1110001010001;
7'b0100100: y = 13'b1110000111011;
7'b0100101: y = 13'b1110000100101;
7'b0100110: y = 13'b1110000001111;
7'b0100111: y = 13'b1101111111010;
7'b0101000: y = 13'b1101111100101;
7'b0101001: y = 13'b1101111010000;
7'b0101010: y = 13'b1101110111011;
7'b0101011: y = 13'b1101110100110;
7'b0101100: y = 13'b1101110010001;
7'b0101101: y = 13'b1101101111101;
7'b0101110: y = 13'b1101101101001;
7'b0101111: y = 13'b1101101010101;
7'b0110000: y = 13'b1101101000001;
7'b0110001: y = 13'b1101100101101;
7'b0110010: y = 13'b1101100011010;
7'b0110011: y = 13'b1101100000110;
7'b0110100: y = 13'b1101011110011;
7'b0110101: y = 13'b1101011100000;
7'b0110110: y = 13'b1101011001101;
7'b0110111: y = 13'b1101010111010;
7'b0111000: y = 13'b1101010101000;
7'b0111001: y = 13'b1101010010101;
7'b0111010: y = 13'b1101010000011;
7'b0111011: y = 13'b1101001110001;
7'b0111100: y = 13'b1101001011111;
7'b0111101: y = 13'b1101001001101;
7'b0111110: y = 13'b1101000111100;
7'b0111111: y = 13'b1101000101010;
7'b1000000: y = 13'b1101000011001;
7'b1000001: y = 13'b1101000000111;
7'b1000010: y = 13'b1100111110110;
7'b1000011: y = 13'b1100111100101;
7'b1000100: y = 13'b1100111010100;
7'b1000101: y = 13'b1100111000011;
7'b1000110: y = 13'b1100110110011;
7'b1000111: y = 13'b1100110100010;
7'b1001000: y = 13'b1100110010010;
7'b1001001: y = 13'b1100110000010;
7'b1001010: y = 13'b1100101110010;
7'b1001011: y = 13'b1100101100001;
7'b1001100: y = 13'b1100101010010;
7'b1001101: y = 13'b1100101000010;
7'b1001110: y = 13'b1100100110010;
7'b1001111: y = 13'b1100100100011;
7'b1010000: y = 13'b1100100010011;
7'b1010001: y = 13'b1100100000100;
7'b1010010: y = 13'b1100011110101;
7'b1010011: y = 13'b1100011100101;
7'b1010100: y = 13'b1100011010110;
7'b1010101: y = 13'b1100011000111;
7'b1010110: y = 13'b1100010111001;
7'b1010111: y = 13'b1100010101010;
7'b1011000: y = 13'b1100010011011;
7'b1011001: y = 13'b1100010001101;
7'b1011010: y = 13'b1100001111110;
7'b1011011: y = 13'b1100001110000;
7'b1011100: y = 13'b1100001100010;
7'b1011101: y = 13'b1100001010100;
7'b1011110: y = 13'b1100001000110;
7'b1011111: y = 13'b1100000111000;
7'b1100000: y = 13'b1100000101010;
7'b1100001: y = 13'b1100000011100;
7'b1100010: y = 13'b1100000001111;
7'b1100011: y = 13'b1100000000001;
7'b1100100: y = 13'b1011111110100;
7'b1100101: y = 13'b1011111100110;
7'b1100110: y = 13'b1011111011001;
7'b1100111: y = 13'b1011111001100;
7'b1101000: y = 13'b1011110111111;
7'b1101001: y = 13'b1011110110010;
7'b1101010: y = 13'b1011110100101;
7'b1101011: y = 13'b1011110011000;
7'b1101100: y = 13'b1011110001011;
7'b1101101: y = 13'b1011101111110;
7'b1101110: y = 13'b1011101110010;
7'b1101111: y = 13'b1011101100101;
7'b1110000: y = 13'b1011101011001;
7'b1110001: y = 13'b1011101001100;
7'b1110010: y = 13'b1011101000000;
7'b1110011: y = 13'b1011100110100;
7'b1110100: y = 13'b1011100101000;
7'b1110101: y = 13'b1011100011100;
7'b1110110: y = 13'b1011100010000;
7'b1110111: y = 13'b1011100000100;
7'b1111000: y = 13'b1011011111000;
7'b1111001: y = 13'b1011011101100;
7'b1111010: y = 13'b1011011100000;
7'b1111011: y = 13'b1011011010101;
7'b1111100: y = 13'b1011011001001;
7'b1111101: y = 13'b1011010111101;
7'b1111110: y = 13'b1011010110010;
7'b1111111: y = 13'b1011010100111;
default: y = 13'bxxxxxxxxxxxxx;
endcase // case (a)
endmodule // sbtm_a0

View File

@ -0,0 +1,204 @@
module sbtm_a2 (input logic [7:0] a,
output logic [13:0] y);
always_comb
case(a)
8'b01000000: y = 14'b10110100010111;
8'b01000001: y = 14'b10110010111111;
8'b01000010: y = 14'b10110001101000;
8'b01000011: y = 14'b10110000010011;
8'b01000100: y = 14'b10101111000001;
8'b01000101: y = 14'b10101101110000;
8'b01000110: y = 14'b10101100100001;
8'b01000111: y = 14'b10101011010011;
8'b01001000: y = 14'b10101010000111;
8'b01001001: y = 14'b10101000111101;
8'b01001010: y = 14'b10100111110100;
8'b01001011: y = 14'b10100110101101;
8'b01001100: y = 14'b10100101100111;
8'b01001101: y = 14'b10100100100010;
8'b01001110: y = 14'b10100011011111;
8'b01001111: y = 14'b10100010011101;
8'b01010000: y = 14'b10100001011100;
8'b01010001: y = 14'b10100000011100;
8'b01010010: y = 14'b10011111011110;
8'b01010011: y = 14'b10011110100001;
8'b01010100: y = 14'b10011101100100;
8'b01010101: y = 14'b10011100101001;
8'b01010110: y = 14'b10011011101111;
8'b01010111: y = 14'b10011010110110;
8'b01011000: y = 14'b10011001111110;
8'b01011001: y = 14'b10011001000110;
8'b01011010: y = 14'b10011000010000;
8'b01011011: y = 14'b10010111011011;
8'b01011100: y = 14'b10010110100110;
8'b01011101: y = 14'b10010101110011;
8'b01011110: y = 14'b10010101000000;
8'b01011111: y = 14'b10010100001110;
8'b01100000: y = 14'b10010011011100;
8'b01100001: y = 14'b10010010101100;
8'b01100010: y = 14'b10010001111100;
8'b01100011: y = 14'b10010001001101;
8'b01100100: y = 14'b10010000011111;
8'b01100101: y = 14'b10001111110001;
8'b01100110: y = 14'b10001111000100;
8'b01100111: y = 14'b10001110011000;
8'b01101000: y = 14'b10001101101100;
8'b01101001: y = 14'b10001101000001;
8'b01101010: y = 14'b10001100010110;
8'b01101011: y = 14'b10001011101100;
8'b01101100: y = 14'b10001011000011;
8'b01101101: y = 14'b10001010011010;
8'b01101110: y = 14'b10001001110010;
8'b01101111: y = 14'b10001001001010;
8'b01110000: y = 14'b10001000100011;
8'b01110001: y = 14'b10000111111101;
8'b01110010: y = 14'b10000111010111;
8'b01110011: y = 14'b10000110110001;
8'b01110100: y = 14'b10000110001100;
8'b01110101: y = 14'b10000101100111;
8'b01110110: y = 14'b10000101000011;
8'b01110111: y = 14'b10000100011111;
8'b01111000: y = 14'b10000011111100;
8'b01111001: y = 14'b10000011011001;
8'b01111010: y = 14'b10000010110111;
8'b01111011: y = 14'b10000010010101;
8'b01111100: y = 14'b10000001110011;
8'b01111101: y = 14'b10000001010010;
8'b01111110: y = 14'b10000000110001;
8'b01111111: y = 14'b10000000010001;
8'b10000000: y = 14'b01111111110001;
8'b10000001: y = 14'b01111111010001;
8'b10000010: y = 14'b01111110110010;
8'b10000011: y = 14'b01111110010011;
8'b10000100: y = 14'b01111101110101;
8'b10000101: y = 14'b01111101010110;
8'b10000110: y = 14'b01111100111001;
8'b10000111: y = 14'b01111100011011;
8'b10001000: y = 14'b01111011111110;
8'b10001001: y = 14'b01111011100001;
8'b10001010: y = 14'b01111011000100;
8'b10001011: y = 14'b01111010101000;
8'b10001100: y = 14'b01111010001100;
8'b10001101: y = 14'b01111001110000;
8'b10001110: y = 14'b01111001010101;
8'b10001111: y = 14'b01111000111010;
8'b10010000: y = 14'b01111000011111;
8'b10010001: y = 14'b01111000000100;
8'b10010010: y = 14'b01110111101010;
8'b10010011: y = 14'b01110111010000;
8'b10010100: y = 14'b01110110110110;
8'b10010101: y = 14'b01110110011101;
8'b10010110: y = 14'b01110110000100;
8'b10010111: y = 14'b01110101101011;
8'b10011000: y = 14'b01110101010010;
8'b10011001: y = 14'b01110100111001;
8'b10011010: y = 14'b01110100100001;
8'b10011011: y = 14'b01110100001001;
8'b10011100: y = 14'b01110011110001;
8'b10011101: y = 14'b01110011011010;
8'b10011110: y = 14'b01110011000010;
8'b10011111: y = 14'b01110010101011;
8'b10100000: y = 14'b01110010010100;
8'b10100001: y = 14'b01110001111110;
8'b10100010: y = 14'b01110001100111;
8'b10100011: y = 14'b01110001010001;
8'b10100100: y = 14'b01110000111011;
8'b10100101: y = 14'b01110000100101;
8'b10100110: y = 14'b01110000001111;
8'b10100111: y = 14'b01101111111010;
8'b10101000: y = 14'b01101111100101;
8'b10101001: y = 14'b01101111010000;
8'b10101010: y = 14'b01101110111011;
8'b10101011: y = 14'b01101110100110;
8'b10101100: y = 14'b01101110010001;
8'b10101101: y = 14'b01101101111101;
8'b10101110: y = 14'b01101101101001;
8'b10101111: y = 14'b01101101010101;
8'b10110000: y = 14'b01101101000001;
8'b10110001: y = 14'b01101100101101;
8'b10110010: y = 14'b01101100011010;
8'b10110011: y = 14'b01101100000110;
8'b10110100: y = 14'b01101011110011;
8'b10110101: y = 14'b01101011100000;
8'b10110110: y = 14'b01101011001101;
8'b10110111: y = 14'b01101010111010;
8'b10111000: y = 14'b01101010101000;
8'b10111001: y = 14'b01101010010101;
8'b10111010: y = 14'b01101010000011;
8'b10111011: y = 14'b01101001110001;
8'b10111100: y = 14'b01101001011111;
8'b10111101: y = 14'b01101001001101;
8'b10111110: y = 14'b01101000111100;
8'b10111111: y = 14'b01101000101010;
8'b11000000: y = 14'b01101000011001;
8'b11000001: y = 14'b01101000000111;
8'b11000010: y = 14'b01100111110110;
8'b11000011: y = 14'b01100111100101;
8'b11000100: y = 14'b01100111010100;
8'b11000101: y = 14'b01100111000011;
8'b11000110: y = 14'b01100110110011;
8'b11000111: y = 14'b01100110100010;
8'b11001000: y = 14'b01100110010010;
8'b11001001: y = 14'b01100110000010;
8'b11001010: y = 14'b01100101110010;
8'b11001011: y = 14'b01100101100001;
8'b11001100: y = 14'b01100101010010;
8'b11001101: y = 14'b01100101000010;
8'b11001110: y = 14'b01100100110010;
8'b11001111: y = 14'b01100100100011;
8'b11010000: y = 14'b01100100010011;
8'b11010001: y = 14'b01100100000100;
8'b11010010: y = 14'b01100011110101;
8'b11010011: y = 14'b01100011100101;
8'b11010100: y = 14'b01100011010110;
8'b11010101: y = 14'b01100011000111;
8'b11010110: y = 14'b01100010111001;
8'b11010111: y = 14'b01100010101010;
8'b11011000: y = 14'b01100010011011;
8'b11011001: y = 14'b01100010001101;
8'b11011010: y = 14'b01100001111110;
8'b11011011: y = 14'b01100001110000;
8'b11011100: y = 14'b01100001100010;
8'b11011101: y = 14'b01100001010100;
8'b11011110: y = 14'b01100001000110;
8'b11011111: y = 14'b01100000111000;
8'b11100000: y = 14'b01100000101010;
8'b11100001: y = 14'b01100000011100;
8'b11100010: y = 14'b01100000001111;
8'b11100011: y = 14'b01100000000001;
8'b11100100: y = 14'b01011111110100;
8'b11100101: y = 14'b01011111100110;
8'b11100110: y = 14'b01011111011001;
8'b11100111: y = 14'b01011111001100;
8'b11101000: y = 14'b01011110111111;
8'b11101001: y = 14'b01011110110010;
8'b11101010: y = 14'b01011110100101;
8'b11101011: y = 14'b01011110011000;
8'b11101100: y = 14'b01011110001011;
8'b11101101: y = 14'b01011101111110;
8'b11101110: y = 14'b01011101110010;
8'b11101111: y = 14'b01011101100101;
8'b11110000: y = 14'b01011101011001;
8'b11110001: y = 14'b01011101001100;
8'b11110010: y = 14'b01011101000000;
8'b11110011: y = 14'b01011100110100;
8'b11110100: y = 14'b01011100101000;
8'b11110101: y = 14'b01011100011100;
8'b11110110: y = 14'b01011100010000;
8'b11110111: y = 14'b01011100000100;
8'b11111000: y = 14'b01011011111000;
8'b11111001: y = 14'b01011011101100;
8'b11111010: y = 14'b01011011100000;
8'b11111011: y = 14'b01011011010101;
8'b11111100: y = 14'b01011011001001;
8'b11111101: y = 14'b01011010111101;
8'b11111110: y = 14'b01011010110010;
8'b11111111: y = 14'b01011010100111;
default: y = 14'bxxxxxxxxxxxxxx;
endcase // case (a)
endmodule // sbtm_a0

View File

@ -0,0 +1,200 @@
module sbtm_a3 (input logic [7:0] a,
output logic [5:0] y);
always_comb
case(a)
8'b01000000: y = 6'b100110;
8'b01000001: y = 6'b100001;
8'b01000010: y = 6'b011100;
8'b01000011: y = 6'b010111;
8'b01000100: y = 6'b010010;
8'b01000101: y = 6'b001100;
8'b01000110: y = 6'b000111;
8'b01000111: y = 6'b000010;
8'b01001000: y = 6'b100000;
8'b01001001: y = 6'b011100;
8'b01001010: y = 6'b011000;
8'b01001011: y = 6'b010011;
8'b01001100: y = 6'b001111;
8'b01001101: y = 6'b001010;
8'b01001110: y = 6'b000110;
8'b01001111: y = 6'b000010;
8'b01010000: y = 6'b011100;
8'b01010001: y = 6'b011000;
8'b01010010: y = 6'b010100;
8'b01010011: y = 6'b010000;
8'b01010100: y = 6'b001101;
8'b01010101: y = 6'b001001;
8'b01010110: y = 6'b000101;
8'b01010111: y = 6'b000001;
8'b01011000: y = 6'b011000;
8'b01011001: y = 6'b010101;
8'b01011010: y = 6'b010010;
8'b01011011: y = 6'b001110;
8'b01011100: y = 6'b001011;
8'b01011101: y = 6'b001000;
8'b01011110: y = 6'b000100;
8'b01011111: y = 6'b000001;
8'b01100000: y = 6'b010101;
8'b01100001: y = 6'b010010;
8'b01100010: y = 6'b001111;
8'b01100011: y = 6'b001101;
8'b01100100: y = 6'b001010;
8'b01100101: y = 6'b000111;
8'b01100110: y = 6'b000100;
8'b01100111: y = 6'b000001;
8'b01101000: y = 6'b010011;
8'b01101001: y = 6'b010000;
8'b01101010: y = 6'b001110;
8'b01101011: y = 6'b001011;
8'b01101100: y = 6'b001001;
8'b01101101: y = 6'b000110;
8'b01101110: y = 6'b000011;
8'b01101111: y = 6'b000001;
8'b01110000: y = 6'b010001;
8'b01110001: y = 6'b001111;
8'b01110010: y = 6'b001100;
8'b01110011: y = 6'b001010;
8'b01110100: y = 6'b001000;
8'b01110101: y = 6'b000101;
8'b01110110: y = 6'b000011;
8'b01110111: y = 6'b000001;
8'b01111000: y = 6'b001111;
8'b01111001: y = 6'b001101;
8'b01111010: y = 6'b001011;
8'b01111011: y = 6'b001001;
8'b01111100: y = 6'b000111;
8'b01111101: y = 6'b000101;
8'b01111110: y = 6'b000011;
8'b01111111: y = 6'b000001;
8'b10000000: y = 6'b001110;
8'b10000001: y = 6'b001100;
8'b10000010: y = 6'b001010;
8'b10000011: y = 6'b001000;
8'b10000100: y = 6'b000110;
8'b10000101: y = 6'b000100;
8'b10000110: y = 6'b000010;
8'b10000111: y = 6'b000000;
8'b10001000: y = 6'b001101;
8'b10001001: y = 6'b001011;
8'b10001010: y = 6'b001001;
8'b10001011: y = 6'b000111;
8'b10001100: y = 6'b000110;
8'b10001101: y = 6'b000100;
8'b10001110: y = 6'b000010;
8'b10001111: y = 6'b000000;
8'b10010000: y = 6'b001100;
8'b10010001: y = 6'b001010;
8'b10010010: y = 6'b001000;
8'b10010011: y = 6'b000111;
8'b10010100: y = 6'b000101;
8'b10010101: y = 6'b000100;
8'b10010110: y = 6'b000010;
8'b10010111: y = 6'b000000;
8'b10011000: y = 6'b001011;
8'b10011001: y = 6'b001001;
8'b10011010: y = 6'b001000;
8'b10011011: y = 6'b000110;
8'b10011100: y = 6'b000101;
8'b10011101: y = 6'b000011;
8'b10011110: y = 6'b000010;
8'b10011111: y = 6'b000000;
8'b10100000: y = 6'b001010;
8'b10100001: y = 6'b001000;
8'b10100010: y = 6'b000111;
8'b10100011: y = 6'b000110;
8'b10100100: y = 6'b000100;
8'b10100101: y = 6'b000011;
8'b10100110: y = 6'b000010;
8'b10100111: y = 6'b000000;
8'b10101000: y = 6'b001001;
8'b10101001: y = 6'b001000;
8'b10101010: y = 6'b000111;
8'b10101011: y = 6'b000101;
8'b10101100: y = 6'b000100;
8'b10101101: y = 6'b000011;
8'b10101110: y = 6'b000001;
8'b10101111: y = 6'b000000;
8'b10110000: y = 6'b001000;
8'b10110001: y = 6'b000111;
8'b10110010: y = 6'b000110;
8'b10110011: y = 6'b000101;
8'b10110100: y = 6'b000100;
8'b10110101: y = 6'b000010;
8'b10110110: y = 6'b000001;
8'b10110111: y = 6'b000000;
8'b10111000: y = 6'b001000;
8'b10111001: y = 6'b000111;
8'b10111010: y = 6'b000110;
8'b10111011: y = 6'b000101;
8'b10111100: y = 6'b000011;
8'b10111101: y = 6'b000010;
8'b10111110: y = 6'b000001;
8'b10111111: y = 6'b000000;
8'b11000000: y = 6'b000111;
8'b11000001: y = 6'b000110;
8'b11000010: y = 6'b000101;
8'b11000011: y = 6'b000100;
8'b11000100: y = 6'b000011;
8'b11000101: y = 6'b000010;
8'b11000110: y = 6'b000001;
8'b11000111: y = 6'b000000;
8'b11001000: y = 6'b000111;
8'b11001001: y = 6'b000110;
8'b11001010: y = 6'b000101;
8'b11001011: y = 6'b000100;
8'b11001100: y = 6'b000011;
8'b11001101: y = 6'b000010;
8'b11001110: y = 6'b000001;
8'b11001111: y = 6'b000000;
8'b11010000: y = 6'b000111;
8'b11010001: y = 6'b000110;
8'b11010010: y = 6'b000101;
8'b11010011: y = 6'b000100;
8'b11010100: y = 6'b000011;
8'b11010101: y = 6'b000010;
8'b11010110: y = 6'b000001;
8'b11010111: y = 6'b000000;
8'b11011000: y = 6'b000110;
8'b11011001: y = 6'b000101;
8'b11011010: y = 6'b000100;
8'b11011011: y = 6'b000011;
8'b11011100: y = 6'b000011;
8'b11011101: y = 6'b000010;
8'b11011110: y = 6'b000001;
8'b11011111: y = 6'b000000;
8'b11100000: y = 6'b000110;
8'b11100001: y = 6'b000101;
8'b11100010: y = 6'b000100;
8'b11100011: y = 6'b000011;
8'b11100100: y = 6'b000010;
8'b11100101: y = 6'b000010;
8'b11100110: y = 6'b000001;
8'b11100111: y = 6'b000000;
8'b11101000: y = 6'b000101;
8'b11101001: y = 6'b000101;
8'b11101010: y = 6'b000100;
8'b11101011: y = 6'b000011;
8'b11101100: y = 6'b000010;
8'b11101101: y = 6'b000001;
8'b11101110: y = 6'b000001;
8'b11101111: y = 6'b000000;
8'b11110000: y = 6'b000101;
8'b11110001: y = 6'b000100;
8'b11110010: y = 6'b000100;
8'b11110011: y = 6'b000011;
8'b11110100: y = 6'b000010;
8'b11110101: y = 6'b000001;
8'b11110110: y = 6'b000001;
8'b11110111: y = 6'b000000;
8'b11111000: y = 6'b000101;
8'b11111001: y = 6'b000100;
8'b11111010: y = 6'b000011;
8'b11111011: y = 6'b000011;
8'b11111100: y = 6'b000010;
8'b11111101: y = 6'b000001;
8'b11111110: y = 6'b000001;
8'b11111111: y = 6'b000000;
default: y = 6'bxxxxxx;
endcase // case (a)
endmodule // sbtm_a0

View File

@ -0,0 +1,6 @@
#!/bin/sh
./runme_f64div.csh
./runme_f32div.csh
./runme_f64sqrt_csh
./runme_f32sqrt.csh
echo "Simulation Ended, Go Pokes!..."

View File

@ -0,0 +1,83 @@
`timescale 1ns/1ps
module tb ();
logic [31:0] op1;
logic [31:0] op2;
logic [1:0] rm;
logic op_type;
logic P;
logic OvEn;
logic UnEn;
logic start;
logic reset;
logic [63:0] AS_Result;
logic [4:0] Flags;
logic Denorm;
logic done;
logic clk;
logic [31:0] yexpected;
logic [63:0] vectornum, errors; // bookkeeping variables
logic [103:0] testvectors[50000:0]; // array of testvectors
logic [7:0] flags_expected;
integer handle3;
integer desc3;
// instantiate device under test
fpdiv dut (done, AS_Result, Flags, Denorm, {op1, 32'h0}, {op2, 32'h0}, rm, op_type, P, OvEn, UnEn,
start, reset, clk);
initial
begin
clk = 1'b1;
forever #333 clk = ~clk;
end
initial
begin
handle3 = $fopen("f32_div_rd.out");
$readmemh("f32_div_rd.tv", testvectors);
vectornum = 0; errors = 0;
start = 1'b0;
// reset
reset = 1; #27; reset = 0;
end
initial
begin
desc3 = handle3;
#0 op_type = 1'b0;
#0 P = 1'b1;
#0 rm = 2'b11;
#0 OvEn = 1'b0;
#0 UnEn = 1'b0;
end
always @(posedge clk)
begin
if (~reset)
begin
#0; {op1, op2, yexpected, flags_expected} = testvectors[vectornum];
#50 start = 1'b1;
repeat (2)
@(posedge clk);
// deassert start after 2 cycles
start = 1'b0;
repeat (11)
@(posedge clk);
$fdisplay(desc3, "%h_%h_%h_%b_%b | %h_%b", op1, op2, AS_Result, Flags, Denorm, yexpected, (AS_Result[63:32]==yexpected));
vectornum = vectornum + 1;
end // if (~reset)
if (vectornum == 31605) begin
$display("%d vectors processed", vectornum);
$finish;
end
end // always @ (posedge clk)
endmodule // tb

View File

@ -0,0 +1,83 @@
`timescale 1ns/1ps
module tb ();
logic [31:0] op1;
logic [31:0] op2;
logic [1:0] rm;
logic op_type;
logic P;
logic OvEn;
logic UnEn;
logic start;
logic reset;
logic [63:0] AS_Result;
logic [4:0] Flags;
logic Denorm;
logic done;
logic clk;
logic [31:0] yexpected;
logic [63:0] vectornum, errors; // bookkeeping variables
logic [103:0] testvectors[50000:0]; // array of testvectors
logic [7:0] flags_expected;
integer handle3;
integer desc3;
// instantiate device under test
fpdiv dut (done, AS_Result, Flags, Denorm, {op1, 32'h0}, {op2, 32'h0}, rm, op_type, P, OvEn, UnEn,
start, reset, clk);
initial
begin
clk = 1'b1;
forever #333 clk = ~clk;
end
initial
begin
handle3 = $fopen("f32_div_rne.out");
$readmemh("f32_div_rne.tv", testvectors);
vectornum = 0; errors = 0;
start = 1'b0;
// reset
reset = 1; #27; reset = 0;
end
initial
begin
desc3 = handle3;
#0 op_type = 1'b0;
#0 P = 1'b1;
#0 rm = 2'b00;
#0 OvEn = 1'b0;
#0 UnEn = 1'b0;
end
always @(posedge clk)
begin
if (~reset)
begin
#0; {op1, op2, yexpected, flags_expected} = testvectors[vectornum];
#50 start = 1'b1;
repeat (2)
@(posedge clk);
// deassert start after 2 cycles
start = 1'b0;
repeat (11)
@(posedge clk);
$fdisplay(desc3, "%h_%h_%h_%b_%b | %h_%b", op1, op2, AS_Result, Flags, Denorm, yexpected, (AS_Result[63:32]==yexpected));
vectornum = vectornum + 1;
end // if (~reset)
if (vectornum == 31743) begin
$display("%d vectors processed", vectornum);
$finish;
end
end // always @ (posedge clk)
endmodule // tb

View File

@ -0,0 +1,83 @@
`timescale 1ns/1ps
module tb ();
logic [31:0] op1;
logic [31:0] op2;
logic [1:0] rm;
logic op_type;
logic P;
logic OvEn;
logic UnEn;
logic start;
logic reset;
logic [63:0] AS_Result;
logic [4:0] Flags;
logic Denorm;
logic done;
logic clk;
logic [31:0] yexpected;
logic [63:0] vectornum, errors; // bookkeeping variables
logic [103:0] testvectors[50000:0]; // array of testvectors
logic [7:0] flags_expected;
integer handle3;
integer desc3;
// instantiate device under test
fpdiv dut (done, AS_Result, Flags, Denorm, {op1, 32'h0}, {op2, 32'h0}, rm, op_type, P, OvEn, UnEn,
start, reset, clk);
initial
begin
clk = 1'b1;
forever #333 clk = ~clk;
end
initial
begin
handle3 = $fopen("f32_div_ru.out");
$readmemh("f32_div_ru.tv", testvectors);
vectornum = 0; errors = 0;
start = 1'b0;
// reset
reset = 1; #27; reset = 0;
end
initial
begin
desc3 = handle3;
#0 op_type = 1'b0;
#0 P = 1'b1;
#0 rm = 2'b10;
#0 OvEn = 1'b0;
#0 UnEn = 1'b0;
end
always @(posedge clk)
begin
if (~reset)
begin
#0; {op1, op2, yexpected, flags_expected} = testvectors[vectornum];
#50 start = 1'b1;
repeat (2)
@(posedge clk);
// deassert start after 2 cycles
start = 1'b0;
repeat (11)
@(posedge clk);
$fdisplay(desc3, "%h_%h_%h_%b_%b | %h_%b", op1, op2, AS_Result, Flags, Denorm, yexpected, (AS_Result[63:32]==yexpected));
vectornum = vectornum + 1;
end // if (~reset)
if (vectornum == 31614) begin
$display("%d vectors processed", vectornum);
$finish;
end
end // always @ (posedge clk)
endmodule // tb

View File

@ -0,0 +1,83 @@
`timescale 1ns/1ps
module tb ();
logic [31:0] op1;
logic [31:0] op2;
logic [1:0] rm;
logic op_type;
logic P;
logic OvEn;
logic UnEn;
logic start;
logic reset;
logic [63:0] AS_Result;
logic [4:0] Flags;
logic Denorm;
logic done;
logic clk;
logic [31:0] yexpected;
logic [63:0] vectornum, errors; // bookkeeping variables
logic [103:0] testvectors[50000:0]; // array of testvectors
logic [7:0] flags_expected;
integer handle3;
integer desc3;
// instantiate device under test
fpdiv dut (done, AS_Result, Flags, Denorm, {op1, 32'h0}, {op2, 32'h0}, rm, op_type, P, OvEn, UnEn,
start, reset, clk);
initial
begin
clk = 1'b1;
forever #333 clk = ~clk;
end
initial
begin
handle3 = $fopen("f32_div_rz.out");
$readmemh("f32_div_rz.tv", testvectors);
vectornum = 0; errors = 0;
start = 1'b0;
// reset
reset = 1; #27; reset = 0;
end
initial
begin
desc3 = handle3;
#0 op_type = 1'b0;
#0 P = 1'b1;
#0 rm = 2'b01;
#0 OvEn = 1'b0;
#0 UnEn = 1'b0;
end
always @(posedge clk)
begin
if (~reset)
begin
#0; {op1, op2, yexpected, flags_expected} = testvectors[vectornum];
#50 start = 1'b1;
repeat (2)
@(posedge clk);
// deassert start after 2 cycles
start = 1'b0;
repeat (11)
@(posedge clk);
$fdisplay(desc3, "%h_%h_%h_%b_%b | %h_%b", op1, op2, AS_Result, Flags, Denorm, yexpected, (AS_Result[63:32]==yexpected));
vectornum = vectornum + 1;
end // if (~reset)
if (vectornum == 31792) begin
$display("%d vectors processed", vectornum);
$finish;
end
end // always @ (posedge clk)
endmodule // tb

View File

@ -0,0 +1,80 @@
`timescale 1ns/1ps
module tb ();
logic [31:0] op1;
logic [1:0] rm;
logic op_type;
logic P;
logic OvEn;
logic UnEn;
logic start;
logic reset;
logic [63:0] AS_Result;
logic [4:0] Flags;
logic Denorm;
logic done;
logic clk;
logic [31:0] yexpected;
logic [63:0] vectornum, errors; // bookkeeping variables
logic [71:0] testvectors[50000:0]; // array of testvectors
logic [7:0] flags_expected;
integer handle3;
integer desc3;
// instantiate device under test
fpdiv dut (done, AS_Result, Flags, Denorm, {op1, 32'h0}, 64'h0, rm, op_type, P, OvEn, UnEn,
start, reset, clk);
initial
begin
clk = 1'b1;
forever #333 clk = ~clk;
end
initial
begin
handle3 = $fopen("f32_sqrt_rd.out");
$readmemh("f32_sqrt_rd.tv", testvectors);
vectornum = 0; errors = 0;
start = 1'b0;
// reset
reset = 1; #27; reset = 0;
end
initial
begin
desc3 = handle3;
#0 op_type = 1'b1;
#0 P = 1'b1;
#0 rm = 2'b11;
#0 OvEn = 1'b0;
#0 UnEn = 1'b0;
end
always @(posedge clk)
begin
if (~reset)
begin
#0; {op1, yexpected, flags_expected} = testvectors[vectornum];
#50 start = 1'b1;
repeat (2)
@(posedge clk);
// deassert start after 2 cycles
start = 1'b0;
repeat (16)
@(posedge clk);
$fdisplay(desc3, "%h_%h_%b_%b | %h_%b", op1, AS_Result, Flags, Denorm, yexpected, (AS_Result[63:32]==yexpected));
vectornum = vectornum + 1;
end // if (~reset)
if (vectornum == 19538) begin
$display("%d vectors processed", vectornum);
$finish;
end
end // always @ (posedge clk)
endmodule // tb

View File

@ -0,0 +1,80 @@
`timescale 1ns/1ps
module tb ();
logic [31:0] op1;
logic [1:0] rm;
logic op_type;
logic P;
logic OvEn;
logic UnEn;
logic start;
logic reset;
logic [63:0] AS_Result;
logic [4:0] Flags;
logic Denorm;
logic done;
logic clk;
logic [31:0] yexpected;
logic [63:0] vectornum, errors; // bookkeeping variables
logic [71:0] testvectors[50000:0]; // array of testvectors
logic [7:0] flags_expected;
integer handle3;
integer desc3;
// instantiate device under test
fpdiv dut (done, AS_Result, Flags, Denorm, {op1, 32'h0}, 64'h0, rm, op_type, P, OvEn, UnEn,
start, reset, clk);
initial
begin
clk = 1'b1;
forever #333 clk = ~clk;
end
initial
begin
handle3 = $fopen("f32_sqrt_rne.out");
$readmemh("f32_sqrt_rne.tv", testvectors);
vectornum = 0; errors = 0;
start = 1'b0;
// reset
reset = 1; #27; reset = 0;
end
initial
begin
desc3 = handle3;
#0 op_type = 1'b1;
#0 P = 1'b1;
#0 rm = 2'b00;
#0 OvEn = 1'b0;
#0 UnEn = 1'b0;
end
always @(posedge clk)
begin
if (~reset)
begin
#0; {op1, yexpected, flags_expected} = testvectors[vectornum];
#50 start = 1'b1;
repeat (2)
@(posedge clk);
// deassert start after 2 cycles
start = 1'b0;
repeat (16)
@(posedge clk);
$fdisplay(desc3, "%h_%h_%b_%b | %h_%b", op1, AS_Result, Flags, Denorm, yexpected, (AS_Result[63:32]==yexpected));
vectornum = vectornum + 1;
end // if (~reset)
if (vectornum == 19538) begin
$display("%d vectors processed", vectornum);
$finish;
end
end // always @ (posedge clk)
endmodule // tb

View File

@ -0,0 +1,80 @@
`timescale 1ns/1ps
module tb ();
logic [31:0] op1;
logic [1:0] rm;
logic op_type;
logic P;
logic OvEn;
logic UnEn;
logic start;
logic reset;
logic [63:0] AS_Result;
logic [4:0] Flags;
logic Denorm;
logic done;
logic clk;
logic [31:0] yexpected;
logic [63:0] vectornum, errors; // bookkeeping variables
logic [71:0] testvectors[50000:0]; // array of testvectors
logic [7:0] flags_expected;
integer handle3;
integer desc3;
// instantiate device under test
fpdiv dut (done, AS_Result, Flags, Denorm, {op1, 32'h0}, 64'h0, rm, op_type, P, OvEn, UnEn,
start, reset, clk);
initial
begin
clk = 1'b1;
forever #333 clk = ~clk;
end
initial
begin
handle3 = $fopen("f32_sqrt_ru.out");
$readmemh("f32_sqrt_ru.tv", testvectors);
vectornum = 0; errors = 0;
start = 1'b0;
// reset
reset = 1; #27; reset = 0;
end
initial
begin
desc3 = handle3;
#0 op_type = 1'b1;
#0 P = 1'b1;
#0 rm = 2'b10;
#0 OvEn = 1'b0;
#0 UnEn = 1'b0;
end
always @(posedge clk)
begin
if (~reset)
begin
#0; {op1, yexpected, flags_expected} = testvectors[vectornum];
#50 start = 1'b1;
repeat (2)
@(posedge clk);
// deassert start after 2 cycles
start = 1'b0;
repeat (16)
@(posedge clk);
$fdisplay(desc3, "%h_%h_%b_%b | %h_%b", op1, AS_Result, Flags, Denorm, yexpected, (AS_Result[63:32]==yexpected));
vectornum = vectornum + 1;
end // if (~reset)
if (vectornum == 19538) begin
$display("%d vectors processed", vectornum);
$finish;
end
end // always @ (posedge clk)
endmodule // tb

View File

@ -0,0 +1,80 @@
`timescale 1ns/1ps
module tb ();
logic [31:0] op1;
logic [1:0] rm;
logic op_type;
logic P;
logic OvEn;
logic UnEn;
logic start;
logic reset;
logic [63:0] AS_Result;
logic [4:0] Flags;
logic Denorm;
logic done;
logic clk;
logic [31:0] yexpected;
logic [63:0] vectornum, errors; // bookkeeping variables
logic [71:0] testvectors[50000:0]; // array of testvectors
logic [7:0] flags_expected;
integer handle3;
integer desc3;
// instantiate device under test
fpdiv dut (done, AS_Result, Flags, Denorm, {op1, 32'h0}, 64'h0, rm, op_type, P, OvEn, UnEn,
start, reset, clk);
initial
begin
clk = 1'b1;
forever #333 clk = ~clk;
end
initial
begin
handle3 = $fopen("f32_sqrt_rz.out");
$readmemh("f32_sqrt_rz.tv", testvectors);
vectornum = 0; errors = 0;
start = 1'b0;
// reset
reset = 1; #27; reset = 0;
end
initial
begin
desc3 = handle3;
#0 op_type = 1'b1;
#0 P = 1'b1;
#0 rm = 2'b01;
#0 OvEn = 1'b0;
#0 UnEn = 1'b0;
end
always @(posedge clk)
begin
if (~reset)
begin
#0; {op1, yexpected, flags_expected} = testvectors[vectornum];
#50 start = 1'b1;
repeat (2)
@(posedge clk);
// deassert start after 2 cycles
start = 1'b0;
repeat (16)
@(posedge clk);
$fdisplay(desc3, "%h_%h_%b_%b | %h_%b", op1, AS_Result, Flags, Denorm, yexpected, (AS_Result[63:32]==yexpected));
vectornum = vectornum + 1;
end // if (~reset)
if (vectornum == 19538) begin
$display("%d vectors processed", vectornum);
$finish;
end
end // always @ (posedge clk)
endmodule // tb

View File

@ -0,0 +1,83 @@
`timescale 1ns/1ps
module tb ();
logic [63:0] op1;
logic [63:0] op2;
logic [1:0] rm;
logic op_type;
logic P;
logic OvEn;
logic UnEn;
logic start;
logic reset;
logic [63:0] AS_Result;
logic [4:0] Flags;
logic Denorm;
logic done;
logic clk;
logic [63:0] yexpected;
logic [63:0] vectornum, errors; // bookkeeping variables
logic [199:0] testvectors[50000:0]; // array of testvectors
logic [7:0] flags_expected;
integer handle3;
integer desc3;
// instantiate device under test
fpdiv dut (done, AS_Result, Flags, Denorm, op1, op2, rm, op_type, P, OvEn, UnEn,
start, reset, clk);
initial
begin
clk = 1'b1;
forever #333 clk = ~clk;
end
initial
begin
handle3 = $fopen("f64_div_rd.out");
$readmemh("f64_div_rd.tv", testvectors);
vectornum = 0; errors = 0;
start = 1'b0;
// reset
reset = 1; #27; reset = 0;
end
initial
begin
desc3 = handle3;
#0 op_type = 1'b0;
#0 P = 1'b0;
#0 rm = 2'b11;
#0 OvEn = 1'b0;
#0 UnEn = 1'b0;
end
always @(posedge clk)
begin
if (~reset)
begin
#0; {op1, op2, yexpected, flags_expected} = testvectors[vectornum];
#50 start = 1'b1;
repeat (2)
@(posedge clk);
// deassert start after 2 cycles
start = 1'b0;
repeat (13)
@(posedge clk);
$fdisplay(desc3, "%h_%h_%h_%b_%b | %h_%b", op1, op2, AS_Result, Flags, Denorm, yexpected, (AS_Result==yexpected));
vectornum = vectornum + 1;
end // if (~reset)
if (vectornum == 39050) begin
$display("%d vectors processed", vectornum);
$finish;
end
end // always @ (posedge clk)
endmodule // tb

View File

@ -0,0 +1,84 @@
`timescale 1ns/1ps
module tb ();
logic [63:0] op1;
logic [63:0] op2;
logic [1:0] rm;
logic op_type;
logic P;
logic OvEn;
logic UnEn;
logic start;
logic reset;
logic [63:0] AS_Result;
logic [4:0] Flags;
logic Denorm;
logic done;
logic clk;
logic [63:0] yexpected;
logic [63:0] vectornum, errors; // bookkeeping variables
logic [199:0] testvectors[50000:0]; // array of testvectors
logic [7:0] flags_expected;
integer handle3;
integer handle4;
integer desc3;
// instantiate device under test
fpdiv dut (done, AS_Result, Flags, Denorm, op1, op2, rm, op_type, P, OvEn, UnEn,
start, reset, clk);
initial
begin
clk = 1'b1;
forever #333 clk = ~clk;
end
initial
begin
handle3 = $fopen("f64_div_rne.out");
$readmemh("f64_div_rne.tv", testvectors);
vectornum = 0; errors = 0;
start = 1'b0;
// reset
reset = 1; #27; reset = 0;
end
initial
begin
desc3 = handle3;
#0 op_type = 1'b0;
#0 P = 1'b0;
#0 rm = 2'b00;
#0 OvEn = 1'b0;
#0 UnEn = 1'b0;
end
always @(posedge clk)
begin
if (~reset)
begin
#0; {op1, op2, yexpected, flags_expected} = testvectors[vectornum];
#50 start = 1'b1;
repeat (2)
@(posedge clk);
// deassert start after 2 cycles
start = 1'b0;
repeat (13)
@(posedge clk);
$fdisplay(desc3, "%h_%h_%h_%b_%b | %h_%b", op1, op2, AS_Result, Flags, Denorm, yexpected, (AS_Result==yexpected));
vectornum = vectornum + 1;
end // if (~reset)
if (vectornum == 39509) begin
$display("%d vectors processed", vectornum);
$finish;
end
end // always @ (posedge clk)
endmodule // tb

View File

@ -0,0 +1,83 @@
`timescale 1ns/1ps
module tb ();
logic [63:0] op1;
logic [63:0] op2;
logic [1:0] rm;
logic op_type;
logic P;
logic OvEn;
logic UnEn;
logic start;
logic reset;
logic [63:0] AS_Result;
logic [4:0] Flags;
logic Denorm;
logic done;
logic clk;
logic [63:0] yexpected;
logic [63:0] vectornum, errors; // bookkeeping variables
logic [199:0] testvectors[50000:0]; // array of testvectors
logic [7:0] flags_expected;
integer handle3;
integer desc3;
// instantiate device under test
fpdiv dut (done, AS_Result, Flags, Denorm, op1, op2, rm, op_type, P, OvEn, UnEn,
start, reset, clk);
initial
begin
clk = 1'b1;
forever #333 clk = ~clk;
end
initial
begin
handle3 = $fopen("f64_div_ru.out");
$readmemh("f64_div_ru.tv", testvectors);
vectornum = 0; errors = 0;
start = 1'b0;
// reset
reset = 1; #27; reset = 0;
end
initial
begin
desc3 = handle3;
#0 op_type = 1'b0;
#0 P = 1'b0;
#0 rm = 2'b10;
#0 OvEn = 1'b0;
#0 UnEn = 1'b0;
end
always @(posedge clk)
begin
if (~reset)
begin
#0; {op1, op2, yexpected, flags_expected} = testvectors[vectornum];
#50 start = 1'b1;
repeat (2)
@(posedge clk);
// deassert start after 2 cycles
start = 1'b0;
repeat (13)
@(posedge clk);
$fdisplay(desc3, "%h_%h_%h_%b_%b | %h_%b", op1, op2, AS_Result, Flags, Denorm, yexpected, (AS_Result==yexpected));
vectornum = vectornum + 1;
end // if (~reset)
if (vectornum == 39020) begin
$display("%d vectors processed", vectornum);
$finish;
end
end // always @ (posedge clk)
endmodule // tb

View File

@ -0,0 +1,83 @@
`timescale 1ns/1ps
module tb ();
logic [63:0] op1;
logic [63:0] op2;
logic [1:0] rm;
logic op_type;
logic P;
logic OvEn;
logic UnEn;
logic start;
logic reset;
logic [63:0] AS_Result;
logic [4:0] Flags;
logic Denorm;
logic done;
logic clk;
logic [63:0] yexpected;
logic [63:0] vectornum, errors; // bookkeeping variables
logic [199:0] testvectors[50000:0]; // array of testvectors
logic [7:0] flags_expected;
integer handle3;
integer desc3;
// instantiate device under test
fpdiv dut (done, AS_Result, Flags, Denorm, op1, op2, rm, op_type, P, OvEn, UnEn,
start, reset, clk);
initial
begin
clk = 1'b1;
forever #333 clk = ~clk;
end
initial
begin
handle3 = $fopen("f64_div_rz.out");
$readmemh("f64_div_rz.tv", testvectors);
vectornum = 0; errors = 0;
start = 1'b0;
// reset
reset = 1; #27; reset = 0;
end
initial
begin
desc3 = handle3;
#0 op_type = 1'b0;
#0 P = 1'b0;
#0 rm = 2'b01;
#0 OvEn = 1'b0;
#0 UnEn = 1'b0;
end
always @(posedge clk)
begin
if (~reset)
begin
#0; {op1, op2, yexpected, flags_expected} = testvectors[vectornum];
#50 start = 1'b1;
repeat (2)
@(posedge clk);
// deassert start after 2 cycles
start = 1'b0;
repeat (13)
@(posedge clk);
$fdisplay(desc3, "%h_%h_%h_%b_%b | %h_%b", op1, op2, AS_Result, Flags, Denorm, yexpected, (AS_Result==yexpected));
vectornum = vectornum + 1;
end // if (~reset)
if (vectornum == 39515) begin
$display("%d vectors processed", vectornum);
$finish;
end
end // always @ (posedge clk)
endmodule // tb

View File

@ -0,0 +1,80 @@
`timescale 1ns/1ps
module tb ();
logic [63:0] op1;
logic [1:0] rm;
logic op_type;
logic P;
logic OvEn;
logic UnEn;
logic start;
logic reset;
logic [63:0] AS_Result;
logic [4:0] Flags;
logic Denorm;
logic done;
logic clk;
logic [63:0] yexpected;
logic [63:0] vectornum, errors; // bookkeeping variables
logic [135:0] testvectors[50000:0]; // array of testvectors
logic [7:0] flags_expected;
integer handle3;
integer desc3;
// instantiate device under test
fpdiv dut (done, AS_Result, Flags, Denorm, op1, 64'h0, rm, op_type, P, OvEn, UnEn,
start, reset, clk);
initial
begin
clk = 1'b1;
forever #333 clk = ~clk;
end
initial
begin
handle3 = $fopen("f64_sqrt_rd.out");
$readmemh("f64_sqrt_rd.tv", testvectors);
vectornum = 0; errors = 0;
start = 1'b0;
// reset
reset = 1; #27; reset = 0;
end
initial
begin
desc3 = handle3;
#0 op_type = 1'b1;
#0 P = 1'b0;
#0 rm = 2'b11;
#0 OvEn = 1'b0;
#0 UnEn = 1'b0;
end
always @(posedge clk)
begin
if (~reset)
begin
#0; {op1, yexpected, flags_expected} = testvectors[vectornum];
#50 start = 1'b1;
repeat (2)
@(posedge clk);
// deassert start after 2 cycles
start = 1'b0;
repeat (20)
@(posedge clk);
$fdisplay(desc3, "%h_%h_%b_%b | %h_%b", op1, AS_Result, Flags, Denorm, yexpected, (AS_Result==yexpected));
vectornum = vectornum + 1;
end // if (~reset)
if (vectornum == 363) begin
$display("%d vectors processed", vectornum);
$finish;
end
end // always @ (posedge clk)
endmodule // tb

View File

@ -0,0 +1,82 @@
`timescale 1ns/1ps
module tb ();
logic [63:0] op1;
logic [1:0] rm;
logic op_type;
logic P;
logic OvEn;
logic UnEn;
logic start;
logic reset;
logic [63:0] AS_Result;
logic [4:0] Flags;
logic Denorm;
logic done;
logic clk;
logic [63:0] yexpected;
logic [63:0] vectornum, errors; // bookkeeping variables
logic [135:0] testvectors[50000:0]; // array of testvectors
logic [7:0] flags_expected;
integer handle3;
integer desc3;
// instantiate device under test
fpdiv dut (done, AS_Result, Flags, Denorm, op1, 64'h0, rm, op_type, P, OvEn, UnEn,
start, reset, clk);
initial
begin
clk = 1'b1;
forever #333 clk = ~clk;
end
initial
begin
handle3 = $fopen("f64_sqrt_rne.out");
$readmemh("f64_sqrt_rne.tv", testvectors);
vectornum = 0; errors = 0;
start = 1'b0;
// reset
reset = 1; #27; reset = 0;
end
initial
begin
desc3 = handle3;
#0 op_type = 1'b1;
#0 P = 1'b0;
#0 rm = 2'b00;
#0 OvEn = 1'b0;
#0 UnEn = 1'b0;
end
always @(posedge clk)
begin
if (~reset)
begin
#0; {op1, yexpected, flags_expected} = testvectors[vectornum];
#50 start = 1'b1;
repeat (2)
@(posedge clk);
// deassert start after 2 cycles
start = 1'b0;
repeat (20)
@(posedge clk);
$fdisplay(desc3, "%h_%h_%b_%b | %h_%b", op1, AS_Result, Flags, Denorm, yexpected, (AS_Result==yexpected));
vectornum = vectornum + 1;
end // if (~reset)
if (vectornum == 363) begin
$display("%d vectors processed", vectornum);
$finish;
end
end // always @ (posedge clk)
endmodule // tb

View File

@ -0,0 +1,80 @@
`timescale 1ns/1ps
module tb ();
logic [63:0] op1;
logic [1:0] rm;
logic op_type;
logic P;
logic OvEn;
logic UnEn;
logic start;
logic reset;
logic [63:0] AS_Result;
logic [4:0] Flags;
logic Denorm;
logic done;
logic clk;
logic [63:0] yexpected;
logic [63:0] vectornum, errors; // bookkeeping variables
logic [135:0] testvectors[50000:0]; // array of testvectors
logic [7:0] flags_expected;
integer handle3;
integer desc3;
// instantiate device under test
fpdiv dut (done, AS_Result, Flags, Denorm, op1, 64'h0, rm, op_type, P, OvEn, UnEn,
start, reset, clk);
initial
begin
clk = 1'b1;
forever #333 clk = ~clk;
end
initial
begin
handle3 = $fopen("f64_sqrt_ru.out");
$readmemh("f64_sqrt_ru.tv", testvectors);
vectornum = 0; errors = 0;
start = 1'b0;
// reset
reset = 1; #27; reset = 0;
end
initial
begin
desc3 = handle3;
#0 op_type = 1'b1;
#0 P = 1'b0;
#0 rm = 2'b10;
#0 OvEn = 1'b0;
#0 UnEn = 1'b0;
end
always @(posedge clk)
begin
if (~reset)
begin
#0; {op1, yexpected, flags_expected} = testvectors[vectornum];
#50 start = 1'b1;
repeat (2)
@(posedge clk);
// deassert start after 2 cycles
start = 1'b0;
repeat (20)
@(posedge clk);
$fdisplay(desc3, "%h_%h_%b_%b | %h_%b", op1, AS_Result, Flags, Denorm, yexpected, (AS_Result==yexpected));
vectornum = vectornum + 1;
end // if (~reset)
if (vectornum == 363) begin
$display("%d vectors processed", vectornum);
$finish;
end
end // always @ (posedge clk)
endmodule // tb

View File

@ -0,0 +1,82 @@
`timescale 1ns/1ps
module tb ();
logic [63:0] op1;
logic [1:0] rm;
logic op_type;
logic P;
logic OvEn;
logic UnEn;
logic start;
logic reset;
logic [63:0] AS_Result;
logic [4:0] Flags;
logic Denorm;
logic done;
logic clk;
logic [63:0] yexpected;
logic [63:0] vectornum, errors; // bookkeeping variables
logic [135:0] testvectors[50000:0]; // array of testvectors
logic [7:0] flags_expected;
integer handle3;
integer desc3;
// instantiate device under test
fpdiv dut (done, AS_Result, Flags, Denorm, op1, 64'h0, rm, op_type, P, OvEn, UnEn,
start, reset, clk);
initial
begin
clk = 1'b1;
forever #333 clk = ~clk;
end
initial
begin
handle3 = $fopen("f64_sqrt_rz.out");
$readmemh("f64_sqrt_rz.tv", testvectors);
vectornum = 0; errors = 0;
start = 1'b0;
// reset
reset = 1; #27; reset = 0;
end
initial
begin
desc3 = handle3;
#0 op_type = 1'b1;
#0 P = 1'b0;
#0 rm = 2'b01;
#0 OvEn = 1'b0;
#0 UnEn = 1'b0;
end
always @(posedge clk)
begin
if (~reset)
begin
#0; {op1, yexpected, flags_expected} = testvectors[vectornum];
#50 start = 1'b1;
repeat (2)
@(posedge clk);
// deassert start after 2 cycles
start = 1'b0;
repeat (20)
@(posedge clk);
$fdisplay(desc3, "%h_%h_%b_%b | %h_%b", op1, AS_Result, Flags, Denorm, yexpected, (AS_Result==yexpected));
vectornum = vectornum + 1;
end // if (~reset)
if (vectornum == 363) begin
$display("%d vectors processed", vectornum);
$finish;
end
end // always @ (posedge clk)
endmodule // tb

View File

@ -0,0 +1,72 @@
module tb;
logic [52:0] d, n;
logic reset;
logic [63:0] q, qm, qp, rega_out, regb_out, regc_out;
logic [127:0] regr_out;
logic start;
logic error;
logic op_type;
logic done;
logic load_rega;
logic load_regb;
logic load_regc;
logic load_regr;
logic [1:0] sel_muxa;
logic [1:0] sel_muxb;
logic sel_muxr;
logic clk;
integer handle3;
integer desc3;
divconv dut (q, qm, qp, rega_out, regb_out, regc_out, regr_out,
d, n, sel_muxa, sel_muxb, sel_muxr, reset, clk,
load_rega, load_regb, load_regc, load_regr);
fsm control (done, load_rega, load_regb, load_regc, load_regr,
sel_muxa, sel_muxb, sel_muxr,
clk, reset, start, error, op_type);
initial
begin
clk = 1'b1;
forever #5 clk = ~clk;
end
initial
begin
handle3 = $fopen("divconvDP.out");
#700 $finish;
end
always
begin
desc3 = handle3;
#5 $fdisplay(desc3, "%b %b %b | %h %h | %h %h %h | %h %h %h %h", sel_muxa,
sel_muxb, sel_muxr, d, n, q, qm, qp, rega_out, regb_out, regc_out, regr_out);
end
initial
begin
#0 start = 1'b0;
#0 n = 53'h1C_0000_0000_0000; // 1.75
#0 d = 53'h1E_0000_0000_0000; // 1.875
#0 reset = 1'b1;
#20 reset = 1'b0;
#20 start = 1'b1;
#40 start = 1'b0;
end
endmodule // tb

View File

@ -0,0 +1,184 @@
`timescale 1ps/1ps
module tb;
logic [63:0] op1;
logic [63:0] op2;
logic [1:0] rm;
logic op_type;
logic P;
logic OvEn;
logic UnEn;
logic start;
logic reset;
logic clk;
logic [63:0] AS_Result;
logic [4:0] Flags;
logic Denorm;
logic done;
integer handle3;
integer desc3;
fpdivP dut (done, AS_Result, Flags, Denorm, op1, op2,
rm, op_type, P, OvEn, UnEn,
start, reset, clk);
initial
begin
clk = 1'b1;
forever #333 clk = ~clk;
end
initial
begin
handle3 = $fopen("fpdiv.out");
end
always
begin
desc3 = handle3;
#5 $fdisplay(desc3, "%h %h | %h %h %h",
op1, op2, AS_Result, Flags, Denorm);
end
initial
begin
#0 start = 1'b0;
#0 P = 1'b0;
#0 OvEn = 1'b0;
#0 UnEn = 1'b0;
// 00 round-to-nearest-even
// 01 round-toward-zero
// 10 round-toward-plus infinity
// 11 round-toward-minus infinity
#0 rm = 2'b00;
#0 op_type = 1'b1;
#0 op1 = 64'h3ffc_0000_0000_0000; // 1.75
#0 op2 = 64'h3ffe_0000_0000_0000; // 1.875
// P=1 divide
//#0 op1 = 64'h8683_F7FF_0000_0000;
//#0 op2 = 64'hC07F_3FFF_0000_0000;
//#0 op1 = 64'h4F95_1295_0000_0000;
//#0 op2 = 64'h4F95_1295_0000_0000;
//#0 op1 = 64'h4020_5fff_ffff_ffff;
//#0 op2 = 64'hbcaf_ffff_ffff_ffff;
//#0 op1 = 64'h3fed_c505_fada_95fd; // 0.930300703
//#0 op2 = 64'h3ffe_0000_0000_0000; // 12.9303733
//#0 op1 = 64'h3ffe_e219_652b_d3c3; // 1.9302
//#0 op2 = 64'h3ff7_346d_c5d6_3886; // 1.4503
//#0 op1 = 64'h404f_b1d4_9518_2a99; // 63.3893
//#0 op2 = 64'h4020_9b94_d940_7896; // 8.30387
//#0 op1 = 64'h3ff6_3d98_4781_6b47; // 1.390037803
//#0 op2 = 64'h3fd7_b540_56e5_c87a; // 0.370437703
//#0 op1 = 64'h3fed_c505_fada_95fd; // 0.930300703
//#0 op2 = 64'h4029_dc59_e3a1_24a8; // 12.9303733
//#0 op1 = 64'h41E0_0003_FFFB_FFFF;
//#0 op2 = 64'hBFDF_FFFF_FFEF_FFFF;
//#0 op1 = 64'h41E0_0003_FFFB_FFFF;
//#0 op2 = 64'h3FDF_FFFF_FFEF_FFFF;
//#0 op1 = 64'hB68F_FFF8_0000_00FF;
//#0 op2 = 64'h3F90_8000_0007_FFFF;
//#0 op1 = 64'h0000_0000_0000_0000;
//#0 op2 = 64'hA57F_319E_DE38_F755;
//#0 op1 = 64'hC1DF_FFFF_FFE0_0080;
//#0 op2 = 64'h3FA4_8EDF_3623_F076;
//#0 op1 = 64'hC030_00FF_FFFF_FFE0;
//#0 op2 = 64'h47EF_FDFF_FDFF_FFFF;
//#0 op1 = 64'h4030_00FF_FFFF_FFE0;
//#0 op2 = 64'h47EF_FDFF_FDFF_FFFF;
//#0 op1 = 64'h5555_5555_5555_5555; // 1.75
//#0 op2 = 64'haaaa_aaaa_aaaa_aaaa; // 1.875
//#0 op1 = 64'h3ffc_0000_0000_0000; // 1.75
//#0 op2 = 64'h0000_0000_0000_0000; // 0.00 (Div0 exception)
//#0 op1 = 64'h3ff7_10cb_0000_0000;
//#0 op2 = 64'h3fb9_a36e_0000_0000;
//#0 op1 = 64'h37e0_0000_0000_0001;
//#0 op2 = 64'h3be6_a09e_667f_3bce;
//#0 op1 = 64'h37e0_0000_0000_0001;
//#0 op1 = 64'h43d3_6fa3_cad3_f59e;
//#0 op1 = 64'h2470_0000_ffff_ffef;
//#0 op1 = 64'h7ff0_0000_0000_0000;
//#0 op1 = 64'h7fef_ffff_ffff_ffff;
//#0 op1 = 64'hffe0_0000_0000_0000;
//#0 op2 = 64'h7fe0_0000_0000_0001;
//#0 op1 = 64'h69ff_ff7f_0000_0000;
//#0 op2 = 64'h0;
//#0 op1 = 64'h3f7f_ffff_0000_0000;
//#0 op1 = 64'h4180_0000_0000_0000;
//#0 op1 = 64'h3fe0_0000_0000_0000; // 1.75 (SP)
//#0 op2 = 64'h3ff0_0000_0000_0000; // 1.875 (SP)
//#0 op1 = 64'h3ff7_10cb_0000_0000; // 1.75 (SP)
//#0 op2 = 64'h3fb9_a36e_0000_0000; // 1.875 (SP)
//#0 op1 = 64'h427d_8ea5_0000_0000; // 1.75 (SP)
//#0 op2 = 64'h4104_dca7_0000_0000; // 1.875 (SP)
//#0 op1 = 64'h3fb1_ecc2_0000_0000; // 1.75 (SP)
//#0 op2 = 64'h3ebd_aa03_0000_0000; // 1.875 (SP)
//#0 op1 = 64'h3f6e_2830_0000_0000;
//#0 op2 = 64'h414e_e2cf_0000_0000;
//#0 op1 = 64'h8683_f7ff_0000_0000;
//#0 op2 = 64'hc07f_3fff_0000_0000;
//#0 op1 = 64'h0100_0000_0000_0000;
//#0 op2 = 64'h3400_00ef_0000_0000;
//#0 op1 = 64'hbed5_6444_0000_0000;
//#0 op2 = 64'h3e7f_f400_0000_0000;
//#0 op1 = 64'h0100_087f_0000_0000;
//#0 op2 = 64'hfe80_4fff_0000_0000;
//#0 op1 = 64'hc513_492f_a359_69e3;
//#0 op2 = 64'hbfcf_fdff_ffff_ffef;
//#0 op1 = 64'h41E0_0003_FFFB_FFFF;
//#0 op2 = 64'hBFDF_FFFF_FFEF_FFFF;
//#0 op1 = 64'hf17ffffffff7fff0;
//#0 op2 = 64'h001ffffffffffffe;
//#0 op1 = 64'hC040_0000_0000_1000;
//#0 op2 = 64'h802f_ff7f_ffff_ffc0;
//#0 op1 = 64'h3800008000000002;
//#0 op2 = 64'h7ff0000000000000;
//#0 op1 = 64'h8020200007fffffe;
//#0 op2 = 64'hc59000000000083f;
//#0 op1 = 64'h0140008000fffffe;
//#0 op2 = 64'hd2e0001ffffffffb;
//#0 op1 = 64'h4013_95a7_515b_e3d9;
//#0 op2 = 64'h8010_0000_0004_0007;
//#0 op1 = 64'h0010_0000_0000_0000;
//#0 op2 = 64'h3fff_ffff_ffff_ffff;
//#0 op1 = 64'h0010_0000_0000_0000;
//#0 op2 = 64'h4000_0000_0000_0001;
//#0 op1 = 64'h4000000000000001;
//#0 op2 = 64'h403000004007fffe; // _3fbfffff7ff00207_00000_0 | 3fbfffff7ff00206_0
//#0 op1 = 64'hffe0_0000_0000_0000;
//#0 op2 = 64'hc0a0_0000_4008_0000;
//#0 op1 = 64'hffe0_0000_0000_0001;
//#0 op2 = 64'hbfd0_0000_0000_0000;
//#0 op1 = 64'h801f_ffff_ffff_ffff;
//#0 op2 = 64'h4000_0000_0000_0000;
#0 reset = 1'b1;
#1000 reset = 1'b0;
#3000 start = 1'b1;
#800 start = 1'b0;
end
endmodule // tb