Ah, if it's a component switching limit, then the fix should be to swap a BUFR with a BUFG in the interface. See the change to xps_base/XPS_ROACH_base/pcores/dac_mkid_interface_v1_01_a/hdl/vhdl/dac_mkid_interface.vhd in this commit in my mlib_devel : https://github.com/mstrader/mlib_devel/commit/5308efb664d74166905d0fb141a38f14e493c453
I wasn't the one who made the change, so I don't know why this fixes anything but I know this problem comes up without it. Matt On Fri, May 8, 2015 at 1:42 PM, Jack Hickish <[email protected]> wrote: > Hi Simon, > > Can you send me the model you're compiling, and the mlib_devel repo/branch > you're using. This seems like it should really just be fixed. > > Thanks, > Jack > > On Fri, 8 May 2015 at 13:36 Simon Dicker <[email protected]> wrote: > >> To turn off the PAR check I did the following: >> >> In the file mlib_devel/xps_base/XPS_ROACH_base/system.xmp.xs95t there is >> an option EnableParTimingError. On setting this to zero then I could get >> my system to compile. There seem to be several of these system.xmp files >> so depending on what your are building for the file may be different - if >> you try this and it works let us know. >> >> As to the cause of the timing error (it is far better to get rid of them) >> then I traced it down to the DAC_mkid block - A stripped down model with >> only a DRAM_LUT, a dac_mkid block and a adc_mkid block. gave the error but >> when I stripped out the dac_mkid block then the error went away. I tried >> playing with delays inside the block but this only made things worse. >> >> If it helps then it seems to be a component switching limit - using the >> timing analysis program and looking at the system.twr file of a failed >> build the errors occurred in the following networks (any suggestions on >> fixing this one would be interesting): >> >> ================================================================================ >> >> >> Timing constraint: PERIOD analysis for net >> >> "adcdac_tst1_adc_mkid/adcdac_tst1_adc_mkid/dcm_clk" derived from NET >> >> "adcdac_tst1_adc_mkid/adcdac_tst1_adc_mkid/drdy_clk" PERIOD = 3.9062 ns >> >> HIGH 50%; duty cycle corrected to 3.906 nS HIGH 1.953 nS >> >> For more information, see Period Analysis in the Timing Closure User Guide >> (UG612). >> >> 2253 paths analyzed, 1505 endpoints analyzed, 0 failing endpoints >> >> 1 timing error detected. (0 setup errors, 0 hold errors, 1 component >> switching limit error) >> >> Minimum period is 3.999ns. >> >> >> -------------------------------------------------------------------------------- >> >> Component Switching Limit Checks: PERIOD analysis for net >> "adcdac_tst1_adc_mkid/adcdac_tst1_adc_mkid/dcm_clk" derived from >> >> NET "adcdac_tst1_adc_mkid/adcdac_tst1_adc_mkid/drdy_clk" PERIOD = 3.9062 >> ns HIGH 50%; >> >> duty cycle corrected to 3.906 nS HIGH 1.953 nS >> >> >> -------------------------------------------------------------------------------- >> >> Slack: -0.093ns (period - min period limit) >> >> Period: 3.906ns >> >> Min period limit: 3.999ns (250.063MHz) (Tbrper_I) >> >> Physical resource: adcdac_tst1_dac_mkid/adcdac_tst1_dac_mkid/BUFR_inst/I >> >> Logical resource: adcdac_tst1_dac_mkid/adcdac_tst1_dac_mkid/BUFR_inst/I >> >> Location pin: BUFR_X0Y11.I >> >> Clock network: adc1_clk >> >> >> -------------------------------------------------------------------------------- >> >> >> >> >> ================================================================================ >> Timing constraint: TS_adcdac_tst1_adc_mkid_adcdac_tst1_adc_mkid_dcm_clk >> = PERIOD TIMEGRP "adcdac_tst1_adc_mkid_adcdac_tst1_adc_mkid_dcm_clk" >> TS_adcmkid1_DRDY_I_p HIGH 50%; For more information, see Period >> Analysis in the Timing Closure User Guide (UG612). 0 paths analyzed, 0 >> endpoints analyzed, 0 failing endpoints 1 timing error detected. (1 >> component switching limit error) Minimum period is 3.999ns. >> -------------------------------------------------------------------------------- >> Component Switching Limit Checks: >> TS_adcdac_tst1_adc_mkid_adcdac_tst1_adc_mkid_dcm_clk = PERIOD TIMEGRP >> "adcdac_tst1_adc_mkid_adcdac_tst1_adc_mkid_dcm_clk" >> TS_adcmkid1_DRDY_I_p HIGH 50%; >> -------------------------------------------------------------------------------- >> Slack: -0.093ns (period - min period limit) Period: 3.906ns Min >> period limit: 3.999ns (250.063MHz) (Tbrper_I) Physical resource: >> adcdac_tst1_dac_mkid/adcdac_tst1_dac_mkid/BUFR_inst/I Logical resource: >> adcdac_tst1_dac_mkid/adcdac_tst1_dac_mkid/BUFR_inst/I Location pin: >> BUFR_X0Y11.I Clock network: adc1_clk >> -------------------------------------------------------------------------------- >> >> >> >> ================================================================================ >> Timing constraint: >> TS_adcdac_tst1_adc_mkid_adcdac_tst1_adc_mkid_dcm_clk_0 = PERIOD TIMEGRP >> "adcdac_tst1_adc_mkid_adcdac_tst1_adc_mkid_dcm_clk_0" >> TS_adcmkid1_DRDY_I_n HIGH 50%; For more information, see Period >> Analysis in the Timing Closure User Guide (UG612). 0 paths analyzed, 0 >> endpoints analyzed, 0 failing endpoints 1 timing error detected. (1 >> component switching limit error) Minimum period is 3.999ns. >> -------------------------------------------------------------------------------- >> Component Switching Limit Checks: >> TS_adcdac_tst1_adc_mkid_adcdac_tst1_adc_mkid_dcm_clk_0 = PERIOD TIMEGRP >> "adcdac_tst1_adc_mkid_adcdac_tst1_adc_mkid_dcm_clk_0" >> TS_adcmkid1_DRDY_I_n HIGH 50%; >> -------------------------------------------------------------------------------- >> Slack: -0.093ns (period - min period limit) Period: 3.906ns Min >> period limit: 3.999ns (250.063MHz) (Tbrper_I) Physical resource: >> adcdac_tst1_dac_mkid/adcdac_tst1_dac_mkid/BUFR_inst/I Logical resource: >> adcdac_tst1_dac_mkid/adcdac_tst1_dac_mkid/BUFR_inst/I Location pin: >> BUFR_X0Y11.I Clock network: adc1_clk >> -------------------------------------------------------------------------------- >> >> >> >> >> >> On Tue, May 5, 2015 at 9:51 PM, NiuChenhui <[email protected]> wrote: >> >>> Hi,simon, >>> I'm meeting the same issue.I failed to compile the mdl which used to be >>> compiled successfully. >>> In my opinion,The timing error may be a compile EDK problem.So I want to >>> Disable the timing error first. I have tried some compilations,I put >>> the "XPS% xset enable_par_timing_error 0" when the matlab promoting. >>> Well it's a probability event,one of them show successfully complied but >>> the left ones still met the timing error.I don't know what exact steps >>> should be done if I want to Disable the timing error. >>> The former discussion also give some information about this issue in >>> casper-mail-list. Though they did not suggest Disabling the "Treat >>> timing closure failure as error" , It didn't mention how to analysis >>> and settled out this issue.( >>> https://www.mail-archive.com/casper%40lists.berkeley.edu/msg03906.html).So >>> for two things: >>> 1)How to disable the timing error tips if I make sure I want to? >>> 2)How to analysis this problem? >>> Thanks for any help! >>> peter >>> >>> >>> >>

