Dw Lp Fp Multifunc
Dw Lp Fp Multifunc
1 1
---, -------, x, sin ( πx ) or sin(x), cos ( πx ) or cos(x), log2 ( x ), and 2 x
x x
You must use VCS to simulate the DW_lp_fp_multifunc component. Non-VCS simulators are
Note not supported.
Description
DW_lp_fp_multifunc is a floating-point multi-function unit that implements any combination of seven
functions: reciprocal, square root, reciprocal square root, sine, cosine, base-2 logarithm and base-2
exponential. The particular set of functions to be implemented is selected with the func_select parameter as a
one-hot value. At any given time the unit computes one function in the set defined by input FUNC.
The input RND takes effect only when the reciprocal function is invoked with the input FUNC = 1 and the
parameter faithful_round = 0. The parameter pi_multiple is valid only when sine or cosine function is selected.
Both input A and output Z have the floating-point format, and the output STATUS is an 8-bit optional status
field, which are described in the Datapath Floating-Point Overview.
ieee_compliance 0 or 1 When 1, the generated architecture includes the use of denormals and NaNs
Default: 0
func_select 1 to 127 Determines the functions to be implemented among the seven functions (one bit for
Default: 127 each function)
pi_multiple 0 or 1 Input value (Angle) is multiplied by π; this parameter is only valid when sin or cos
Default: 1 functions are selected
■ 0: z = sin(A) or cos(A)
■ 1: z = sin(πA) or cos(πA)
Model Function
a. To use this simulation model, the '+v2k' options needs to be used on the VCS command line.
Table 1-5 func_select Parameter Implementation (design) and FUNC Function Selection (use)
(27 - 215) reserved for future support reserved for future support
For example, if only a reciprocal function is required, func_select needs to be 1 (16‘h0001). If reciprocal,
reciprocal square root and base-2 logarithm functions are needed, func_select should be 37 (16‘h0025). If all
seven functions are implemented, func_select is 127 (16‘h007f).
During operation, the input FUNC specifies the single function that is to be computed. FUNC is a 16-bit input
port, and it receives a one-hot encoded value. The valid one-hot codes for FUNC are defined in Table 1-5.
sig_width All values of All values of All values of sig_width <= 16 sig_width <= 16 All values of All values of
Input Range sig_width sig_width sig_width sig_width sig_width
Denormal Support
DW_lp_fp_multifunc provides the hardware for denormal numbers and NaNs of IEEE 754 standard. If the
parameter ieee_compliance is turned off, denormal numbers are considered as zeros, and NaNs are
considered as infinity. Otherwise, denormal numbers and NaNs become effective and additional hardware
to manipulate them is integrated.
For more information about floating point, including status flag bits, and integer and floating point formats,
refer to the Datapath Floating-Point Overview.
If the above module is used to calculate the sine function (FUNC = 16'h0008),
Note DW_lp_fp_multifunc cannot generate correct function values because it does not have the
hardwired logic for the sine function with the parameter func_select = 103.
Related Topics
■ Math – Arithmetic Overview
■ DesignWare Building Blocks User Guide
entity DW_lp_fp_multifunc_inst is
generic (
inst_sig_width : INTEGER := 23;
inst_exp_width : INTEGER := 8;
inst_ieee_compliance : INTEGER := 0;
inst_func_select : INTEGER := 127;
inst_faithful_round : INTEGER := 1;
inst_pi_multiple : INTEGER := 1
);
port (
inst_a : in std_logic_vector(inst_sig_width+inst_exp_width downto 0);
inst_func : in std_logic_vector(15 downto 0);
inst_rnd : in std_logic_vector(2 downto 0);
z_inst : out std_logic_vector(inst_sig_width+inst_exp_width downto 0);
status_inst : out std_logic_vector(7 downto 0)
);
end DW_lp_fp_multifunc_inst;
begin
-- Instance of DW_lp_fp_multifunc
U1 : DW_lp_fp_multifunc
generic map (
sig_width => inst_sig_width,
exp_width => inst_exp_width,
ieee_compliance => inst_ieee_compliance,
func_select => inst_func_select,
faithful_round => inst_faithful_round,
pi_multiple => inst_pi_multiple
)
port map (
a => inst_a,
func => inst_func,
rnd => inst_rnd,
z => z_inst,
status => status_inst
);
end inst;
// Instance of DW_lp_fp_multifunc
DW_lp_fp_multifunc #(inst_sig_width, inst_exp_width, inst_ieee_compliance,
inst_func_select, inst_faithful_round, inst_pi_multiple) U1 (
.a(inst_a),
.func(inst_func),
.rnd(inst_rnd),
.z(z_inst),
.status(status_inst) );
endmodule
Revision History
For notes about this release, see the DesignWare Building Block IP Release Notes.
For lists of both known and fixed issues for this component, refer to the STAR report.
For a version of this datasheet with visible change bars, click here.
March 2019 P-2019.03 ■ Clarified some information about minPower in Table 1-3 on page 3
July 2018 O-2018.06-SP1 ■ For STAR 9001366625, added a note about simulator support on page 1
and in Table 1-4 on page 3
■ Added this Revision History table and the document links on this page
Synopsys, Inc.
www.synopsys.com