From: Cahit Date: Wed, 5 Mar 2014 11:25:04 +0000 (+0100) Subject: Constraints for successful timing X-Git-Url: https://jspc29.x-matter.uni-frankfurt.de/git/?a=commitdiff_plain;h=11e58d364ce452a027ee7968a041a31b3210e942;p=trb3.git Constraints for successful timing --- diff --git a/32PinAddOn/compile_periph_gsi.pl b/32PinAddOn/compile_periph_gsi.pl index ea839b7..0f032f6 100755 --- a/32PinAddOn/compile_periph_gsi.pl +++ b/32PinAddOn/compile_periph_gsi.pl @@ -98,7 +98,7 @@ system("ln -sfT $lattice_path $WORKDIR/lattice-diamond"); #create full lpf file system("cp ../base/trb3_periph_32PinAddOn.lpf workdir/$TOPNAME.lpf"); system("cat currentRelease/trbnet_constraints.lpf >> workdir/$TOPNAME.lpf"); -system("cat currentRelease/tdc_constraints.lpf >> workdir/$TOPNAME.lpf"); +system("cat currentRelease/tdc_constraints_2.lpf >> workdir/$TOPNAME.lpf"); #generate timestamp my $t=time; @@ -236,7 +236,7 @@ if($par==1 || $all==1){ #$c=qq|$lattice_path/ispfpga/bin/lin/multipar -pr "$TOPNAME.prf" -o "mpar_$TOPNAME.rpt" -log "mpar_$TOPNAME.log" -p "../$TOPNAME.p2t" "$tpmap.ncd" "$TOPNAME.ncd"|; if ($isMultiPar) { - $c=qq|par -m ../nodes_lxhadeb07.txt -n $nrNodes -stopzero -w -l 5 -i 6 -t 1 -c 0 -e 0 -exp parUseNBR=1:parCDP=0:parCDR=0:parPathBased=ON $tpmap.ncd $TOPNAME.dir $TOPNAME.prf|; + $c=qq|par -m ../nodes_lxhadeb07.txt -n $nrNodes -w -l 5 -exp parPathBased=ON $tpmap.ncd $TOPNAME.dir $TOPNAME.prf|; execute($c); # find and copy the .ncd file which has met the timing constraints $fh = new FileHandle("<$TOPNAME".".par"); diff --git a/32PinAddOn/nodes_lxhadeb07.txt b/32PinAddOn/nodes_lxhadeb07.txt index 9e579e9..ece0f59 100644 --- a/32PinAddOn/nodes_lxhadeb07.txt +++ b/32PinAddOn/nodes_lxhadeb07.txt @@ -2,7 +2,7 @@ [lxhadeb07] SYSTEM = linux -CORENUM = 28 +CORENUM = 32 //ENV = /u/cugur/depc363/bin/diamond_setup_x64.sh ENV = /u/cugur/depc363/bin/diamond_setup.sh //WORKDIR = /u/cugur/depc363/Projects/TDC_on_TRB3/trb3/32PinAddOn/diamond/trb3_periph_32PinAddOn diff --git a/tdc_releases/tdc_v1.6/tdc_constraints_2.lpf b/tdc_releases/tdc_v1.6/tdc_constraints_2.lpf index d36a787..689eacc 100644 --- a/tdc_releases/tdc_v1.6/tdc_constraints_2.lpf +++ b/tdc_releases/tdc_v1.6/tdc_constraints_2.lpf @@ -8,7 +8,7 @@ #REGION "REGION_LR_CC" "R85C106D" 3 3 DEVSIZE; #REGION "REGION_UL_CC" "R48C53D" 3 3 DEVSIZE; #REGION "REGION_LL_CC" "R89C53D" 3 3 DEVSIZE; -REGION "REGION_READOUT" "R51C53D" 37 57 DEVSIZE; +#REGION "REGION_READOUT" "R51C53D" 37 57 DEVSIZE; ############################################################################## ## REFERENCE CHANNEL PLACEMENT ## @@ -786,10 +786,10 @@ UGROUP "EF_31" BBOX 10 54 BLKNAME THE_TDC/GEN_Channels_52_Channels/The_Buffer; LOCATE UGROUP "EF_31" SITE "R105C56D" ; -UGROUP "EF_32" BBOX 6 54 +UGROUP "EF_32" BBOX 10 24 BLKNAME THE_TDC/GEN_Channels_32_Channels/Channel200 BLKNAME THE_TDC/GEN_Channels_32_Channels/The_Buffer; -LOCATE UGROUP "EF_32" SITE "R78C58D" ; +LOCATE UGROUP "EF_32" SITE "R78C71D" ; UGROUP "EF_38" BBOX 16 54 BLKNAME THE_TDC/GEN_Channels_38_Channels/Channel200 @@ -862,6 +862,7 @@ LOCATE UGROUP "EF_63" SITE "R105C2D" ; ############################################################################# ## Coarse counter register placement +############################################################################# UGROUP "UR_Coarse_Counter" BLKNAME THE_TDC/GenCoarseCounter_1_TheCoarseCounter; @@ -879,30 +880,30 @@ LOCATE UGROUP "LL_Coarse_Counter" SITE R85C50D; #REGION "REGION_LL_CC" ; # BLKNAME THE_TDC/TheEpochCounter; #LOCATE UGROUP "Epoch_Counter" SITE R36C138D; +UGROUP "TheCounters" + BLKNAME THE_TDC/GenCoarseCounter_0_TheCoarseCounter + BLKNAME THE_TDC/TheEpochCounter; +#LOCATE UGROUP "TheCounters" REGION REGION_READOUT; + +############################################################################# +## Other Logic Placements ############################################################################# -## Bus Handler Placements UGROUP "BusHandlers" BLKNAME THE_TDC/TheHitCounterBus - BLKNAME THE_TDC/TheStatusRegistersBus; + BLKNAME THE_TDC/TheStatusRegistersBus # BLKNAME THE_TDC/TheLostHitBus # BLKNAME THE_TDC/TheEncoderStartBus -# BLKNAME THE_TDC/TheEncoderFinishedBus; -#LOCATE UGROUP "BusHandlers" REGION BUS; - -UGROUP "ResetHandler" - BLKNAME THE_RESET_HANDLER; -#LOCATE UGROUP "ResetHandler" REGION BUS; +# BLKNAME THE_TDC/TheEncoderFinishedBus +; +LOCATE UGROUP "BusHandlers" REGION "REGION_TRBNET"; +LOCATE PGROUP "BusHandlers" REGION "REGION_TRBNET"; +UGROUP "TheTdcReadout" #BBOX 35 57 + BLKNAME THE_TDC/TheReadout + ; +#LOCATE UGROUP "TheTdcReadout" SITE "R53C53D"; -UGROUP "TheTdcReadout" - BLKNAME THE_TDC/TheReadout; -LOCATE UGROUP "TheTdcReadout" REGION REGION_READOUT; - -UGROUP "TheCounters" - BLKNAME THE_TDC/GenCoarseCounter_0_TheCoarseCounter - BLKNAME THE_TDC/TheEpochCounter; -LOCATE UGROUP "TheCounters" REGION REGION_READOUT; ############################################################################# ## Unimportant Data Lines ## @@ -926,15 +927,8 @@ PROHIBIT SECONDARY NET "THE_TDC/GEN_Channels_*_Channels/Channel200/ff_array_en_i MAXDELAY NET "THE_TDC/ReferenceChannel/hit_buf" 0.600000 nS DATAPATH_ONLY ; MAXDELAY NET "THE_TDC/GEN_Channels_*_Channels/hit_buf" 0.600000 nS DATAPATH_ONLY ; - MULTICYCLE FROM CELL "THE_TDC/GEN_Channels_*_Channels/gen_DEBUG_risingEdgeDetect_1/PULSE_OUT" 5 x; MULTICYCLE FROM CELL "THE_TDC/ReferenceChannel/gen_DEBUG_risingEdgeDetect_1/PULSE_OUT" 5 x; -MULTICYCLE FROM CELL "THE_TDC/TheEpochCounter/counter_*" TO CELL "THE_TDC/GEN_Channels_*_Channels/epoch_cntr_reg*" 5.000000 X; -MULTICYCLE FROM CELL "THE_TDC/TheEpochCounter/counter_*" TO CELL "THE_TDC/ReferenceChannel/epoch_cntr_reg*" 5.000000 X; +MULTICYCLE FROM CELL "THE_TDC/TheEpochCounter/counter_*" TO CELL "THE_TDC/GEN_Channels_*_Channels/epoch_cntr_reg*" 5 X; +MULTICYCLE FROM CELL "THE_TDC/TheEpochCounter/counter_*" TO CELL "THE_TDC/ReferenceChannel/epoch_cntr_reg*" 5 X; MULTICYCLE FROM CELL "THE_RESET_HANDLER/final_reset_1" 50 ns; - - -#MULTICYCLE FROM CELL "THE_TDC/GEN_Channels_*_Channels/Channel200/FIFO_FULL_OUT" TO CELL "THE_TDC/TheReadout/data_out_reg*" 2.000000 X; -#MULTICYCLE FROM CELL "THE_TDC/ReferenceChannel/Channel200/FIFO_FULL_OUT" TO CELL "THE_TDC/TheReadout/data_out_reg_*" 2.000000 X; -#MULTICYCLE FROM CELL "THE_TDC/ReferenceChannel/Channel200/FIFO_ALMOST_FULL_OUT" TO CELL "THE_TDC/TheReadout/data_out_reg_*" 2.000000 X; -#MULTICYCLE FROM CELL "THE_TDC/GEN_Channels_*_Channels/Channel200/FIFO_ALMOST_FULL_OUT" TO CELL "THE_TDC/TheReadout/data_out_reg*" 2.000000 X; diff --git a/tdc_releases/tdc_v1.6/trbnet_constraints.lpf b/tdc_releases/tdc_v1.6/trbnet_constraints.lpf index 54a3bce..6dfae9e 100644 --- a/tdc_releases/tdc_v1.6/trbnet_constraints.lpf +++ b/tdc_releases/tdc_v1.6/trbnet_constraints.lpf @@ -10,31 +10,38 @@ LOCATE COMP "THE_MEDIA_UPLINK/gen_serdes_1_200_THE_SERDES/PCSD_INST" SITE "PCS REGION "MEDIA_UPLINK" "R105C110D" 10 18; REGION "REGION_SPI" "R2C110D" 15 18 DEVSIZE; +REGION "REGION_TRBNET" "R17C110D" 70 18 DEVSIZE; LOCATE UGROUP "THE_SPI_MASTER/SPI_group" REGION "REGION_SPI" ; LOCATE UGROUP "THE_SPI_MEMORY/SPI_group" REGION "REGION_SPI" ; - LOCATE UGROUP "THE_MEDIA_UPLINK/media_interface_group" REGION "MEDIA_UPLINK" ; -MULTICYCLE TO CELL "THE_MEDIA_DOWNLINK/SCI_DATA_OUT*" 50 ns; -MULTICYCLE TO CELL "THE_MEDIA_UPLINK/SCI_DATA_OUT*" 50 ns; +MULTICYCLE TO CELL "THE_MEDIA_DOWNLINK.SCI_DATA_OUT*" 50 ns; +MULTICYCLE TO CELL "THE_MEDIA_UPLINK.SCI_DATA_OUT*" 50 ns; MULTICYCLE TO CELL "THE_RESET_HANDLER/final_reset*" 30 ns; +MULTICYCLE TO CELL "THE_RESET_HANDLER/trb_reset_*" 20 ns; + +BLOCK PATH TO CELL "gen_TRIGGER_LOGIC_THE_TRIG_LOGIC/out_*"; #Jan: Placement of TrbNet components (at least, most of them) -REGION "REGION_TRBNET" "R35C110D" 70 18 DEVSIZE; + #UGROUP "TrbNet" BBOX 77 27 # BLKNAME THE_ENDPOINT # BLKNAME THE_ENDPOINT/THE_ENDPOINT #LOCATE UGROUP "TrbNet" REGION "REGION_TRBNET"; -LOCATE UGROUP "THE_BUS_HANDLER/Bus_handler_group" REGION "REGION_TRBNET"; + +#LOCATE UGROUP "THE_BUS_HANDLER/Bus_handler_group" REGION "REGION_TRBNET"; +#LOCATE UGROUP "THE_ENDPOINT/THE_ENDPOINT/genbuffers_3_geniobuf_gen_regio_regIO/the_addresses/HUBLOGIC_group" REGION "REGION_TRBNET"; + + LOCATE UGROUP "THE_ENDPOINT/THE_ENDPOINT/genbuffers_0_geniobuf_IOBUF/genINITOBUF2_gen_INITOBUF3_INITOBUF/OBUF_group" REGION "REGION_TRBNET"; LOCATE UGROUP "THE_ENDPOINT/THE_ENDPOINT/genbuffers_1_geniobuf_IOBUF/genINITOBUF2_gen_INITOBUF3_INITOBUF/OBUF_group" REGION "REGION_TRBNET"; LOCATE UGROUP "THE_ENDPOINT/THE_ENDPOINT/genbuffers_2_gentermbuf_termbuf/TRMBUF_group" REGION "REGION_TRBNET"; LOCATE UGROUP "THE_ENDPOINT/THE_ENDPOINT/genbuffers_3_geniobuf_IOBUF/genINITOBUF2_gen_INITOBUF3_INITOBUF/OBUF_group" REGION "REGION_TRBNET"; LOCATE UGROUP "THE_ENDPOINT/THE_INTERNAL_BUS_HANDLER/Bus_handler_group" REGION "REGION_TRBNET"; LOCATE UGROUP "THE_ENDPOINT/THE_ENDPOINT/MPLEX/MUX_group" REGION "REGION_TRBNET"; -LOCATE UGROUP "THE_ENDPOINT/THE_ENDPOINT/genbuffers_3_geniobuf_gen_regio_regIO/the_addresses/HUBLOGIC_group" REGION "REGION_TRBNET"; + LOCATE UGROUP "THE_ENDPOINT/THE_ENDPOINT/genbuffers_3_geniobuf_gen_regio_regIO/RegIO_group" REGION "REGION_TRBNET"; LOCATE UGROUP "THE_ENDPOINT/THE_ENDPOINT/genbuffers_3_geniobuf_gen_api_DAT_PASSIVE_API/API_group" REGION "REGION_TRBNET"; LOCATE UGROUP "THE_ENDPOINT/THE_ENDPOINT/genbuffers_1_geniobuf_gen_api_DAT_PASSIVE_API/API_group" REGION "REGION_TRBNET"; @@ -44,3 +51,21 @@ LOCATE UGROUP "THE_ENDPOINT/THE_ENDPOINT/genbuffers_1_geniobuf_IOBUF/genREPLYOBU LOCATE UGROUP "THE_ENDPOINT/THE_ENDPOINT/genbuffers_1_geniobuf_IOBUF/GEN_IBUF_THE_IBUF/IBUF_group" REGION "REGION_TRBNET"; LOCATE UGROUP "THE_ENDPOINT/THE_ENDPOINT/genbuffers_0_geniobuf_IOBUF/genREPLYOBUF1_REPLYOBUF/OBUF_group" REGION "REGION_TRBNET"; LOCATE UGROUP "THE_ENDPOINT/THE_ENDPOINT/genbuffers_0_geniobuf_IOBUF/GEN_IBUF_THE_IBUF/IBUF_group" REGION "REGION_TRBNET"; + +UGROUP "ENDPOINT" + BLKNAME THE_ENDPOINT/THE_ENDPOINT/genbuffers_0_geniobuf_gentrgapi_the_trigger_apl +; +LOCATE UGROUP "ENDPOINT" REGION "REGION_TRBNET"; + +UGROUP "SctrlGroup" + BLKNAME THE_BUS_HANDLER + BLKNAME THE_ENDPOINT/THE_INTERNAL_BUS_HANDLER + ; +LOCATE UGROUP "SctrlGroup" REGION "REGION_TRBNET"; + + +UGROUP "ResetHandler" + BLKNAME THE_RESET_HANDLER +; + +