#################################################################
#Additional signals from Clock-RJ-45
-LOCATE COMP "CLK_EXT_3" SITE "U9"; #was SPARE_LINE_2
-LOCATE COMP "CLK_EXT_4" SITE "Y34"; #was SPARE_LINE_4
+# LOCATE COMP "CLK_EXT_3" SITE "U9"; #was SPARE_LINE_2
+# LOCATE COMP "CLK_EXT_4" SITE "Y34"; #was SPARE_LINE_4
LOCATE COMP "CLK_SERDES_INT_RIGHT" SITE "AH22";
LOCATE COMP "CLK_SERDES_INT_LEFT" SITE "AH12";
LOCATE COMP "CLK_GPLL_RIGHT" SITE "Y28";
#LOCATE COMP "TRIGGER_EXT_4" SITE "W8"; #was EXT_TRIG_4
DEFINE PORT GROUP "TRIGGER_EXT_group" "TRIGGER_EXT*" ;
IOBUF GROUP "TRIGGER_EXT_group" IO_TYPE=LVDS25;
-
-LOCATE COMP "CLK_TEST_OUT_1" SITE "Y34";
-IOBUF PORT "CLK_TEST_OUT_1" IO_TYPE=LVDS25 ;
-LOCATE COMP "CLK_TEST_OUT_2" SITE "W4";
-IOBUF PORT "CLK_TEST_OUT_2" IO_TYPE=LVDS25 ;
-LOCATE COMP "CLK_TEST_OUT_0" SITE "U9";
-IOBUF PORT "CLK_TEST_OUT_0" IO_TYPE=LVDS25 ;
+#
+# LOCATE COMP "CLK_TEST_OUT_1" SITE "Y34";
+# IOBUF PORT "CLK_TEST_OUT_1" IO_TYPE=LVDS25 ;
+# LOCATE COMP "CLK_TEST_OUT_2" SITE "W4";
+# IOBUF PORT "CLK_TEST_OUT_2" IO_TYPE=LVDS25 ;
+# LOCATE COMP "CLK_TEST_OUT_0" SITE "U9";
+# IOBUF PORT "CLK_TEST_OUT_0" IO_TYPE=LVDS25 ;
LOCATE COMP "CLKRJ_0" SITE "U9";
$workdir =~ s/(\.\/|\/$)//g; # remove ./ and trailing slash
$workdir =~ s/\/{2,}/\//g; # remove multiple // in path
-my $back = "../" x ($workdir =~ tr/\///);
-$back = './' unless $back;
+my $back = '../' x ($workdir =~ tr@\/@@);
+$back = "./" unless $back;
chdir($script_dir);
system("cat cbmnet_bridge/cbmnet_bridge.lpf >> $workdir/$TOPNAME.lpf") if $configSettings{'INCLUDE_CBMNET'};
system("cat ".$TOPNAME."_constraints.lpf >> $workdir/$TOPNAME.lpf");
+system("cat ports_mbs_master.lpf >> $workdir/$TOPNAME.lpf") if $configSettings{'INCLUDE_MBS_MASTER'};
+system("cat ports_no_mbs_master.lpf >> $workdir/$TOPNAME.lpf") unless $configSettings{'INCLUDE_MBS_MASTER'};
+
+
open FILE, "<$workdir/$TOPNAME.lpf" or die "Couldnt open file: $!";
my $lpf = join('', <FILE>);
close FILE;
constant INCLUDE_CTS : integer range c_NO to c_YES := c_YES;
constant INCLUDE_CBMNET : integer range c_NO to c_YES := c_NO;
- constant INCLUDE_MBS_MASTER : integer range c_NO to c_YES := c_NO;
+ constant INCLUDE_MBS_MASTER : integer range c_NO to c_YES := c_NO;
--include TDC for all four trigger input lines
constant USE_EXTERNAL_CLOCK : integer range c_NO to c_YES := c_YES;
--Which external trigger module (ETM) to use?
- constant INCLUDE_ETM : integer range c_NO to c_YES := c_NO;
+ constant INCLUDE_ETM : integer range c_NO to c_YES := c_YES;
type ETM_CHOICE_type is (ETM_CHOICE_MBS_VULOM, ETM_CHOICE_MAINZ_A2, ETM_CHOICE_CBMNET, ETM_CHOICE_M26);
constant ETM_CHOICE : ETM_CHOICE_type := ETM_CHOICE_MBS_VULOM;
constant INCLUDE_CTS : integer range c_NO to c_YES := c_YES;
constant INCLUDE_CBMNET : integer range c_NO to c_YES := c_NO;
- constant INCLUDE_MBS_MASTER : integer range c_NO to c_YES := c_YES;
+ constant INCLUDE_MBS_MASTER : integer range c_NO to c_YES := c_NO;
--include TDC for all four trigger input lines
--- /dev/null
+LOCATE COMP "CLK_TEST_OUT_1" SITE "Y34";
+IOBUF PORT "CLK_TEST_OUT_1" IO_TYPE=LVDS25 ;
+LOCATE COMP "CLK_TEST_OUT_0" SITE "U9";
+IOBUF PORT "CLK_TEST_OUT_0" IO_TYPE=LVDS25 ;
\ No newline at end of file
--- /dev/null
+LOCATE COMP "CLK_EXT_3" SITE "U9"; #was SPARE_LINE_2
+LOCATE COMP "CLK_EXT_4" SITE "Y34"; #was SPARE_LINE_4
+
+IOBUF PORT "CLK_EXT_3" IO_TYPE=LVDS25;
+IOBUF PORT "CLK_EXT_4" IO_TYPE=LVDS25;
\ No newline at end of file
TRIGGER_LEFT : in std_logic; --left side trigger input from fan-out
TRIGGER_RIGHT : in std_logic; --right side trigger input from fan-out
TRIGGER_EXT_2 : in std_logic;
- TRIGGER_EXT_3 : inout std_logic;
+ TRIGGER_EXT_3 : inout std_logic; --trigger input of busy output
-- TRIGGER_EXT : inout std_logic_vector(4 downto 2); --additional trigger from RJ45
TRIGGER_OUT : out std_logic; --trigger to second input of fan-out
TRIGGER_OUT2 : out std_logic;
begin
assert not(USE_4_SFP = c_YES and INCLUDE_CBMNET = c_YES) report "CBMNET uses SFPs 1-4 and hence does not support USE_4_SFP" severity failure;
assert not(INCLUDE_CBMNET = c_YES and INCLUDE_CTS = c_NO) report "CBMNET is supported only with CTS included" severity failure;
- assert not(INCLUDE_TDC = c_YES and INCLUDE_MBS_MASTER = c_NO) report "TDC and MBS Master can not be implemented" severity failure;
+ assert not(INCLUDE_TDC = c_YES and INCLUDE_MBS_MASTER = c_YES) report "TDC and MBS Master can not be implemented" severity failure;
+ assert not(INCLUDE_ETM = c_YES and ETM_CHOICE = ETM_CHOICE_MBS_VULOM and INCLUDE_MBS_MASTER = c_YES) report "This ETM and MBS Master can not be implemented" severity failure;
+ assert not(INCLUDE_ETM = c_YES and ETM_CHOICE = ETM_CHOICE_MAINZ_A2 and INCLUDE_MBS_MASTER = c_YES) report "This ETM and MBS Master can not be implemented" severity failure;
-- MBS Module
gen_mbs_vulom_as_etm : if ETM_CHOICE = ETM_CHOICE_MBS_VULOM and INCLUDE_CTS = c_YES and INCLUDE_ETM = c_YES generate
TRIGGER_IN => cts_rdo_trg_data_valid,
TRIGGER_NUMBER_IN => cts_rdo_trg_number,
- DATA_OUT => cts_rdo_additional(1).data,
- WRITE_OUT => cts_rdo_additional(1).data_write,
- FINISHED_OUT => cts_rdo_additional(1).data_finished,
- STATUSBIT_OUT => cts_rdo_additional(1).statusbits
+ DATA_OUT => cts_rdo_additional(INCLUDE_ETM).data,
+ WRITE_OUT => cts_rdo_additional(INCLUDE_ETM).data_write,
+ FINISHED_OUT => cts_rdo_additional(INCLUDE_ETM).data_finished,
+ STATUSBIT_OUT => cts_rdo_additional(INCLUDE_ETM).statusbits
);
CLK_TEST_OUT(0) <= mbs_data_i;
CLK_TEST_OUT(1) <= mbs_clock_i;
UGROUP "THE_MEDIA_ONBOARD_GROUP" BBOX 25 45
BLKNAME THE_MEDIA_ONBOARD;
-LOCATE UGROUP "THE_MEDIA_ONBOARD_GROUP" SITE "R98C75D" ;
\ No newline at end of file
+LOCATE UGROUP "THE_MEDIA_ONBOARD_GROUP" SITE "R98C75D" ;
+