mulFP1.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 mulFP1.vhd when simulating
30
-- the core, mulFP1. 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 mulFP1 IS
44
  PORT (
45
    aclk : IN STD_LOGIC;
46
    s_axis_a_tvalid : IN STD_LOGIC;
47
    s_axis_a_tdata : IN STD_LOGIC_VECTOR(31 DOWNTO 0);
48
    s_axis_b_tvalid : IN STD_LOGIC;
49
    s_axis_b_tdata : IN STD_LOGIC_VECTOR(31 DOWNTO 0);
50
    m_axis_result_tvalid : OUT STD_LOGIC;
51
    m_axis_result_tdata : OUT STD_LOGIC_VECTOR(31 DOWNTO 0)
52
  );
53
END mulFP1;
54
55
ARCHITECTURE mulFP1_a OF mulFP1 IS
56
-- synthesis translate_off
57
COMPONENT wrapped_mulFP1
58
  PORT (
59
    aclk : IN STD_LOGIC;
60
    s_axis_a_tvalid : IN STD_LOGIC;
61
    s_axis_a_tdata : IN STD_LOGIC_VECTOR(31 DOWNTO 0);
62
    s_axis_b_tvalid : IN STD_LOGIC;
63
    s_axis_b_tdata : IN STD_LOGIC_VECTOR(31 DOWNTO 0);
64
    m_axis_result_tvalid : OUT STD_LOGIC;
65
    m_axis_result_tdata : OUT STD_LOGIC_VECTOR(31 DOWNTO 0)
66
  );
67
END COMPONENT;
68
69
-- Configuration specification
70
  FOR ALL : wrapped_mulFP1 USE ENTITY XilinxCoreLib.floating_point_v6_1(behavioral)
71
    GENERIC MAP (
72
      C_A_FRACTION_WIDTH => 24,
73
      C_A_TDATA_WIDTH => 32,
74
      C_A_TUSER_WIDTH => 1,
75
      C_A_WIDTH => 32,
76
      C_B_FRACTION_WIDTH => 24,
77
      C_B_TDATA_WIDTH => 32,
78
      C_B_TUSER_WIDTH => 1,
79
      C_B_WIDTH => 32,
80
      C_COMPARE_OPERATION => 8,
81
      C_HAS_ABSOLUTE => 0,
82
      C_HAS_ACLKEN => 0,
83
      C_HAS_ADD => 0,
84
      C_HAS_ARESETN => 0,
85
      C_HAS_A_TLAST => 0,
86
      C_HAS_A_TUSER => 0,
87
      C_HAS_B => 1,
88
      C_HAS_B_TLAST => 0,
89
      C_HAS_B_TUSER => 0,
90
      C_HAS_COMPARE => 0,
91
      C_HAS_DIVIDE => 0,
92
      C_HAS_DIVIDE_BY_ZERO => 0,
93
      C_HAS_EXPONENTIAL => 0,
94
      C_HAS_FIX_TO_FLT => 0,
95
      C_HAS_FLT_TO_FIX => 0,
96
      C_HAS_FLT_TO_FLT => 0,
97
      C_HAS_INVALID_OP => 0,
98
      C_HAS_LOGARITHM => 0,
99
      C_HAS_MULTIPLY => 1,
100
      C_HAS_OPERATION => 0,
101
      C_HAS_OPERATION_TLAST => 0,
102
      C_HAS_OPERATION_TUSER => 0,
103
      C_HAS_OVERFLOW => 0,
104
      C_HAS_RECIP => 0,
105
      C_HAS_RECIP_SQRT => 0,
106
      C_HAS_RESULT_TLAST => 0,
107
      C_HAS_RESULT_TUSER => 0,
108
      C_HAS_SQRT => 0,
109
      C_HAS_SUBTRACT => 0,
110
      C_HAS_UNDERFLOW => 0,
111
      C_LATENCY => 1,
112
      C_MULT_USAGE => 2,
113
      C_OPERATION_TDATA_WIDTH => 8,
114
      C_OPERATION_TUSER_WIDTH => 1,
115
      C_OPTIMIZATION => 1,
116
      C_RATE => 1,
117
      C_RESULT_FRACTION_WIDTH => 24,
118
      C_RESULT_TDATA_WIDTH => 32,
119
      C_RESULT_TUSER_WIDTH => 1,
120
      C_RESULT_WIDTH => 32,
121
      C_THROTTLE_SCHEME => 3,
122
      C_TLAST_RESOLUTION => 0,
123
      C_XDEVICEFAMILY => "kintex7"
124
    );
125
-- synthesis translate_on
126
BEGIN
127
-- synthesis translate_off
128
U0 : wrapped_mulFP1
129
  PORT MAP (
130
    aclk => aclk,
131
    s_axis_a_tvalid => s_axis_a_tvalid,
132
    s_axis_a_tdata => s_axis_a_tdata,
133
    s_axis_b_tvalid => s_axis_b_tvalid,
134
    s_axis_b_tdata => s_axis_b_tdata,
135
    m_axis_result_tvalid => m_axis_result_tvalid,
136
    m_axis_result_tdata => m_axis_result_tdata
137
  );
138
-- synthesis translate_on
139
140
END mulFP1_a;