]> jspc29.x-matter.uni-frankfurt.de Git - tdc.git/commitdiff
Add files from Cahit, compiles for Dirich
authorJan Michel <j.michel@gsi.de>
Thu, 2 Nov 2017 17:10:36 +0000 (18:10 +0100)
committerJan Michel <j.michel@gsi.de>
Thu, 2 Nov 2017 17:10:36 +0000 (18:10 +0100)
base/cores/ecp5/TDC/Adder_288/Adder_288.vhd [new file with mode: 0644]
releases/tdc_v2.3/Channel_200.vhd
releases/tdc_v2.3/Encoder_288_Bit.vhd
releases/tdc_v2.3/ROM_encoder_ecp5.vhd
releases/tdc_v2.3/TDC_record.vhd
releases/tdc_v2.3/dirich_tdc_constraints.lpf
releases/tdc_v2.3/dirich_trbnet_constraints.lpf
releases/tdc_v2.3/rom_encoder/ecp5/ROM_encoder_3/ROM_encoder_3.vhd
releases/tdc_v2.3/tdc_components.vhd
releases/tdc_v2.3/unimportant_lines_constraints.lpf

diff --git a/base/cores/ecp5/TDC/Adder_288/Adder_288.vhd b/base/cores/ecp5/TDC/Adder_288/Adder_288.vhd
new file mode 100644 (file)
index 0000000..8e2f389
--- /dev/null
@@ -0,0 +1,1215 @@
+-- VHDL netlist generated by SCUBA Diamond (64-bit) 3.8.0.115.3
+-- Module  Version: 3.5
+--/opt/lattice/diamond/3.8_x64/ispfpga/bin/lin64/scuba -w -n Adder_288 -lang vhdl -synth synplify -bus_exp 7 -bb -arch sa5p00m -type add -width 64 -unsigned -output_reg -enable -pipeline 0 -fdc /home/cugur/Projects/TDC_on_TRB3/tdc/base/cores/ecp5/TDC/Adder_288/clarity/Adder_288/Adder_288.fdc 
+
+-- Wed Dec 21 21:27:16 2016
+
+library IEEE;
+use IEEE.std_logic_1164.all;
+library ecp5um;
+use ecp5um.components.all;
+
+entity Adder_288 is
+  port (
+    DataA   : in  std_logic_vector(287 downto 0);
+    DataB   : in  std_logic_vector(287 downto 0);
+    Clk   : in  std_logic;
+    Reset   : in  std_logic;
+    ClkEn : in  std_logic;
+    Result  : out std_logic_vector(287 downto 0));
+end Adder_288;
+
+architecture Structure of Adder_288 is
+
+  -- internal signal declarations
+  signal r0_sum    : std_logic_vector(287 downto 0);
+  signal tsum      : std_logic_vector(287 downto 0);
+  signal co        : std_logic_vector(143 downto 0);
+  signal scuba_vhi : std_logic;
+  signal scuba_vlo : std_logic;
+
+  attribute GSR                       : string;
+  attribute GSR of FF_287         : label is "ENABLED";
+  attribute GSR of FF_286         : label is "ENABLED";
+  attribute GSR of FF_285         : label is "ENABLED";
+  attribute GSR of FF_284         : label is "ENABLED";
+  attribute GSR of FF_283         : label is "ENABLED";
+  attribute GSR of FF_282         : label is "ENABLED";
+  attribute GSR of FF_281         : label is "ENABLED";
+  attribute GSR of FF_280         : label is "ENABLED";
+  attribute GSR of FF_279         : label is "ENABLED";
+  attribute GSR of FF_278         : label is "ENABLED";
+  attribute GSR of FF_277         : label is "ENABLED";
+  attribute GSR of FF_276         : label is "ENABLED";
+  attribute GSR of FF_275         : label is "ENABLED";
+  attribute GSR of FF_274         : label is "ENABLED";
+  attribute GSR of FF_273         : label is "ENABLED";
+  attribute GSR of FF_272         : label is "ENABLED";
+  attribute GSR of FF_271         : label is "ENABLED";
+  attribute GSR of FF_270         : label is "ENABLED";
+  attribute GSR of FF_269         : label is "ENABLED";
+  attribute GSR of FF_268         : label is "ENABLED";
+  attribute GSR of FF_267         : label is "ENABLED";
+  attribute GSR of FF_266         : label is "ENABLED";
+  attribute GSR of FF_265         : label is "ENABLED";
+  attribute GSR of FF_264         : label is "ENABLED";
+  attribute GSR of FF_263         : label is "ENABLED";
+  attribute GSR of FF_262         : label is "ENABLED";
+  attribute GSR of FF_261         : label is "ENABLED";
+  attribute GSR of FF_260         : label is "ENABLED";
+  attribute GSR of FF_259         : label is "ENABLED";
+  attribute GSR of FF_258         : label is "ENABLED";
+  attribute GSR of FF_257         : label is "ENABLED";
+  attribute GSR of FF_256         : label is "ENABLED";
+  attribute GSR of FF_255         : label is "ENABLED";
+  attribute GSR of FF_254         : label is "ENABLED";
+  attribute GSR of FF_253         : label is "ENABLED";
+  attribute GSR of FF_252         : label is "ENABLED";
+  attribute GSR of FF_251         : label is "ENABLED";
+  attribute GSR of FF_250         : label is "ENABLED";
+  attribute GSR of FF_249         : label is "ENABLED";
+  attribute GSR of FF_248         : label is "ENABLED";
+  attribute GSR of FF_247         : label is "ENABLED";
+  attribute GSR of FF_246         : label is "ENABLED";
+  attribute GSR of FF_245         : label is "ENABLED";
+  attribute GSR of FF_244         : label is "ENABLED";
+  attribute GSR of FF_243         : label is "ENABLED";
+  attribute GSR of FF_242         : label is "ENABLED";
+  attribute GSR of FF_241         : label is "ENABLED";
+  attribute GSR of FF_240         : label is "ENABLED";
+  attribute GSR of FF_239         : label is "ENABLED";
+  attribute GSR of FF_238         : label is "ENABLED";
+  attribute GSR of FF_237         : label is "ENABLED";
+  attribute GSR of FF_236         : label is "ENABLED";
+  attribute GSR of FF_235         : label is "ENABLED";
+  attribute GSR of FF_234         : label is "ENABLED";
+  attribute GSR of FF_233         : label is "ENABLED";
+  attribute GSR of FF_232         : label is "ENABLED";
+  attribute GSR of FF_231         : label is "ENABLED";
+  attribute GSR of FF_230         : label is "ENABLED";
+  attribute GSR of FF_229         : label is "ENABLED";
+  attribute GSR of FF_228         : label is "ENABLED";
+  attribute GSR of FF_227         : label is "ENABLED";
+  attribute GSR of FF_226         : label is "ENABLED";
+  attribute GSR of FF_225         : label is "ENABLED";
+  attribute GSR of FF_224         : label is "ENABLED";
+  attribute GSR of FF_223         : label is "ENABLED";
+  attribute GSR of FF_222         : label is "ENABLED";
+  attribute GSR of FF_221         : label is "ENABLED";
+  attribute GSR of FF_220         : label is "ENABLED";
+  attribute GSR of FF_219         : label is "ENABLED";
+  attribute GSR of FF_218         : label is "ENABLED";
+  attribute GSR of FF_217         : label is "ENABLED";
+  attribute GSR of FF_216         : label is "ENABLED";
+  attribute GSR of FF_215         : label is "ENABLED";
+  attribute GSR of FF_214         : label is "ENABLED";
+  attribute GSR of FF_213         : label is "ENABLED";
+  attribute GSR of FF_212         : label is "ENABLED";
+  attribute GSR of FF_211         : label is "ENABLED";
+  attribute GSR of FF_210         : label is "ENABLED";
+  attribute GSR of FF_209         : label is "ENABLED";
+  attribute GSR of FF_208         : label is "ENABLED";
+  attribute GSR of FF_207         : label is "ENABLED";
+  attribute GSR of FF_206         : label is "ENABLED";
+  attribute GSR of FF_205         : label is "ENABLED";
+  attribute GSR of FF_204         : label is "ENABLED";
+  attribute GSR of FF_203         : label is "ENABLED";
+  attribute GSR of FF_202         : label is "ENABLED";
+  attribute GSR of FF_201         : label is "ENABLED";
+  attribute GSR of FF_200         : label is "ENABLED";
+  attribute GSR of FF_199         : label is "ENABLED";
+  attribute GSR of FF_198         : label is "ENABLED";
+  attribute GSR of FF_197         : label is "ENABLED";
+  attribute GSR of FF_196         : label is "ENABLED";
+  attribute GSR of FF_195         : label is "ENABLED";
+  attribute GSR of FF_194         : label is "ENABLED";
+  attribute GSR of FF_193         : label is "ENABLED";
+  attribute GSR of FF_192         : label is "ENABLED";
+  attribute GSR of FF_191         : label is "ENABLED";
+  attribute GSR of FF_190         : label is "ENABLED";
+  attribute GSR of FF_189         : label is "ENABLED";
+  attribute GSR of FF_188         : label is "ENABLED";
+  attribute GSR of FF_187         : label is "ENABLED";
+  attribute GSR of FF_186         : label is "ENABLED";
+  attribute GSR of FF_185         : label is "ENABLED";
+  attribute GSR of FF_184         : label is "ENABLED";
+  attribute GSR of FF_183         : label is "ENABLED";
+  attribute GSR of FF_182         : label is "ENABLED";
+  attribute GSR of FF_181         : label is "ENABLED";
+  attribute GSR of FF_180         : label is "ENABLED";
+  attribute GSR of FF_179         : label is "ENABLED";
+  attribute GSR of FF_178         : label is "ENABLED";
+  attribute GSR of FF_177         : label is "ENABLED";
+  attribute GSR of FF_176         : label is "ENABLED";
+  attribute GSR of FF_175         : label is "ENABLED";
+  attribute GSR of FF_174         : label is "ENABLED";
+  attribute GSR of FF_173         : label is "ENABLED";
+  attribute GSR of FF_172         : label is "ENABLED";
+  attribute GSR of FF_171         : label is "ENABLED";
+  attribute GSR of FF_170         : label is "ENABLED";
+  attribute GSR of FF_169         : label is "ENABLED";
+  attribute GSR of FF_168         : label is "ENABLED";
+  attribute GSR of FF_167         : label is "ENABLED";
+  attribute GSR of FF_166         : label is "ENABLED";
+  attribute GSR of FF_165         : label is "ENABLED";
+  attribute GSR of FF_164         : label is "ENABLED";
+  attribute GSR of FF_163         : label is "ENABLED";
+  attribute GSR of FF_162         : label is "ENABLED";
+  attribute GSR of FF_161         : label is "ENABLED";
+  attribute GSR of FF_160         : label is "ENABLED";
+  attribute GSR of FF_159         : label is "ENABLED";
+  attribute GSR of FF_158         : label is "ENABLED";
+  attribute GSR of FF_157         : label is "ENABLED";
+  attribute GSR of FF_156         : label is "ENABLED";
+  attribute GSR of FF_155         : label is "ENABLED";
+  attribute GSR of FF_154         : label is "ENABLED";
+  attribute GSR of FF_153         : label is "ENABLED";
+  attribute GSR of FF_152         : label is "ENABLED";
+  attribute GSR of FF_151         : label is "ENABLED";
+  attribute GSR of FF_150         : label is "ENABLED";
+  attribute GSR of FF_149         : label is "ENABLED";
+  attribute GSR of FF_148         : label is "ENABLED";
+  attribute GSR of FF_147         : label is "ENABLED";
+  attribute GSR of FF_146         : label is "ENABLED";
+  attribute GSR of FF_145         : label is "ENABLED";
+  attribute GSR of FF_144         : label is "ENABLED";
+  attribute GSR of FF_143         : label is "ENABLED";
+  attribute GSR of FF_142         : label is "ENABLED";
+  attribute GSR of FF_141         : label is "ENABLED";
+  attribute GSR of FF_140         : label is "ENABLED";
+  attribute GSR of FF_139         : label is "ENABLED";
+  attribute GSR of FF_138         : label is "ENABLED";
+  attribute GSR of FF_137         : label is "ENABLED";
+  attribute GSR of FF_136         : label is "ENABLED";
+  attribute GSR of FF_135         : label is "ENABLED";
+  attribute GSR of FF_134         : label is "ENABLED";
+  attribute GSR of FF_133         : label is "ENABLED";
+  attribute GSR of FF_132         : label is "ENABLED";
+  attribute GSR of FF_131         : label is "ENABLED";
+  attribute GSR of FF_130         : label is "ENABLED";
+  attribute GSR of FF_129         : label is "ENABLED";
+  attribute GSR of FF_128         : label is "ENABLED";
+  attribute GSR of FF_127         : label is "ENABLED";
+  attribute GSR of FF_126         : label is "ENABLED";
+  attribute GSR of FF_125         : label is "ENABLED";
+  attribute GSR of FF_124         : label is "ENABLED";
+  attribute GSR of FF_123         : label is "ENABLED";
+  attribute GSR of FF_122         : label is "ENABLED";
+  attribute GSR of FF_121         : label is "ENABLED";
+  attribute GSR of FF_120         : label is "ENABLED";
+  attribute GSR of FF_119         : label is "ENABLED";
+  attribute GSR of FF_118         : label is "ENABLED";
+  attribute GSR of FF_117         : label is "ENABLED";
+  attribute GSR of FF_116         : label is "ENABLED";
+  attribute GSR of FF_115         : label is "ENABLED";
+  attribute GSR of FF_114         : label is "ENABLED";
+  attribute GSR of FF_113         : label is "ENABLED";
+  attribute GSR of FF_112         : label is "ENABLED";
+  attribute GSR of FF_111         : label is "ENABLED";
+  attribute GSR of FF_110         : label is "ENABLED";
+  attribute GSR of FF_109         : label is "ENABLED";
+  attribute GSR of FF_108         : label is "ENABLED";
+  attribute GSR of FF_107         : label is "ENABLED";
+  attribute GSR of FF_106         : label is "ENABLED";
+  attribute GSR of FF_105         : label is "ENABLED";
+  attribute GSR of FF_104         : label is "ENABLED";
+  attribute GSR of FF_103         : label is "ENABLED";
+  attribute GSR of FF_102         : label is "ENABLED";
+  attribute GSR of FF_101         : label is "ENABLED";
+  attribute GSR of FF_100         : label is "ENABLED";
+  attribute GSR of FF_99          : label is "ENABLED";
+  attribute GSR of FF_98          : label is "ENABLED";
+  attribute GSR of FF_97          : label is "ENABLED";
+  attribute GSR of FF_96          : label is "ENABLED";
+  attribute GSR of FF_95          : label is "ENABLED";
+  attribute GSR of FF_94          : label is "ENABLED";
+  attribute GSR of FF_93          : label is "ENABLED";
+  attribute GSR of FF_92          : label is "ENABLED";
+  attribute GSR of FF_91          : label is "ENABLED";
+  attribute GSR of FF_90          : label is "ENABLED";
+  attribute GSR of FF_89          : label is "ENABLED";
+  attribute GSR of FF_88          : label is "ENABLED";
+  attribute GSR of FF_87          : label is "ENABLED";
+  attribute GSR of FF_86          : label is "ENABLED";
+  attribute GSR of FF_85          : label is "ENABLED";
+  attribute GSR of FF_84          : label is "ENABLED";
+  attribute GSR of FF_83          : label is "ENABLED";
+  attribute GSR of FF_82          : label is "ENABLED";
+  attribute GSR of FF_81          : label is "ENABLED";
+  attribute GSR of FF_80          : label is "ENABLED";
+  attribute GSR of FF_79          : label is "ENABLED";
+  attribute GSR of FF_78          : label is "ENABLED";
+  attribute GSR of FF_77          : label is "ENABLED";
+  attribute GSR of FF_76          : label is "ENABLED";
+  attribute GSR of FF_75          : label is "ENABLED";
+  attribute GSR of FF_74          : label is "ENABLED";
+  attribute GSR of FF_73          : label is "ENABLED";
+  attribute GSR of FF_72          : label is "ENABLED";
+  attribute GSR of FF_71          : label is "ENABLED";
+  attribute GSR of FF_70          : label is "ENABLED";
+  attribute GSR of FF_69          : label is "ENABLED";
+  attribute GSR of FF_68          : label is "ENABLED";
+  attribute GSR of FF_67          : label is "ENABLED";
+  attribute GSR of FF_66          : label is "ENABLED";
+  attribute GSR of FF_65          : label is "ENABLED";
+  attribute GSR of FF_64          : label is "ENABLED";
+  attribute GSR of FF_63          : label is "ENABLED";
+  attribute GSR of FF_62          : label is "ENABLED";
+  attribute GSR of FF_61          : label is "ENABLED";
+  attribute GSR of FF_60          : label is "ENABLED";
+  attribute GSR of FF_59          : label is "ENABLED";
+  attribute GSR of FF_58          : label is "ENABLED";
+  attribute GSR of FF_57          : label is "ENABLED";
+  attribute GSR of FF_56          : label is "ENABLED";
+  attribute GSR of FF_55          : label is "ENABLED";
+  attribute GSR of FF_54          : label is "ENABLED";
+  attribute GSR of FF_53          : label is "ENABLED";
+  attribute GSR of FF_52          : label is "ENABLED";
+  attribute GSR of FF_51          : label is "ENABLED";
+  attribute GSR of FF_50          : label is "ENABLED";
+  attribute GSR of FF_49          : label is "ENABLED";
+  attribute GSR of FF_48          : label is "ENABLED";
+  attribute GSR of FF_47          : label is "ENABLED";
+  attribute GSR of FF_46          : label is "ENABLED";
+  attribute GSR of FF_45          : label is "ENABLED";
+  attribute GSR of FF_44          : label is "ENABLED";
+  attribute GSR of FF_43          : label is "ENABLED";
+  attribute GSR of FF_42          : label is "ENABLED";
+  attribute GSR of FF_41          : label is "ENABLED";
+  attribute GSR of FF_40          : label is "ENABLED";
+  attribute GSR of FF_39          : label is "ENABLED";
+  attribute GSR of FF_38          : label is "ENABLED";
+  attribute GSR of FF_37          : label is "ENABLED";
+  attribute GSR of FF_36          : label is "ENABLED";
+  attribute GSR of FF_35          : label is "ENABLED";
+  attribute GSR of FF_34          : label is "ENABLED";
+  attribute GSR of FF_33          : label is "ENABLED";
+  attribute GSR of FF_32          : label is "ENABLED";
+  attribute GSR of FF_31          : label is "ENABLED";
+  attribute GSR of FF_30          : label is "ENABLED";
+  attribute GSR of FF_29          : label is "ENABLED";
+  attribute GSR of FF_28          : label is "ENABLED";
+  attribute GSR of FF_27          : label is "ENABLED";
+  attribute GSR of FF_26          : label is "ENABLED";
+  attribute GSR of FF_25          : label is "ENABLED";
+  attribute GSR of FF_24          : label is "ENABLED";
+  attribute GSR of FF_23          : label is "ENABLED";
+  attribute GSR of FF_22          : label is "ENABLED";
+  attribute GSR of FF_21          : label is "ENABLED";
+  attribute GSR of FF_20          : label is "ENABLED";
+  attribute GSR of FF_19          : label is "ENABLED";
+  attribute GSR of FF_18          : label is "ENABLED";
+  attribute GSR of FF_17          : label is "ENABLED";
+  attribute GSR of FF_16          : label is "ENABLED";
+  attribute GSR of FF_15          : label is "ENABLED";
+  attribute GSR of FF_14          : label is "ENABLED";
+  attribute GSR of FF_13          : label is "ENABLED";
+  attribute GSR of FF_12          : label is "ENABLED";
+  attribute GSR of FF_11          : label is "ENABLED";
+  attribute GSR of FF_10          : label is "ENABLED";
+  attribute GSR of FF_9           : label is "ENABLED";
+  attribute GSR of FF_8           : label is "ENABLED";
+  attribute GSR of FF_7           : label is "ENABLED";
+  attribute GSR of FF_6           : label is "ENABLED";
+  attribute GSR of FF_5           : label is "ENABLED";
+  attribute GSR of FF_4           : label is "ENABLED";
+  attribute GSR of FF_3           : label is "ENABLED";
+  attribute GSR of FF_2           : label is "ENABLED";
+  attribute GSR of FF_1           : label is "ENABLED";
+  attribute GSR of FF_0           : label is "ENABLED";
+  attribute syn_keep                  : boolean;
+  attribute NGD_DRC_MASK              : integer;
+  attribute NGD_DRC_MASK of Structure : architecture is 1;
+
+begin
+  -- component instantiation statements
+  FF_287 : FD1P3DX
+    port map (D => tsum(287), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(287));
+  FF_286 : FD1P3DX
+    port map (D => tsum(286), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(286));
+  FF_285 : FD1P3DX
+    port map (D => tsum(285), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(285));
+  FF_284 : FD1P3DX
+    port map (D => tsum(284), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(284));
+  FF_283 : FD1P3DX
+    port map (D => tsum(283), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(283));
+  FF_282 : FD1P3DX
+    port map (D => tsum(282), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(282));
+  FF_281 : FD1P3DX
+    port map (D => tsum(281), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(281));
+  FF_280 : FD1P3DX
+    port map (D => tsum(280), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(280));
+  FF_279 : FD1P3DX
+    port map (D => tsum(279), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(279));
+  FF_278 : FD1P3DX
+    port map (D => tsum(278), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(278));
+  FF_277 : FD1P3DX
+    port map (D => tsum(277), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(277));
+  FF_276 : FD1P3DX
+    port map (D => tsum(276), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(276));
+  FF_275 : FD1P3DX
+    port map (D => tsum(275), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(275));
+  FF_274 : FD1P3DX
+    port map (D => tsum(274), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(274));
+  FF_273 : FD1P3DX
+    port map (D => tsum(273), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(273));
+  FF_272 : FD1P3DX
+    port map (D => tsum(272), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(272));
+  FF_271 : FD1P3DX
+    port map (D => tsum(271), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(271));
+  FF_270 : FD1P3DX
+    port map (D => tsum(270), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(270));
+  FF_269 : FD1P3DX
+    port map (D => tsum(269), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(269));
+  FF_268 : FD1P3DX
+    port map (D => tsum(268), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(268));
+  FF_267 : FD1P3DX
+    port map (D => tsum(267), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(267));
+  FF_266 : FD1P3DX
+    port map (D => tsum(266), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(266));
+  FF_265 : FD1P3DX
+    port map (D => tsum(265), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(265));
+  FF_264 : FD1P3DX
+    port map (D => tsum(264), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(264));
+  FF_263 : FD1P3DX
+    port map (D => tsum(263), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(263));
+  FF_262 : FD1P3DX
+    port map (D => tsum(262), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(262));
+  FF_261 : FD1P3DX
+    port map (D => tsum(261), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(261));
+  FF_260 : FD1P3DX
+    port map (D => tsum(260), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(260));
+  FF_259 : FD1P3DX
+    port map (D => tsum(259), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(259));
+  FF_258 : FD1P3DX
+    port map (D => tsum(258), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(258));
+  FF_257 : FD1P3DX
+    port map (D => tsum(257), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(257));
+  FF_256 : FD1P3DX
+    port map (D => tsum(256), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(256));
+  FF_255 : FD1P3DX
+    port map (D => tsum(255), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(255));
+  FF_254 : FD1P3DX
+    port map (D => tsum(254), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(254));
+  FF_253 : FD1P3DX
+    port map (D => tsum(253), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(253));
+  FF_252 : FD1P3DX
+    port map (D => tsum(252), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(252));
+  FF_251 : FD1P3DX
+    port map (D => tsum(251), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(251));
+  FF_250 : FD1P3DX
+    port map (D => tsum(250), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(250));
+  FF_249 : FD1P3DX
+    port map (D => tsum(249), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(249));
+  FF_248 : FD1P3DX
+    port map (D => tsum(248), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(248));
+  FF_247 : FD1P3DX
+    port map (D => tsum(247), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(247));
+  FF_246 : FD1P3DX
+    port map (D => tsum(246), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(246));
+  FF_245 : FD1P3DX
+    port map (D => tsum(245), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(245));
+  FF_244 : FD1P3DX
+    port map (D => tsum(244), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(244));
+  FF_243 : FD1P3DX
+    port map (D => tsum(243), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(243));
+  FF_242 : FD1P3DX
+    port map (D => tsum(242), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(242));
+  FF_241 : FD1P3DX
+    port map (D => tsum(241), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(241));
+  FF_240 : FD1P3DX
+    port map (D => tsum(240), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(240));
+  FF_239 : FD1P3DX
+    port map (D => tsum(239), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(239));
+  FF_238 : FD1P3DX
+    port map (D => tsum(238), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(238));
+  FF_237 : FD1P3DX
+    port map (D => tsum(237), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(237));
+  FF_236 : FD1P3DX
+    port map (D => tsum(236), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(236));
+  FF_235 : FD1P3DX
+    port map (D => tsum(235), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(235));
+  FF_234 : FD1P3DX
+    port map (D => tsum(234), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(234));
+  FF_233 : FD1P3DX
+    port map (D => tsum(233), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(233));
+  FF_232 : FD1P3DX
+    port map (D => tsum(232), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(232));
+  FF_231 : FD1P3DX
+    port map (D => tsum(231), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(231));
+  FF_230 : FD1P3DX
+    port map (D => tsum(230), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(230));
+  FF_229 : FD1P3DX
+    port map (D => tsum(229), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(229));
+  FF_228 : FD1P3DX
+    port map (D => tsum(228), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(228));
+  FF_227 : FD1P3DX
+    port map (D => tsum(227), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(227));
+  FF_226 : FD1P3DX
+    port map (D => tsum(226), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(226));
+  FF_225 : FD1P3DX
+    port map (D => tsum(225), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(225));
+  FF_224 : FD1P3DX
+    port map (D => tsum(224), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(224));
+  FF_223 : FD1P3DX
+    port map (D => tsum(223), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(223));
+  FF_222 : FD1P3DX
+    port map (D => tsum(222), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(222));
+  FF_221 : FD1P3DX
+    port map (D => tsum(221), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(221));
+  FF_220 : FD1P3DX
+    port map (D => tsum(220), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(220));
+  FF_219 : FD1P3DX
+    port map (D => tsum(219), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(219));
+  FF_218 : FD1P3DX
+    port map (D => tsum(218), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(218));
+  FF_217 : FD1P3DX
+    port map (D => tsum(217), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(217));
+  FF_216 : FD1P3DX
+    port map (D => tsum(216), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(216));
+  FF_215 : FD1P3DX
+    port map (D => tsum(215), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(215));
+  FF_214 : FD1P3DX
+    port map (D => tsum(214), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(214));
+  FF_213 : FD1P3DX
+    port map (D => tsum(213), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(213));
+  FF_212 : FD1P3DX
+    port map (D => tsum(212), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(212));
+  FF_211 : FD1P3DX
+    port map (D => tsum(211), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(211));
+  FF_210 : FD1P3DX
+    port map (D => tsum(210), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(210));
+  FF_209 : FD1P3DX
+    port map (D => tsum(209), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(209));
+  FF_208 : FD1P3DX
+    port map (D => tsum(208), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(208));
+  FF_207 : FD1P3DX
+    port map (D => tsum(207), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(207));
+  FF_206 : FD1P3DX
+    port map (D => tsum(206), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(206));
+  FF_205 : FD1P3DX
+    port map (D => tsum(205), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(205));
+  FF_204 : FD1P3DX
+    port map (D => tsum(204), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(204));
+  FF_203 : FD1P3DX
+    port map (D => tsum(203), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(203));
+  FF_202 : FD1P3DX
+    port map (D => tsum(202), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(202));
+  FF_201 : FD1P3DX
+    port map (D => tsum(201), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(201));
+  FF_200 : FD1P3DX
+    port map (D => tsum(200), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(200));
+  FF_199 : FD1P3DX
+    port map (D => tsum(199), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(199));
+  FF_198 : FD1P3DX
+    port map (D => tsum(198), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(198));
+  FF_197 : FD1P3DX
+    port map (D => tsum(197), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(197));
+  FF_196 : FD1P3DX
+    port map (D => tsum(196), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(196));
+  FF_195 : FD1P3DX
+    port map (D => tsum(195), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(195));
+  FF_194 : FD1P3DX
+    port map (D => tsum(194), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(194));
+  FF_193 : FD1P3DX
+    port map (D => tsum(193), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(193));
+  FF_192 : FD1P3DX
+    port map (D => tsum(192), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(192));
+  FF_191 : FD1P3DX
+    port map (D => tsum(191), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(191));
+  FF_190 : FD1P3DX
+    port map (D => tsum(190), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(190));
+  FF_189 : FD1P3DX
+    port map (D => tsum(189), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(189));
+  FF_188 : FD1P3DX
+    port map (D => tsum(188), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(188));
+  FF_187 : FD1P3DX
+    port map (D => tsum(187), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(187));
+  FF_186 : FD1P3DX
+    port map (D => tsum(186), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(186));
+  FF_185 : FD1P3DX
+    port map (D => tsum(185), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(185));
+  FF_184 : FD1P3DX
+    port map (D => tsum(184), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(184));
+  FF_183 : FD1P3DX
+    port map (D => tsum(183), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(183));
+  FF_182 : FD1P3DX
+    port map (D => tsum(182), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(182));
+  FF_181 : FD1P3DX
+    port map (D => tsum(181), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(181));
+  FF_180 : FD1P3DX
+    port map (D => tsum(180), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(180));
+  FF_179 : FD1P3DX
+    port map (D => tsum(179), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(179));
+  FF_178 : FD1P3DX
+    port map (D => tsum(178), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(178));
+  FF_177 : FD1P3DX
+    port map (D => tsum(177), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(177));
+  FF_176 : FD1P3DX
+    port map (D => tsum(176), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(176));
+  FF_175 : FD1P3DX
+    port map (D => tsum(175), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(175));
+  FF_174 : FD1P3DX
+    port map (D => tsum(174), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(174));
+  FF_173 : FD1P3DX
+    port map (D => tsum(173), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(173));
+  FF_172 : FD1P3DX
+    port map (D => tsum(172), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(172));
+  FF_171 : FD1P3DX
+    port map (D => tsum(171), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(171));
+  FF_170 : FD1P3DX
+    port map (D => tsum(170), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(170));
+  FF_169 : FD1P3DX
+    port map (D => tsum(169), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(169));
+  FF_168 : FD1P3DX
+    port map (D => tsum(168), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(168));
+  FF_167 : FD1P3DX
+    port map (D => tsum(167), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(167));
+  FF_166 : FD1P3DX
+    port map (D => tsum(166), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(166));
+  FF_165 : FD1P3DX
+    port map (D => tsum(165), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(165));
+  FF_164 : FD1P3DX
+    port map (D => tsum(164), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(164));
+  FF_163 : FD1P3DX
+    port map (D => tsum(163), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(163));
+  FF_162 : FD1P3DX
+    port map (D => tsum(162), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(162));
+  FF_161 : FD1P3DX
+    port map (D => tsum(161), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(161));
+  FF_160 : FD1P3DX
+    port map (D => tsum(160), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(160));
+  FF_159 : FD1P3DX
+    port map (D => tsum(159), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(159));
+  FF_158 : FD1P3DX
+    port map (D => tsum(158), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(158));
+  FF_157 : FD1P3DX
+    port map (D => tsum(157), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(157));
+  FF_156 : FD1P3DX
+    port map (D => tsum(156), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(156));
+  FF_155 : FD1P3DX
+    port map (D => tsum(155), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(155));
+  FF_154 : FD1P3DX
+    port map (D => tsum(154), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(154));
+  FF_153 : FD1P3DX
+    port map (D => tsum(153), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(153));
+  FF_152 : FD1P3DX
+    port map (D => tsum(152), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(152));
+  FF_151 : FD1P3DX
+    port map (D => tsum(151), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(151));
+  FF_150 : FD1P3DX
+    port map (D => tsum(150), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(150));
+  FF_149 : FD1P3DX
+    port map (D => tsum(149), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(149));
+  FF_148 : FD1P3DX
+    port map (D => tsum(148), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(148));
+  FF_147 : FD1P3DX
+    port map (D => tsum(147), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(147));
+  FF_146 : FD1P3DX
+    port map (D => tsum(146), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(146));
+  FF_145 : FD1P3DX
+    port map (D => tsum(145), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(145));
+  FF_144 : FD1P3DX
+    port map (D => tsum(144), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(144));
+  FF_143 : FD1P3DX
+    port map (D => tsum(143), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(143));
+  FF_142 : FD1P3DX
+    port map (D => tsum(142), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(142));
+  FF_141 : FD1P3DX
+    port map (D => tsum(141), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(141));
+  FF_140 : FD1P3DX
+    port map (D => tsum(140), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(140));
+  FF_139 : FD1P3DX
+    port map (D => tsum(139), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(139));
+  FF_138 : FD1P3DX
+    port map (D => tsum(138), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(138));
+  FF_137 : FD1P3DX
+    port map (D => tsum(137), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(137));
+  FF_136 : FD1P3DX
+    port map (D => tsum(136), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(136));
+  FF_135 : FD1P3DX
+    port map (D => tsum(135), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(135));
+  FF_134 : FD1P3DX
+    port map (D => tsum(134), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(134));
+  FF_133 : FD1P3DX
+    port map (D => tsum(133), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(133));
+  FF_132 : FD1P3DX
+    port map (D => tsum(132), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(132));
+  FF_131 : FD1P3DX
+    port map (D => tsum(131), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(131));
+  FF_130 : FD1P3DX
+    port map (D => tsum(130), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(130));
+  FF_129 : FD1P3DX
+    port map (D => tsum(129), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(129));
+  FF_128 : FD1P3DX
+    port map (D => tsum(128), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(128));
+  FF_127 : FD1P3DX
+    port map (D => tsum(127), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(127));
+  FF_126 : FD1P3DX
+    port map (D => tsum(126), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(126));
+  FF_125 : FD1P3DX
+    port map (D => tsum(125), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(125));
+  FF_124 : FD1P3DX
+    port map (D => tsum(124), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(124));
+  FF_123 : FD1P3DX
+    port map (D => tsum(123), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(123));
+  FF_122 : FD1P3DX
+    port map (D => tsum(122), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(122));
+  FF_121 : FD1P3DX
+    port map (D => tsum(121), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(121));
+  FF_120 : FD1P3DX
+    port map (D => tsum(120), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(120));
+  FF_119 : FD1P3DX
+    port map (D => tsum(119), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(119));
+  FF_118 : FD1P3DX
+    port map (D => tsum(118), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(118));
+  FF_117 : FD1P3DX
+    port map (D => tsum(117), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(117));
+  FF_116 : FD1P3DX
+    port map (D => tsum(116), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(116));
+  FF_115 : FD1P3DX
+    port map (D => tsum(115), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(115));
+  FF_114 : FD1P3DX
+    port map (D => tsum(114), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(114));
+  FF_113 : FD1P3DX
+    port map (D => tsum(113), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(113));
+  FF_112 : FD1P3DX
+    port map (D => tsum(112), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(112));
+  FF_111 : FD1P3DX
+    port map (D => tsum(111), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(111));
+  FF_110 : FD1P3DX
+    port map (D => tsum(110), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(110));
+  FF_109 : FD1P3DX
+    port map (D => tsum(109), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(109));
+  FF_108 : FD1P3DX
+    port map (D => tsum(108), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(108));
+  FF_107 : FD1P3DX
+    port map (D => tsum(107), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(107));
+  FF_106 : FD1P3DX
+    port map (D => tsum(106), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(106));
+  FF_105 : FD1P3DX
+    port map (D => tsum(105), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(105));
+  FF_104 : FD1P3DX
+    port map (D => tsum(104), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(104));
+  FF_103 : FD1P3DX
+    port map (D => tsum(103), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(103));
+  FF_102 : FD1P3DX
+    port map (D => tsum(102), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(102));
+  FF_101 : FD1P3DX
+    port map (D => tsum(101), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(101));
+  FF_100 : FD1P3DX
+    port map (D => tsum(100), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(100));
+  FF_99 : FD1P3DX
+    port map (D => tsum(99), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(99));
+  FF_98 : FD1P3DX
+    port map (D => tsum(98), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(98));
+  FF_97 : FD1P3DX
+    port map (D => tsum(97), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(97));
+  FF_96 : FD1P3DX
+    port map (D => tsum(96), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(96));
+  FF_95 : FD1P3DX
+    port map (D => tsum(95), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(95));
+  FF_94 : FD1P3DX
+    port map (D => tsum(94), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(94));
+  FF_93 : FD1P3DX
+    port map (D => tsum(93), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(93));
+  FF_92 : FD1P3DX
+    port map (D => tsum(92), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(92));
+  FF_91 : FD1P3DX
+    port map (D => tsum(91), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(91));
+  FF_90 : FD1P3DX
+    port map (D => tsum(90), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(90));
+  FF_89 : FD1P3DX
+    port map (D => tsum(89), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(89));
+  FF_88 : FD1P3DX
+    port map (D => tsum(88), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(88));
+  FF_87 : FD1P3DX
+    port map (D => tsum(87), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(87));
+  FF_86 : FD1P3DX
+    port map (D => tsum(86), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(86));
+  FF_85 : FD1P3DX
+    port map (D => tsum(85), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(85));
+  FF_84 : FD1P3DX
+    port map (D => tsum(84), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(84));
+  FF_83 : FD1P3DX
+    port map (D => tsum(83), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(83));
+  FF_82 : FD1P3DX
+    port map (D => tsum(82), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(82));
+  FF_81 : FD1P3DX
+    port map (D => tsum(81), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(81));
+  FF_80 : FD1P3DX
+    port map (D => tsum(80), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(80));
+  FF_79 : FD1P3DX
+    port map (D => tsum(79), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(79));
+  FF_78 : FD1P3DX
+    port map (D => tsum(78), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(78));
+  FF_77 : FD1P3DX
+    port map (D => tsum(77), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(77));
+  FF_76 : FD1P3DX
+    port map (D => tsum(76), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(76));
+  FF_75 : FD1P3DX
+    port map (D => tsum(75), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(75));
+  FF_74 : FD1P3DX
+    port map (D => tsum(74), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(74));
+  FF_73 : FD1P3DX
+    port map (D => tsum(73), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(73));
+  FF_72 : FD1P3DX
+    port map (D => tsum(72), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(72));
+  FF_71 : FD1P3DX
+    port map (D => tsum(71), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(71));
+  FF_70 : FD1P3DX
+    port map (D => tsum(70), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(70));
+  FF_69 : FD1P3DX
+    port map (D => tsum(69), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(69));
+  FF_68 : FD1P3DX
+    port map (D => tsum(68), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(68));
+  FF_67 : FD1P3DX
+    port map (D => tsum(67), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(67));
+  FF_66 : FD1P3DX
+    port map (D => tsum(66), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(66));
+  FF_65 : FD1P3DX
+    port map (D => tsum(65), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(65));
+  FF_64 : FD1P3DX
+    port map (D => tsum(64), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(64));
+  FF_63 : FD1P3DX
+    port map (D => tsum(63), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(63));
+  FF_62 : FD1P3DX
+    port map (D => tsum(62), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(62));
+  FF_61 : FD1P3DX
+    port map (D => tsum(61), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(61));
+  FF_60 : FD1P3DX
+    port map (D => tsum(60), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(60));
+  FF_59 : FD1P3DX
+    port map (D => tsum(59), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(59));
+  FF_58 : FD1P3DX
+    port map (D => tsum(58), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(58));
+  FF_57 : FD1P3DX
+    port map (D => tsum(57), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(57));
+  FF_56 : FD1P3DX
+    port map (D => tsum(56), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(56));
+  FF_55 : FD1P3DX
+    port map (D => tsum(55), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(55));
+  FF_54 : FD1P3DX
+    port map (D => tsum(54), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(54));
+  FF_53 : FD1P3DX
+    port map (D => tsum(53), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(53));
+  FF_52 : FD1P3DX
+    port map (D => tsum(52), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(52));
+  FF_51 : FD1P3DX
+    port map (D => tsum(51), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(51));
+  FF_50 : FD1P3DX
+    port map (D => tsum(50), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(50));
+  FF_49 : FD1P3DX
+    port map (D => tsum(49), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(49));
+  FF_48 : FD1P3DX
+    port map (D => tsum(48), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(48));
+  FF_47 : FD1P3DX
+    port map (D => tsum(47), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(47));
+  FF_46 : FD1P3DX
+    port map (D => tsum(46), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(46));
+  FF_45 : FD1P3DX
+    port map (D => tsum(45), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(45));
+  FF_44 : FD1P3DX
+    port map (D => tsum(44), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(44));
+  FF_43 : FD1P3DX
+    port map (D => tsum(43), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(43));
+  FF_42 : FD1P3DX
+    port map (D => tsum(42), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(42));
+  FF_41 : FD1P3DX
+    port map (D => tsum(41), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(41));
+  FF_40 : FD1P3DX
+    port map (D => tsum(40), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(40));
+  FF_39 : FD1P3DX
+    port map (D => tsum(39), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(39));
+  FF_38 : FD1P3DX
+    port map (D => tsum(38), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(38));
+  FF_37 : FD1P3DX
+    port map (D => tsum(37), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(37));
+  FF_36 : FD1P3DX
+    port map (D => tsum(36), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(36));
+  FF_35 : FD1P3DX
+    port map (D => tsum(35), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(35));
+  FF_34 : FD1P3DX
+    port map (D => tsum(34), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(34));
+  FF_33 : FD1P3DX
+    port map (D => tsum(33), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(33));
+  FF_32 : FD1P3DX
+    port map (D => tsum(32), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(32));
+  FF_31 : FD1P3DX
+    port map (D => tsum(31), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(31));
+  FF_30 : FD1P3DX
+    port map (D => tsum(30), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(30));
+  FF_29 : FD1P3DX
+    port map (D => tsum(29), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(29));
+  FF_28 : FD1P3DX
+    port map (D => tsum(28), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(28));
+  FF_27 : FD1P3DX
+    port map (D => tsum(27), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(27));
+  FF_26 : FD1P3DX
+    port map (D => tsum(26), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(26));
+  FF_25 : FD1P3DX
+    port map (D => tsum(25), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(25));
+  FF_24 : FD1P3DX
+    port map (D => tsum(24), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(24));
+  FF_23 : FD1P3DX
+    port map (D => tsum(23), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(23));
+  FF_22 : FD1P3DX
+    port map (D => tsum(22), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(22));
+  FF_21 : FD1P3DX
+    port map (D => tsum(21), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(21));
+  FF_20 : FD1P3DX
+    port map (D => tsum(20), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(20));
+  FF_19 : FD1P3DX
+    port map (D => tsum(19), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(19));
+  FF_18 : FD1P3DX
+    port map (D => tsum(18), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(18));
+  FF_17 : FD1P3DX
+    port map (D => tsum(17), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(17));
+  FF_16 : FD1P3DX
+    port map (D => tsum(16), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(16));
+  FF_15 : FD1P3DX
+    port map (D => tsum(15), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(15));
+  FF_14 : FD1P3DX
+    port map (D => tsum(14), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(14));
+  FF_13 : FD1P3DX
+    port map (D => tsum(13), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(13));
+  FF_12 : FD1P3DX
+    port map (D => tsum(12), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(12));
+  FF_11 : FD1P3DX
+    port map (D => tsum(11), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(11));
+  FF_10 : FD1P3DX
+    port map (D => tsum(10), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(10));
+  FF_9 : FD1P3DX
+    port map (D => tsum(9), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(9));
+  FF_8 : FD1P3DX
+    port map (D => tsum(8), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(8));
+  FF_7 : FD1P3DX
+    port map (D => tsum(7), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(7));
+  FF_6 : FD1P3DX
+    port map (D => tsum(6), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(6));
+  FF_5 : FD1P3DX
+    port map (D => tsum(5), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(5));
+  FF_4 : FD1P3DX
+    port map (D => tsum(4), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(4));
+  FF_3 : FD1P3DX
+    port map (D => tsum(3), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(3));
+  FF_2 : FD1P3DX
+    port map (D => tsum(2), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(2));
+  FF_1 : FD1P3DX
+    port map (D => tsum(1), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(1));
+  FF_0 : FD1P3DX
+    port map (D => tsum(0), SP => ClkEn, CK => Clk, CD => Reset,
+              Q => r0_sum(0));
+
+  GEN_0_ADD : CCU2C
+    generic map (INJECT1_1 => "NO", INJECT1_0 => "NO", INIT1 => X"66AA",
+                 INIT0     => X"9002")
+--                 INIT0     => X"66AA")
+    port map (A0  => DataA(0), A1 => DataA(1), B0 => DataB(0), B1 => DataB(1),
+              C0  => scuba_vhi, C1 => scuba_vhi, D0 => scuba_vhi, D1 => scuba_vhi,
+              CIN => 'X', S0 => tsum(0), S1 => tsum(1), COUT => co(0));
+
+  GEN : for i in 1 to 143 generate
+    ADD : CCU2C
+      generic map (INJECT1_1 => "NO", INJECT1_0 => "NO", INIT1 => X"66AA",
+                   INIT0     => X"66AA")
+      port map (A0  => DataA(2*i), A1 => DataA(2*i+1), B0 => DataB(2*i), B1 => DataB(2*i+1),
+                C0  => scuba_vhi, C1 => scuba_vhi, D0 => scuba_vhi, D1 => scuba_vhi,
+                CIN => co(i-1), S0 => tsum(2*i), S1 => tsum(2*i+1), COUT => co(i));
+  end generate GEN;
+
+  scuba_vhi_inst : VHI
+    port map (Z => scuba_vhi);
+
+  scuba_vlo_inst : VLO
+    port map (Z => scuba_vlo);
+
+  Result <= r0_sum;
+end Structure;
index 0d9858bfa2ee585bb5ab7e5ca3504be332dbed5f..98a709a9eb7e87907afca1e34af8eba5d53ceddb 100644 (file)
@@ -65,9 +65,9 @@ architecture Channel_200 of Channel_200 is
   end component;
 
   -- carry chain
