$lpf =~ s#THE_TDC/#GEN_TDC.THE_TDC/#g;
-
-# make the LPF diamond 2.1 compatible
-# we assume that generate loops are all named with "gen_"
-#$lpf =~ s#(gen_)(\w+?)\.#$1$2_#gi;
-#$lpf =~ s#(gen_)(\w+?)(\d+)\.#$1$2$3_#gi;
-#$lpf =~ s#(gen_)(\w+?)(\*)\.#$1$2$3_#gi;
-#$lpf =~ s#SimAdder##g;
-sub replace_dot {
- my @m = @_;
- $m[1] =~ s/\./_/g;
- return join("", @m);
-}
-$lpf =~ s#(BLKNAME\s+)(.+?)([;\s])#replace_dot($1,$2,$3)#eg;
-$lpf =~ s#(CELL\s+")(.+?)(")#replace_dot($1,$2,$3)#eg;
-$lpf =~ s#(NET\s+")(.+?)(")#replace_dot($1,$2,$3)#eg;
-$lpf =~ s#ff_array_en#ff_array_en_i#g;
-
-
open FILE, ">$workdir/$TOPNAME.lpf" or die "Couldnt open file: $!";
print FILE $lpf;
close FILE;
###################################################################################
#Settings for this project
my $TOPNAME = "trb3_periph_adc"; #Name of top-level entity
-my $lattice_path = '/opt/lattice/diamond/2.1_x64';
+my $lattice_path = '/opt/lattice/diamond/3.4_x64';
my $lattice_bin_path = "$lattice_path/bin/lin64"; # note the lin/lin64 at the end, no isfgpa needed
-my $synplify_path = '/opt/synplicity/F-2012.03-SP1';
+my $synplify_path = '/opt/synplicity/J-2014.09-SP2';
my $lm_license_file_for_synplify = '27000@lxcad01.gsi.de';
my $lm_license_file_for_par = '1702@hadeb05.gsi.de';
###################################################################################
constant ADC_TRIGGER_LOGIC : integer := c_YES;
-- ADC channels may be 48 or 36, the latter for enabling compilation
-- with TDC and lattice diamond version >2.1
- constant ADC_CHANNELS : integer := 48;
+ constant ADC_CHANNELS : integer := 36;
--Include the TDC (only useful for CFD readout mode)
constant INCLUDE_TDC : integer := c_YES;
constant DOUBLE_EDGE_TYPE : integer range 0 to 3 := 0;
--> change names in constraints file
- --ring buffer size: 32,64,96,128,dyn
- --for TDC v1.6.3, only 0,1,3 are valid
- constant RING_BUFFER_SIZE : integer range 0 to 7 := 3; --ring buffer size: 0, 1, 2, 3, 7
+ --ring buffer size: 32,64,96,128,dyn
+ constant RING_BUFFER_SIZE : integer range 0 to 7 := 7; --ring buffer size: 0, 1, 2, 3, 7
- constant TDC_CONTROL_REG_NR : integer := 6;
-
-
------------------------------------------------------------------------------
--End of design configuration
------------------------------------------------------------------------------
-../../tdc/releases/tdc_v1.6.3
\ No newline at end of file
+../../tdc/releases/tdc_v2.1.3/
\ No newline at end of file
signal tdc_inputs : std_logic_vector(TDC_CHANNEL_NUMBER-2 downto 0);
+ constant TDC_CONTROL_REG_NR : integer := 8;
type tdc_ctrl_reg_arr_t is array (0 to TDC_CONTROL_REG_NR-1) of std_logic_vector(31 downto 0);
signal tdc_ctrl_reg_arr : tdc_ctrl_reg_arr_t;
signal tdc_ctrl_reg : std_logic_vector(TDC_CONTROL_REG_NR*32-1 downto 0);
CLK_READOUT => clk_100_i, -- Clock for the readout
REFERENCE_TIME => timing_trg_received_i, -- Reference time input
HIT_IN => tdc_inputs, -- Channel start signals
- HIT_CALIBRATION => osc_int, --clk_20_i, -- Hits for calibrating the TDC
+ HIT_CAL_IN => osc_int, --clk_20_i, -- Hits for calibrating the TDC
TRG_WIN_PRE => tdc_ctrl_reg(42 downto 32), -- Pre-Trigger window width
TRG_WIN_POST => tdc_ctrl_reg(58 downto 48), -- Post-Trigger window width
--