# Custom Wrapper
The CustomWrapper entity defines the interface that custom designs need to implement, as well as a simple abstraction from the instrument slot.
entity CustomWrapper is
port (
Clk : in std_logic;
Reset : in std_logic;
-- Input and Output use is platform-specific. These ports exist on all
-- platforms but may not be externally connected.
InputA : in signed(15 downto 0);
InputB : in signed(15 downto 0);
InputC : in signed(15 downto 0);
InputD : in signed(15 downto 0);
OutputA : out signed(15 downto 0);
OutputB : out signed(15 downto 0);
OutputC : out signed(15 downto 0);
OutputD : out signed(15 downto 0);
Control0 : in std_logic_vector(31 downto 0);
Control1 : in std_logic_vector(31 downto 0);
Control2 : in std_logic_vector(31 downto 0);
Control3 : in std_logic_vector(31 downto 0);
Control4 : in std_logic_vector(31 downto 0);
Control5 : in std_logic_vector(31 downto 0);
Control6 : in std_logic_vector(31 downto 0);
Control7 : in std_logic_vector(31 downto 0);
Control8 : in std_logic_vector(31 downto 0);
Control9 : in std_logic_vector(31 downto 0)
);
end entity;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Implementing the CustomWrapper interface simply requires defining an architecture.
architecture Behavioural of CustomWrapper is
begin
-- Add custom code here
end architecture;
1
2
3
4
2
3
4
WARNING
Only one architecture should implement CustomWrapper per project. If multiple architectures exist, the one that is synthesized is undefined.
# Wrapper Ports
The details of input, output and clock use is platform specific. For details, see Input and Output.
# Control Registers
These provide control of custom designs at runtime. See Control Registers.