altfp_mult (Floating Point Multiplier) Megafunction
Parameterized floating point multiplier megafunction. Altera® recommends that you use the altfp_mult function instead of any other type of floating point multiplier function.
Altera also recommends instantiating this function as described in Using the MegaWizard® Plug-In Manager.
This topic contains the following information:
AHDL Function Prototype (port name and order also apply to Verilog HDL):
FUNCTION altfp_mult (clock, clk_en, aclr, dataa[WIDTH_EXP+WIDTH_MAN..0], 
      datab[WIDTH_EXP+WIDTH_MAN..0] )
   WITH (WIDTH_EXP, WIDTH_MAN, DEDICATED_MULTIPLIER_CIRCUITRY )
   RETURNS (result[WIDTH_EXP+WIDTH_MAN..0], overflow, underflow, zero, denormal,
      indefinite, nan );
VHDL Component Declaration:
COMPONENT altfp_mult
   GENERIC 
      (WIDTH_EXP                       : INTEGER := 8;
      WIDTH_MAN                        : INTEGER := 23;
      DEDICATED_MULTIPLIER_CIRCUITRY   : STRING  := "AUTO";
      LPM_HINT                         : STRING  := "UNUSED";
      LPM_TYPE                         : STRING  := "ALTFP_MULT");
    PORT (clock                           : IN STD_LOGIC;
         clk_en                           : IN STD_LOGIC := '1';
         aclr                             : IN STD_LOGIC := '0';
         dataa, datab                     : IN STD_LOGIC_VECTOR (WIDTH_EXP + WIDTH_MAN DOWNTO 0);
         result                           : OUT STD_LOGIC_VECTOR (WIDTH_EXP + WIDTH_MAN DOWNTO 0);
         overflow, underflow, zero,
            denormal, indefinite, nan     : OUT STD_LOGIC;);
END COMPONENT;
 
VHDL LIBRARY-USE Declaration
LIBRARY altera_mf;
USE altera_mf.altera_mf_components.all;
Port Descriptions:
INPUT PORTS
  
    | Port Name | 
    Required | 
    Description | 
    Comments | 
  
   
    clock | 
    Yes | 
    Clock input to the multiplier. | 
      | 
  
   
    clk_en | 
    No | 
    Clock enable for the multiplier. | 
      | 
  
   
    aclr | 
    No | 
    Asynchronous clear for the multiplier. | 
      | 
  
   
    dataa | 
    Yes | 
    Data input to the multiplier. | 
    Input port [WIDTH_EXP + WIDTH_MAN DOWNTO 0] wide. | 
  
   
    datab | 
    Yes | 
    Data input to the multiplier. | 
    Input port [WIDTH_EXP + WIDTH_MAN DOWNTO 0] wide. | 
  
OUTPUT PORTS
  
    | Port Name | 
    Required | 
    Description | 
    Comments | 
  
  
   
    result | 
    Yes | 
    Multiplier output port. | 
    Output port [WIDTH_EXP + WIDTH_MAN DOWNTO 0] wide. | 
  
  
   
    overflow | 
    No | 
    Overflow port for the multiplier. | 
      | 
  
  
   
    underflow | 
    No | 
    Underflow port for the multiplier. | 
      | 
  
  
   
    zero | 
    No | 
    Zero port for the multiplier. | 
      | 
  
  
   
    denormal | 
    No | 
    Denormal port for the multiplier. | 
      | 
  
  
   
    indefinite | 
    No | 
    Indefinite port for the multiplier. | 
      | 
  
  
   
    nan | 
    No | 
    Nan port for the multiplier. | 
      | 
  
  
  
Parameter Descriptions:
  
    | Parameter | 
    Type | 
    Required | 
    Comments | 
  
  
   
    WIDTH_EXP | 
    Integer | 
    No | 
    Specifies the value of the exponent. If omitted, the default is "8". The Bias of the exponent is always set to 2 * WIDTH_EXP - 1 (i.e. -127 for single precision floating point format and -1023 for double precision floating point format). WIDTH_EXP must be 8 for single precision floating point format or a minimum of 11 for double precision and single extended precision floating point format. WIDTH_EXP must less than WIDTH_MAN. The sum of WIDTH_EXP and WIDTH_MAN must be less than 64. | 
  
  
   
    WIDTH_MAN | 
    Integer | 
    No | 
    Specifies the value of the mantissa. If omitted, the default is "23". When WIDTH_EXP is 8 and the floating point format is single precision, the WIDTH_MAN value  must be 23. Otherwise, the value of WIDTH_MAN must be a minimum of 31. The WIDTH_MAN value must always be greater than the WIDTH_EXP value. The sum of WIDTH_EXP and WIDTH_MAN must be less than 64. | 
  
  
   
    DEDICATED_MULTIPLIER_CIRCUITRY | 
    String | 
    No | 
    Specifies whether to use dedicated multiplier circuitry. Values are "AUTO", "YES", or "NO". If omitted, the default is AUTO. If a device does not have dedicated multiplier circuitry, the DEDICATED_MULTIPLIER_CIRCUITRY parameter has no effect and defaults to NO. | 
  
  
   
    LPM_HINT | 
    String | 
    No | 
    Allows you to assign Altera-specific parameters in VHDL Design Files (.vhd). The default is "UNUSED". | 
  
  
   
    LPM_TYPE | 
    String | 
    No | 
    Identifies the library of parameterized modules (LPM) entity name in VHDL Design Files. | 
  
  
