CMX
CMX firmware code in-line documentation
 All Classes Namespaces Files Functions Variables
CMX_version.vhd
Go to the documentation of this file.
1 
8 ----------------------------------------------------------------------------------
9 library IEEE;
10 use IEEE.STD_LOGIC_1164.ALL;
11 
12 library work;
13 use work.CMXpackage.all;
16 
18 
19 entity CMX_version is
20  port (
21  clk40 : in std_logic; --system clock
22  ncs : in std_logic; --ports forwarded to the vme register instances
23  rd_nwr : in std_logic;
24  ds : in std_logic;
25  addr_vme : in std_logic_vector (15 downto 0);
26  data_vme_out : out std_logic_vector (15 downto 0);
27  bus_drive : out std_logic
28  );
29 end CMX_version;
30 
31 architecture Behavioral of CMX_version is
32 
33 
34 
35  component vme_local_switch is
36  port (
37  data_vme_up : out std_logic_vector (15 downto 0);
38  data_vme_from_below : in arr_16;
39  bus_drive_up : out std_logic;
40  bus_drive_from_below : in std_logic_vector);
41  end component vme_local_switch;
42 
44  generic (
45  ia_vme : integer;
46  width : integer);
47  port (
48  ncs : in std_logic;
49  rd_nwr : in std_logic;
50  ds : in std_logic;
51  addr_vme : in std_logic_vector (15 downto 0);
52  data_vme : out std_logic_vector (15 downto 0);
53  bus_drive : out std_logic;
54  data_to_vme : in std_logic_vector (width-1 downto 0));
55  end component vme_outreg_notri_async;
56 
57 
58  signal data_to_vme : arr_16( numactchan*(numbitsinchan+1) - 1 downto 0);
59 
60  signal data_vme_out_local : arr_16(3 downto 0);
61  signal bus_drive_local : std_logic_vector(3 downto 0);
62 
63  signal data_to_vme_REG_RO_VERSION_COMMON : std_logic_vector(15 downto 0);
64  signal data_to_vme_REG_RO_VERSION_FLAVOR_COMMON : std_logic_vector(15 downto 0);
65  signal data_to_vme_REG_RO_VERSION_FLAVOR_LOCAL : std_logic_vector(15 downto 0);
66  signal data_to_vme_REG_RO_CMX_FLAVOR : std_logic_vector(15 downto 0);
67 
68 begin
69 
70 
71  vme_local_switch_inst: entity work.vme_local_switch
72  port map (
77 
78 
79  vme_outreg_notri_async_REG_RO_VERSION_COMMON: entity work.vme_outreg_notri_async
80  generic map (
81  ia_vme => ADDR_REG_RO_VERSION_COMMON ,
82  width => 16)
83  port map (
84  ncs => ncs,
85  rd_nwr => rd_nwr,
86  ds => ds,
87  addr_vme => addr_vme,
91 
92  data_to_vme_REG_RO_VERSION_COMMON<=version_common;
93 
94 
95  vme_outreg_notri_async_REG_RO_VERSION_FLAVOR_COMMON: entity work.vme_outreg_notri_async
96  generic map (
97  ia_vme => ADDR_REG_RO_VERSION_FLAVOR_COMMON ,
98  width => 16)
99  port map (
100  ncs => ncs,
101  rd_nwr => rd_nwr,
102  ds => ds,
103  addr_vme => addr_vme,
105  bus_drive => bus_drive_local (1),
107 
108  data_to_vme_REG_RO_VERSION_FLAVOR_COMMON<=version_flavor_common;
109 
110 
111 
112  vme_outreg_notri_async_REG_RO_VERSION_FLAVOR_LOCAL: entity work.vme_outreg_notri_async
113  generic map (
114  ia_vme => ADDR_REG_RO_VERSION_FLAVOR_LOCAL ,
115  width => 16)
116  port map (
117  ncs => ncs,
118  rd_nwr => rd_nwr,
119  ds => ds,
120  addr_vme => addr_vme,
122  bus_drive => bus_drive_local (2),
124 
125  data_to_vme_REG_RO_VERSION_FLAVOR_LOCAL<=version_flavor_local;
126 
127 
128  vme_outreg_notri_async_REG_RO_CMX_FLAVOR: entity work.vme_outreg_notri_async
129  generic map (
130  ia_vme => ADDR_REG_RO_CMX_FLAVOR,
131  width => 16)
132  port map (
133  ncs => ncs,
134  rd_nwr => rd_nwr,
135  ds => ds,
136  addr_vme => addr_vme,
138  bus_drive => bus_drive_local (3),
140 
141  data_to_vme_REG_RO_CMX_FLAVOR<=this_cmx_flavor;
142 
143 
144 
145 end Behavioral;
146 
arr_16 (3 downto 0) data_vme_out_local
Definition: CMX_version.vhd:60
std_logic_vector (15 downto 0) data_to_vme_REG_RO_VERSION_FLAVOR_LOCAL
Definition: CMX_version.vhd:65
out data_vme_outstd_logic_vector (15 downto 0)
Definition: CMX_version.vhd:26
out data_vmestd_logic_vector (15 downto 0)
in data_vme_from_belowarr_16
--! inputs from local registers and from
in ncsstd_logic
Definition: CMX_version.vhd:22
in addr_vmestd_logic_vector (15 downto 0)
Definition: CMX_version.vhd:25
arr_16 (numactchan * (numbitsinchan + 1) - 1 downto 0) data_to_vme)
Definition: CMX_version.vhd:58
out bus_drivestd_logic
Definition: CMX_version.vhd:27
out data_vme_upstd_logic_vector (15 downto 0)
--! connect this to
in addr_vmestd_logic_vector (15 downto 0)
out bus_drive_upstd_logic
or of all bus drive requests from below
std_logic_vector (3 downto 0) bus_drive_local
Definition: CMX_version.vhd:61
std_logic_vector (15 downto 0) data_to_vme_REG_RO_VERSION_FLAVOR_COMMON
Definition: CMX_version.vhd:64
std_logic_vector (15 downto 0) data_to_vme_REG_RO_VERSION_COMMON
Definition: CMX_version.vhd:63
in rd_nwrstd_logic
Definition: CMX_version.vhd:23
test registers
in dsstd_logic
Definition: CMX_version.vhd:24
in data_to_vmestd_logic_vector (width - 1 downto 0)
in clk40std_logic
Definition: CMX_version.vhd:21
in bus_drive_from_belowstd_logic_vector
std_logic_vector (15 downto 0) data_to_vme_REG_RO_CMX_FLAVOR
Definition: CMX_version.vhd:66