-  signal data_a      : std_logic_vector(303 downto 0);
-  signal data_b      : std_logic_vector(303 downto 0);
-  signal result      : std_logic_vector(303 downto 0);
+  signal data_a      : std_logic_vector(327-FPGA_TYPE*8 downto 0);
+  signal data_b      : std_logic_vector(327-FPGA_TYPE*8 downto 0);
+  signal result      : std_logic_vector(327-FPGA_TYPE*8 downto 0);
   signal ff_array_en : std_logic;
 
   -- hit detection
@@ -184,7 +184,7 @@ begin  -- Channel_200
   end generate GEN_TrgWinEndTdcDist_Sim;
 
 
-  SimAdderYes : if SIMULATION = c_YES generate
+  SimAdderYes : if SIMULATION = c_YES and FPGA_TYPE = 3 generate
     --purpose: Tapped Delay Line 304 (Carry Chain) with wave launcher (21) double transition
     FC : Adder_304
       port map (
@@ -197,7 +197,7 @@ begin  -- Channel_200
     data_a <= x"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFc030c0F"&x"7FFFFFF";
     data_b <= x"000000000000000000000000000000000000000000000000000000000000000000000"& HIT_IN & x"000000"&"00" & not(HIT_IN);
   end generate SimAdderYes;
-  SimAdderNo : if SIMULATION = c_NO generate
+  SimAdderNo : if SIMULATION = c_NO and FPGA_TYPE = 3 generate
     --purpose: Tapped Delay Line 304 (Carry Chain) with wave launcher (21) double transition
     FC : Adder_304
       port map (
@@ -211,6 +211,35 @@ begin  -- Channel_200
     data_b <= x"000000000000000000000000000000000000000000000000000000000000000000000000"&"000"&HIT_IN&x"00"&"000"&not(HIT_IN);
   end generate SimAdderNo;
 
+  
+   SimAdderYes5 : if SIMULATION = c_YES and FPGA_TYPE = 5 generate
+    --purpose: Tapped Delay Line 304 (Carry Chain) with wave launcher (21) double transition
+    FC : Adder_288
+      port map (
+        CLK    => CLK_200,
+        RESET  => '0',
+        DataA  => data_a,
+        DataB  => data_b,
+        ClkEn  => ff_array_en,
+        Result => result);
+    data_a <= x"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFc00000F"&x"EFFFF";
+    data_b <= x"0000000000000000000000000000000000000000000000000000000000000000000"&"000"&HIT_IN&x"000"&"000"&HIT_IN;
+  end generate;
+  SimAdderNo5 : if SIMULATION = c_NO and FPGA_TYPE = 5 generate
+    --purpose: Tapped Delay Line 304 (Carry Chain) with wave launcher (21) double transition
+    FC : Adder_288
+      port map (
+        CLK    => CLK_200,
+        RESET  => '0',
+        DataA  => data_a,
+        DataB  => data_b,
+        ClkEn  => ff_array_en,
+        Result => result);
+    data_a <= x"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"&x"EFFFF";
+    data_b <= x"0000000000000000000000000000000000000000000000000000000000000000000"&"000"&HIT_IN&x"000"&"000"&HIT_IN;
+  end generate;
+  
+  
   ff_array_en <= not(hit_detect or hit_detect_r);  -- or hit_detect_2r);
 
   result_2_r <= result(2) when rising_edge(CLK_200);
@@ -322,17 +351,19 @@ begin  -- Channel_200
   end process EpochCounterCapture;
 
   --purpose: Encoder
-  --Encoder : Encoder_304_Bit
-  --  port map (
-  --    RESET           => RESET_200,
-  --    CLK             => CLK_200,
-  --    START_IN        => encoder_start,
-  --    THERMOCODE_IN   => result,
-  --    FINISHED_OUT    => encoder_finished,
-  --    DECIMAL_CODE_OUT => encoder_data_out,
-  --    ENCODER_DEBUG   => encoder_debug);
-
+gen_Encoder304 : if FPGA_TYPE = 3 generate
+  Encoder : Encoder_304_Bit
+   port map (
+     RESET           => RESET_200,
+     CLK             => CLK_200,
+     START_IN        => encoder_start,
+     THERMOCODE_IN   => result,
+     FINISHED_OUT    => encoder_finished,
+     DECIMAL_CODE_OUT => encoder_data_out,
+     ENCODER_DEBUG   => encoder_debug);
+end generate;
   --purpose: Encoder
+gen_Encoder288 : if FPGA_TYPE = 5 generate
   Encoder : Encoder_288_Bit
     port map (
       RESET            => RESET_200,
@@ -346,7 +377,8 @@ begin  -- Channel_200
       CHAIN_VALID_OUT  => write_chain,
       CHAIN_DATA_OUT   => chain
       );
-
+end generate;
+      
   RingBuffer_128_dyn : if RING_BUFFER_SIZE = 7 generate
     FIFO : FIFO_DC_36x128_DynThr_OutReg
       port map (
index 1f0a875b80a269593216fb304794aa6c35887dec..9ffb423db28ac600d5538e9febfeddcf2b74b1d5 100644 (file)
@@ -4,7 +4,7 @@
 -- File       : Encoder_288_Bit.vhd
 -- Author     : Cahit Ugur
 -- Created    : 2011-11-28
--- Last update: 2016-03-23
+-- Last update: 2017-04-08
 -------------------------------------------------------------------------------
 -- Description: Encoder for 288 bits
 -------------------------------------------------------------------------------
@@ -59,36 +59,52 @@ architecture behavioral of Encoder_288_Bit is
 -------------------------------------------------------------------------------
 -- Signal Declarations
 -------------------------------------------------------------------------------
-  signal P_lut            : std_logic_vector(35 downto 0);
-  signal P_one            : std_logic_vector(35 downto 0);
-  signal P_mux            : std_logic_vector(34 downto 0);
-  signal mux_control      : std_logic_vector(5 downto 0);
-  signal mux_control_reg  : std_logic_vector(5 downto 0);
-  signal mux_control_2reg : std_logic_vector(5 downto 0);
-  signal mux_control_3reg : std_logic_vector(5 downto 0);
-  signal interval_reg     : std_logic_vector(8 downto 0);
-  signal interval_decimal : std_logic_vector(2 downto 0);
-  signal decimal_code_f   : std_logic_vector(8 downto 0);
-  signal decimal_code_r   : std_logic_vector(8 downto 0);
-  signal address          : std_logic_vector(9 downto 0);
-  signal address_r        : std_logic_vector(9 downto 0);
-  signal q_reg            : std_logic_vector(7 downto 0);
-  signal info             : std_logic_vector(1 downto 0);
-  signal info_reg         : std_logic_vector(1 downto 0);
-  signal info_2reg        : std_logic_vector(1 downto 0);
-  signal info_3reg        : std_logic_vector(1 downto 0);
+  signal P_lut                     : std_logic_vector(35 downto 0);
+  signal P_one                     : std_logic_vector(35 downto 0);
+  signal P_mux                     : std_logic_vector(34 downto 0);
+  signal mux_control               : std_logic_vector(5 downto 0);
+  signal mux_control_reg           : std_logic_vector(5 downto 0);
+  signal mux_control_2reg          : std_logic_vector(5 downto 0);
+  signal mux_control_3reg          : std_logic_vector(5 downto 0);
+  signal interval_reg              : std_logic_vector(8 downto 0);
+  signal interval_decimal          : std_logic_vector(2 downto 0);
+  signal decimal_code_f            : std_logic_vector(8 downto 0);
+  signal decimal_code_r            : std_logic_vector(8 downto 0);
+  signal address                   : std_logic_vector(9 downto 0);
+  signal address_r                 : std_logic_vector(9 downto 0);
+  signal q_reg                     : std_logic_vector(7 downto 0);
+  signal info                      : std_logic_vector(1 downto 0);
+  signal info_reg                  : std_logic_vector(1 downto 0);
+  signal info_2reg                 : std_logic_vector(1 downto 0);
+  signal info_3reg                 : std_logic_vector(1 downto 0);
 --
-  signal conv_finished    : std_logic;
-  signal thermocode       : std_logic_vector(288 downto 0);
-  signal thermocode_r     : std_logic_vector(287 downto 0);
-  signal start_pipeline   : std_logic_vector(10 downto 0) := (others => '0');
-  signal chain_pipeline   : std_logic_vector(18 downto 0) := (others => '0');
+  signal conv_finished             : std_logic;
+  signal thermocode                : std_logic_vector(288 downto 0);
+  signal thermocode_r              : std_logic_vector(287 downto 0);
+  signal thermocode_tmp            : std_logic_vector(287 downto 0);
+  signal start_pipeline            : std_logic_vector(10 downto 0) := (others => '0');
+  signal chain_pipeline            : std_logic_vector(18 downto 0) := (others => '0');
 --debug
+  type std_logic_vector_array_288 is array(integer range <>) of std_logic_vector(287 downto 0);
   type std_logic_vector_array_10 is array(integer range <>) of std_logic_vector(9 downto 0);
-  signal decimal_code_i   : std_logic_vector_array_10(0 to 3);
-  signal chain            : std_logic_vector(15 downto 0);
-  signal chain_valid      : std_logic;
-
+  signal decimal_code_i            : std_logic_vector_array_10(0 to 3);
+  signal chain                     : std_logic_vector(15 downto 0);
+  signal chain_valid               : std_logic;
+  signal start_in_r                : std_logic                     := '0';
+  signal start_in_2r               : std_logic                     := '0';
+  signal thermocode_array          : std_logic_vector_array_288(0 to 1);
+  signal thermocode_r1             : std_logic_vector(287 downto 0);
+  signal thermocode_f1             : std_logic_vector(287 downto 0);
+  signal thermocode_r2             : std_logic_vector(287 downto 0);
+  signal thermocode_f2             : std_logic_vector(287 downto 0);
+  signal start_r                   : std_logic                     := '0';
+  signal start_f                   : std_logic                     := '0';
+  signal chain_r                   : std_logic_vector(15 downto 0);
+  signal chain_f                   : std_logic_vector(15 downto 0);
+  type CHAIN_FSM_TYPE is (IDLE, LEADING_EDGE, LEADING_EDGE_2ND, TRAILING_EDGE);
+  signal STATE_CURRENT, STATE_NEXT : CHAIN_FSM_TYPE;
+    
+  
   attribute syn_keep                     : boolean;
   attribute syn_keep of mux_control      : signal is true;
   attribute syn_keep of mux_control_reg  : signal is true;
@@ -164,7 +180,8 @@ begin
     end if;
   end process Interval_Selection;
 
-  The_ROM : entity work.ROM_encoder_3
+--  The_ROM : entity work.ROM_encoder_3 --SIMULATION
+  The_ROM : entity work.ROM_encoder_4   --REAL
     port map (
       Address    => address,
       OutClock   => CLK,
@@ -227,6 +244,7 @@ begin
 -- DEBUG DATA FORMATS
 -------------------------------------------------------------------------------
   DATA_FORMAT_13 : if TDC_DATA_FORMAT = 13 generate
+    -- purpose: write decimal value and the chain
     SampleThermocode : process (CLK) is
     begin
       if rising_edge(CLK) then          -- rising clock edge
@@ -252,11 +270,10 @@ begin
           chain_pipeline(0) <= '0';
         end if;
 
-        FINISHED_OUT                <= conv_finished;
-        decimal_code_r              <= mux_control_3reg & interval_decimal;
-        decimal_code_f              <= decimal_code_r;
-        conv_finished               <= start_pipeline(5);
-        chain_pipeline(18 downto 1) <= chain_pipeline(17 downto 0);
+        FINISHED_OUT   <= conv_finished;
+        decimal_code_r <= mux_control_3reg & interval_decimal;
+        decimal_code_f <= decimal_code_r;
+        conv_finished  <= start_pipeline(5);
       end if;
     end process Decimal_Code_Calculation;
 --
@@ -270,15 +287,18 @@ begin
             tmp(j) := tmp(j) or (thermocode_r(i*16+j) and chain_pipeline(i+1));
           end loop;
         end loop;
-        chain           <= tmp;
-        chain_valid     <= or_all(chain_pipeline(18 downto 1));
-        CHAIN_DATA_OUT  <= chain;
-        CHAIN_VALID_OUT <= chain_valid;
+        chain                       <= tmp;
+        chain_pipeline(18 downto 1) <= chain_pipeline(17 downto 0);
+        chain_valid                 <= or_all(chain_pipeline(18 downto 1));
+        CHAIN_DATA_OUT              <= chain;
+        CHAIN_VALID_OUT             <= chain_valid;
       end if;
     end process Chain_Readout;
+--
   end generate DATA_FORMAT_13;
-
+-------------------------------------------------------------------------------
   DATA_FORMAT_14 : if TDC_DATA_FORMAT = 14 generate
+    -- purpose: 
     Decimal_Code_Calculation : process (CLK)
     begin
       if rising_edge(CLK) then
@@ -313,34 +333,110 @@ begin
       end if;
     end process Decimal_Code_Calculation;
   end generate DATA_FORMAT_14;
-
+-------------------------------------------------------------------------------
   DATA_FORMAT_15 : if TDC_DATA_FORMAT = 15 generate
-    SampleThermocode : process (CLK) is
+    FSM_CHAIN_SEQUENTIAL: process (CLK) is
     begin
-      if rising_edge(CLK) then          -- rising clock edge
-        if START_IN = '1' then
-          thermocode_r <= THERMOCODE_IN;
+      -- Outputs to be registered
+      if rising_edge(CLK) then  -- rising clock edge
+        if RESET = '1' then
+          STATE_CURRENT <= IDLE;
+        else
+          STATE_CURRENT <= STATE_NEXT;
         end if;
-      end if;
-    end process SampleThermocode;
---
-    Chain_Readout : process (CLK)
-      variable tmp : std_logic_vector(15 downto 0);
-    begin
-      if rising_edge(CLK) then
-        tmp := (others => '0');
-        make_mux : for i in 0 to 17 loop
-          make_mux_2 : for j in 0 to 15 loop
-            tmp(j) := tmp(j) or (thermocode_r(i*16+j) and chain_pipeline(i));
-          end loop;
-        end loop;
-        chain                       <= tmp;
-        chain_valid                 <= or_all(chain_pipeline(17 downto 0));
-        CHAIN_DATA_OUT              <= chain;
+        thermocode_r1 <= thermocode_f1;
+        thermocode_r2 <= thermocode_f2;
+        start_r       <= start_f;
+        chain_r       <= chain_f;
+        
+        chain_pipeline(18 downto 0) <= chain_pipeline(17 downto 0) & start_r;
+        chain_valid                 <= or_all(chain_pipeline(16 downto 0)) or start_r;
+        CHAIN_DATA_OUT              <= chain_r;
         CHAIN_VALID_OUT             <= chain_valid;
-        chain_pipeline(17 downto 0) <= chain_pipeline(16 downto 0) & START_IN;
       end if;
-    end process Chain_Readout;
+      -- Outputs not to be registered
+      
+    end process FSM_CHAIN_SEQUENTIAL;
+
+    FSM_CHAIN_COMBINATIONAL : process (STATE_CURRENT, START_IN, THERMOCODE_IN, chain_pipeline, chain_valid, thermocode_r1, thermocode_r2) is
+    begin
+      -- Default values
+      STATE_NEXT    <= STATE_CURRENT;
+      thermocode_f1 <= (others => '0');
+      thermocode_f2 <= thermocode_r2;
+      start_f       <= '0';
+      chain_f       <= (others => '0');
+      
+      case STATE_CURRENT is
+        when IDLE =>
+          if START_IN = '1' then
+            STATE_NEXT    <= LEADING_EDGE;
+            thermocode_f1 <= THERMOCODE_IN;
+            start_f       <= '1';
+          end if;
+
+        when LEADING_EDGE =>
+          if START_IN = '1' then
+            STATE_NEXT    <= LEADING_EDGE_2ND;
+            thermocode_f2 <= THERMOCODE_IN;
+          elsif chain_pipeline(18) = '1' then
+            STATE_NEXT <= IDLE;
+          end if;
+          chain_f       <= thermocode_r1(15 downto 0);
+          thermocode_f1 <= x"0000" & thermocode_r1(287 downto 16);
+
+        when LEADING_EDGE_2ND =>
+          if chain_valid = '0' then
+            STATE_NEXT <= TRAILING_EDGE;
+            start_f    <= '1';
+          end if;
+          chain_f       <= thermocode_r1(15 downto 0);
+          thermocode_f1 <= x"0000" & thermocode_r1(287 downto 16);
+
+        when TRAILING_EDGE =>
+          if chain_valid = '0' and start_r = '0'then
+            STATE_NEXT <= IDLE;
+          end if;
+          chain_f       <= thermocode_r2(15 downto 0);
+          thermocode_f2 <= x"0000" & thermocode_r2(287 downto 16);
+                    
+        when others =>
+          STATE_NEXT <= IDLE;
+      end case;
+    end process FSM_CHAIN_COMBINATIONAL;
+
+
+    
+
+--    SampleThermocode : process (CLK) is
+--    begin
+--      if rising_edge(CLK) then          -- rising clock edge
+--        if START_IN = '1' then
+--          thermocode_tmp <= THERMOCODE_IN;
+--        end if;
+--        if chain_pipeline = "0000000000000000001" or chain_pipeline = "1000000000000000000"then
+--          thermocode_r <= thermocode_tmp;
+--        end if;
+--      end if;
+--    end process SampleThermocode;
+----
+--    Chain_Readout : process (CLK)
+--      variable tmp : std_logic_vector(15 downto 0);
+--    begin
+--      if rising_edge(CLK) then
+--        tmp := (others => '0');
+--        make_mux : for i in 0 to 17 loop
+--          make_mux_2 : for j in 0 to 15 loop
+--            tmp(j) := tmp(j) or (thermocode_r(i*16+j) and chain_pipeline(i+1));
+--          end loop;
+--        end loop;
+--        chain                       <= tmp;
+--        chain_valid                 <= or_all(chain_pipeline(18 downto 1));
+--        CHAIN_DATA_OUT              <= chain;
+--        CHAIN_VALID_OUT             <= chain_valid;
+--        chain_pipeline(18 downto 0) <= chain_pipeline(17 downto 0) & START_IN;
+--      end if;
+--    end process Chain_Readout;
   end generate DATA_FORMAT_15;
 
 -------------------------------------------------------------------------------
index 0b051446ab355e4a54311a0ceef7b5a1f60519ae..15d512f53881085925bb23b0bede58fe49882209 120000 (symlink)
@@ -1 +1 @@
-rom_encoder/ecp5/ROM_encoder_3/ROM_encoder_3.vhd
\ No newline at end of file
+rom_encoder/ecp5/ROM_encoder_4/ROM_encoder_4.vhd
\ No newline at end of file
index 7d0e50a86a3d67205ac7f90c42810f1fadca3507..ad4e12189d9fd68af3a602527b8d0ccb1a8c4dca 100644 (file)
@@ -95,7 +95,7 @@ architecture TDC_record of TDC_record is
   signal calibration_freq_select                          : unsigned(3 downto 0)                        := (others => '0');
   signal cal_cntr_start                                   : std_logic;
   signal cal_cntr_start_sync                              : std_logic;
-  signal cal_cntr                                         : std_logic_vector(2 downto 0);
+  signal cal_cntr                                         : std_logic_vector(4 downto 0);
 -- To the channels
   signal rd_en                                            : std_logic_vector(CHANNEL_NUMBER-1 downto 0);
   signal trg_time                                         : std_logic_vector(38 downto 0);
@@ -243,9 +243,9 @@ begin
   begin
     if rising_edge(HIT_CAL_IN) then     -- rising clock edge
       if cal_cntr_start = '0' then
-        cal_cntr <= "100";
+        cal_cntr <= "01000";
       else
-        cal_cntr <= std_logic_vector(unsigned(cal_cntr) + to_unsigned(1, 3));
+        cal_cntr <= std_logic_vector(unsigned(cal_cntr) + to_unsigned(1, 5));
       end if;
       cal_cntr_start_sync <= calibration_on;
       cal_cntr_start      <= cal_cntr_start_sync;
index 1973a267c2543d43f74c7204f25d9a9171cb15ff..1cb327f239e42325719ed8d8aa39df9ae36afce1 100644 (file)
@@ -5,21 +5,21 @@
 ##                 DELAY LINE and HIT BUFFER PLACEMENTS                    ##
 ##############################################################################
 ##############################################################################
-UGROUP "Ref_Ch" BBOX 1 36 
-       BLKNAME THE_TDC/ReferenceChannel/Channel200/SimAdderNo.FC
+UGROUP "Ref_Ch" BBOX 1 36
+       BLKNAME THE_TDC/ReferenceChannel/Channel200/SimAdderNo5.FC
        ;
-LOCATE UGROUP "Ref_Ch" SITE "R11C44D" ;
+LOCATE UGROUP "Ref_Ch" SITE "R8C44D" ;
 UGROUP "hitBuf_ref" BBOX 1 1 
        BLKNAME THE_TDC/hit_mux_ref
        ;
-LOCATE UGROUP "hitBuf_ref" SITE "R12C45D" ;
+LOCATE UGROUP "hitBuf_ref" SITE "R9C45D" ;
 UGROUP "Ref_ff_en" BBOX 1 1 
        BLKNAME THE_TDC/ReferenceChannel/Channel200/ff_array_en_1_i
        ;
-LOCATE UGROUP "Ref_ff_en" SITE "R12C62D" ;
+LOCATE UGROUP "Ref_ff_en" SITE "R9C62D" ;
 #
-UGROUP "FC_1" BBOX 1 36 
-       BLKNAME THE_TDC/GEN_Channels.1.Channels/Channel200/SimAdderNo.FC
+UGROUP "FC_1" BBOX 1 36
+       BLKNAME THE_TDC/GEN_Channels.1.Channels/Channel200/SimAdderNo5.FC
        ;
 LOCATE UGROUP "FC_1" SITE "R11C2D" ;
 UGROUP "hitBuf_1" BBOX 1 1 
@@ -31,8 +31,8 @@ UGROUP "ff_en_1" BBOX 1 1
        ;
 LOCATE UGROUP "ff_en_1" SITE "R12C20D" ;
 #
-UGROUP "FC_2" BBOX 1 36 
-       BLKNAME THE_TDC/GEN_Channels.2.Channels/Channel200/SimAdderNo.FC
+UGROUP "FC_2" BBOX 1 36
+       BLKNAME THE_TDC/GEN_Channels.2.Channels/Channel200/SimAdderNo5.FC
        ;
 LOCATE UGROUP "FC_2" SITE "R13C2D" ;
 UGROUP "hitBuf_2" BBOX 1 1 
@@ -44,8 +44,8 @@ UGROUP "ff_en_2" BBOX 1 1
        ;
 LOCATE UGROUP "ff_en_2" SITE "R14C20D" ;
 #
-UGROUP "FC_3" BBOX 1 36 
-       BLKNAME THE_TDC/GEN_Channels.3.Channels/Channel200/SimAdderNo.FC
+UGROUP "FC_3" BBOX 1 36
+       BLKNAME THE_TDC/GEN_Channels.3.Channels/Channel200/SimAdderNo5.FC
        ;
 LOCATE UGROUP "FC_3" SITE "R30C2D" ;
 UGROUP "hitBuf_3" BBOX 1 1 
@@ -57,8 +57,8 @@ UGROUP "ff_en_3" BBOX 1 1
        ;
 LOCATE UGROUP "ff_en_3" SITE "R31C20D" ;
 #
-UGROUP "FC_4" BBOX 1 36 
-       BLKNAME THE_TDC/GEN_Channels.4.Channels/Channel200/SimAdderNo.FC
+UGROUP "FC_4" BBOX 1 36
+       BLKNAME THE_TDC/GEN_Channels.4.Channels/Channel200/SimAdderNo5.FC
        ;
 LOCATE UGROUP "FC_4" SITE "R32C2D" ;
 UGROUP "hitBuf_4" BBOX 1 1 
@@ -71,7 +71,7 @@ UGROUP "ff_en_4" BBOX 1 1
 LOCATE UGROUP "ff_en_4" SITE "R33C20D" ;
 #
 UGROUP "FC_5" BBOX 1 36 
-       BLKNAME THE_TDC/GEN_Channels.5.Channels/Channel200/SimAdderNo.FC
+       BLKNAME THE_TDC/GEN_Channels.5.Channels/Channel200/SimAdderNo5.FC
        ;
 LOCATE UGROUP "FC_5" SITE "R35C2D" ;
 UGROUP "hitBuf_5" BBOX 1 1 
@@ -84,7 +84,7 @@ UGROUP "ff_en_5" BBOX 1 1
 LOCATE UGROUP "ff_en_5" SITE "R36C20D" ;
 #
 UGROUP "FC_6" BBOX 1 36 
-       BLKNAME THE_TDC/GEN_Channels.6.Channels/Channel200/SimAdderNo.FC
+       BLKNAME THE_TDC/GEN_Channels.6.Channels/Channel200/SimAdderNo5.FC
        ;
 LOCATE UGROUP "FC_6" SITE "R37C2D" ;
 UGROUP "hitBuf_6" BBOX 1 1 
@@ -97,7 +97,7 @@ UGROUP "ff_en_6" BBOX 1 1
 LOCATE UGROUP "ff_en_6" SITE "R38C20D" ;
 #
 UGROUP "FC_7" BBOX 1 36 
-       BLKNAME THE_TDC/GEN_Channels.7.Channels/Channel200/SimAdderNo.FC
+       BLKNAME THE_TDC/GEN_Channels.7.Channels/Channel200/SimAdderNo5.FC
        ;
 LOCATE UGROUP "FC_7" SITE "R54C2D" ;
 UGROUP "hitBuf_7" BBOX 1 1 
@@ -110,7 +110,7 @@ UGROUP "ff_en_7" BBOX 1 1
 LOCATE UGROUP "ff_en_7" SITE "R55C20D" ;
 #
 UGROUP "FC_8" BBOX 1 36 
-       BLKNAME THE_TDC/GEN_Channels.8.Channels/Channel200/SimAdderNo.FC
+       BLKNAME THE_TDC/GEN_Channels.8.Channels/Channel200/SimAdderNo5.FC
        ;
 LOCATE UGROUP "FC_8" SITE "R56C2D" ;
 UGROUP "hitBuf_8" BBOX 1 1 
@@ -123,7 +123,7 @@ UGROUP "ff_en_8" BBOX 1 1
 LOCATE UGROUP "ff_en_8" SITE "R57C20D" ;
 #
 UGROUP "FC_9" BBOX 1 36 
-       BLKNAME THE_TDC/GEN_Channels.9.Channels/Channel200/SimAdderNo.FC
+       BLKNAME THE_TDC/GEN_Channels.9.Channels/Channel200/SimAdderNo5.FC
        ;
 LOCATE UGROUP "FC_9" SITE "R59C2D" ;
 UGROUP "hitBuf_9" BBOX 1 1 
@@ -136,7 +136,7 @@ UGROUP "ff_en_9" BBOX 1 1
 LOCATE UGROUP "ff_en_9" SITE "R60C20D" ;
 #
 UGROUP "FC_10" BBOX 1 36 
-       BLKNAME THE_TDC/GEN_Channels.10.Channels/Channel200/SimAdderNo.FC
+       BLKNAME THE_TDC/GEN_Channels.10.Channels/Channel200/SimAdderNo5.FC
        ;
 LOCATE UGROUP "FC_10" SITE "R61C2D" ;
 UGROUP "hitBuf_10" BBOX 1 1 
@@ -149,7 +149,7 @@ UGROUP "ff_en_10" BBOX 1 1
 LOCATE UGROUP "ff_en_10" SITE "R62C20D" ;
 #
 UGROUP "FC_11" BBOX 1 36 
-       BLKNAME THE_TDC/GEN_Channels.11.Channels/Channel200/SimAdderNo.FC
+       BLKNAME THE_TDC/GEN_Channels.11.Channels/Channel200/SimAdderNo5.FC
        ;
 LOCATE UGROUP "FC_11" SITE "R78C2D" ;
 UGROUP "hitBuf_11" BBOX 1 1 
@@ -162,7 +162,7 @@ UGROUP "ff_en_11" BBOX 1 1
 LOCATE UGROUP "ff_en_11" SITE "R79C20D" ;
 #
 UGROUP "FC_12" BBOX 1 36 
-       BLKNAME THE_TDC/GEN_Channels.12.Channels/Channel200/SimAdderNo.FC
+       BLKNAME THE_TDC/GEN_Channels.12.Channels/Channel200/SimAdderNo5.FC
        ;
 LOCATE UGROUP "FC_12" SITE "R80C2D" ;
 UGROUP "hitBuf_12" BBOX 1 1 
@@ -175,7 +175,7 @@ UGROUP "ff_en_12" BBOX 1 1
 LOCATE UGROUP "ff_en_12" SITE "R81C20D" ;
 #
 UGROUP "FC_13" BBOX 1 36 
-       BLKNAME THE_TDC/GEN_Channels.13.Channels/Channel200/SimAdderNo.FC
+       BLKNAME THE_TDC/GEN_Channels.13.Channels/Channel200/SimAdderNo5.FC
        ;
 LOCATE UGROUP "FC_13" SITE "R90C2D" ;
 UGROUP "hitBuf_13" BBOX 1 1 
@@ -188,7 +188,7 @@ UGROUP "ff_en_13" BBOX 1 1
 LOCATE UGROUP "ff_en_13" SITE "R91C20D" ;
 #
 UGROUP "FC_14" BBOX 1 36 
-       BLKNAME THE_TDC/GEN_Channels.14.Channels/Channel200/SimAdderNo.FC
+       BLKNAME THE_TDC/GEN_Channels.14.Channels/Channel200/SimAdderNo5.FC
        ;
 LOCATE UGROUP "FC_14" SITE "R92C2D" ;
 UGROUP "hitBuf_14" BBOX 1 1 
@@ -201,7 +201,7 @@ UGROUP "ff_en_14" BBOX 1 1
 LOCATE UGROUP "ff_en_14" SITE "R93C20D" ;
 #
 UGROUP "FC_15" BBOX 1 36 
-       BLKNAME THE_TDC/GEN_Channels.15.Channels/Channel200/SimAdderNo.FC
+       BLKNAME THE_TDC/GEN_Channels.15.Channels/Channel200/SimAdderNo5.FC
        ;
 LOCATE UGROUP "FC_15" SITE "R90C86D" ;
 UGROUP "hitBuf_15" BBOX 1 1 
@@ -214,7 +214,7 @@ UGROUP "ff_en_15" BBOX 1 1
 LOCATE UGROUP "ff_en_15" SITE "R91C104D" ;
 #
 UGROUP "FC_16" BBOX 1 36 
-       BLKNAME THE_TDC/GEN_Channels.16.Channels/Channel200/SimAdderNo.FC
+       BLKNAME THE_TDC/GEN_Channels.16.Channels/Channel200/SimAdderNo5.FC
        ;
 LOCATE UGROUP "FC_16" SITE "R92C86D" ;
 UGROUP "hitBuf_16" BBOX 1 1 
@@ -227,7 +227,7 @@ UGROUP "ff_en_16" BBOX 1 1
 LOCATE UGROUP "ff_en_16" SITE "R93C104D" ;
 #
 UGROUP "FC_17" BBOX 1 36 
-       BLKNAME THE_TDC/GEN_Channels.17.Channels/Channel200/SimAdderNo.FC
+       BLKNAME THE_TDC/GEN_Channels.17.Channels/Channel200/SimAdderNo5.FC
        ;
 LOCATE UGROUP "FC_17" SITE "R11C86D" ;
 UGROUP "hitBuf_17" BBOX 1 1 
@@ -240,7 +240,7 @@ UGROUP "ff_en_17" BBOX 1 1
 LOCATE UGROUP "ff_en_17" SITE "R12C104D" ;
 #
 UGROUP "FC_18" BBOX 1 36 
-       BLKNAME THE_TDC/GEN_Channels.18.Channels/Channel200/SimAdderNo.FC
+       BLKNAME THE_TDC/GEN_Channels.18.Channels/Channel200/SimAdderNo5.FC
        ;
 LOCATE UGROUP "FC_18" SITE "R13C86D" ;
 UGROUP "hitBuf_18" BBOX 1 1 
@@ -253,7 +253,7 @@ UGROUP "ff_en_18" BBOX 1 1
 LOCATE UGROUP "ff_en_18" SITE "R14C104D" ;
 #
 UGROUP "FC_19" BBOX 1 36 
-       BLKNAME THE_TDC/GEN_Channels.19.Channels/Channel200/SimAdderNo.FC
+       BLKNAME THE_TDC/GEN_Channels.19.Channels/Channel200/SimAdderNo5.FC
        ;
 LOCATE UGROUP "FC_19" SITE "R30C86D" ;
 UGROUP "hitBuf_19" BBOX 1 1 
@@ -266,7 +266,7 @@ UGROUP "ff_en_19" BBOX 1 1
 LOCATE UGROUP "ff_en_19" SITE "R31C104D" ;
 #
 UGROUP "FC_20" BBOX 1 36 
-       BLKNAME THE_TDC/GEN_Channels.20.Channels/Channel200/SimAdderNo.FC
+       BLKNAME THE_TDC/GEN_Channels.20.Channels/Channel200/SimAdderNo5.FC
        ;
 LOCATE UGROUP "FC_20" SITE "R32C86D" ;
 UGROUP "hitBuf_20" BBOX 1 1 
@@ -279,7 +279,7 @@ UGROUP "ff_en_20" BBOX 1 1
 LOCATE UGROUP "ff_en_20" SITE "R33C104D" ;
 #
 UGROUP "FC_21" BBOX 1 36 
-       BLKNAME THE_TDC/GEN_Channels.21.Channels/Channel200/SimAdderNo.FC
+       BLKNAME THE_TDC/GEN_Channels.21.Channels/Channel200/SimAdderNo5.FC
        ;
 LOCATE UGROUP "FC_21" SITE "R35C86D" ;
 UGROUP "hitBuf_21" BBOX 1 1 
@@ -292,7 +292,7 @@ UGROUP "ff_en_21" BBOX 1 1
 LOCATE UGROUP "ff_en_21" SITE "R36C104D" ;
 #
 UGROUP "FC_22" BBOX 1 36 
-       BLKNAME THE_TDC/GEN_Channels.22.Channels/Channel200/SimAdderNo.FC
+       BLKNAME THE_TDC/GEN_Channels.22.Channels/Channel200/SimAdderNo5.FC
        ;
 LOCATE UGROUP "FC_22" SITE "R37C86D" ;
 UGROUP "hitBuf_22" BBOX 1 1 
@@ -305,7 +305,7 @@ UGROUP "ff_en_22" BBOX 1 1
 LOCATE UGROUP "ff_en_22" SITE "R38C104D" ;
 #
 UGROUP "FC_23" BBOX 1 36 
-       BLKNAME THE_TDC/GEN_Channels.23.Channels/Channel200/SimAdderNo.FC
+       BLKNAME THE_TDC/GEN_Channels.23.Channels/Channel200/SimAdderNo5.FC
        ;
 LOCATE UGROUP "FC_23" SITE "R54C86D" ;
 UGROUP "hitBuf_23" BBOX 1 1 
@@ -318,7 +318,7 @@ UGROUP "ff_en_23" BBOX 1 1
 LOCATE UGROUP "ff_en_23" SITE "R55C104D" ;
 #
 UGROUP "FC_24" BBOX 1 36 
-       BLKNAME THE_TDC/GEN_Channels.24.Channels/Channel200/SimAdderNo.FC
+       BLKNAME THE_TDC/GEN_Channels.24.Channels/Channel200/SimAdderNo5.FC
        ;
 LOCATE UGROUP "FC_24" SITE "R56C86D" ;
 UGROUP "hitBuf_24" BBOX 1 1 
@@ -331,7 +331,7 @@ UGROUP "ff_en_24" BBOX 1 1
 LOCATE UGROUP "ff_en_24" SITE "R57C104D" ;
 #
 UGROUP "FC_25" BBOX 1 36 
-       BLKNAME THE_TDC/GEN_Channels.25.Channels/Channel200/SimAdderNo.FC
+       BLKNAME THE_TDC/GEN_Channels.25.Channels/Channel200/SimAdderNo5.FC
        ;
 LOCATE UGROUP "FC_25" SITE "R59C86D" ;
 UGROUP "hitBuf_25" BBOX 1 1 
@@ -344,7 +344,7 @@ UGROUP "ff_en_25" BBOX 1 1
 LOCATE UGROUP "ff_en_25" SITE "R60C104D" ;
 #
 UGROUP "FC_26" BBOX 1 36 
-       BLKNAME THE_TDC/GEN_Channels.26.Channels/Channel200/SimAdderNo.FC
+       BLKNAME THE_TDC/GEN_Channels.26.Channels/Channel200/SimAdderNo5.FC
        ;
 LOCATE UGROUP "FC_26" SITE "R61C86D" ;
 UGROUP "hitBuf_26" BBOX 1 1 
@@ -357,7 +357,7 @@ UGROUP "ff_en_26" BBOX 1 1
 LOCATE UGROUP "ff_en_26" SITE "R62C104D" ;
 #
 UGROUP "FC_27" BBOX 1 36 
-       BLKNAME THE_TDC/GEN_Channels.27.Channels/Channel200/SimAdderNo.FC
+       BLKNAME THE_TDC/GEN_Channels.27.Channels/Channel200/SimAdderNo5.FC
        ;
 LOCATE UGROUP "FC_27" SITE "R78C86D" ;
 UGROUP "hitBuf_27" BBOX 1 1 
@@ -370,7 +370,7 @@ UGROUP "ff_en_27" BBOX 1 1
 LOCATE UGROUP "ff_en_27" SITE "R79C104D" ;
 #
 UGROUP "FC_28" BBOX 1 36 
-       BLKNAME THE_TDC/GEN_Channels.28.Channels/Channel200/SimAdderNo.FC
+       BLKNAME THE_TDC/GEN_Channels.28.Channels/Channel200/SimAdderNo5.FC
        ;
 LOCATE UGROUP "FC_28" SITE "R80C86D" ;
 UGROUP "hitBuf_28" BBOX 1 1 
@@ -383,33 +383,33 @@ UGROUP "ff_en_28" BBOX 1 1
 LOCATE UGROUP "ff_en_28" SITE "R81C104D" ;
 #
 UGROUP "FC_29" BBOX 1 36 
-       BLKNAME THE_TDC/GEN_Channels.29.Channels/Channel200/SimAdderNo.FC
+       BLKNAME THE_TDC/GEN_Channels.29.Channels/Channel200/SimAdderNo5.FC
        ;
-LOCATE UGROUP "FC_29" SITE "R71C44D" ;
+LOCATE UGROUP "FC_29" SITE "R11C44D" ;
 UGROUP "hitBuf_29" BBOX 1 1 
        BLKNAME THE_TDC/GEN_hit_mux.29.hit_mux_ch
        ;
-LOCATE UGROUP "hitBuf_29" SITE "R72C45D" ;
+LOCATE UGROUP "hitBuf_29" SITE "R12C45D" ;
 UGROUP "ff_en_29" BBOX 1 1 
        BLKNAME THE_TDC/GEN_Channels.29.Channels/Channel200/ff_array_en_1_i
        ;
-LOCATE UGROUP "ff_en_29" SITE "R72C62D" ;
+LOCATE UGROUP "ff_en_29" SITE "R12C62D" ;
 #
 UGROUP "FC_30" BBOX 1 36 
-       BLKNAME THE_TDC/GEN_Channels.30.Channels/Channel200/SimAdderNo.FC
+       BLKNAME THE_TDC/GEN_Channels.30.Channels/Channel200/SimAdderNo5.FC
        ;
-LOCATE UGROUP "FC_30" SITE "R73C44D" ;
+LOCATE UGROUP "FC_30" SITE "R13C44D" ;
 UGROUP "hitBuf_30" BBOX 1 1 
        BLKNAME THE_TDC/GEN_hit_mux.30.hit_mux_ch
        ;
-LOCATE UGROUP "hitBuf_30" SITE "R74C45D" ;
+LOCATE UGROUP "hitBuf_30" SITE "R14C45D" ;
 UGROUP "ff_en_30" BBOX 1 1 
        BLKNAME THE_TDC/GEN_Channels.30.Channels/Channel200/ff_array_en_1_i
        ;
-LOCATE UGROUP "ff_en_30" SITE "R74C62D" ;
+LOCATE UGROUP "ff_en_30" SITE "R14C62D" ;
 #
 UGROUP "FC_31" BBOX 1 36 
-       BLKNAME THE_TDC/GEN_Channels.31.Channels/Channel200/SimAdderNo.FC
+       BLKNAME THE_TDC/GEN_Channels.31.Channels/Channel200/SimAdderNo5.FC
        ;
 LOCATE UGROUP "FC_31" SITE "R90C44D" ;
 UGROUP "hitBuf_31" BBOX 1 1 
@@ -421,8 +421,8 @@ UGROUP "ff_en_31" BBOX 1 1
        ;
 LOCATE UGROUP "ff_en_31" SITE "R91C62D" ;
 #
-UGROUP "FC_32" BBOX 1 36 
-       BLKNAME THE_TDC/GEN_Channels.32.Channels/Channel200/SimAdderNo.FC
+UGROUP "FC_32" BBOX 1 36
+       BLKNAME THE_TDC/GEN_Channels.32.Channels/Channel200/SimAdderNo5.FC
        ;
 LOCATE UGROUP "FC_32" SITE "R92C44D" ;
 UGROUP "hitBuf_32" BBOX 1 1 
@@ -436,7 +436,7 @@ LOCATE UGROUP "ff_en_32" SITE "R93C62D" ;
 ##############################################################################
 ##                          CHANNEL PLACEMENTS                             ##
 ##############################################################################
-UGROUP "EF_LT1" BBOX 23 45 
+UGROUP "EF_LT1" BBOX 23 42 
        BLKNAME THE_TDC/GEN_Channels.1.Channels/Channel200
        BLKNAME THE_TDC/GEN_Channels.1.Channels/Buffer_128.The_Buffer
        BLKNAME THE_TDC/GEN_Channels.2.Channels/Channel200
@@ -447,7 +447,7 @@ UGROUP "EF_LT1" BBOX 23 45
        BLKNAME THE_TDC/GEN_Channels.4.Channels/Buffer_128.The_Buffer
        ;
 LOCATE UGROUP "EF_LT1" SITE "R11C2D" ;
-UGROUP "EF_LT2" BBOX 23 45 
+UGROUP "EF_LT2" BBOX 23 42 
        BLKNAME THE_TDC/GEN_Channels.5.Channels/Channel200
        BLKNAME THE_TDC/GEN_Channels.5.Channels/Buffer_128.The_Buffer
        BLKNAME THE_TDC/GEN_Channels.6.Channels/Channel200
@@ -458,7 +458,7 @@ UGROUP "EF_LT2" BBOX 23 45
        BLKNAME THE_TDC/GEN_Channels.8.Channels/Buffer_128.The_Buffer
        ;
 LOCATE UGROUP "EF_LT2" SITE "R35C2D" ;
-UGROUP "EF_LB2" BBOX 23 4
+UGROUP "EF_LB2" BBOX 23 42
        BLKNAME THE_TDC/GEN_Channels.9.Channels/Channel200
        BLKNAME THE_TDC/GEN_Channels.9.Channels/Buffer_128.The_Buffer
        BLKNAME THE_TDC/GEN_Channels.10.Channels/Channel200
@@ -469,14 +469,14 @@ UGROUP "EF_LB2" BBOX 23 45
        BLKNAME THE_TDC/GEN_Channels.12.Channels/Buffer_128.The_Buffer
        ;
 LOCATE UGROUP "EF_LB2" SITE "R59C2D" ;
-UGROUP "EF_LB1" BBOX 13 45 
+UGROUP "EF_LB1" BBOX 13 42 
        BLKNAME THE_TDC/GEN_Channels.13.Channels/Channel200
        BLKNAME THE_TDC/GEN_Channels.13.Channels/Buffer_128.The_Buffer
        BLKNAME THE_TDC/GEN_Channels.14.Channels/Channel200
        BLKNAME THE_TDC/GEN_Channels.14.Channels/Buffer_128.The_Buffer
        ;
 LOCATE UGROUP "EF_LB1" SITE "R81C2D" ;
-UGROUP "EF_RT1" BBOX 23 45 
+UGROUP "EF_RT1" BBOX 23 42 
        BLKNAME THE_TDC/GEN_Channels.17.Channels/Channel200
        BLKNAME THE_TDC/GEN_Channels.17.Channels/Buffer_128.The_Buffer
        BLKNAME THE_TDC/GEN_Channels.18.Channels/Channel200
@@ -486,8 +486,8 @@ UGROUP "EF_RT1" BBOX 23 45
        BLKNAME THE_TDC/GEN_Channels.20.Channels/Channel200
        BLKNAME THE_TDC/GEN_Channels.20.Channels/Buffer_128.The_Buffer
        ;
-LOCATE UGROUP "EF_RT1" SITE "R11C80D" ;
-UGROUP "EF_RT2" BBOX 23 45 
+LOCATE UGROUP "EF_RT1" SITE "R11C83D" ;
+UGROUP "EF_RT2" BBOX 23 42 
        BLKNAME THE_TDC/GEN_Channels.21.Channels/Channel200
        BLKNAME THE_TDC/GEN_Channels.21.Channels/Buffer_128.The_Buffer
        BLKNAME THE_TDC/GEN_Channels.22.Channels/Channel200
@@ -497,8 +497,8 @@ UGROUP "EF_RT2" BBOX 23 45
        BLKNAME THE_TDC/GEN_Channels.24.Channels/Channel200
        BLKNAME THE_TDC/GEN_Channels.24.Channels/Buffer_128.The_Buffer
        ;
-LOCATE UGROUP "EF_RT2" SITE "R35C80D" ;
-UGROUP "EF_RB2" BBOX 23 45 
+LOCATE UGROUP "EF_RT2" SITE "R35C83D" ;
+UGROUP "EF_RB2" BBOX 23 42 
        BLKNAME THE_TDC/GEN_Channels.25.Channels/Channel200
        BLKNAME THE_TDC/GEN_Channels.25.Channels/Buffer_128.The_Buffer
        BLKNAME THE_TDC/GEN_Channels.26.Channels/Channel200
@@ -508,25 +508,30 @@ UGROUP "EF_RB2" BBOX 23 45
        BLKNAME THE_TDC/GEN_Channels.28.Channels/Channel200
        BLKNAME THE_TDC/GEN_Channels.28.Channels/Buffer_128.The_Buffer
        ;
-LOCATE UGROUP "EF_RB2" SITE "R59C80D" ;
-UGROUP "EF_RB1" BBOX 13 45 
+LOCATE UGROUP "EF_RB2" SITE "R59C83D" ;
+UGROUP "EF_RB1" BBOX 13 42 
        BLKNAME THE_TDC/GEN_Channels.15.Channels/Channel200
        BLKNAME THE_TDC/GEN_Channels.15.Channels/Buffer_128.The_Buffer
        BLKNAME THE_TDC/GEN_Channels.16.Channels/Channel200
        BLKNAME THE_TDC/GEN_Channels.16.Channels/Buffer_128.The_Buffer
        ;
-LOCATE UGROUP "EF_RB1" SITE "R81C80D" ;
-UGROUP "EF_CB1" BBOX 30 33 
-       BLKNAME THE_TDC/GEN_Channels.29.Channels/Channel200
-       BLKNAME THE_TDC/GEN_Channels.29.Channels/Buffer_128.The_Buffer
-       BLKNAME THE_TDC/GEN_Channels.30.Channels/Channel200
-       BLKNAME THE_TDC/GEN_Channels.30.Channels/Buffer_128.The_Buffer
+LOCATE UGROUP "EF_RB1" SITE "R81C83D" ;
+UGROUP "EF_CB1" BBOX 13 39 
        BLKNAME THE_TDC/GEN_Channels.31.Channels/Channel200
-       BLKNAME THE_TDC/GEN_Channels.31.Channels/Buffer_128.The_Buffer
+       BLKNAME THE_TDC/GEN_Channels.31.Channels/Buffer_32.The_Buffer
        BLKNAME THE_TDC/GEN_Channels.32.Channels/Channel200
-       BLKNAME THE_TDC/GEN_Channels.32.Channels/Buffer_128.The_Buffer
+       BLKNAME THE_TDC/GEN_Channels.32.Channels/Buffer_32.The_Buffer
+       ;
+LOCATE UGROUP "EF_CB1" SITE "R59C44D" ;
+UGROUP "EF_CT1" BBOX 21 39 
+       BLKNAME THE_TDC/ReferenceChannel/Channel200
+       BLKNAME THE_TDC/ReferenceChannel/Buffer_32.The_Buffer
+       BLKNAME THE_TDC/GEN_Channels.29.Channels/Channel200
+       BLKNAME THE_TDC/GEN_Channels.29.Channels/Buffer_32.The_Buffer
+       BLKNAME THE_TDC/GEN_Channels.30.Channels/Channel200
+       BLKNAME THE_TDC/GEN_Channels.30.Channels/Buffer_32.The_Buffer
        ;
-LOCATE UGROUP "EF_CB1" SITE "R64C47D" ;
+LOCATE UGROUP "EF_CT1" SITE "R2C44D" ;
 #############################################################################
 ## Stretcher
 #############################################################################
@@ -557,8 +562,8 @@ LOCATE UGROUP "Stretcher_B" SITE "R2C2D" ;
 #BLOCK NET "THE_TDC/edge_rising[*]" ;
 #BLOCK NET "THE_TDC/edge_falling[*]" ;
 # MULTICYCLE FROM CELL "PROC_TDC_CTRL_REG*tdc_ctrl_reg*" 4x;
-# MULTICYCLE TO CELL "THE_TDC/GEN_Channels*Channels/Channel200/SimAdderNo*FC/FF*" 4x;
-# MULTICYCLE TO CELL "THE_TDC/ReferenceChannel/Channel200/SimAdderNo*FC/FF*" 4x;
+# MULTICYCLE TO CELL "THE_TDC/GEN_Channels*Channels/Channel200/SimAdderNo5*FC/FF*" 4x;
+# MULTICYCLE TO CELL "THE_TDC/ReferenceChannel/Channel200/SimAdderNo5*FC/FF*" 4x;
 ## Maybe effective
 # MULTICYCLE FROM CELL "THE_TDC/GEN_Channels*Channels/The_Buffer/*" TO CELL "THE_TDC/TheReadout/rd_en*" 2 X;
 # # BLOCK NET "THE_TDC/reset_tdc*" ;
@@ -579,8 +584,8 @@ BLOCK PATH TO GROUP "LED_group" ;
 BLOCK NET "THE_TDC/edge_falling_3r[*]" ;
 BLOCK NET "THE_TDC/edge_rising_3r[*]" ;
 BLOCK NET "TRIG_IN_c" ;
-BLOCK PATH FROM CELL "THE_TDC/calibration_on*" TO CELL "THE_TDC/ReferenceChannel/Channel200/SimAdderNo.FC/FF*" ;
-BLOCK PATH FROM CELL "THE_TDC/calibration_on*" TO CELL "THE_TDC/GEN_Channels.*.Channels/Channel200/SimAdderNo.FC/FF*" ;
+BLOCK PATH FROM CELL "THE_TDC/calibration_on*" TO CELL "THE_TDC/ReferenceChannel/Channel200/SimAdderNo5.FC/FF*" ;
+BLOCK PATH FROM CELL "THE_TDC/calibration_on*" TO CELL "THE_TDC/GEN_Channels.*.Channels/Channel200/SimAdderNo5.FC/FF*" ;
 
 MULTICYCLE FROM CELL "THE_TDC/reset_counters" 30.000000 ns ;
 MULTICYCLE FROM CELL "THE_TDC/reset_tdc*" TO CLKNET "CLOCK_IN_c" 4.000000 X ;
@@ -594,7 +599,7 @@ MULTICYCLE FROM CELL "THE_TDC/TheTriggerHandler/TRG_TIME_OUT[*]" TO CELL "THE_TD
 MULTICYCLE FROM CELL "THE_TDC/TheEpochCounter/counter*" TO CELL "THE_TDC/ReferenceChannel/Channel200/epoch_cntr*" 3.000000 X ;
 MULTICYCLE FROM CELL "THE_TDC/TheEpochCounter/counter*" TO CELL "THE_TDC/GEN_Channels*Channels/Channel200/epoch_cntr*" 3.000000 X ;
 MULTICYCLE FROM CELL "THE_ENDPOINT/THE_ENDPOINT/genbuffers.0.geniobuf.gentrgapi.the_trigger_apl/reg_TRG_TYPE_OUT[*]" TO CELL "THE_TDC/TheTriggerHandler/STATE_TW_CURRENT[*]" 2.000000 X ;
-#MULTICYCLE FROM CELL "THE_TDC/calibration_on*" TO CELL "THE_TDC/ReferenceChannel/Channel200/SimAdderNo.FC/FF*" 3.000000 X ;
-#MULTICYCLE FROM CELL "THE_TDC/calibration_on*" TO CELL "THE_TDC/GEN_Channels.*.Channels/Channel200/SimAdderNo.FC/FF*" 3.000000 X ;
+#MULTICYCLE FROM CELL "THE_TDC/calibration_on*" TO CELL "THE_TDC/ReferenceChannel/Channel200/SimAdderNo5.FC/FF*" 3.000000 X ;
+#MULTICYCLE FROM CELL "THE_TDC/calibration_on*" TO CELL "THE_TDC/GEN_Channels.*.Channels/Channel200/SimAdderNo5.FC/FF*" 3.000000 X ;
 
-#MAXDELAY NET "THE_TDC/hit_in_i*" 0.600000 nS ;
+MAXDELAY NET "THE_TDC/hit_in_i*" 1.000000 nS ;
index 82cb0068de7a518ef737d2ca41861be3fd28b10e..1d5dc0db982bf85060594a83895e6709af299694 100644 (file)
@@ -21,13 +21,13 @@ MULTICYCLE FROM CELL "THE_CLOCK_RESET/THE_RESET_HANDLER/final_reset*" 30.000000
 
 
 
-REGION "REGION_SPI" "R18C60D"  8 18 DEVSIZE;
+REGION "REGION_SPI" "R21C60D"  8 18 DEVSIZE;
 LOCATE UGROUP "THE_SPI_RELOAD/THE_SPI_MASTER/SPI_group" REGION "REGION_SPI";
 LOCATE UGROUP "THE_SPI_RELOAD/THE_SPI_MEMORY/SPI_group" REGION "REGION_SPI";
 
 
 
-REGION "REGION_TRBNET" "R2C47D"  85 33 DEVSIZE;
+REGION "REGION_TRBNET" "R23C44D"  46 39 DEVSIZE;
 LOCATE UGROUP "THE_ENDPOINT/THE_ENDPOINT/MPLEX/MUX_group" REGION "REGION_TRBNET";
 
 #LOCATE UGROUP "THE_ENDPOINT/THE_ENDPOINT/genbuffers.0.geniobuf.IOBUF/GEN_IBUF.THE_IBUF/IBUF_group" REGION "REGION_TRBNET";
index 2494fc9d497b45264938684f997798c4c7dea557..c3df7b1972f2f829652e15ad2a30e49bd55cd16d 100644 (file)
@@ -1,24 +1,24 @@
--- VHDL netlist generated by SCUBA Diamond (64-bit) 3.6.0.83.4
+-- VHDL netlist generated by SCUBA Diamond (64-bit) 3.8.0.115.3
 -- Module  Version: 5.4
---/opt/lattice/diamond/3.6_x64/ispfpga/bin/lin64/scuba -w -n ROM_encoder_3 -lang vhdl -synth synplify -bus_exp 7 -bb -arch sa5p00m -type bram -wp 00 -rp 1100 -addr_width 10 -data_width 8 -num_rows 1024 -outdata REGISTERED -cascade -1 -resetmode SYNC -sync_reset -memfile /home/cugur/Projects/TDC_on_TRB3/tdc/releases/tdc_v2.3/rom_encoder/rom_encoder.mem -memformat orca -fdc /home/cugur/Projects/TDC_on_TRB3/tdc/releases/tdc_v2.3/rom_encoder/ecp5/ROM_encoder_3/ROM_encoder_3.fdc 
+--/opt/lattice/diamond/3.8_x64/ispfpga/bin/lin64/scuba -w -n ROM_encoder_4 -lang vhdl -synth synplify -bus_exp 7 -bb -arch sa5p00m -type bram -wp 00 -rp 1100 -addr_width 10 -data_width 8 -num_rows 1024 -outdata REGISTERED -cascade -1 -resetmode SYNC -sync_reset -memfile /home/cugur/Projects/TDC_on_TRB3/tdc/releases/tdc_v2.3/rom_encoder/rom_encoder_dirich.mem -memformat orca -fdc /home/cugur/Projects/TDC_on_TRB3/tdc/releases/tdc_v2.3/rom_encoder/ecp5/ROM_encoder_4/ROM_encoder_4.fdc 
 
--- Wed Mar 23 17:39:41 2016
+-- Sun Apr  9 22:09:37 2017
 
 library IEEE;
 use IEEE.std_logic_1164.all;
 library ecp5um;
 use ecp5um.components.all;
 
-entity ROM_encoder_3 is
+entity ROM_encoder_4 is
     port (
         Address: in  std_logic_vector(9 downto 0); 
         OutClock: in  std_logic; 
         OutClockEn: in  std_logic; 
         Reset: in  std_logic; 
         Q: out  std_logic_vector(7 downto 0));
-end ROM_encoder_3;
+end ROM_encoder_4;
 
-architecture Structure of ROM_encoder_3 is
+architecture Structure of ROM_encoder_4 is
 
     -- internal signal declarations
     signal scuba_vhi: std_logic;
@@ -26,8 +26,8 @@ architecture Structure of ROM_encoder_3 is
 
     attribute MEM_LPC_FILE : string; 
     attribute MEM_INIT_FILE : string; 
-    attribute MEM_LPC_FILE of ROM_encoder_3_0_0_0 : label is "ROM_encoder_3.lpc";
-    attribute MEM_INIT_FILE of ROM_encoder_3_0_0_0 : label is "rom_encoder.mem";
+    attribute MEM_LPC_FILE of ROM_encoder_4_0_0_0 : label is "ROM_encoder_4.lpc";
+    attribute MEM_INIT_FILE of ROM_encoder_4_0_0_0 : label is "rom_encoder_dirich.mem";
     attribute NGD_DRC_MASK : integer;
     attribute NGD_DRC_MASK of Structure : architecture is 1;
 
@@ -39,24 +39,24 @@ begin
     scuba_vlo_inst: VLO
         port map (Z=>scuba_vlo);
 
-    ROM_encoder_3_0_0_0: DP16KD
+    ROM_encoder_4_0_0_0: DP16KD
         generic map (INIT_DATA=> "STATIC", ASYNC_RESET_RELEASE=> "SYNC", 
-        INITVAL_3F=> "0x00000000800008000081000000000000000000820008100081000820008200000000000008200083", 
-        INITVAL_3E=> "0x00000000000000000000000000000000000000000000000000000000008300000000000000000084", 
-        INITVAL_3D=> "0x00000000000000000000000000000000000000830008200083000830008300000000000008400084", 
-        INITVAL_3C=> "0x00000000000000000000000000000000000000000008300000000840008400000000000008500085", 
+        INITVAL_3F=> "0x00000000800008000081000000008100081000820000000000000000008200000000830008300083", 
+        INITVAL_3E=> "0x00000000800000000000000000008200083000830000000000000000008300000000840000000084", 
+        INITVAL_3D=> "0x00000000000000000000000000008200000000830000000000000000000000000000830000000084", 
+        INITVAL_3C=> "0x00000000000000000000000000000000000000830000000000000000000000000000850000000085", 
         INITVAL_3B=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
-        INITVAL_3A=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
-        INITVAL_39=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000085", 
-        INITVAL_38=> "0x00000000000000000000000000000000000000000008400000000000008500000000000008600086", 
-        INITVAL_37=> "0x00087000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_3A=> "0x00000000000000000000000000008300000000840000000000000000000000000000000000000085", 
+        INITVAL_39=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_38=> "0x00000000000000000000000860008300000000000000000000000000000000000000860000000086", 
+        INITVAL_37=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
         INITVAL_36=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000085", 
-        INITVAL_35=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000085", 
-        INITVAL_34=> "0x00000000000000000000000000000000000000000000000000000000008600000000000008600086", 
+        INITVAL_35=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_34=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000086", 
         INITVAL_33=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
-        INITVAL_32=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
-        INITVAL_31=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000086", 
-        INITVAL_30=> "0x00000000000000000000000000000000000000000008500000000000008700000000870008700087", 
+        INITVAL_32=> "0x00000000000000000086000000000000000000000000000000000000000000000000000000000086", 
+        INITVAL_31=> "0x00000000000000000000000000000000000000000000000000000000000000000000870000000000", 
+        INITVAL_30=> "0x00000000000000000000000000008700000000870000000000000000000000000000870000000087", 
         INITVAL_2F=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
         INITVAL_2E=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
         INITVAL_2D=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
@@ -74,37 +74,37 @@ begin
         INITVAL_21=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
         INITVAL_20=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
         INITVAL_1F=> "0x00087000000000000000000000000000000000000000000000000000000000000000000000000000", 
-        INITVAL_1E=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_1E=> "0x00000000000000000000000000000000087000000000000000000000000000000000000000000000", 
         INITVAL_1D=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
         INITVAL_1C=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
         INITVAL_1B=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
         INITVAL_1A=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
         INITVAL_19=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
-        INITVAL_18=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
-        INITVAL_17=> "0x00086000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_18=> "0x00000000000000000000000820000000000000000000000000000000000000000000000000000000", 
+        INITVAL_17=> "0x00087000000000000000000860000000000000000000000000000000000000000000000000000000", 
         INITVAL_16=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
-        INITVAL_15=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
-        INITVAL_14=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
-        INITVAL_13=> "0x00085000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_15=> "0x00086000000000000000000000000000000000000008500000000000000000000000000000000000", 
+        INITVAL_14=> "0x00000000000000000000000000000000000000000000000000000000000000000000850000000000", 
+        INITVAL_13=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
         INITVAL_12=> "0x00084000000000000000000000000000000000000000000000000000000000000000000000000000", 
-        INITVAL_11=> "0x00084000000000000000000000000000000000000000000000000000000000000000000000000000", 
-        INITVAL_10=> "0x00083000000000000000000000000000000000000008200000000000000000081000800000000000", 
-        INITVAL_0F=> "0x00087000000000000000000870000000000000000000000000000000000000000000000000000000", 
-        INITVAL_0E=> "0x00086000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_11=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_10=> "0x00000000000000000000000820008100000000000000000000000000000000081000800000000000", 
+        INITVAL_0F=> "0x00087000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_0E=> "0x00087000000000000000000000000000000000000000000000000000000000000000000000000000", 
         INITVAL_0D=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
-        INITVAL_0C=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
-        INITVAL_0B=> "0x00086000000000000000000860000000000000000000000000000000000000000000000000000000", 
-        INITVAL_0A=> "0x00085000000000000000000000000000000000000000000000000000000000000000000000000000", 
-        INITVAL_09=> "0x00085000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_0C=> "0x00085000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_0B=> "0x00086000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_0A=> "0x00085000000000000000000840000000000000000000000000000000000000000000000000000000", 
+        INITVAL_09=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
         INITVAL_08=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
-        INITVAL_07=> "0x00086000000000000000000860000000000000000000000000000000000000000000000000000000", 
-        INITVAL_06=> "0x00085000000000000000000000000000000000000000000000000000000000000000000000000000", 
-        INITVAL_05=> "0x00085000000000000000000000000000000000000000000000000000000000000000000000000000", 
-        INITVAL_04=> "0x00084000000000000000000840000000000000000000000000000000000000083000830000000000", 
-        INITVAL_03=> "0x00085000000000000000000840000000000000000000000000000000000000000000000000000000", 
-        INITVAL_02=> "0x00084000000000000000000840008400000000000000000000000000000000000000000000000000", 
-        INITVAL_01=> "0x00084000000000000000000830000000000000000000000000000000000000082000820000000000", 
-        INITVAL_00=> "0x00083000000000000000000820008200081000000008200082000810000000081000800008000000", 
+        INITVAL_07=> "0x00086000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_06=> "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_05=> "0x00085000000000000000000840000000000000000008400000000840000000000000000000000000", 
+        INITVAL_04=> "0x00000000000000000000000820000000000000000000000000000000000000000000000000000000", 
+        INITVAL_03=> "0x00085000000000000000000000000000000000000000000000000000000000000000000000000000", 
+        INITVAL_02=> "0x00084000840000000000000830008300000000000000000000000000000000083000000000000000", 
+        INITVAL_01=> "0x00084000000000000000000830000000000000000008300000000820000000082000000008200000", 
+        INITVAL_00=> "0x00083000830000000000000820008200000000000008200082000810000000081000800008000000", 
         CSDECODE_B=> "0b111", CSDECODE_A=> "0b000", WRITEMODE_B=> "NORMAL", 
         WRITEMODE_A=> "NORMAL", GSR=> "ENABLED", RESETMODE=> "SYNC", 
         REGMODE_B=> "NOREG", REGMODE_A=> "OUTREG", DATA_WIDTH_B=>  18, 
index 8b0835b267eee6f8f12ed6d66a4c92af76ef950b..9aabf2a513e94bed3d0750c015a83e4a60cfe432 100644 (file)
@@ -392,6 +392,16 @@ package tdc_components is
       Result : out std_logic_vector(303 downto 0));
   end component;
 
+  component Adder_288 is
+    port (
+      DataA  : in  std_logic_vector(287 downto 0);
+      DataB  : in  std_logic_vector(287 downto 0);
+      Clk    : in  std_logic;
+      Reset  : in  std_logic;
+      ClkEn  : in  std_logic;
+      Result : out std_logic_vector(287 downto 0)); 
+  end component Adder_288;
+
   component Encoder_304_Bit is
     port (
       RESET            : in  std_logic;
index 1cf3419bbe8655fc10cc898e0543ce9934a6de13..3e7f18592ce0f5707d7449d8287f1e59cf5940e6 100644 (file)
@@ -30,6 +30,8 @@ MULTICYCLE FROM CELL "THE_TDC/GEN_Channels.*.Channels/Channel200/ringBuffer_almo
 
 #MULTICYCLE TO CELL "THE_TDC/ReferenceChannel/Channel200/SimAdderNo.FC/FF*" 4x;
 #MULTICYCLE TO CELL "THE_TDC/GEN_Channels.*.Channels/Channel200/SimAdderNo.FC/FF*" 4x;
+#MULTICYCLE TO CELL "THE_TDC/ReferenceChannel/Channel200/SimAdderNo5.FC/FF*" 4x;
+#MULTICYCLE TO CELL "THE_TDC/GEN_Channels.*.Channels/Channel200/SimAdderNo5.FC/FF*" 4x;
 
 MULTICYCLE TO CELL "THE_TDC/ReferenceChannel/Channel200/CHANNEL_200_DEBUG_OUT_1[*]" 4x;
 MULTICYCLE TO CELL "THE_TDC/GEN_Channels.*.Channels/Channel200/CHANNEL_200_DEBUG_OUT_1[*]" 4x;