|
| 1 | + |
| 2 | +-- Description: |
| 3 | +-- Instance for ML score calculation. |
| 4 | + |
| 5 | +-- Version history: |
| 6 | +-- HB 2024-04-19: first design. |
| 7 | + |
| 8 | +library ieee; |
| 9 | +use ieee.std_logic_1164.all; |
| 10 | +use ieee.numeric_std.all; |
| 11 | + |
| 12 | +use work.gtl_pkg.all; |
| 13 | + |
| 14 | +entity ml_calculation_instances is |
| 15 | + generic ( |
| 16 | + obj: natural := AXO_SEL; |
| 17 | + model: natural := AXO_MODEL_V3; |
| 18 | + score_width: natural := AXO_SCORE_WIDTH |
| 19 | + ); |
| 20 | + port( |
| 21 | + lhc_clk: in std_logic; |
| 22 | + mu: in muon_objects_array; |
| 23 | + eg: in calo_objects_array; |
| 24 | + jet: in calo_objects_array; |
| 25 | + tau: in calo_objects_array; |
| 26 | + ett: in std_logic_vector(MAX_ESUMS_BITS-1 downto 0); |
| 27 | + htt: in std_logic_vector(MAX_ESUMS_BITS-1 downto 0); |
| 28 | + etm: in std_logic_vector(MAX_ESUMS_BITS-1 downto 0); |
| 29 | + htm: in std_logic_vector(MAX_ESUMS_BITS-1 downto 0); |
| 30 | + etmhf: in std_logic_vector(MAX_ESUMS_BITS-1 downto 0); |
| 31 | + htmhf: in std_logic_vector(MAX_ESUMS_BITS-1 downto 0); |
| 32 | + ml_score_o: out std_logic_vector(score_width-1 downto 0) |
| 33 | + ); |
| 34 | +end ml_calculation_instances; |
| 35 | + |
| 36 | +architecture rtl of ml_calculation_instances is |
| 37 | + |
| 38 | + signal ett_i, htt_i, etm_i, htm_i, etmhf_i, htmhf_i: std_logic_vector(31 downto 0) := X"00000000"; |
| 39 | + signal ml_score: std_logic_vector(score_width-1 downto 0); |
| 40 | + signal ap_rst: std_logic := '0'; |
| 41 | + signal ap_start: std_logic := '1'; |
| 42 | + |
| 43 | +begin |
| 44 | + |
| 45 | + ett_i(MAX_ESUMS_BITS-1 downto 0) <= ett; |
| 46 | + htt_i(MAX_ESUMS_BITS-1 downto 0) <= htt; |
| 47 | + etm_i(MAX_ESUMS_BITS-1 downto 0) <= etm; |
| 48 | + htm_i(MAX_ESUMS_BITS-1 downto 0) <= htm; |
| 49 | + etmhf_i(MAX_ESUMS_BITS-1 downto 0) <= etmhf; |
| 50 | + htmhf_i(MAX_ESUMS_BITS-1 downto 0) <= htmhf; |
| 51 | + |
| 52 | + axo_i: if obj = AXO_SEL generate |
| 53 | + v1_i: if model = AXO_MODEL_V1 generate |
| 54 | + axol1tl_v1_i: entity work.axol1tl_v1 |
| 55 | + port map( |
| 56 | + lhc_clk, ap_rst, ap_start, |
| 57 | + open, open, open, |
| 58 | + mu(0),mu(1),mu(2),mu(3), |
| 59 | + mu(4),mu(5),mu(6),mu(7), |
| 60 | + jet(0),jet(1),jet(2),jet(3), |
| 61 | + jet(4),jet(5),jet(6),jet(7), |
| 62 | + jet(8),jet(9),jet(10),jet(11), |
| 63 | + eg(0),eg(1),eg(2),eg(3), |
| 64 | + eg(4),eg(5),eg(6),eg(7), |
| 65 | + eg(8),eg(9),eg(10),eg(11), |
| 66 | + tau(0),tau(1),tau(2),tau(3), |
| 67 | + tau(4),tau(5),tau(6),tau(7), |
| 68 | + tau(8),tau(9),tau(10),tau(11), |
| 69 | + ett_i,htt_i,etm_i,htm_i,etmhf_i,htmhf_i, |
| 70 | + ml_score(score_width-1 downto 0), |
| 71 | + open |
| 72 | + ); |
| 73 | + end generate v1_i; |
| 74 | + v3_i: if model = AXO_MODEL_V3 generate |
| 75 | + axol1tl_v3_i: entity work.axol1tl_v3 |
| 76 | + port map( |
| 77 | + lhc_clk, ap_rst, ap_start, |
| 78 | + open, open, open, |
| 79 | + mu(0),mu(1),mu(2),mu(3), |
| 80 | + mu(4),mu(5),mu(6),mu(7), |
| 81 | + jet(0),jet(1),jet(2),jet(3), |
| 82 | + jet(4),jet(5),jet(6),jet(7), |
| 83 | + jet(8),jet(9),jet(10),jet(11), |
| 84 | + eg(0),eg(1),eg(2),eg(3), |
| 85 | + eg(4),eg(5),eg(6),eg(7), |
| 86 | + eg(8),eg(9),eg(10),eg(11), |
| 87 | + tau(0),tau(1),tau(2),tau(3), |
| 88 | + tau(4),tau(5),tau(6),tau(7), |
| 89 | + tau(8),tau(9),tau(10),tau(11), |
| 90 | + ett_i,htt_i,etm_i,htm_i,etmhf_i,htmhf_i, |
| 91 | + ml_score(score_width-1 downto 0), |
| 92 | + open |
| 93 | + ); |
| 94 | + end generate v3_i; |
| 95 | + end generate axo_i; |
| 96 | + topo_i: if obj = TOPO_SEL generate |
| 97 | + base_v1_i: if model = TOPO_MODEL_BASE_V1 generate |
| 98 | + base_v1_inst_i: entity work.topo_base_v1 |
| 99 | + port map( |
| 100 | + lhc_clk, ap_rst, ap_start, |
| 101 | + open, open, open, |
| 102 | + mu(0),mu(1),mu(2),mu(3), |
| 103 | + mu(4),mu(5),mu(6),mu(7), |
| 104 | + jet(0),jet(1),jet(2),jet(3), |
| 105 | + jet(4),jet(5),jet(6),jet(7), |
| 106 | + jet(8),jet(9),jet(10),jet(11), |
| 107 | + eg(0),eg(1),eg(2),eg(3), |
| 108 | + eg(4),eg(5),eg(6),eg(7), |
| 109 | + eg(8),eg(9),eg(10),eg(11), |
| 110 | + tau(0),tau(1),tau(2),tau(3), |
| 111 | + tau(4),tau(5),tau(6),tau(7), |
| 112 | + tau(8),tau(9),tau(10),tau(11), |
| 113 | + ett_i,htt_i,etm_i,htm_i,etmhf_i,htmhf_i, |
| 114 | + ml_score(score_width-1 downto 0), |
| 115 | + open |
| 116 | + ); |
| 117 | + end generate base_v1_i; |
| 118 | + end generate topo_i; |
| 119 | + |
| 120 | + ml_score_o(score_width-1 downto 0) <= ml_score(score_width-1 downto 0); |
| 121 | + |
| 122 | +end architecture rtl; |
0 commit comments