From cf235e36e126354c96419117d65607507250c297 Mon Sep 17 00:00:00 2001 From: Jan Michel Date: Mon, 9 Aug 2021 13:59:46 +0200 Subject: [PATCH] working TDC --- DBO/config_compile_frankfurt.pl | 2 +- DBO/mdctdc.lpf | 775 ++++++++++++++++++++------------ DBO/mdctdc.prj | 18 +- DBO/mdctdc.vhd | 63 +-- DBO/project/mdcdbo.ldf | 368 +++++++++++++++ cores/PLL_TDC/PLL_TDC.lpc | 93 ++++ cores/PLL_TDC/PLL_TDC.sbx | 430 ++++++++++++++++++ cores/PLL_TDC/PLL_TDC.vhd | 86 ++++ pinout/dbo.lpf | 2 +- 9 files changed, 1506 insertions(+), 331 deletions(-) create mode 100644 DBO/project/mdcdbo.ldf create mode 100644 cores/PLL_TDC/PLL_TDC.lpc create mode 100644 cores/PLL_TDC/PLL_TDC.sbx create mode 100644 cores/PLL_TDC/PLL_TDC.vhd diff --git a/DBO/config_compile_frankfurt.pl b/DBO/config_compile_frankfurt.pl index 5421fa6..92ade55 100644 --- a/DBO/config_compile_frankfurt.pl +++ b/DBO/config_compile_frankfurt.pl @@ -8,7 +8,7 @@ TOPNAME => "mdctdc", lm_license_file_for_synplify => "27020\@jspc29", #"27000\@lxcad01.gsi.de"; lm_license_file_for_par => "1710\@jspc29", lattice_path => '/d/jspc29/lattice/diamond/3.11_x64', -synplify_path => '/d/jspc29/lattice/synplify/O-2018.09-SP1/', +synplify_path => '/d/jspc29/lattice/synplify/R-2020.09-SP1/', nodelist_file => '../nodelist_frankfurt.txt', pinout_file => 'dbo', diff --git a/DBO/mdctdc.lpf b/DBO/mdctdc.lpf index 5d31768..dcd8152 100644 --- a/DBO/mdctdc.lpf +++ b/DBO/mdctdc.lpf @@ -7,8 +7,11 @@ FREQUENCY PORT CLK_TDC 156.25 MHz; BLOCK PATH TO PORT "LED*"; BLOCK PATH TO PORT "PROGRAMN"; -FREQUENCY NET "THE_MEDIA_INTERFACE/gen_pcs0.THE_SERDES/serdes_sync_0_inst/clk_tx_full" 200 MHz; -FREQUENCY NET "med2int_0.clk_full" 200 MHz; +# FREQUENCY NET "THE_MEDIA_INTERFACE/gen_pcs0.THE_SERDES/serdes_sync_0_inst/clk_tx_full" 200 MHz; +# FREQUENCY NET "med2int_0.clk_full" 200 MHz; + +FREQUENCY NET "THE_MEDIA_INTERFACE/clk_rx_full" 200 MHz; +FREQUENCY NET "THE_MEDIA_INTERFACE/clk_rx_full" 200 MHz; MULTICYCLE TO CELL "THE_MEDIA_INTERFACE/THE_SCI_READER/PROC_SCI_CTRL.BUS_TX*" 10 ns; MULTICYCLE TO CELL "THE_MEDIA_INTERFACE/THE_MED_CONTROL/THE_TX/STAT_REG_OUT*" 10 ns; @@ -16,302 +19,476 @@ MULTICYCLE TO CELL "THE_MEDIA_INTERFACE/THE_MED_CONTROL/THE_TX/STAT_REG_OUT*" 10 REGION "MEDIA" "R57C34D" 13 30; LOCATE UGROUP "THE_MEDIA_INTERFACE/media_interface_group" REGION "MEDIA" ; -UGROUP "TDC0" BBOX 1 2 - BLKNAME GND; - -UGROUP "TDC1" BBOX 1 2 - BLKNAME GND; - -UGROUP "TDC2" BBOX 1 2 - BLKNAME GND; - -UGROUP "TDC3" BBOX 1 2 - BLKNAME GND; - -UGROUP "TDC4" BBOX 1 2 - BLKNAME GND; - -UGROUP "TDC5" BBOX 1 2 - BLKNAME GND; - -UGROUP "TDC6" BBOX 1 2 - BLKNAME GND; - -UGROUP "TDC7" BBOX 1 2 - BLKNAME GND; - -UGROUP "TDC8" BBOX 1 2 - BLKNAME GND; - -UGROUP "TDC9" BBOX 1 2 - BLKNAME GND; - -UGROUP "TDC10" BBOX 1 2 - BLKNAME GND; - -UGROUP "TDC11" BBOX 1 2 - BLKNAME GND; - -UGROUP "TDC12" BBOX 1 2 - BLKNAME GND; - -UGROUP "TDC13" BBOX 1 2 - BLKNAME GND; - -UGROUP "TDC14" BBOX 1 2 - BLKNAME GND; - -UGROUP "TDC15" BBOX 1 2 - BLKNAME GND; - -UGROUP "TDC16" BBOX 1 2 - BLKNAME GND; - -UGROUP "TDC17" BBOX 1 2 - BLKNAME GND; - -UGROUP "TDC18" BBOX 1 2 - BLKNAME GND; - -UGROUP "TDC19" BBOX 1 2 - BLKNAME GND; - -UGROUP "TDC20" BBOX 1 2 - BLKNAME GND; - -UGROUP "TDC21" BBOX 1 2 - BLKNAME GND; - -UGROUP "TDC22" BBOX 1 2 - BLKNAME GND; - -UGROUP "TDC23" BBOX 1 2 - BLKNAME GND; - -UGROUP "TDC24" BBOX 1 2 - BLKNAME GND; - -UGROUP "TDC25" BBOX 1 2 - BLKNAME GND; - -UGROUP "TDC26" BBOX 1 2 - BLKNAME GND; - -UGROUP "TDC27" BBOX 1 2 - BLKNAME GND; - -UGROUP "TDC28" BBOX 1 2 - BLKNAME GND; - -UGROUP "TDC29" BBOX 1 2 - BLKNAME GND; - -UGROUP "TDC30" BBOX 1 2 - BLKNAME GND; - -UGROUP "TDC31" BBOX 1 2 - BLKNAME GND; - -UGROUP "TDC32" BBOX 1 2 - BLKNAME GND; - - - -LOCATE UGROUP "TDC0" SITE "R59C86D" ; -LOCATE UGROUP "TDC0s" SITE "R59C84D" ; - -LOCATE UGROUP "TDC1" SITE "R62C86D" ; -LOCATE UGROUP "TDC1s" SITE "R62C84D" ; - -LOCATE UGROUP "TDC2" SITE "R63C86D" ; -LOCATE UGROUP "TDC2s" SITE "R63C84D" ; - -LOCATE UGROUP "TDC3" SITE "R36C86D" ; -LOCATE UGROUP "TDC3s" SITE "R36C84D" ; - -LOCATE UGROUP "TDC4" SITE "R42C86D" ; -LOCATE UGROUP "TDC4s" SITE "R42C84D" ; - -LOCATE UGROUP "TDC5" SITE "R68C86D" ; -LOCATE UGROUP "TDC5s" SITE "R68C84D" ; - -LOCATE UGROUP "TDC6" SITE "R65C86D" ; -LOCATE UGROUP "TDC6s" SITE "R65C84D" ; - -LOCATE UGROUP "TDC7" SITE "R45C86D" ; -LOCATE UGROUP "TDC7s" SITE "R45C84D" ; - -LOCATE UGROUP "TDC8" SITE "R29C86D" ; -LOCATE UGROUP "TDC8s" SITE "R29C84D" ; - -LOCATE UGROUP "TDC9" SITE "R26C86D" ; -LOCATE UGROUP "TDC9s" SITE "R26C84D" ; - -LOCATE UGROUP "TDC10" SITE "R32C86D" ; -LOCATE UGROUP "TDC10s" SITE "R32C84D" ; - -LOCATE UGROUP "TDC11" SITE "R25C86D" ; -LOCATE UGROUP "TDC11s" SITE "R25C84D" ; - -LOCATE UGROUP "TDC12" SITE "R32C86D" ; -LOCATE UGROUP "TDC12s" SITE "R32C84D" ; - -LOCATE UGROUP "TDC13" SITE "R23C86D" ; -LOCATE UGROUP "TDC13s" SITE "R23C84D" ; - -LOCATE UGROUP "TDC14" SITE "R36C86D" ; -LOCATE UGROUP "TDC14s" SITE "R36C84D" ; - -LOCATE UGROUP "TDC15" SITE "R14C86D" ; -LOCATE UGROUP "TDC15s" SITE "R14C84D" ; - -LOCATE UGROUP "TDC16" SITE "R62C3D" ; -LOCATE UGROUP "TDC16s" SITE "R62C5D" ; - -LOCATE UGROUP "TDC17" SITE "R65C3D" ; -LOCATE UGROUP "TDC17s" SITE "R65C5D" ; - -LOCATE UGROUP "TDC18" SITE "R41C3D" ; -LOCATE UGROUP "TDC18s" SITE "R41C5D" ; - -LOCATE UGROUP "TDC19" SITE "R68C3D" ; -LOCATE UGROUP "TDC19s" SITE "R68C5D" ; - -LOCATE UGROUP "TDC20" SITE "R63C3D" ; -LOCATE UGROUP "TDC20s" SITE "R63C5D" ; - -LOCATE UGROUP "TDC21" SITE "R38C3D" ; -LOCATE UGROUP "TDC21s" SITE "R38C5D" ; - -LOCATE UGROUP "TDC22" SITE "R36C3D" ; -LOCATE UGROUP "TDC22s" SITE "R36C5D" ; - -LOCATE UGROUP "TDC23" SITE "R35C3D" ; -LOCATE UGROUP "TDC23s" SITE "R35C5D" ; - -LOCATE UGROUP "TDC24" SITE "R12C3D" ; -LOCATE UGROUP "TDC24s" SITE "R12C5D" ; - -LOCATE UGROUP "TDC25" SITE "R11C3D" ; -LOCATE UGROUP "TDC25s" SITE "R11C5D" ; - -LOCATE UGROUP "TDC26" SITE "R32C3D" ; -LOCATE UGROUP "TDC26s" SITE "R32C5D" ; - -LOCATE UGROUP "TDC27" SITE "R14C3D" ; -LOCATE UGROUP "TDC27s" SITE "R14C5D" ; - -LOCATE UGROUP "TDC28" SITE "R26C3D" ; -LOCATE UGROUP "TDC28s" SITE "R26C5D" ; - -LOCATE UGROUP "TDC29" SITE "R15C3D" ; -LOCATE UGROUP "TDC29s" SITE "R15C5D" ; - -LOCATE UGROUP "TDC30" SITE "R17C3D" ; -LOCATE UGROUP "TDC30s" SITE "R17C5D" ; - -LOCATE UGROUP "TDC31" SITE "R23C3D" ; -LOCATE UGROUP "TDC31s" SITE "R23C5D" ; - -LOCATE UGROUP "TDC32" SITE "R12C86D" ; -LOCATE UGROUP "TDC32s" SITE "R12C84D" ; - - -UGROUP "TDC0s" BBOX 1 2 - BLKNAME GND; - -UGROUP "TDC1s" BBOX 1 2 - BLKNAME GND; - -UGROUP "TDC2s" BBOX 1 2 - BLKNAME GND; - -UGROUP "TDC3s" BBOX 1 2 - BLKNAME GND; - -UGROUP "TDC4s" BBOX 1 2 - BLKNAME GND; - -UGROUP "TDC5s" BBOX 1 2 - BLKNAME GND; - -UGROUP "TDC6s" BBOX 1 2 - BLKNAME GND; - -UGROUP "TDC7s" BBOX 1 2 - BLKNAME GND; - -UGROUP "TDC8s" BBOX 1 2 - BLKNAME GND; - -UGROUP "TDC9s" BBOX 1 2 - BLKNAME GND; - -UGROUP "TDC10s" BBOX 1 2 - BLKNAME GND; - -UGROUP "TDC11s" BBOX 1 2 - BLKNAME GND; - -UGROUP "TDC12s" BBOX 1 2 - BLKNAME GND; - -UGROUP "TDC13s" BBOX 1 2 - BLKNAME GND; - -UGROUP "TDC14s" BBOX 1 2 - BLKNAME GND; - -UGROUP "TDC15s" BBOX 1 2 - BLKNAME GND; - -UGROUP "TDC16s" BBOX 1 2 - BLKNAME GND; - -UGROUP "TDC17s" BBOX 1 2 - BLKNAME GND; - -UGROUP "TDC18s" BBOX 1 2 - BLKNAME GND; - -UGROUP "TDC19s" BBOX 1 2 - BLKNAME GND; - -UGROUP "TDC20s" BBOX 1 2 - BLKNAME GND; - -UGROUP "TDC21s" BBOX 1 2 - BLKNAME GND; - -UGROUP "TDC22s" BBOX 1 2 - BLKNAME GND; - -UGROUP "TDC23s" BBOX 1 2 - BLKNAME GND; - -UGROUP "TDC24s" BBOX 1 2 - BLKNAME GND; - -UGROUP "TDC25s" BBOX 1 2 - BLKNAME GND; - -UGROUP "TDC26s" BBOX 1 2 - BLKNAME GND; - -UGROUP "TDC27s" BBOX 1 2 - BLKNAME GND; - -UGROUP "TDC28s" BBOX 1 2 - BLKNAME GND; - -UGROUP "TDC29s" BBOX 1 2 - BLKNAME GND; - -UGROUP "TDC30s" BBOX 1 2 - BLKNAME GND; -UGROUP "TDC31s" BBOX 1 2 - BLKNAME GND; -UGROUP "TDC32s" BBOX 1 2 - BLKNAME GND; +# USE PRIMARY NET THE_TDC/calibration_pulse ; +PRIORITIZE NET THE_TDC/gen_CHANNELS.0.THE_CHANNEL/gated_inp 100; +PRIORITIZE NET THE_TDC/gen_CHANNELS.1.THE_CHANNEL/gated_inp 100; +PRIORITIZE NET THE_TDC/gen_CHANNELS.2.THE_CHANNEL/gated_inp 100; +PRIORITIZE NET THE_TDC/gen_CHANNELS.3.THE_CHANNEL/gated_inp 100; +PRIORITIZE NET THE_TDC/gen_CHANNELS.4.THE_CHANNEL/gated_inp 100; +PRIORITIZE NET THE_TDC/gen_CHANNELS.5.THE_CHANNEL/gated_inp 100; +PRIORITIZE NET THE_TDC/gen_CHANNELS.6.THE_CHANNEL/gated_inp 100; +PRIORITIZE NET THE_TDC/gen_CHANNELS.7.THE_CHANNEL/gated_inp 100; +PRIORITIZE NET THE_TDC/gen_CHANNELS.8.THE_CHANNEL/gated_inp 100; +PRIORITIZE NET THE_TDC/gen_CHANNELS.9.THE_CHANNEL/gated_inp 100; +PRIORITIZE NET THE_TDC/gen_CHANNELS.10.THE_CHANNEL/gated_inp 100; +PRIORITIZE NET THE_TDC/gen_CHANNELS.11.THE_CHANNEL/gated_inp 100; +PRIORITIZE NET THE_TDC/gen_CHANNELS.12.THE_CHANNEL/gated_inp 100; +PRIORITIZE NET THE_TDC/gen_CHANNELS.13.THE_CHANNEL/gated_inp 100; +PRIORITIZE NET THE_TDC/gen_CHANNELS.14.THE_CHANNEL/gated_inp 100; +PRIORITIZE NET THE_TDC/gen_CHANNELS.15.THE_CHANNEL/gated_inp 100; +PRIORITIZE NET THE_TDC/gen_CHANNELS.16.THE_CHANNEL/gated_inp 100; +PRIORITIZE NET THE_TDC/gen_CHANNELS.17.THE_CHANNEL/gated_inp 100; +PRIORITIZE NET THE_TDC/gen_CHANNELS.18.THE_CHANNEL/gated_inp 100; +PRIORITIZE NET THE_TDC/gen_CHANNELS.19.THE_CHANNEL/gated_inp 100; +PRIORITIZE NET THE_TDC/gen_CHANNELS.20.THE_CHANNEL/gated_inp 100; +PRIORITIZE NET THE_TDC/gen_CHANNELS.21.THE_CHANNEL/gated_inp 100; +PRIORITIZE NET THE_TDC/gen_CHANNELS.22.THE_CHANNEL/gated_inp 100; +PRIORITIZE NET THE_TDC/gen_CHANNELS.23.THE_CHANNEL/gated_inp 100; +PRIORITIZE NET THE_TDC/gen_CHANNELS.24.THE_CHANNEL/gated_inp 100; +PRIORITIZE NET THE_TDC/gen_CHANNELS.25.THE_CHANNEL/gated_inp 100; +PRIORITIZE NET THE_TDC/gen_CHANNELS.26.THE_CHANNEL/gated_inp 100; +PRIORITIZE NET THE_TDC/gen_CHANNELS.27.THE_CHANNEL/gated_inp 100; +PRIORITIZE NET THE_TDC/gen_CHANNELS.28.THE_CHANNEL/gated_inp 100; +PRIORITIZE NET THE_TDC/gen_CHANNELS.29.THE_CHANNEL/gated_inp 100; +PRIORITIZE NET THE_TDC/gen_CHANNELS.30.THE_CHANNEL/gated_inp 100; +PRIORITIZE NET THE_TDC/gen_CHANNELS.31.THE_CHANNEL/gated_inp 100; + +# MAXDELAY NET "THE_TDC/gen_CHANNELS.16.THE_CHANNEL/gated_inp" 0.500000 ns ; +# MAXDELAY NET "THE_TDC/gen_CHANNELS.17.THE_CHANNEL/gated_inp" 0.500000 ns ; +# MAXDELAY NET "THE_TDC/gen_CHANNELS.18.THE_CHANNEL/gated_inp" 0.500000 ns ; +# MAXDELAY NET "THE_TDC/gen_CHANNELS.19.THE_CHANNEL/gated_inp" 0.500000 ns ; +# MAXDELAY NET "THE_TDC/gen_CHANNELS.20.THE_CHANNEL/gated_inp" 0.500000 ns ; +# MAXDELAY NET "THE_TDC/gen_CHANNELS.21.THE_CHANNEL/gated_inp" 0.500000 ns ; +# MAXDELAY NET "THE_TDC/gen_CHANNELS.22.THE_CHANNEL/gated_inp" 0.500000 ns ; +# MAXDELAY NET "THE_TDC/gen_CHANNELS.23.THE_CHANNEL/gated_inp" 0.500000 ns ; +# MAXDELAY NET "THE_TDC/gen_CHANNELS.24.THE_CHANNEL/gated_inp" 0.500000 ns ; +# MAXDELAY NET "THE_TDC/gen_CHANNELS.25.THE_CHANNEL/gated_inp" 0.500000 ns ; +# MAXDELAY NET "THE_TDC/gen_CHANNELS.26.THE_CHANNEL/gated_inp" 0.500000 ns ; +# MAXDELAY NET "THE_TDC/gen_CHANNELS.27.THE_CHANNEL/gated_inp" 0.500000 ns ; +# MAXDELAY NET "THE_TDC/gen_CHANNELS.28.THE_CHANNEL/gated_inp" 0.500000 ns ; +# MAXDELAY NET "THE_TDC/gen_CHANNELS.29.THE_CHANNEL/gated_inp" 0.500000 ns ; +# MAXDELAY NET "THE_TDC/gen_CHANNELS.30.THE_CHANNEL/gated_inp" 0.500000 ns ; +# MAXDELAY NET "THE_TDC/gen_CHANNELS.31.THE_CHANNEL/gated_inp" 0.500000 ns ; +# MAXDELAY NET "THE_TDC/gen_CHANNELS.0.THE_CHANNEL/gated_inp" 0.500000 ns ; +# MAXDELAY NET "THE_TDC/gen_CHANNELS.1.THE_CHANNEL/gated_inp" 0.500000 ns ; +# MAXDELAY NET "THE_TDC/gen_CHANNELS.2.THE_CHANNEL/gated_inp" 0.500000 ns ; +# MAXDELAY NET "THE_TDC/gen_CHANNELS.3.THE_CHANNEL/gated_inp" 0.500000 ns ; +# MAXDELAY NET "THE_TDC/gen_CHANNELS.4.THE_CHANNEL/gated_inp" 0.500000 ns ; +# MAXDELAY NET "THE_TDC/gen_CHANNELS.5.THE_CHANNEL/gated_inp" 0.500000 ns ; +# MAXDELAY NET "THE_TDC/gen_CHANNELS.6.THE_CHANNEL/gated_inp" 0.500000 ns ; +# MAXDELAY NET "THE_TDC/gen_CHANNELS.7.THE_CHANNEL/gated_inp" 0.500000 ns ; +# MAXDELAY NET "THE_TDC/gen_CHANNELS.8.THE_CHANNEL/gated_inp" 0.500000 ns ; +# MAXDELAY NET "THE_TDC/gen_CHANNELS.9.THE_CHANNEL/gated_inp" 0.500000 ns ; +# MAXDELAY NET "THE_TDC/gen_CHANNELS.10.THE_CHANNEL/gated_inp" 0.500000 ns ; +# MAXDELAY NET "THE_TDC/gen_CHANNELS.11.THE_CHANNEL/gated_inp" 0.500000 ns ; +# MAXDELAY NET "THE_TDC/gen_CHANNELS.12.THE_CHANNEL/gated_inp" 0.500000 ns ; +# MAXDELAY NET "THE_TDC/gen_CHANNELS.13.THE_CHANNEL/gated_inp" 0.500000 ns ; +# MAXDELAY NET "THE_TDC/gen_CHANNELS.14.THE_CHANNEL/gated_inp" 0.500000 ns ; +# MAXDELAY NET "THE_TDC/gen_CHANNELS.15.THE_CHANNEL/gated_inp" 0.500000 ns ; + +LOCATE UGROUP "THE_TDC/gen_CHANNELS.0.THE_CHANNEL/THE_INP/InpLut" SITE "R59C86D" ; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.0.THE_CHANNEL/THE_FF/FFregs" SITE "R59C84D" ; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.0.THE_CHANNEL/THE_FFF/FFregs" SITE "R59C87D" ; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.0.THE_CHANNEL/THE_FF2/FFregs2" SITE "R59C82D";## +PROHIBIT SITE "R59C86C"; + +LOCATE UGROUP "THE_TDC/gen_CHANNELS.1.THE_CHANNEL/THE_INP/InpLut" SITE "R61C86D" ; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.1.THE_CHANNEL/THE_FF/FFregs" SITE "R61C84D" ; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.1.THE_CHANNEL/THE_FFF/FFregs" SITE "R61C87D" ; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.1.THE_CHANNEL/THE_FF2/FFregs2" SITE "R61C82D";## +PROHIBIT SITE "R61C86C"; + +LOCATE UGROUP "THE_TDC/gen_CHANNELS.2.THE_CHANNEL/THE_INP/InpLut" SITE "R63C86D" ; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.2.THE_CHANNEL/THE_FF/FFregs" SITE "R63C84D" ; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.2.THE_CHANNEL/THE_FFF/FFregs" SITE "R63C87D" ; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.2.THE_CHANNEL/THE_FF2/FFregs2" SITE "R63C82D";## +PROHIBIT SITE "R63C86C"; + +LOCATE UGROUP "THE_TDC/gen_CHANNELS.3.THE_CHANNEL/THE_INP/InpLut" SITE "R39C86D" ; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.3.THE_CHANNEL/THE_FF/FFregs" SITE "R39C84D" ; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.3.THE_CHANNEL/THE_FFF/FFregs" SITE "R39C87D" ; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.3.THE_CHANNEL/THE_FF2/FFregs2" SITE "R39C82D";## +PROHIBIT SITE "R39C86C"; + +LOCATE UGROUP "THE_TDC/gen_CHANNELS.4.THE_CHANNEL/THE_INP/InpLut" SITE "R42C86D" ; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.4.THE_CHANNEL/THE_FF/FFregs" SITE "R42C84D" ; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.4.THE_CHANNEL/THE_FFF/FFregs" SITE "R42C87D" ; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.4.THE_CHANNEL/THE_FF2/FFregs2" SITE "R42C82D";## +PROHIBIT SITE "R42C86C"; + +LOCATE UGROUP "THE_TDC/gen_CHANNELS.5.THE_CHANNEL/THE_INP/InpLut" SITE "R68C86D" ; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.5.THE_CHANNEL/THE_FF/FFregs" SITE "R68C84D" ; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.5.THE_CHANNEL/THE_FFF/FFregs" SITE "R68C87D" ; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.5.THE_CHANNEL/THE_FF2/FFregs2" SITE "R68C82D";## +PROHIBIT SITE "R68C86C"; + +LOCATE UGROUP "THE_TDC/gen_CHANNELS.6.THE_CHANNEL/THE_INP/InpLut" SITE "R65C86D" ; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.6.THE_CHANNEL/THE_FF/FFregs" SITE "R65C84D" ; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.6.THE_CHANNEL/THE_FFF/FFregs" SITE "R65C87D" ; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.6.THE_CHANNEL/THE_FF2/FFregs2" SITE "R65C82D";## +PROHIBIT SITE "R65C86C"; + +LOCATE UGROUP "THE_TDC/gen_CHANNELS.7.THE_CHANNEL/THE_INP/InpLut" SITE "R44C86D" ; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.7.THE_CHANNEL/THE_FF/FFregs" SITE "R44C84D" ; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.7.THE_CHANNEL/THE_FFF/FFregs" SITE "R44C87D" ; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.7.THE_CHANNEL/THE_FF2/FFregs2" SITE "R44C82D";## +PROHIBIT SITE "R44C86C"; + +LOCATE UGROUP "THE_TDC/gen_CHANNELS.8.THE_CHANNEL/THE_INP/InpLut" SITE "R28C86D" ; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.8.THE_CHANNEL/THE_FF/FFregs" SITE "R28C84D" ; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.8.THE_CHANNEL/THE_FFF/FFregs" SITE "R28C87D" ; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.8.THE_CHANNEL/THE_FF2/FFregs2" SITE "R28C82D" ; +PROHIBIT SITE "R28C86C"; + +LOCATE UGROUP "THE_TDC/gen_CHANNELS.9.THE_CHANNEL/THE_INP/InpLut" SITE "R27C86D" ; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.9.THE_CHANNEL/THE_FF/FFregs" SITE "R27C84D" ; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.9.THE_CHANNEL/THE_FFF/FFregs" SITE "R27C87D" ; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.9.THE_CHANNEL/THE_FF2/FFregs2" SITE "R27C82D";## +PROHIBIT SITE "R27C86C"; + +LOCATE UGROUP "THE_TDC/gen_CHANNELS.10.THE_CHANNEL/THE_INP/InpLut" SITE "R35C86D" ; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.10.THE_CHANNEL/THE_FF/FFregs" SITE "R35C84D" ; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.10.THE_CHANNEL/THE_FFF/FFregs" SITE "R35C87D" ; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.10.THE_CHANNEL/THE_FF2/FFregs2" SITE "R35C82D";## +PROHIBIT SITE "R35C86C"; + +LOCATE UGROUP "THE_TDC/gen_CHANNELS.11.THE_CHANNEL/THE_INP/InpLut" SITE "R25C86D" ; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.11.THE_CHANNEL/THE_FF/FFregs" SITE "R25C84D" ; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.11.THE_CHANNEL/THE_FFF/FFregs" SITE "R25C87D" ; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.11.THE_CHANNEL/THE_FF2/FFregs2" SITE "R25C82D";## +PROHIBIT SITE "R25C86C"; + +LOCATE UGROUP "THE_TDC/gen_CHANNELS.12.THE_CHANNEL/THE_INP/InpLut" SITE "R31C86D" ; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.12.THE_CHANNEL/THE_FF/FFregs" SITE "R31C84D" ; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.12.THE_CHANNEL/THE_FFF/FFregs" SITE "R31C87D" ; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.12.THE_CHANNEL/THE_FF2/FFregs2" SITE "R31C82D";## +PROHIBIT SITE "R31C86C"; + +LOCATE UGROUP "THE_TDC/gen_CHANNELS.13.THE_CHANNEL/THE_INP/InpLut" SITE "R23C86D" ; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.13.THE_CHANNEL/THE_FF/FFregs" SITE "R23C84D" ; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.13.THE_CHANNEL/THE_FFF/FFregs" SITE "R23C87D" ; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.13.THE_CHANNEL/THE_FF2/FFregs2" SITE "R23C82D";## +PROHIBIT SITE "R23C86C"; + +LOCATE UGROUP "THE_TDC/gen_CHANNELS.14.THE_CHANNEL/THE_INP/InpLut" SITE "R37C86D" ; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.14.THE_CHANNEL/THE_FF/FFregs" SITE "R37C84D" ; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.14.THE_CHANNEL/THE_FFF/FFregs" SITE "R37C87D" ; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.14.THE_CHANNEL/THE_FF2/FFregs2" SITE "R37C82D";## +PROHIBIT SITE "R37C86C"; + +LOCATE UGROUP "THE_TDC/gen_CHANNELS.15.THE_CHANNEL/THE_INP/InpLut" SITE "R15C86D" ; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.15.THE_CHANNEL/THE_FF/FFregs" SITE "R15C84D" ; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.15.THE_CHANNEL/THE_FFF/FFregs" SITE "R15C87D" ; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.15.THE_CHANNEL/THE_FF2/FFregs2" SITE "R15C82D";## +PROHIBIT SITE "R15C86C"; + + +LOCATE UGROUP "THE_TDC/gen_CHANNELS.16.THE_CHANNEL/THE_INP/InpLut" SITE "R61C5D" ; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.16.THE_CHANNEL/THE_FF/FFregs" SITE "R61C6D" ; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.16.THE_CHANNEL/THE_FFF/FFregs" SITE "R61C3D" ; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.16.THE_CHANNEL/THE_FF2/FFregs2" SITE "R61C8D"; +# PROHIBIT SITE "R61C3B"; +# PROHIBIT SITE "R61C3C"; +# PROHIBIT SITE "R61C4B"; +# PROHIBIT SITE "R61C4C"; +# PROHIBIT SITE "R61C6B"; +# PROHIBIT SITE "R61C6C"; +# PROHIBIT SITE "R61C7B"; +# PROHIBIT SITE "R61C7C"; +PROHIBIT SITE "R61C5C"; +# PROHIBIT SITE "R61C5B"; +# PROHIBIT SITE "R61C5D"; + +LOCATE UGROUP "THE_TDC/gen_CHANNELS.17.THE_CHANNEL/THE_INP/InpLut" SITE "R65C5D" ; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.17.THE_CHANNEL/THE_FF/FFregs" SITE "R65C6D" ; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.17.THE_CHANNEL/THE_FFF/FFregs" SITE "R65C3D" ; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.17.THE_CHANNEL/THE_FF2/FFregs2" SITE "R65C8D"; +# PROHIBIT SITE "R65C3B"; +# PROHIBIT SITE "R65C3C"; +# PROHIBIT SITE "R65C4B"; +# PROHIBIT SITE "R65C4C"; +# PROHIBIT SITE "R65C6B"; +# PROHIBIT SITE "R65C6C"; +# PROHIBIT SITE "R65C7B"; +# PROHIBIT SITE "R65C7C"; +PROHIBIT SITE "R65C5C"; +# PROHIBIT SITE "R65C5B"; +# PROHIBIT SITE "R65C5D"; + +LOCATE UGROUP "THE_TDC/gen_CHANNELS.18.THE_CHANNEL/THE_INP/InpLut" SITE "R41C5D" ; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.18.THE_CHANNEL/THE_FF/FFregs" SITE "R41C6D" ; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.18.THE_CHANNEL/THE_FFF/FFregs" SITE "R41C3D" ; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.18.THE_CHANNEL/THE_FF2/FFregs2" SITE "R41C8D"; +# PROHIBIT SITE "R41C3B"; +# PROHIBIT SITE "R41C3C"; +# PROHIBIT SITE "R41C4B"; +# PROHIBIT SITE "R41C4C"; +# PROHIBIT SITE "R41C6B"; +# PROHIBIT SITE "R41C6C"; +# PROHIBIT SITE "R41C7B"; +# PROHIBIT SITE "R41C7C"; +PROHIBIT SITE "R41C5C"; +# PROHIBIT SITE "R41C5B"; +# PROHIBIT SITE "R41C5D"; + +LOCATE UGROUP "THE_TDC/gen_CHANNELS.19.THE_CHANNEL/THE_INP/InpLut" SITE "R68C5D" ; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.19.THE_CHANNEL/THE_FF/FFregs" SITE "R68C6D" ; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.19.THE_CHANNEL/THE_FFF/FFregs" SITE "R68C3D" ; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.19.THE_CHANNEL/THE_FF2/FFregs2" SITE "R68C8D"; +# PROHIBIT SITE "R68C3B"; +# PROHIBIT SITE "R68C3C"; +# PROHIBIT SITE "R68C4B"; +# PROHIBIT SITE "R68C4C"; +# PROHIBIT SITE "R68C6B"; +# PROHIBIT SITE "R68C6C"; +# PROHIBIT SITE "R68C7B"; +# PROHIBIT SITE "R68C7C"; +PROHIBIT SITE "R68C5C"; +# PROHIBIT SITE "R68C5B"; +# PROHIBIT SITE "R68C5D"; + +LOCATE UGROUP "THE_TDC/gen_CHANNELS.20.THE_CHANNEL/THE_INP/InpLut" SITE "R63C5D" ; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.20.THE_CHANNEL/THE_FF/FFregs" SITE "R63C6D" ; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.20.THE_CHANNEL/THE_FFF/FFregs" SITE "R63C3D" ; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.20.THE_CHANNEL/THE_FF2/FFregs2" SITE "R63C8D"; +# PROHIBIT SITE "R63C3B"; +# PROHIBIT SITE "R63C3C"; +# PROHIBIT SITE "R63C4B"; +# PROHIBIT SITE "R63C4C"; +# PROHIBIT SITE "R63C6B"; +# PROHIBIT SITE "R63C6C"; +# PROHIBIT SITE "R63C7B"; +# PROHIBIT SITE "R63C7C"; +PROHIBIT SITE "R63C5C"; +# PROHIBIT SITE "R63C5B"; +# PROHIBIT SITE "R63C5D"; + +LOCATE UGROUP "THE_TDC/gen_CHANNELS.21.THE_CHANNEL/THE_INP/InpLut" SITE "R39C5D" ; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.21.THE_CHANNEL/THE_FF/FFregs" SITE "R39C6D" ; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.21.THE_CHANNEL/THE_FFF/FFregs" SITE "R39C3D" ; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.21.THE_CHANNEL/THE_FF2/FFregs2" SITE "R39C8D"; +# PROHIBIT SITE "R39C3B"; +# PROHIBIT SITE "R39C3C"; +# PROHIBIT SITE "R39C4B"; +# PROHIBIT SITE "R39C4C"; +# PROHIBIT SITE "R39C6B"; +# PROHIBIT SITE "R39C6C"; +# PROHIBIT SITE "R39C7B"; +# PROHIBIT SITE "R39C7C"; +PROHIBIT SITE "R39C5C"; +# PROHIBIT SITE "R39C5B"; +# PROHIBIT SITE "R39C5D"; + +LOCATE UGROUP "THE_TDC/gen_CHANNELS.22.THE_CHANNEL/THE_INP/InpLut" SITE "R37C5D" ; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.22.THE_CHANNEL/THE_FF/FFregs" SITE "R37C6D" ; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.22.THE_CHANNEL/THE_FFF/FFregs" SITE "R37C3D" ; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.22.THE_CHANNEL/THE_FF2/FFregs2" SITE "R37C8D"; +# PROHIBIT SITE "R37C3B"; +# PROHIBIT SITE "R37C3C"; +# PROHIBIT SITE "R37C4B"; +# PROHIBIT SITE "R37C4C"; +# PROHIBIT SITE "R37C6B"; +# PROHIBIT SITE "R37C6C"; +# PROHIBIT SITE "R37C7B"; +# PROHIBIT SITE "R37C7C"; +PROHIBIT SITE "R37C5C"; +# PROHIBIT SITE "R37C5B"; +# PROHIBIT SITE "R37C5D"; + +LOCATE UGROUP "THE_TDC/gen_CHANNELS.23.THE_CHANNEL/THE_INP/InpLut" SITE "R35C5D" ; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.23.THE_CHANNEL/THE_FF/FFregs" SITE "R35C6D" ; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.23.THE_CHANNEL/THE_FFF/FFregs" SITE "R35C3D" ; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.23.THE_CHANNEL/THE_FF2/FFregs2" SITE "R35C8D"; +# PROHIBIT SITE "R35C3B"; +# PROHIBIT SITE "R35C3C"; +# PROHIBIT SITE "R35C4B"; +# PROHIBIT SITE "R35C4C"; +# PROHIBIT SITE "R35C6B"; +# PROHIBIT SITE "R35C6C"; +# PROHIBIT SITE "R35C7B"; +# PROHIBIT SITE "R35C7C"; +PROHIBIT SITE "R35C5C"; +# PROHIBIT SITE "R35C5B"; +# PROHIBIT SITE "R35C5D"; + +LOCATE UGROUP "THE_TDC/gen_CHANNELS.24.THE_CHANNEL/THE_INP/InpLut" SITE "R11C5D" ; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.24.THE_CHANNEL/THE_FF/FFregs" SITE "R11C6D" ; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.24.THE_CHANNEL/THE_FFF/FFregs" SITE "R11C3D" ; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.24.THE_CHANNEL/THE_FF2/FFregs2" SITE "R11C8D"; +# PROHIBIT SITE "R11C3B"; +# PROHIBIT SITE "R11C3C"; +# PROHIBIT SITE "R11C4B"; +# PROHIBIT SITE "R11C4C"; +# PROHIBIT SITE "R11C6B"; +# PROHIBIT SITE "R11C6C"; +# PROHIBIT SITE "R11C7B"; +# PROHIBIT SITE "R11C7C"; +PROHIBIT SITE "R11C5C"; +# PROHIBIT SITE "R11C5B"; +# PROHIBIT SITE "R11C5D"; + +LOCATE UGROUP "THE_TDC/gen_CHANNELS.25.THE_CHANNEL/THE_INP/InpLut" SITE "R8C5D" ; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.25.THE_CHANNEL/THE_FF/FFregs" SITE "R8C6D" ; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.25.THE_CHANNEL/THE_FFF/FFregs" SITE "R8C3D" ; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.25.THE_CHANNEL/THE_FF2/FFregs2" SITE "R8C8D"; +# PROHIBIT SITE "R8C3B"; +# PROHIBIT SITE "R8C3C"; +# PROHIBIT SITE "R8C4B"; +# PROHIBIT SITE "R8C4C"; +# PROHIBIT SITE "R8C6B"; +# PROHIBIT SITE "R8C6C"; +# PROHIBIT SITE "R8C7B"; +# PROHIBIT SITE "R8C7C"; +PROHIBIT SITE "R8C5C"; +# PROHIBIT SITE "R8C5B"; +# PROHIBIT SITE "R8C5D"; + + +LOCATE UGROUP "THE_TDC/gen_CHANNELS.26.THE_CHANNEL/THE_INP/InpLut" SITE "R32C5D" ; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.26.THE_CHANNEL/THE_FF/FFregs" SITE "R32C6D" ; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.26.THE_CHANNEL/THE_FFF/FFregs" SITE "R32C3D" ; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.26.THE_CHANNEL/THE_FF2/FFregs2" SITE "R32C8D"; +# PROHIBIT SITE "R32C3B"; +# PROHIBIT SITE "R32C3C"; +# PROHIBIT SITE "R32C4B"; +# PROHIBIT SITE "R32C4C"; +# PROHIBIT SITE "R32C6B"; +# PROHIBIT SITE "R32C6C"; +# PROHIBIT SITE "R32C7B"; +# PROHIBIT SITE "R32C7C"; +PROHIBIT SITE "R32C5C"; +# PROHIBIT SITE "R32C5B"; +# PROHIBIT SITE "R32C5D"; + + +LOCATE UGROUP "THE_TDC/gen_CHANNELS.27.THE_CHANNEL/THE_INP/InpLut" SITE "R14C5D" ; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.27.THE_CHANNEL/THE_FF/FFregs" SITE "R14C6D" ; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.27.THE_CHANNEL/THE_FFF/FFregs" SITE "R14C3D" ; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.27.THE_CHANNEL/THE_FF2/FFregs2" SITE "R14C8D"; +# PROHIBIT SITE "R14C3B"; +# PROHIBIT SITE "R14C3C"; +# PROHIBIT SITE "R14C4B"; +# PROHIBIT SITE "R14C4C"; +# PROHIBIT SITE "R14C6B"; +# PROHIBIT SITE "R14C6C"; +# PROHIBIT SITE "R14C7B"; +# PROHIBIT SITE "R14C7C"; +PROHIBIT SITE "R14C5C"; +# PROHIBIT SITE "R14C5B"; +# PROHIBIT SITE "R14C5D"; + + +LOCATE UGROUP "THE_TDC/gen_CHANNELS.28.THE_CHANNEL/THE_INP/InpLut" SITE "R26C5D" ; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.28.THE_CHANNEL/THE_FF/FFregs" SITE "R26C6D" ; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.28.THE_CHANNEL/THE_FFF/FFregs" SITE "R26C3D" ; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.28.THE_CHANNEL/THE_FF2/FFregs2" SITE "R26C8D"; +# PROHIBIT SITE "R26C3B"; +# PROHIBIT SITE "R26C3C"; +# PROHIBIT SITE "R26C4B"; +# PROHIBIT SITE "R26C4C"; +# PROHIBIT SITE "R26C6B"; +# PROHIBIT SITE "R26C6C"; +# PROHIBIT SITE "R26C7B"; +# PROHIBIT SITE "R26C7C"; +PROHIBIT SITE "R26C5C"; +# PROHIBIT SITE "R26C5B"; +# PROHIBIT SITE "R26C5D"; + + +LOCATE UGROUP "THE_TDC/gen_CHANNELS.29.THE_CHANNEL/THE_INP/InpLut" SITE "R16C5D" ; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.29.THE_CHANNEL/THE_FF/FFregs" SITE "R16C6D" ; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.29.THE_CHANNEL/THE_FFF/FFregs" SITE "R16C3D" ; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.29.THE_CHANNEL/THE_FF2/FFregs2" SITE "R16C8D"; +# PROHIBIT SITE "R16C3B"; +# PROHIBIT SITE "R16C3C"; +# PROHIBIT SITE "R16C4B"; +# PROHIBIT SITE "R16C4C"; +# PROHIBIT SITE "R16C6B"; +# PROHIBIT SITE "R16C6C"; +# PROHIBIT SITE "R16C7B"; +# PROHIBIT SITE "R16C7C"; +PROHIBIT SITE "R16C5C"; +# PROHIBIT SITE "R16C5B"; +# PROHIBIT SITE "R16C5D"; + + +LOCATE UGROUP "THE_TDC/gen_CHANNELS.30.THE_CHANNEL/THE_INP/InpLut" SITE "R18C5D" ; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.30.THE_CHANNEL/THE_FF/FFregs" SITE "R18C6D" ; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.30.THE_CHANNEL/THE_FFF/FFregs" SITE "R18C3D" ; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.30.THE_CHANNEL/THE_FF2/FFregs2" SITE "R18C8D"; +# PROHIBIT SITE "R18C3B"; +# PROHIBIT SITE "R18C3C"; +# PROHIBIT SITE "R18C4B"; +# PROHIBIT SITE "R18C4C"; +# PROHIBIT SITE "R18C6B"; +# PROHIBIT SITE "R18C6C"; +# PROHIBIT SITE "R18C7B"; +# PROHIBIT SITE "R18C7C"; +PROHIBIT SITE "R18C5C"; +# PROHIBIT SITE "R18C5B"; +# PROHIBIT SITE "R18C5D"; + + +LOCATE UGROUP "THE_TDC/gen_CHANNELS.31.THE_CHANNEL/THE_INP/InpLut" SITE "R23C5D" ; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.31.THE_CHANNEL/THE_FF/FFregs" SITE "R23C6D" ; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.31.THE_CHANNEL/THE_FFF/FFregs" SITE "R23C3D" ; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.31.THE_CHANNEL/THE_FF2/FFregs2" SITE "R23C8D"; +# PROHIBIT SITE "R23C3B"; +# PROHIBIT SITE "R23C3C"; +# PROHIBIT SITE "R23C4B"; +# PROHIBIT SITE "R23C4C"; +# PROHIBIT SITE "R23C6B"; +# PROHIBIT SITE "R23C6C"; +# PROHIBIT SITE "R23C7B"; +# PROHIBIT SITE "R23C7C"; +PROHIBIT SITE "R23C5C"; +# PROHIBIT SITE "R23C5B"; +# PROHIBIT SITE "R23C5D"; + +LOCATE UGROUP "THE_TDC/THE_REF_CHANNEL/THE_INP/InpLut" SITE "R12C86D" ; +LOCATE UGROUP "THE_TDC/THE_REF_CHANNEL/THE_FF/FFregs" SITE "R12C84D" ; +LOCATE UGROUP "THE_TDC/THE_REF_CHANNEL/THE_FFF/FFregs" SITE "R12C87D" ; +LOCATE UGROUP "THE_TDC/THE_REF_CHANNEL/THE_FF2/FFregs2" SITE "R12C82D";## + +# REGION "TDCLEFT" "R2C16D" 68 4; +# PROHIBIT REGION "TDCLEFT"; +# REGION "TDCRIGHT" "R2C68D" 68 4; +# PROHIBIT REGION "TDCRIGHT"; + +REGION "DECODERLEFT" "R9C2D" 60 10; +REGION "DECODERRIGHT" "R7C78D" 60 10; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.16.THE_CHANNEL/THE_DECODER/Decoder" REGION "DECODERLEFT"; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.17.THE_CHANNEL/THE_DECODER/Decoder" REGION "DECODERLEFT"; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.18.THE_CHANNEL/THE_DECODER/Decoder" REGION "DECODERLEFT"; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.19.THE_CHANNEL/THE_DECODER/Decoder" REGION "DECODERLEFT"; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.20.THE_CHANNEL/THE_DECODER/Decoder" REGION "DECODERLEFT"; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.21.THE_CHANNEL/THE_DECODER/Decoder" REGION "DECODERLEFT"; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.22.THE_CHANNEL/THE_DECODER/Decoder" REGION "DECODERLEFT"; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.23.THE_CHANNEL/THE_DECODER/Decoder" REGION "DECODERLEFT"; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.24.THE_CHANNEL/THE_DECODER/Decoder" REGION "DECODERLEFT"; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.25.THE_CHANNEL/THE_DECODER/Decoder" REGION "DECODERLEFT"; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.26.THE_CHANNEL/THE_DECODER/Decoder" REGION "DECODERLEFT"; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.27.THE_CHANNEL/THE_DECODER/Decoder" REGION "DECODERLEFT"; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.28.THE_CHANNEL/THE_DECODER/Decoder" REGION "DECODERLEFT"; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.29.THE_CHANNEL/THE_DECODER/Decoder" REGION "DECODERLEFT"; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.30.THE_CHANNEL/THE_DECODER/Decoder" REGION "DECODERLEFT"; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.31.THE_CHANNEL/THE_DECODER/Decoder" REGION "DECODERLEFT"; + +LOCATE UGROUP "THE_TDC/gen_CHANNELS.0.THE_CHANNEL/THE_DECODER/Decoder" REGION "DECODERRIGHT"; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.1.THE_CHANNEL/THE_DECODER/Decoder" REGION "DECODERRIGHT"; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.2.THE_CHANNEL/THE_DECODER/Decoder" REGION "DECODERRIGHT"; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.3.THE_CHANNEL/THE_DECODER/Decoder" REGION "DECODERRIGHT"; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.4.THE_CHANNEL/THE_DECODER/Decoder" REGION "DECODERRIGHT"; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.5.THE_CHANNEL/THE_DECODER/Decoder" REGION "DECODERRIGHT"; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.6.THE_CHANNEL/THE_DECODER/Decoder" REGION "DECODERRIGHT"; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.7.THE_CHANNEL/THE_DECODER/Decoder" REGION "DECODERRIGHT"; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.8.THE_CHANNEL/THE_DECODER/Decoder" REGION "DECODERRIGHT"; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.9.THE_CHANNEL/THE_DECODER/Decoder" REGION "DECODERRIGHT"; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.10.THE_CHANNEL/THE_DECODER/Decoder" REGION "DECODERRIGHT"; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.11.THE_CHANNEL/THE_DECODER/Decoder" REGION "DECODERRIGHT"; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.12.THE_CHANNEL/THE_DECODER/Decoder" REGION "DECODERRIGHT"; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.13.THE_CHANNEL/THE_DECODER/Decoder" REGION "DECODERRIGHT"; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.14.THE_CHANNEL/THE_DECODER/Decoder" REGION "DECODERRIGHT"; +LOCATE UGROUP "THE_TDC/gen_CHANNELS.15.THE_CHANNEL/THE_DECODER/Decoder" REGION "DECODERRIGHT"; diff --git a/DBO/mdctdc.prj b/DBO/mdctdc.prj index cfaba95..78d14ed 100644 --- a/DBO/mdctdc.prj +++ b/DBO/mdctdc.prj @@ -14,6 +14,7 @@ set_option -default_enum_encoding sequential set_option -symbolic_fsm_compiler 1 set_option -top_module "mdctdc" set_option -resource_sharing false +set_option -vhdl2008 true # map options set_option -frequency 120 @@ -91,7 +92,9 @@ add_file -vhdl -lib work "../../trbnet/lattice/ecp5/FIFO/fifo_19x16_obuf/fifo_19 add_file -vhdl -lib work "../../trbnet/lattice/ecp5/FIFO/lattice_ecp5_fifo_16x16_dualport/lattice_ecp5_fifo_16x16_dualport.vhd" add_file -vhdl -lib work "../../trbnet/lattice/ecp5/FIFO/lattice_ecp5_fifo_18x16_dualport/lattice_ecp5_fifo_18x16_dualport.vhd" add_file -vhdl -lib work "../../trbnet/lattice/ecp5/FIFO/lattice_ecp3_fifo_18x16_dualport_oreg/lattice_ecp3_fifo_18x16_dualport_oreg.vhd" - +add_file -vhdl -lib work "../../trbnet/lattice/ecp5/FIFO/fifo_36x32_oreg/fifo_36x32_oreg.vhd" +add_file -vhdl -lib work "../../trbnet/lattice/ecp5/FIFO/fifo_36x32/fifo_36x32.vhd" +add_file -vhdl -lib work "../../trbnet/lattice/ecp5/FIFO/fifo_36x512_dualport_oreg/fifo_36x512_dualport_oreg.vhd" #Flash & Reload, Tools add_file -vhdl -lib work "../../trbnet/special/slv_register.vhd" @@ -192,6 +195,19 @@ add_file -vhdl -lib work "../../vhdlbasics/interface/i2c_gstart.vhd" add_file -vhdl -lib work "../../vhdlbasics/interface/i2c_sendb.vhd" add_file -vhdl -lib work "../../vhdlbasics/interface/i2c_slim.vhd" +add_file -vhdl -lib work "../../clocked_tdc/code/clocked_tdc_pkg.vhd" +add_file -vhdl -lib work "../cores/PLL_TDC/PLL_TDC.vhd" +add_file -vhdl -lib work "../../clocked_tdc/code/TDC_FF.vhd" +add_file -vhdl -lib work "../../clocked_tdc/code/ChannelRegs.vhd" +add_file -vhdl -lib work "../../clocked_tdc/code/FFregs.vhd" +add_file -vhdl -lib work "../../clocked_tdc/code/FFregs2.vhd" +add_file -vhdl -lib work "../../clocked_tdc/code/InpLut.vhd" +add_file -vhdl -lib work "../../clocked_tdc/code/Decoder.vhd" +add_file -vhdl -lib work "../../clocked_tdc/code/HitBuffer.vhd" +add_file -vhdl -lib work "../../clocked_tdc/code/ReadoutHandler.vhd" + + + add_file -vhdl -lib work "./mdctdc.vhd" #add_file -fpga_constraint "./synplify.fdc" diff --git a/DBO/mdctdc.vhd b/DBO/mdctdc.vhd index 7cc3833..75ff429 100644 --- a/DBO/mdctdc.vhd +++ b/DBO/mdctdc.vhd @@ -55,6 +55,7 @@ entity mdctdc is attribute syn_useioff of FLASH_SCLK : signal is true; attribute syn_useioff of FLASH_MOSI : signal is true; attribute syn_useioff of FLASH_MISO : signal is true; + attribute syn_useioff of OUTP : signal is false; end entity; @@ -76,7 +77,7 @@ architecture arch of mdctdc is signal readout_rx : READOUT_RX; - signal readout_tx : readout_tx_array_t(0 to 0); + signal readout_tx : readout_tx_array_t(0 to 1); signal ctrlbus_tx, bustdc_tx, bussci_tx, bustools_tx, bustc_tx, bus_master_in : CTRLBUS_TX; signal ctrlbus_rx, bustdc_rx, bussci_rx, bustools_rx, bustc_rx, bus_master_out : CTRLBUS_RX; @@ -90,9 +91,12 @@ architecture arch of mdctdc is signal timer : TIMERS; signal led_off : std_logic; --TDC - signal hit_in_i : std_logic_vector(NUM_TDC_CHANNELS-1 downto 1); + signal hit_in_i : std_logic_vector(31 downto 0); signal monitor_inputs_i : std_logic_vector(MONITOR_INPUT_NUM-1 downto 0); signal trigger_inputs_i : std_logic_vector(TRIG_GEN_INPUT_NUM-1 downto 0); + signal calibration_pulse: std_logic; + + signal dummy_i : std_logic; begin @@ -168,7 +172,7 @@ begin REGIO_USE_1WIRE_INTERFACE => c_I2C, TIMING_TRIGGER_RAW => c_YES, --Configure data handler - DATA_INTERFACE_NUMBER => 1, + DATA_INTERFACE_NUMBER => 2, DATA_BUFFER_DEPTH => EVENT_BUFFER_SIZE, DATA_BUFFER_WIDTH => 32, DATA_BUFFER_FULL_THRESH => 2**EVENT_BUFFER_SIZE-EVENT_MAX_SIZE, @@ -296,14 +300,13 @@ begin --------------------------------------------------------------------------- monitor_inputs_i <= OUTP(MONITOR_INPUT_NUM-1 downto 0); trigger_inputs_i <= OUTP(TRIG_GEN_INPUT_NUM-1 downto 0); - hit_in_i <= OUTP(NUM_TDC_CHANNELS-2 downto 0); - + hit_in_i <= OUTP; --------------------------------------------------------------------------- -- LED --------------------------------------------------------------------------- LED(0) <= (med2int(0).stat_op(10) or med2int(0).stat_op(11)) and not led_off; LED(1) <= med2int(0).stat_op(9) and not led_off; - LED(2) <= FLASH_SELECT and not led_off; + LED(2) <= (LVDS(1) or LVDS(0) or dummy_i or FLASH_SELECT) and not led_off; -------------------------------------------------------------------------- @@ -311,39 +314,41 @@ begin --------------------------------------------------------------------------- PTEN <= "11"; INJ <= additional_reg(19 downto 16); --"0000"; - TEST <= additional_reg(27 downto 24); --"0000"; + TEST <= additional_reg(27 downto 24) or (calibration_pulse & calibration_pulse & calibration_pulse & calibration_pulse); --"0000"; ------------------------------------------------------------------------------- -- TDC ------------------------------------------------------------------------------- --- THE_TDC : entity work.TDC_FF --- generic map( --- CHANNELS => 17 --- ) --- port map( --- CLK => CLK_125, --- SYSCLK => clk_sys, --- RESET_IN => reset_i, --- SIGNAL_IN => INP(16 downto 0), --- --- BUS_RX => bustdc_rx, --- BUS_TX => bustdc_tx, --- --- READOUT_RX => readout_rx, --- READOUT_TX => readout_tx --- --- ); --- --- +THE_TDC : entity work.TDC_FF + + port map( + CLK_FAST => CLK_TDC, + CLK_SYS => clk_sys, + RESET_IN => reset_i, + SIGNAL_IN => hit_in_i(31 downto 0), + TRIGGER_IN => TRG, + CALIBRATION_OUT => calibration_pulse, + + BUS_RX => bustdc_rx, + BUS_TX => bustdc_tx, + + READOUT_RX => readout_rx, + READOUT_TX => readout_tx(0 to 1), + + DUMMY => dummy_i + + ); + + ------------------------------------------------------------------------------- -- No trigger/data endpoint included ------------------------------------------------------------------------------- -readout_tx(0).data_finished <= '1'; -readout_tx(0).data_write <= '0'; -readout_tx(0).busy_release <= '1'; +-- readout_tx(0).data_finished <= '1'; +-- readout_tx(0).data_write <= '0'; +-- readout_tx(0).busy_release <= '1'; end architecture; diff --git a/DBO/project/mdcdbo.ldf b/DBO/project/mdcdbo.ldf new file mode 100644 index 0000000..96ab3fc --- /dev/null +++ b/DBO/project/mdcdbo.ldf @@ -0,0 +1,368 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cores/PLL_TDC/PLL_TDC.lpc b/cores/PLL_TDC/PLL_TDC.lpc new file mode 100644 index 0000000..9bfc4df --- /dev/null +++ b/cores/PLL_TDC/PLL_TDC.lpc @@ -0,0 +1,93 @@ +[Device] +Family=ecp5um +PartType=LFE5UM-45F +PartName=LFE5UM-45F-8BG381C +SpeedGrade=8 +Package=CABGA381 +OperatingCondition=COM +Status=P + +[IP] +VendorName=Lattice Semiconductor Corporation +CoreType=LPM +CoreStatus=Demo +CoreName=PLL +CoreRevision=5.8 +ModuleName=PLL_TDC +SourceFormat=vhdl +ParameterFileVersion=1.0 +Date=07/04/2021 +Time=13:29:21 + +[Parameters] +Verilog=0 +VHDL=1 +EDIF=1 +Destination=Synplicity +Expression=BusA(0 to 7) +Order=Big Endian [MSB:LSB] +IO=0 +CLKI_FREQ=156.25 +CLKI_DIV=1 +ENABLE_HBW=DISABLED +REFERENCE=0 +IOBUF=LVDS +CLKOP_FREQ=312.5 +CLKOP_TOL=0.0 +CLKOP_DIV=2 +CLKOP_ACTUAL_FREQ=312.500000 +CLKOP_MUXA=DISABLED +CLKOS_Enable=ENABLED +CLKOS_FREQ=312.5 +CLKOS_TOL=0.0 +CLKOS_DIV=2 +CLKOS_ACTUAL_FREQ=312.500000 +CLKOS_MUXB=DISABLED +CLKOS2_Enable=ENABLED +CLKOS2_FREQ=312.5 +CLKOS2_TOL=0.0 +CLKOS2_DIV=2 +CLKOS2_ACTUAL_FREQ=312.500000 +CLKOS2_MUXC=DISABLED +CLKOS3_Enable=ENABLED +CLKOS3_FREQ=312.5 +CLKOS3_TOL=0.0 +CLKOS3_DIV=2 +CLKOS3_ACTUAL_FREQ=312.500000 +CLKOS3_MUXD=DISABLED +FEEDBK_PATH=CLKOP +CLKFB_DIV=2 +FRACN_ENABLE=DISABLED +FRACN_DIV= +VCO_RATE=625.000 +PLL_BW=10.504 +CLKOP_DPHASE=0 +CLKOP_APHASE=0.00 +CLKOP_TRIM_POL=Rising +CLKOP_TRIM_DELAY=0 +CLKOS_DPHASE=45 +CLKOS_APHASE=45.00 +CLKOS_TRIM_POL=Rising +CLKOS_TRIM_DELAY=0 +CLKOS2_DPHASE=90 +CLKOS2_APHASE=90.00 +CLKOS2_TRIM_POL=Rising +CLKOS2_TRIM_DELAY=0 +CLKOS3_DPHASE=135 +CLKOS3_APHASE=135.00 +CLKOS3_TRIM_POL=Rising +CLKOS3_TRIM_DELAY=0 +CLKSEL_ENA=DISABLED +DPHASE_SOURCE=STATIC +ENABLE_CLKOP=DISABLED +ENABLE_CLKOS=DISABLED +ENABLE_CLKOS2=DISABLED +ENABLE_CLKOS3=DISABLED +STDBY_ENABLE=DISABLED +PLLRST_ENA=DISABLED +PLL_LOCK_MODE=DISABLED +PLL_LOCK_STK=DISABLED +PLL_USE_SMI=DISABLED + +[Command] +cmd_line= -w -n PLL_TDC -lang vhdl -synth synplify -bus_exp 7 -bb -arch sa5p00m -type pll -fin 156.25 -fclkop 312.5 -fclkop_tol 0.0 -fclkos 312.5 -fclkos_tol 0.0 -phases 45 -fclkos2 312.5 -fclkos2_tol 0.0 -phases2 90 -fclkos3 312.5 -fclkos3_tol 0.0 -phases3 135 -phase_cntl STATIC -fb_mode 1 diff --git a/cores/PLL_TDC/PLL_TDC.sbx b/cores/PLL_TDC/PLL_TDC.sbx new file mode 100644 index 0000000..3ca9a79 --- /dev/null +++ b/cores/PLL_TDC/PLL_TDC.sbx @@ -0,0 +1,430 @@ + + + + Lattice Semiconductor Corporation + LEGACY + PLL + 5.8 + + + Diamond_Simulation + simulation + + ./PLL_TDC.vhd + vhdlSource + + + + Diamond_Synthesis + synthesis + + ./PLL_TDC.vhd + vhdlSource + + + + + + Configuration + none + ${sbp_path}/generate_core.tcl + CONFIG + + + Generation + none + ${sbp_path}/${instance}/generate_core.tcl + GENERATE + + + + + + + + LFE5UM-45F-8BG381C + synplify + 2021-07-04.13:29:29 + 2021-07-04.13:29:29 + 3.11.2.446 + VHDL + + false + false + false + false + false + false + false + false + false + false + LPM + PRIMARY + PRIMARY + false + false + + + + + + Family + ecp5um + + + OperatingCondition + COM + + + Package + CABGA381 + + + PartName + LFE5UM-45F-8BG381C + + + PartType + LFE5UM-45F + + + SpeedGrade + 8 + + + Status + P + + + + CoreName + PLL + + + CoreRevision + 5.8 + + + CoreStatus + Demo + + + CoreType + LPM + + + Date + 07/04/2021 + + + ModuleName + PLL_TDC + + + ParameterFileVersion + 1.0 + + + SourceFormat + vhdl + + + Time + 13:29:21 + + + VendorName + Lattice Semiconductor Corporation + + + + CLKFB_DIV + 2 + + + CLKI_DIV + 1 + + + CLKI_FREQ + 156.25 + + + CLKOP_ACTUAL_FREQ + 312.500000 + + + CLKOP_APHASE + 0.00 + + + CLKOP_DIV + 2 + + + CLKOP_DPHASE + 0 + + + CLKOP_FREQ + 312.5 + + + CLKOP_MUXA + DISABLED + + + CLKOP_TOL + 0.0 + + + CLKOP_TRIM_DELAY + 0 + + + CLKOP_TRIM_POL + Rising + + + CLKOS2_ACTUAL_FREQ + 312.500000 + + + CLKOS2_APHASE + 90.00 + + + CLKOS2_DIV + 2 + + + CLKOS2_DPHASE + 90 + + + CLKOS2_Enable + ENABLED + + + CLKOS2_FREQ + 312.5 + + + CLKOS2_MUXC + DISABLED + + + CLKOS2_TOL + 0.0 + + + CLKOS2_TRIM_DELAY + 0 + + + CLKOS2_TRIM_POL + Rising + + + CLKOS3_ACTUAL_FREQ + 312.500000 + + + CLKOS3_APHASE + 135.00 + + + CLKOS3_DIV + 2 + + + CLKOS3_DPHASE + 135 + + + CLKOS3_Enable + ENABLED + + + CLKOS3_FREQ + 312.5 + + + CLKOS3_MUXD + DISABLED + + + CLKOS3_TOL + 0.0 + + + CLKOS3_TRIM_DELAY + 0 + + + CLKOS3_TRIM_POL + Rising + + + CLKOS_ACTUAL_FREQ + 312.500000 + + + CLKOS_APHASE + 45.00 + + + CLKOS_DIV + 2 + + + CLKOS_DPHASE + 45 + + + CLKOS_Enable + ENABLED + + + CLKOS_FREQ + 312.5 + + + CLKOS_MUXB + DISABLED + + + CLKOS_TOL + 0.0 + + + CLKOS_TRIM_DELAY + 0 + + + CLKOS_TRIM_POL + Rising + + + CLKSEL_ENA + DISABLED + + + DPHASE_SOURCE + STATIC + + + Destination + Synplicity + + + EDIF + 1 + + + ENABLE_CLKOP + DISABLED + + + ENABLE_CLKOS + DISABLED + + + ENABLE_CLKOS2 + DISABLED + + + ENABLE_CLKOS3 + DISABLED + + + ENABLE_HBW + DISABLED + + + Expression + BusA(0 to 7) + + + FEEDBK_PATH + CLKOP + + + FRACN_DIV + + + + FRACN_ENABLE + DISABLED + + + IO + 0 + + + IOBUF + LVDS + + + Order + Big Endian [MSB:LSB] + + + PLLRST_ENA + DISABLED + + + PLL_BW + 10.504 + + + PLL_LOCK_MODE + DISABLED + + + PLL_LOCK_STK + DISABLED + + + PLL_USE_SMI + DISABLED + + + REFERENCE + 0 + + + STDBY_ENABLE + DISABLED + + + VCO_RATE + 625.000 + + + VHDL + 1 + + + Verilog + 0 + + + + cmd_line + -w -n PLL_TDC -lang vhdl -synth synplify -bus_exp 7 -bb -arch sa5p00m -type pll -fin 156.25 -fclkop 312.5 -fclkop_tol 0.0 -fclkos 312.5 -fclkos_tol 0.0 -phases 45 -fclkos2 312.5 -fclkos2_tol 0.0 -phases2 90 -fclkos3 312.5 -fclkos3_tol 0.0 -phases3 135 -phase_cntl STATIC -fb_mode 1 + + + + + + + LATTICE + LOCAL + PLL_TDC + 1.0 + + + + diff --git a/cores/PLL_TDC/PLL_TDC.vhd b/cores/PLL_TDC/PLL_TDC.vhd new file mode 100644 index 0000000..d03480f --- /dev/null +++ b/cores/PLL_TDC/PLL_TDC.vhd @@ -0,0 +1,86 @@ +-- VHDL netlist generated by SCUBA Diamond (64-bit) 3.11.2.446 +-- Module Version: 5.7 +--/d/jspc29/lattice/diamond/3.11_x64/ispfpga/bin/lin64/scuba -w -n PLL_TDC -lang vhdl -synth synplify -bus_exp 7 -bb -arch sa5p00m -type pll -fin 156.25 -fclkop 312.5 -fclkop_tol 0.0 -fclkos 312.5 -fclkos_tol 0.0 -phases 45 -fclkos2 312.5 -fclkos2_tol 0.0 -phases2 90 -fclkos3 312.5 -fclkos3_tol 0.0 -phases3 135 -phase_cntl STATIC -fb_mode 1 -fdc /local/trb/git/mdcupgrade/cores/PLL_TDC/PLL_TDC.fdc + +-- Sun Jul 4 13:29:29 2021 + +library IEEE; +use IEEE.std_logic_1164.all; +library ecp5um; +use ecp5um.components.all; + +entity PLL_TDC is + port ( + CLKI: in std_logic; + CLKOP: out std_logic; + CLKOS: out std_logic; + CLKOS2: out std_logic; + CLKOS3: out std_logic); +end PLL_TDC; + +architecture Structure of PLL_TDC is + + -- internal signal declarations + signal REFCLK: std_logic; + signal LOCK: std_logic; + signal CLKOS3_t: std_logic; + signal CLKOS2_t: std_logic; + signal CLKOS_t: std_logic; + signal CLKOP_t: std_logic; + signal scuba_vhi: std_logic; + signal scuba_vlo: std_logic; + + attribute FREQUENCY_PIN_CLKOS3 : string; + attribute FREQUENCY_PIN_CLKOS2 : string; + attribute FREQUENCY_PIN_CLKOS : string; + attribute FREQUENCY_PIN_CLKOP : string; + attribute FREQUENCY_PIN_CLKI : string; + attribute ICP_CURRENT : string; + attribute LPF_RESISTOR : string; + attribute FREQUENCY_PIN_CLKOS3 of PLLInst_0 : label is "312.500000"; + attribute FREQUENCY_PIN_CLKOS2 of PLLInst_0 : label is "312.500000"; + attribute FREQUENCY_PIN_CLKOS of PLLInst_0 : label is "312.500000"; + attribute FREQUENCY_PIN_CLKOP of PLLInst_0 : label is "312.500000"; + attribute FREQUENCY_PIN_CLKI of PLLInst_0 : label is "156.250000"; + attribute ICP_CURRENT of PLLInst_0 : label is "10"; + attribute LPF_RESISTOR of PLLInst_0 : label is "24"; + attribute syn_keep : boolean; + attribute NGD_DRC_MASK : integer; + attribute NGD_DRC_MASK of Structure : architecture is 1; + +begin + -- component instantiation statements + scuba_vhi_inst: VHI + port map (Z=>scuba_vhi); + + scuba_vlo_inst: VLO + port map (Z=>scuba_vlo); + + PLLInst_0: EHXPLLL + generic map (PLLRST_ENA=> "DISABLED", INTFB_WAKE=> "DISABLED", + STDBY_ENABLE=> "DISABLED", DPHASE_SOURCE=> "DISABLED", + CLKOS3_FPHASE=> 6, CLKOS3_CPHASE=> 1, CLKOS2_FPHASE=> 4, + CLKOS2_CPHASE=> 1, CLKOS_FPHASE=> 2, CLKOS_CPHASE=> 1, + CLKOP_FPHASE=> 0, CLKOP_CPHASE=> 1, PLL_LOCK_MODE=> 0, + CLKOS_TRIM_DELAY=> 0, CLKOS_TRIM_POL=> "FALLING", + CLKOP_TRIM_DELAY=> 0, CLKOP_TRIM_POL=> "FALLING", + OUTDIVIDER_MUXD=> "DIVD", CLKOS3_ENABLE=> "ENABLED", + OUTDIVIDER_MUXC=> "DIVC", CLKOS2_ENABLE=> "ENABLED", + OUTDIVIDER_MUXB=> "DIVB", CLKOS_ENABLE=> "ENABLED", + OUTDIVIDER_MUXA=> "DIVA", CLKOP_ENABLE=> "ENABLED", CLKOS3_DIV=> 2, + CLKOS2_DIV=> 2, CLKOS_DIV=> 2, CLKOP_DIV=> 2, CLKFB_DIV=> 2, + CLKI_DIV=> 1, FEEDBK_PATH=> "CLKOP") + port map (CLKI=>CLKI, CLKFB=>CLKOP_t, PHASESEL1=>scuba_vlo, + PHASESEL0=>scuba_vlo, PHASEDIR=>scuba_vlo, + PHASESTEP=>scuba_vlo, PHASELOADREG=>scuba_vlo, + STDBY=>scuba_vlo, PLLWAKESYNC=>scuba_vlo, RST=>scuba_vlo, + ENCLKOP=>scuba_vlo, ENCLKOS=>scuba_vlo, ENCLKOS2=>scuba_vlo, + ENCLKOS3=>scuba_vlo, CLKOP=>CLKOP_t, CLKOS=>CLKOS_t, + CLKOS2=>CLKOS2_t, CLKOS3=>CLKOS3_t, LOCK=>LOCK, + INTLOCK=>open, REFCLK=>REFCLK, CLKINTFB=>open); + + CLKOS3 <= CLKOS3_t; + CLKOS2 <= CLKOS2_t; + CLKOS <= CLKOS_t; + CLKOP <= CLKOP_t; +end Structure; diff --git a/pinout/dbo.lpf b/pinout/dbo.lpf index b00a7dd..0571332 100644 --- a/pinout/dbo.lpf +++ b/pinout/dbo.lpf @@ -109,7 +109,7 @@ LOCATE COMP "TEST_0" SITE "B20"; LOCATE COMP "TEST_1" SITE "B19"; LOCATE COMP "TEST_2" SITE "D9"; LOCATE COMP "TEST_3" SITE "C8"; -DEFINE PORT GROUP "Test_group" "TEST*"; +DEFINE PORT GROUP "TEST_group" "TEST*"; IOBUF GROUP "TEST_group" IO_TYPE=LVCMOS25 ; LOCATE COMP "INJ_0" SITE "J17"; -- 2.43.0