Truth Table/Functionality:
   
    | Inputs | 
    Outputs | 
  
  
   
    dataa[] | 
    datab[] | 
    result[] | 
    overflow | 
    underflow | 
    zero | 
    denormal | 
    indefinite | 
    nan | 
  
  
   
    | Normal | 
    Normal | 
    Normal | 
    0 | 
    0 | 
    0 | 
    0 | 
    0 | 
    0 | 
  
  
   
    | Normal | 
    Normal | 
    Denormal | 
    0 | 
    1 | 
    0 | 
    1 | 
    0 | 
    0 | 
  
  
   
    | Normal | 
    Normal | 
    Infinity | 
    1 | 
    0 | 
    0 | 
    0 | 
    0 | 
    0 | 
  
  
   
    | Normal | 
    Normal | 
    Zero | 
    0 | 
    1 | 
    1 | 
    0 | 
    0 | 
    0 | 
  
  
   
    | Normal | 
    Denormal | 
    don't care | 
    0 | 
    0 | 
    0 | 
    0 | 
    1 | 
    0 | 
  
  
   
    | Denormal | 
    Normal | 
    don't care | 
    0 | 
    0 | 
    0 | 
    0 | 
    1 | 
    0 | 
  
  
   
    | Denormal | 
    Denormal | 
    don't care | 
    0 | 
    0 | 
    0 | 
    0 | 
    1 | 
    0 | 
  
  
   
    | Zero | 
    Normal | 
    Zero | 
    0 | 
    0 | 
    1 | 
    0 | 
    0 | 
    0 | 
  
  
   
    | Zero | 
    Denormal | 
    Zero | 
    0 | 
    0 | 
    1 | 
    0 | 
    0 | 
    0 | 
  
  
   
    | Zero | 
    Zero | 
    Zero | 
    0 | 
    0 | 
    1 | 
    0 | 
    0 | 
    0 | 
  
  
   
    | Normal | 
    Zero | 
    Zero | 
    0 | 
    0 | 
    1 | 
    0 | 
    0 | 
    0 | 
  
  
   
    | Denormal | 
    Zero | 
    Zero | 
    0 | 
    0 | 
    1 | 
    0 | 
    0 | 
    0 | 
  
  
   
    | Infinity | 
    Normal | 
    Infinity | 
    1 | 
    0 | 
    0 | 
    0 | 
    0 | 
    0 | 
  
  
   
    | Infinity | 
    Denormal | 
    Infinity | 
    1 | 
    0 | 
    0 | 
    0 | 
    0 | 
    0 | 
  
  
   
    | Infinity | 
    Infinity | 
    Infinity | 
    1 | 
    0 | 
    0 | 
    0 | 
    0 | 
    0 | 
  
  
   
    | Infinity | 
    Zero | 
    NaN | 
    0 | 
    0 | 
    0 | 
    0 | 
    0 | 
    1 | 
  
  
   
    | Normal | 
    Infinity | 
    Infinity | 
    1 | 
    0 | 
    0 | 
    0 | 
    0 | 
    0 | 
  
  
   
    | Denormal | 
    Infinity | 
    Infinity | 
    1 | 
    0 | 
    0 | 
    0 | 
    0 | 
    0 | 
  
  
   
    | Zero | 
    Infinity | 
    NaN | 
    0 | 
    0 | 
    0 | 
    0 | 
    0 | 
    0 | 
  
  
   
    | NaN | 
    Normal | 
    NaN | 
    0 | 
    0 | 
    0 | 
    0 | 
    0 | 
    1 | 
  
  
   
    | NaN | 
    Denormal | 
    NaN | 
    0 | 
    0 | 
    0 | 
    0 | 
    0 | 
    1 | 
  
  
   
    | NaN | 
    Zero | 
    NaN | 
    0 | 
    0 | 
    0 | 
    0 | 
    0 | 
    1 | 
  
  
   
    | NaN | 
    Infinity | 
    NaN | 
    0 | 
    0 | 
    0 | 
    0 | 
    0 | 
    1 | 
  
  
   
    | NaN | 
    Nan | 
    NaN | 
    0 | 
    0 | 
    0 | 
    0 | 
    0 | 
    1 | 
  
  
   
    | Normal | 
    NaN | 
    NaN | 
    0 | 
    0 | 
    0 | 
    0 | 
    0 | 
    1 | 
  
  
   
    | Denormal | 
    NaN | 
    NaN | 
    0 | 
    0 | 
    0 | 
    0 | 
    0 | 
    1 | 
  
  
   
    | Zero | 
    NaN | 
    NaN | 
    0 | 
    0 | 
    0 | 
    0 | 
    0 | 
    1 | 
  
  
   
    | Infinity | 
    NaN | 
    NaN | 
    0 | 
    0 | 
    0 | 
    0 | 
    0 | 
    1 | 
  
  
  
