mulFP.vhd


1
--------------------------------------------------------------------------------
2
--    This file is owned and controlled by Xilinx and must be used solely     --
3
--    for design, simulation, implementation and creation of design files     --
4
--    limited to Xilinx devices or technologies. Use with non-Xilinx          --
5
--    devices or technologies is expressly prohibited and immediately         --
6
--    terminates your license.                                                --
7
--                                                                            --
8
--    XILINX IS PROVIDING THIS DESIGN, CODE, OR INFORMATION "AS IS" SOLELY    --
9
--    FOR USE IN DEVELOPING PROGRAMS AND SOLUTIONS FOR XILINX DEVICES.  BY    --
10
--    PROVIDING THIS DESIGN, CODE, OR INFORMATION AS ONE POSSIBLE             --
11
--    IMPLEMENTATION OF THIS FEATURE, APPLICATION OR STANDARD, XILINX IS      --
12
--    MAKING NO REPRESENTATION THAT THIS IMPLEMENTATION IS FREE FROM ANY      --
13
--    CLAIMS OF INFRINGEMENT, AND YOU ARE RESPONSIBLE FOR OBTAINING ANY       --
14
--    RIGHTS YOU MAY REQUIRE FOR YOUR IMPLEMENTATION.  XILINX EXPRESSLY       --
15
--    DISCLAIMS ANY WARRANTY WHATSOEVER WITH RESPECT TO THE ADEQUACY OF THE   --
16
--    IMPLEMENTATION, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OR          --
17
--    REPRESENTATIONS THAT THIS IMPLEMENTATION IS FREE FROM CLAIMS OF         --
18
--    INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A   --
19
--    PARTICULAR PURPOSE.                                                     --
20
--                                                                            --
21
--    Xilinx products are not intended for use in life support appliances,    --
22
--    devices, or systems.  Use in such applications are expressly            --
23
--    prohibited.                                                             --
24
--                                                                            --
25
--    (c) Copyright 1995-2024 Xilinx, Inc.                                    --
26
--    All rights reserved.                                                    --
27
--------------------------------------------------------------------------------
28
--------------------------------------------------------------------------------
29
-- You must compile the wrapper file mulFP.vhd when simulating
30
-- the core, mulFP. When compiling the wrapper file, be sure to
31
-- reference the XilinxCoreLib VHDL simulation library. For detailed
32
-- instructions, please refer to the "CORE Generator Help".
33
34
-- The synthesis directives "translate_off/translate_on" specified
35
-- below are supported by Xilinx, Mentor Graphics and Synplicity
36
-- synthesis tools. Ensure they are correct for your synthesis tool(s).
37
38
LIBRARY ieee;
39
USE ieee.std_logic_1164.ALL;
40
-- synthesis translate_off
41
LIBRARY XilinxCoreLib;
42
-- synthesis translate_on
43
ENTITY mulFP IS
44
  PORT (
45
    a : IN STD_LOGIC_VECTOR(31 DOWNTO 0);
46
    b : IN STD_LOGIC_VECTOR(31 DOWNTO 0);
47
    operation_nd : IN STD_LOGIC;
48
    clk : IN STD_LOGIC;
49
    ce : IN STD_LOGIC;
50
    result : OUT STD_LOGIC_VECTOR(31 DOWNTO 0);
51
    rdy : OUT STD_LOGIC
52
  );
53
END mulFP;
54
55
ARCHITECTURE mulFP_a OF mulFP IS
56
-- synthesis translate_off
57
COMPONENT wrapped_mulFP
58
  PORT (
59
    a : IN STD_LOGIC_VECTOR(31 DOWNTO 0);
60
    b : IN STD_LOGIC_VECTOR(31 DOWNTO 0);
61
    operation_nd : IN STD_LOGIC;
62
    clk : IN STD_LOGIC;
63
    ce : IN STD_LOGIC;
64
    result : OUT STD_LOGIC_VECTOR(31 DOWNTO 0);
65
    rdy : OUT STD_LOGIC
66
  );
67
END COMPONENT;
68
69
-- Configuration specification
70
  FOR ALL : wrapped_mulFP USE ENTITY XilinxCoreLib.floating_point_v5_0(behavioral)
71
    GENERIC MAP (
72
      c_a_fraction_width => 24,
73
      c_a_width => 32,
74
      c_b_fraction_width => 24,
75
      c_b_width => 32,
76
      c_compare_operation => 8,
77
      c_has_a_nd => 0,
78
      c_has_a_negate => 0,
79
      c_has_a_rfd => 0,
80
      c_has_aclr => 0,
81
      c_has_add => 0,
82
      c_has_b_nd => 0,
83
      c_has_b_negate => 0,
84
      c_has_b_rfd => 0,
85
      c_has_ce => 1,
86
      c_has_compare => 0,
87
      c_has_cts => 0,
88
      c_has_divide => 0,
89
      c_has_divide_by_zero => 0,
90
      c_has_exception => 0,
91
      c_has_fix_to_flt => 0,
92
      c_has_flt_to_fix => 0,
93
      c_has_flt_to_flt => 0,
94
      c_has_inexact => 0,
95
      c_has_invalid_op => 0,
96
      c_has_multiply => 1,
97
      c_has_operation_nd => 1,
98
      c_has_operation_rfd => 0,
99
      c_has_overflow => 0,
100
      c_has_rdy => 1,
101
      c_has_sclr => 0,
102
      c_has_sqrt => 0,
103
      c_has_status => 0,
104
      c_has_subtract => 0,
105
      c_has_underflow => 0,
106
      c_latency => 8,
107
      c_mult_usage => 0,
108
      c_optimization => 1,
109
      c_rate => 1,
110
      c_result_fraction_width => 24,
111
      c_result_width => 32,
112
      c_speed => 2,
113
      c_status_early => 0,
114
      c_xdevicefamily => "aartix7"
115
    );
116
-- synthesis translate_on
117
BEGIN
118
-- synthesis translate_off
119
U0 : wrapped_mulFP
120
  PORT MAP (
121
    a => a,
122
    b => b,
123
    operation_nd => operation_nd,
124
    clk => clk,
125
    ce => ce,
126
    result => result,
127
    rdy => rdy
128
  );
129
-- synthesis translate_on
130
131
END mulFP_a;