Resource Usage:
   
    | Design | 
    Design Results | 
  
  
   
     
      
         
          | Device Family | 
		Precision Type | 
		Dedicated Multiplier Circuitry | 
	    
         
          Stratix 
              Note (1) | 
		Single | 
		Yes | 
	    
         
          |   | 
		Single | 
		No | 
	    
	   
		|   | 
		Double | 
		Yes | 
	    
	   
		|   | 
		Double | 
		No | 
	    
	   
		APEX 20K 
            Note (2) | 
		Single | 
		Not Applicable | 
	    
	   
		|   | 
		Double | 
		Not Applicable | 
	    
       
     | 
	
     
      
         
          | fMAX | 
		Logic Cells | 
		DSP Blocks 9-Bit Elements | 
	    
         
          97.59 MHz 
                            | 
		627 | 
		8 | 
	    
         
          | 87.03 MHz | 
		1614 | 
		0 | 
	    
	   
		| 70.20 MHz | 
		1450 | 
		26 | 
	    
	   
		| 62.51 MHz | 
		5613 | 
		0 | 
	    
	   
		57.37 MHz 
                          | 
		1659 | 
		0 | 
	    
	   
		| 35.94  MHz | 
		5763 | 
		0 | 
	    
       
     | 
  
Floating Point Format:
   
    | Location Label | 
    Description | 
    Bits Position | 
  
  
   
    | Sign | 
    Sign bits of a floating point number. | 
    WIDTH_EXP + WIDTH_MAN | 
  
  
   
    | Exponent | 
    Exponent bits of a floating point number. | 
    (WIDTH_EXP + WIDTH_MAN - 1) DOWNTO WIDTH_MAN | 
  
  
   
    | Mantissa | 
    Mantissa bits of a floating bit number. | 
    (WIDTH_MAN - 1) DOWNTO 0 | 
  
Example:
   
    | Location | 
    Single Precision | 
    Double Precision | 
    Single Extended Precision | 
  
  
   
    WIDTH_EXP = 8 
                    WIDTH_MAN = 23 | 
    WIDTH_EXP = 11 
                    WIDTH_MAN = 52 | 
    WIDTH_EXP = 11 
                    WIDTH_MAN = 31 | 
    WIDTH_EXP = 20 
                    WIDTH_MAN = 38 | 
  
  
   
    | Sign | 
    dataa[31] | 
    dataa[63] | 
    dataa[42] | 
    dataa[58] | 
  
  
   
    datab[31] | 
    datab[63] | 
    datab[42] | 
    dataa[58] | 
  
  
    result[31] | 
    result[63] | 
    result[42] | 
    result[58] | 
  
  
    | Exponent | 
    dataa[30..23] | 
    dataa[62..52] | 
    dataa[41..31] | 
    dataa[57..38] | 
  
  
    datab[30..23] | 
    datab[62..52] | 
    datab[41..31] | 
    datab[57..38] | 
  
  
    result[30..23] | 
    result[62..52] | 
    result[41..31] | 
    result[57..38] | 
  
  
    | Mantissa | 
    dataa[22..0] | 
    dataa[51..0] | 
    dataa[30..0] | 
    dataa[37..0] | 
  
  
    datab[22..0] | 
    datab[51..0] | 
    datab[30..0] | 
    datab[37..0] | 
  
  
    result[22..0] | 
    result[51..0] | 
    result[30..0] | 
    result[37..0] | 
  
  
      | 
    This topic prints best in Landscape orientation.
	 | 
  
 
Back to Top
  |  Created by chm2web html help conversion utility.  |