Source Synchronous Input: Capture clock/Launch Clock analysis

Hi, I have a Source Synchronous LVDS DDR input into a Kintex7, the launching clock is edge-aligned to the data and capture clock should capture on opposite edge (a launch on the rising edge should be captured by the falling edge). I have designed it to work at 100Mhz by compensating the clock insertion delay with a PLL (to save the MMCM for other purposes) using BUFH (the timing is not so tight to use BUFIO/BUFR). The PLL also centers the opposing edge on the data window by shifting -90°. Now the launching clock waveform is {5.0 0.0}, and the waveform generated by the PLL is {2.5 7.5}, this is reported correctly by Vivado. But when vivado analyses the setup path (I have set the proper set_input_delays) the following happens:
-Launching clock rising edge is correctly at 5.0ns at the input data PIN.
-Capture clock falling edge is INCORRECTLY 7.5ns AT THE CLOCK PIN.
What I don't get is: why Vivado, that recognizes that the capture clock is a generated clock by the PLL, uses the {2.5 7.5} waveform AT THE CLOCK PIN, and not at the ouptut of the PLL BUFH. I mean the falling edge of the capture clock should be 7.5ns at the output of the BUFH, not at the input to the FPGA (I see that the PLL correctly shifts this 7.5ns to be 5ns at the BUFH, but this is not what actually happens).
Doing the calculations manually the interface meets setup/hold with ease. I just want Vivado to make the proper analysis.

I am not 100% certain I followed all your logic, but I think the issue is that you aren't following how clocks are treated in SDC/XDC.
In Vivado/SDC/XDC, there are two separate concepts - clock phase, and clock propagation. For calculating how the launch/capture edge relationship is done, it is done based purely on phase - propagation does not factor in to it. Regardless of how they are generated, you have two clocks
  - the primary clock (generated by the create_clock command), which has a waveform of {0.0 5.0} (I am not sure why you say the opposite - {5.0 0} is not a meaningful representation in XDC)
  - the automatcially generated clock at the output of the PLL, which has edges at {2.5 7.5}. Its a little irrelevent how you defined it (with a +90 or -90 degree shift since the interface is DDR) - for the sake of argument, I will say its +90 degrees.
First, recognize that when you define a DDR input and use an IDDR to capture it, you are defining four static timing paths - you have two startpoints, one from your set_input_delay and one from your set_input_delay -clock_fall -add_delay. You also have two endpoints, one from the rising edge clock at the IDDR and one at the falling edge of the IDDR. This generates 4 paths
  a) rising input -> falling IDDR
  b) falling input -> rising IDDR
  c) rising input -> rising IDDR
  d) falling input -> falling IDDR
All four paths exist, and all are timed.
Now you need to understand the rules that Vivado uses to determine launch and capture edges. For this system, it is easy - the capture edge is always the edge of the capture clock that is the earliest that follows the launch edge. So in this case (assuming launching is {0 5.0} and capture is {2.5 7.5} will be
  a) rise at 0 -> fall at 7.5
  b) fall at 5 -> to rise at 12.5 
  c) rise at 0 -> rise at 2.5 (this is the most critical one, so a) is irrelevent)
  d) fall at 5 -> fall at 7.5 (this is the most critical one, so b) is irrelevent)
Now that it has determined the launch and capture edges for all the paths, it starts the propagation at the primary clocks. For your set_input_delay these are the clock pin. For the capture IDDR, the edge starts at the primary clock, propagates through the PLL (which adjusts it for clock propagation but not for the phase shift), and ultimately to the IDDR clock.
Now, in a real system this is what is going to happen - I am not sure why you think this is incorrect. If, however, there is some reason to believe that c and d are false paths, then you have to declare them as such (which will then leave a and b as the ones that remain). To do this, you would work with a virtual clock - you would define TWO clocks - the primary clock to the clock pin, and an idential virtual clock for your set_input_delays
# Create the real and virtual clock
create_clock -period 10 -name real_clk [get_ports clk_pin]
create_clock -period 10 -name virt_clk
# Define the input delay with respect to both edges of the virtual clock
set_input_delay <delay> -clock virt_clk [get_ports data_pin]
set_input_delay <delay> -clock virt_clk [get_ports data_pin] -clock_fall -add_delay
# Disable the rising to falling and falling to rising paths
set_false_path -rise_from [get_clocks real_clk] -fall_to [get_clocks virt_clk]
set_false_path -fall_from [get_clocks real_clk] -rise_to [get_clocks virt_clk]
Even though "real_clk" and "virt_clk" are different clocks all clocks in Vivado are related by default, so the fact that they have the same period and starting phase (which defaults to {0 5.0}) then they are effectively the same clock.
The reason for using the virtual clock is to make sure that if there is a rising to falling edge path inside the FPGA, you don't accidentally declare it false too - and these will happen between the IDDR and fabric logic (if it is in OPPOSITE_EDGE mode).
I hope this is clear... It can be a bit confusing, but it does make sense.
Avrum

Similar Messages

  • How do I synchronise my Intel iMac's SPDIF audio input to an external clock source?

    How do I synchronise my Intel iMac's SPDIF audio input to an external clock source?
    I have a Focusrite ISA One microphone pre-amp with digital ADC card fitted. Both devices are set to 24 bit/44.1kHz and connected by Optical cable (from ISA One to iMac's optical SPDIF input)
    I've tried to get the iMac to slave to the ISA One's digital clock by looking in the Audio MIDI set-up but cannot get it out of 'Default' mode. Focusrite tell me it needs to be 'Locked' in the Mac but I can't see how to do that.
    The Mac recognises when I change the ISA One's sample rate because Pro Tools gives me an alert, which would suggest that it's receiving data. But all I am hearing on the input is digital white noise.
    Any ideas?
    Cheers!

    USB and FireWire work in very different ways, so there is no adapter.
    Instead, you should just get a USB 2.0 hub, like this one
    http://eshop.macsales.com/item/NewerTech/USB2HB7PRO/
    There are many choices, but be sure to get one that is powered (it comes with its own power supply).  Cheaper hubs rely on the computer's USB port for power.

  • How to set input delay and output delay when source Synchronous

    ClkIN is the board clock which is connected to the FPGA. Clkif is the generated clock from ClkIN. The Device's clk come from Clkif. So, how to set input delay and output delay in this scene(within my understand, this is Source Synchronous)?
    The example in many document, the input delay and output delay setting all refer to board clock(within my understand, this is System Synchronous). In that scene, the input delay max = TDelay_max + Tco_max; input delay min = Tdelay_min + Tco_min; the output delay max = Tdelay_max + Tsu; output delay min = Tdelay_min - Th.
    So, I want to know how to set input/output delay in the Source Synchronous.
    In system synchronous, I set input/output delay such as:
    create_clock -period 20.000 -name ClkIN -waveform {0.000 10.000} [get_ports ClkIN]
    create_generated_clock -name Clkif -source [get_pins cfg_if/clk_tmp_reg/C] -divide_by 2 [get_pins cfg_if/clk_tmp_reg/Q]
    create_clock -period 40.000 -name VIRTUAL_clkif //make virtual clock
    set_input_delay -clock [get_clocks VIRTUAL_clkif] -min 0.530 [get_ports DIN]
    set_input_delay -clock [get_clocks VIRTUAL_clkif] -max 7.700 [get_ports DIN]
    set_output_delay -clock [get_clocks VIRTUAL_clkif] -min -0.030 [get_ports DOUT]
    set_output_delay -clock [get_clocks VIRTUAL_clkif] -max 1.800 [get_ports DOUT]
    *******************************************************************************************

    So, first. Architecturally, the clock that you forward to your external device should not come directly from the clock tree, but should be output via an ODDR with its D1 input tied to logic 1 and the D2 tied to logic 0. This guarantees minimal skew between the output data and the forwarded clock.
    ODDR #(
    .DDR_CLK_EDGE("OPPOSITE_EDGE"), // "OPPOSITE_EDGE" or "SAME_EDGE"
    .INIT(1'b0), // Initial value of Q: 1'b0 or 1'b1
    .SRTYPE("SYNC") // Set/Reset type: "SYNC" or "ASYNC"
    ) ODDR_inst (
    .Q (Clkif_ff), // 1-bit DDR output
    .C (ClkIN_BUFG), // 1-bit clock input
    .CE (1'b1), // 1-bit clock enable input
    .D1 (1'b1), // 1-bit data input (positive edge)
    .D2 (1'b0), // 1-bit data input (negative edge)
    .R (rst), // 1-bit reset
    .S (1'b0) // 1-bit set
    OBUF OBUF_inst (.I (Clkif_ff), .O (Clkif_out));
    This generates an output clock that is the same frequency as your input clock. This is consistent with your drawing, but inconsistent with your constraints - is the forwarded clock a 50MHz clock or a 25MHz clock?
    I will assume your ClkIN goes to a BUFG and generates ClkIN_BUFG.  Your first constraint generates a 50MHz clock on the ClkIN port which will propagate through the BUFG to (among other places) this ODDR.
    create_clock -period 20.000 -name ClkIN -waveform {0.000 10.000} [get_ports ClkIN]
    Assuming your forwarded clock is supposed to be 50MHz, then your 2nd command is close to correct
    create_generated_clock -name Clkif -source [get_pins cfg_if/ODDR_inst/C] -combinational  [get_pins cfg_if/ODDR_inst/Q]
    With this done, you have successfully described the forwarded clock from your design. This is the clock that goes to your device, and hence should be the clock which is used to specify your input and output constraints.
    set_input_delay -clock [get_clocks Clkif] -min 0.530 [get_ports DIN]
    set_input_delay -clock [get_clocks Clkif] -max 7.700 [get_ports DIN]
    set_output_delay -clock [get_clocks Clkif] -min -0.030 [get_ports DOUT]
    set_output_delay -clock [get_clocks Clkif] -max 1.800 [get_ports DOUT]
    If you want to get fancier, you could try adding a set_clock_latency to the forwarded clock to account for the board propagation of the clock
    set_clock_latency -source TDtrace2 [get_clocks Clkif]
    (But I haven't experimented with clock latency on a generated clock and I don't know for a fact that it works).
    Avrum

  • A newbie first question: fpga synchronous input

    Hi all
    this is my first time to send a question at this forum
    it is also the first time to use Labview, I am totally newbie
    My problem is:
    I have Xilinx Spartan 3A FPGA with a design runs at 10 MHz " derived from the 50 MHz of the On-board clock"
    I want to test my design by appling inputs to the FPGA and watching the output
    so how to apply predefined synchronous inputs that are synchronized to the my design clock
    thanks in advance

    Good Afternoon msaleh87,
    What supporting hardware are you using with your Xilinx Spartan 3A FPGA?  The only NI hardware that the Xilinx Spartan 3A FPGA is found in are the sb-RIOs and the cRIO-9072 and cRIO-9074.
    What Xilinx FPGA Chips Are Used by National Instruments RIO
    Devices?
         http://digital.ni.com/public.nsf/allkb/ED6FC9CF7B983CFD86256DCE0072E313?OpenDocument
    Please elaborate on what you are trying to accomplish with this project.  Also, please give some more details (such as source, speed, type, etc.) of your predefined synchronous inputs.
    Regards,
    Charlie Piazza
    Staff Product Support Engineer, RF
    National Instruments

  • Work flow in clock-in clock-out correction

    Hi guys,
    my clock-in clock-out is configured to have a approval process. The standard workflow "12300111" is assigned to the "WF ID New Clock-In/Out Entries" parameter for the clock-in clock-out correction. When i execute the report RPTCORDBVIEW it shows me the status of the WF item as been "started", but some how it does not turn up in MAnagers inbox even after a while.
    The same WF when attched to leave request runs fine. Has any one faced this issue before. Myself not been pretty familiar with workflow am clueless as to what the issue coulc. 
    Any suggestions.
    regards
    Sam
    Message was edited by:
            sameer chilama

    Hi Raj,
    Isnt this workflow WF12300111 'The General Workflow for Documents'? As per help.sap.com, this is the workflow we should be using for Clock In/ Out Corrections , besides Leave Request.
    I am facing the same error..ie The workflow is trigerred, but the text says 'Approve Leave request" in Manager's inbox. In fact, there is no standard screen for approving the clock In/ Out corrections in webdynpro.
    Have you made use of any other workflow instead?
    Any inputs on the same would be greatly appreciated?
    Regards,
    Aditi

  • Clock-in/Clock-out error

    Hi All,
    I have done backend config for clock-in/clock-out corrections service in r3. Now when i click on this service in portal I am getting the foll error
    No more storage space available for extending an internal table., error key: RFC_ERROR_SYSTEM_FAILURE  
    com.sap.tc.webdynpro.modelimpl.dynamicrfc.WDDynamicRFCExecuteException: No more storage space available for extending an internal table., error key: RFC_ERROR_SYSTEM_FAILURE
         at com.sap.tc.webdynpro.modelimpl.dynamicrfc.DynamicRFCModelClassExecutable.execute(DynamicRFCModelClassExecutable.java:101)
         at com.sap.xss.hr.wtcor.fcoverview.FcOverview.ReadCalendar(FcOverview.java:232)
         at com.sap.xss.hr.wtcor.fcoverview.wdp.InternalFcOverview.ReadCalendar(InternalFcOverview.java:504)
         at com.sap.xss.hr.wtcor.fcoverview.FcOverviewInterface.ReadCalendar(FcOverviewInterface.java:135)
         at com.sap.xss.hr.wtcor.fcoverview.wdp.InternalFcOverviewInterface.ReadCalendar(InternalFcOverviewInterface.java:481)
         at com.sap.xss.hr.wtcor.fcoverview.wdp.InternalFcOverviewInterface$External.ReadCalendar(InternalFcOverviewInterface.java:549)
         at com.sap.xss.hr.wtcor.vcoverview.VcOverview.onBeforeOutput(VcOverview.java:278)
         at com.sap.xss.hr.wtcor.vcoverview.wdp.InternalVcOverview.onBeforeOutput(InternalVcOverview.java:924)
         at com.sap.xss.hr.wtcor.vcoverview.VcOverviewInterface.onBeforeOutput(VcOverviewInterface.java:156)
         at com.sap.xss.hr.wtcor.vcoverview.wdp.InternalVcOverviewInterface.onBeforeOutput(InternalVcOverviewInterface.java:302)
         at com.sap.xss.hr.wtcor.vcoverview.wdp.InternalVcOverviewInterface$External.onBeforeOutput(InternalVcOverviewInterface.java:414)
         at com.sap.pcuigp.xssfpm.wd.FPMComponent.callOnBeforeOutput(FPMComponent.java:602)
         at com.sap.pcuigp.xssfpm.wd.FPMComponent.doProcessEvent(FPMComponent.java:568)
         at com.sap.pcuigp.xssfpm.wd.FPMComponent.doEventLoop(FPMComponent.java:437)
         at com.sap.pcuigp.xssfpm.wd.FPMComponent.wdDoInit(FPMComponent.java:195)
         at com.sap.pcuigp.xssfpm.wd.wdp.InternalFPMComponent.wdDoInit(InternalFPMComponent.java:110)
         at com.sap.tc.webdynpro.progmodel.generation.DelegatingComponent.doInit(DelegatingComponent.java:108)
         at com.sap.tc.webdynpro.progmodel.controller.Controller.initController(Controller.java:215)
         at com.sap.tc.webdynpro.progmodel.controller.Controller.init(Controller.java:200)
         at com.sap.tc.webdynpro.clientserver.cal.ClientComponent.init(ClientComponent.java:430)
         at com.sap.tc.webdynpro.clientserver.cal.ClientApplication.init(ClientApplication.java:362)
         at com.sap.tc.webdynpro.clientserver.session.ApplicationSession.initApplication(ApplicationSession.java:748)
         at com.sap.tc.webdynpro.clientserver.session.ApplicationSession.doProcessing(ApplicationSession.java:283)
         at com.sap.tc.webdynpro.clientserver.session.ClientSession.doApplicationProcessingPortal(ClientSession.java:733)
         at com.sap.tc.webdynpro.clientserver.session.ClientSession.doApplicationProcessing(ClientSession.java:668)
         at com.sap.tc.webdynpro.clientserver.session.ClientSession.doProcessing(ClientSession.java:250)
         at com.sap.tc.webdynpro.clientserver.session.RequestManager.doProcessing(RequestManager.java:149)
         at com.sap.tc.webdynpro.clientserver.session.core.ApplicationHandle.doProcessing(ApplicationHandle.java:73)
         at com.sap.tc.webdynpro.portal.pb.impl.AbstractApplicationProxy.sendDataAndProcessActionInternal(AbstractApplicationProxy.java:860)
         at com.sap.tc.webdynpro.portal.pb.impl.AbstractApplicationProxy.create(AbstractApplicationProxy.java:220)
         at com.sap.portal.pb.PageBuilder.updateApplications(PageBuilder.java:1246)
    at com.sap.portal.pb.PageBuilder.createPage(PageBuilder.java:354)
         at com.sap.portal.pb.PageBuilder.init(PageBuilder.java:547)
         at com.sap.portal.pb.PageBuilder.wdDoRefresh(PageBuilder.java:591)
         at com.sap.portal.pb.PageBuilder$1.doPhase(PageBuilder.java:822)
         at com.sap.tc.webdynpro.clientserver.window.WindowPhaseModel.processPhaseListener(WindowPhaseModel.java:755)
         at com.sap.tc.webdynpro.clientserver.window.WindowPhaseModel.doPortalDispatch(WindowPhaseModel.java:717)
         at com.sap.tc.webdynpro.clientserver.window.WindowPhaseModel.processRequest(WindowPhaseModel.java:136)
         at com.sap.tc.webdynpro.clientserver.window.WebDynproWindow.processRequest(WebDynproWindow.java:335)
         at com.sap.tc.webdynpro.clientserver.cal.AbstractClient.executeTasks(AbstractClient.java:143)
         at com.sap.tc.webdynpro.clientserver.session.ApplicationSession.doProcessing(ApplicationSession.java:313)
         at com.sap.tc.webdynpro.clientserver.session.ClientSession.doApplicationProcessing(ClientSession.java:684)
         at com.sap.tc.webdynpro.clientserver.session.ClientSession.doProcessing(ClientSession.java:250)
         at com.sap.tc.webdynpro.clientserver.session.RequestManager.doProcessing(RequestManager.java:149)
         at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doContent(DispatcherServlet.java:62)
         at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doPost(DispatcherServlet.java:53)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:401)
         at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:266)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:387)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:365)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:944)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:266)
         at com.sap.engine.services.httpserver.server.Client.handle(Client.java:95)
         at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:175)
         at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)
         at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)
         at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
         at java.security.AccessController.doPrivileged(AccessController.java:215)
         at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100)
         at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)
    Caused by: com.sap.aii.proxy.framework.core.BaseProxyException: No more storage space available for extending an internal table., error key: RFC_ERROR_SYSTEM_FAILURE
         at com.sap.aii.proxy.framework.core.AbstractProxy.send$(AbstractProxy.java:150)
         at com.sap.xss.hr.wtcor.time_event_corr_adaptivemodel.TimeEventCorrAdaptiveModel.ptcor_Uia_Weekly_Calendar(TimeEventCorrAdaptiveModel.java:410)
         at com.sap.xss.hr.wtcor.time_event_corr_adaptivemodel.Ptcor_Uia_Weekly_Calendar_Input.doExecute(Ptcor_Uia_Weekly_Calendar_Input.java:137)
         at com.sap.tc.webdynpro.modelimpl.dynamicrfc.DynamicRFCModelClassExecutable.execute(DynamicRFCModelClassExecutable.java:92)
         ... 61 more
    Can anyone please provide any input on this
    We are on EP7 , ECC6
    Thanks and Regards
    Reshma

    Hi Reshma ,
    I am also facing a similar problem as you faced : : No storage space available for extending an internal table., error key: RFC_ERROR_SYSTEM_FAILURE
    Can you please explain as to how you got the problem solved
    Thanks in advance ,
    Vinay

  • Have any source code can produce a web traffic analysis?

    I want to get the source code to produce a web traffic analysis report, for example i input a tomcat's access_log, it can analysis this log file and then output the analysis result in html file format.
    I have already found a source code to parsing the IE's log file, but i can't find a source code to parse the tomcat's access_log file.
    Have anybody know where can download this source code.......Thank a lot!!!!!

    I also want to know how to do this........

  • ESS Clock in - Clock Out

    Dear Experts,
    Can we use ess for clock in clock out as a substitute or complementary to external time recording machine?
    I know that ess have Clock in Clock out iview, but i believe its for correcting wrong entry not for making entry. Please advice on this matter.
    Best Regards

    You could create a custom iview to allow employees to 'clock in/out' if you wished.
    I have gotten a developer to do this for me at one customer and isn't hard to do. Or you could use CATS iview for ESS employees to record their start and end times of work in. Just depends on what you want to do with the captured data?
    Cheers,
    Brad

  • ADC DDR source synchronous timing constraints help

    Hi all,
      I am using a virtex 5 xc5fx200T-1ff1738 with ISE 12.4 to capture data from an ADC (KAD5512p-50 http://www.intersil.com/content/dam/Intersil/documents/kad5/kad5512p-50.pdf).
    I calculate my timing constraints as follows:
    TIMEGRP "ADC_1_DP_TIM_GRP" OFFSET = IN 1.713ns VALID 1.487ns BEFORE ADC_1_CLK_P_IN RISING;
    TIMEGRP "ADC_1_DP_TIM_GRP" OFFSET = IN 1.823ns VALID 1.629ns BEFORE ADC_1_CLK_P_IN FALLING;
    ADC clock period (DDR) = 2ns
    ADC clk->q rising max = 0.120ns
    ADC clk->q rising min = -0.260ns
    ADC clk->q falling max = 0.230ns
    ADC clk->q falling min = -0.160ns
    The board latency of the ADC clock to the FPGA is 0.424ns.
    Each ADC data pin is trace matched between N and P, but sadly not between each bit.
    Bit     Delay           Clk->Data delay (0.424ns - data delay)
    0        0.481ns       0.057ns
    1        0.480ns       0.056ns
    2        0.481ns       0.057ns
    3        0.479ns       0.055ns
    4        0.481ns       0.057ns
    5        0.390ns      -0.034ns
    6        0.480ns       0.056ns
    7        0.479ns       0.055ns
    8        0.430ns       0.006ns
    9        0.473ns       0.049ns
    10      0.481ns       0.057ns
    11      0.480ns        0.056ns
    Delta of the minimum and maximum clk->data board latency = ( 0.057ns - -0.034ns ) = 0.023ns    (Right?)
    From this I calculate:
    Rising edge offset by:
      ADC clock period - clk->q falling max - max board clk->q delay
        = 2ns - 0.230ns - 0.057ns = 1.713ns
    Rising edge valid time:
      ADC clock period - clk->q falling max - clk->q rising min - ( Delta of the minimum and maximum clk->data board latency )
        = 2ns - 0.230ns - 0.260ns - 0.023ns = 1.487ns
    Falling edge offset by:
      ADC clock period - clk->q rising max - max board clk->q delay
        = 2ns - 0.120ns - 0.057ns = 1.823ns
    Falling edge valid time:
      ADC clock period - clk->q rising max - clk->q falling min - ( Delta of the minimum and maximum clk->data board latency )
        = 2ns - 0.120ns - 0.160ns - 0.023ns = 1.629ns
    The FPGA needs a window of 1.77ns( 1.55ns setup time + 0.16ns hold time according to the data sheet DS202 v.5.4 table 93, Tpsdcm0/Tphdcm0), which I obviously do not have given these constraints.  Am I calculating this wrong?
    I want to use the phase shift of the DCM to move to the clock to the "data eye."  Are my constraints caluclated properly?
     

    I haven't analyzed your numbers carefully, but at first glance, this looks more or less correct. There appears to be a simple math error in calculating your data skew : (0.057ns - -0.034ns ) = 0.023ns ; it looks like you added the negative number instead of subtracting it (which makes things worse).
    Thus your overall window is small - probably around 1.419ns (correcting for your error above). This is too small to capture with global clock capture using the DCM (yes, you are interpreting Tpsdcm_0/Tphdcm_0 correctly)
    The only option for static capture is to use ChipSync; bring the clock in on a CCIO and use a BUFIO to capture the data. Done this way your timing is Tpscs/Tphcs, which requires a data window of only 1.370ns (leaving a whopping 49ps of margin). Of course, this is best case - if you have duty cycle errors or other board/signal integrity issues, it will come out of this margin.
    There are a few things that make this better. The Tpscs/Tphcs is measured with LVCMOS25 - using LVDS will probably make it better, but we can't really quantify how much.
    Also, the board delay is mostly PVT independent - you could compensate for the static error using the IDELAY. In particular you could add one tap of delay to to data bit 5, which will add approximately 78ps to that one bit - bringing it more in line with the rest. Your overall skew would the be 57-6 = 49ps, instead of 57--34 = 91ps.
    To center the data eye, you would put IDELAYs on both the clock and the data. Keep the data delays as small as possible (ideally 0 on all bits except bit 5 which is 1), and then delay the IDELAY on the clock to make the data window work. You may need to adjust your OFFSET IN constraints to match the fact that you are pushing the clock forward (subtract 2ns from the OFFSET IN to indicate that the data window comes after the clock edge, not before) - thus your commands will be of the format
    TIMEGRP "ADC_1_DP_TIM_GRP" OFFSET = IN <x> ns VALID <y>ns BEFORE ADC_1_CLK_P_IN RISING;
    Where <x> will be a small negative number - on the order of 1.172-2.000.
    However, this will all only work if the clock is on a CC pair, not a GC pair (on Virtex-5 these were different), and that all LVDS pairs are in the same I/O bank as the clock pair. If your board is already designed, then you probably can't change this.
    If you can't use chip-sync (and even at that, timing is really tight), then you will have to use some sort of dynamic calibration.
    Avrum
     

  • How to delete the messages in clock-in/clock-out

    Hi All,
    I need to delete the messages in clock-in/clock-out which are appearing in portal, to delete this messages is there any report at R/3 side kindly suggest me help me in this
    waiting for your responses .....
    Regards,
    Shilpa.

    you can run the report RPUP1D00 for the periods that you need to delete
    the messages without any problems, but please read the documentation
    carefully before starting.
    Please note, that RPTERR00 always reports ALL errors. It does not matter
    in which period they appeared. Please destinguish between errors and
    notes.
    The errors which appear during a time evaluation run are stored in table
    ERT in cluster B1 and in table FEHLER in cluster B2 are intended to
    store and display those errors as long as the errors are not corrected.
    If you don't want these errors to be displayed any more you either have
    to correct the errors or you must delete Cluster B1 via report RPUP1D00.
    The old NOTES are transferred from the ERT/B1 to FEHLER/B2 with each
    subsequent run of time evaluation.
    Your time administrators should normally work with PT40 and confirm
    'I' messages or correct errors by using the error handling.
    This report can be run like this
    Relation ID   'B1'
    Sort field    Pers.no. (eight-digit)
    Delete?       X
    Password      Username

  • Clock-in/clock out is not appearing

    Dear All,
    If we are giving the role SAP_EMPLOYEE_ERP & ZSAP_RFC  its giving the below error, but if we are giving the SAP_ALL this service Clock-in/Clock out is opening properly. All other srvices are working normally.
    ST22 ABAP Dump : No read authorization for infotype for pers. no
    Please Help us find out which authorization is missing !
    Error :
    A critical error has occured. Processing of the service had to be terminated. Unsaved data has been lost.
    Please contact your system administrator.
    The current application triggered a termination with a short dump., error key: RFC_ERROR_SYSTEM_FAILURE
    com.sap.tc.webdynpro.modelimpl.dynamicrfc.WDDynamicRFCExecuteException: The current application triggered a termination with a short dump., error key: RFC_ERROR_SYSTEM_FAILURE
         at java.lang.Throwable.<init>(Throwable.java:179)
         at java.lang.Exception.<init>(Exception.java:29)
         at com.sap.exception.BaseException.<init>(BaseException.java:131)
         at com.sap.tc.cmi.exception.CMIException.<init>(CMIException.java:65)
         at com.sap.tc.webdynpro.progmodel.model.api.WDModelException.<init>(WDModelException.java:68)
         at com.sap.tc.webdynpro.modelimpl.rfcadapter.WDRFCException.<init>(WDRFCException.java:54)
         at com.sap.tc.webdynpro.modelimpl.rfcadapter.WDExecuteRFCException.<init>(WDExecuteRFCException.java:57)
         at com.sap.tc.webdynpro.modelimpl.dynamicrfc.WDDynamicRFCExecuteException.<init>(WDDynamicRFCExecuteException.java:71)
         at com.sap.tc.webdynpro.modelimpl.dynamicrfc.WDDynamicRFCExecuteException.<init>(WDDynamicRFCExecuteException.java:43)
         at com.sap.tc.webdynpro.modelimpl.dynamicrfc.DynamicRFCModelClassExecutable.execute(DynamicRFCModelClassExecutable.java:101)
         at com.sap.xss.hr.wtcor.fcoverview.FcOverview.ReadCalendar(FcOverview.java:232)
         at com.sap.xss.hr.wtcor.fcoverview.wdp.InternalFcOverview.ReadCalendar(InternalFcOverview.java:504)
         at com.sap.xss.hr.wtcor.fcoverview.FcOverviewInterface.ReadCalendar(FcOverviewInterface.java:135)
         at com.sap.xss.hr.wtcor.fcoverview.wdp.InternalFcOverviewInterface.ReadCalendar(InternalFcOverviewInterface.java:481)
         at com.sap.xss.hr.wtcor.fcoverview.wdp.InternalFcOverviewInterface$External.ReadCalendar(InternalFcOverviewInterface.java:549)
         at com.sap.xss.hr.wtcor.vcoverview.VcOverview.onBeforeOutput(VcOverview.java:278)
         at com.sap.xss.hr.wtcor.vcoverview.wdp.InternalVcOverview.onBeforeOutput(InternalVcOverview.java:924)
         at com.sap.xss.hr.wtcor.vcoverview.VcOverviewInterface.onBeforeOutput(VcOverviewInterface.java:156)
         at com.sap.xss.hr.wtcor.vcoverview.wdp.InternalVcOverviewInterface.onBeforeOutput(InternalVcOverviewInterface.java:302)
         at com.sap.xss.hr.wtcor.vcoverview.wdp.InternalVcOverviewInterface$External.onBeforeOutput(InternalVcOverviewInterface.java:414)
         at com.sap.pcuigp.xssfpm.wd.FPMComponent.callOnBeforeOutput(FPMComponent.java:601)
         at com.sap.pcuigp.xssfpm.wd.FPMComponent.doProcessEvent(FPMComponent.java:467)
         at com.sap.pcuigp.xssfpm.wd.FPMComponent.doEventLoop(FPMComponent.java:438)
         at com.sap.pcuigp.xssfpm.wd.FPMComponent.wdDoInit(FPMComponent.java:196)
         at com.sap.pcuigp.xssfpm.wd.wdp.InternalFPMComponent.wdDoInit(InternalFPMComponent.java:110)
         at com.sap.tc.webdynpro.progmodel.generation.DelegatingComponent.doInit(DelegatingComponent.java:108)
         at com.sap.tc.webdynpro.progmodel.controller.Controller.initController(Controller.java:215)
         at com.sap.tc.webdynpro.progmodel.controller.Controller.init(Controller.java:199)
         at com.sap.tc.webdynpro.clientserver.cal.ClientComponent.init(ClientComponent.java:359)
         at com.sap.tc.webdynpro.clientserver.cal.ClientApplication.init(ClientApplication.java:362)
         at com.sap.tc.webdynpro.clientserver.session.ApplicationSession.initApplication(ApplicationSession.java:753)
         at com.sap.tc.webdynpro.clientserver.session.ApplicationSession.doProcessing(ApplicationSession.java:276)
         at com.sap.tc.webdynpro.clientserver.session.ClientSession.doApplicationProcessingPortal(ClientSession.java:722)
         at com.sap.tc.webdynpro.clientserver.session.ClientSession.doApplicationProcessing(ClientSession.java:623)
         at com.sap.tc.webdynpro.clientserver.session.ClientSession.doProcessing(ClientSession.java:215)
         at com.sap.tc.webdynpro.clientserver.session.RequestManager.doProcessing(RequestManager.java:113)
         at com.sap.tc.webdynpro.clientserver.session.core.ApplicationHandle.doProcessing(ApplicationHandle.java:70)
         at com.sap.tc.webdynpro.portal.pb.impl.AbstractApplicationProxy.sendDataAndProcessActionInternal(AbstractApplicationProxy.java:818)
         at com.sap.tc.webdynpro.portal.pb.impl.AbstractApplicationProxy.create(AbstractApplicationProxy.java:220)
         at com.sap.portal.pb.PageBuilder.updateApplications(PageBuilder.java:1265)
         at com.sap.portal.pb.PageBuilder.createPage(PageBuilder.java:355)
         at com.sap.portal.pb.PageBuilder.init(PageBuilder.java:548)
         at com.sap.portal.pb.PageBuilder.wdDoRefresh(PageBuilder.java:592)
         at com.sap.portal.pb.PageBuilder$1.doPhase(PageBuilder.java:864)
         at com.sap.tc.webdynpro.clientserver.window.WindowPhaseModel.processPhaseListener(WindowPhaseModel.java:750)
         at com.sap.tc.webdynpro.clientserver.window.WindowPhaseModel.doPortalDispatch(WindowPhaseModel.java:715)
         at com.sap.tc.webdynpro.clientserver.window.WindowPhaseModel.processRequest(WindowPhaseModel.java:113)
         at com.sap.tc.webdynpro.clientserver.window.WebDynproWindow.processRequest(WebDynproWindow.java:335)
         at com.sap.tc.webdynpro.clientserver.cal.AbstractClient.executeTasks(AbstractClient.java:107)
         at com.sap.tc.webdynpro.clientserver.session.ApplicationSession.doProcessing(ApplicationSession.java:276)
         at com.sap.tc.webdynpro.clientserver.session.ClientSession.doApplicationProcessing(ClientSession.java:623)
         at com.sap.tc.webdynpro.clientserver.session.ClientSession.doProcessing(ClientSession.java:215)
         at com.sap.tc.webdynpro.clientserver.session.RequestManager.doProcessing(RequestManager.java:113)
         at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doContent(DispatcherServlet.java:60)
         at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doPost(DispatcherServlet.java:53)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:733)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
         at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:332)
         at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:0)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:386)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:335)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:963)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:249)
         at com.sap.engine.services.httpserver.server.Client.handle(Client.java:0)
         at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:92)
         at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:30)
         at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:35)
         at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
         at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:101)
         at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:172)
    Caused by: com.sap.aii.proxy.framework.core.BaseProxyException: The current application triggered a termination with a short dump., error key: RFC_ERROR_SYSTEM_FAILURE
         at java.lang.Throwable.<init>(Throwable.java:179)
         at java.lang.Exception.<init>(Exception.java:29)
         at com.sap.aii.util.misc.api.BaseException.<init>(BaseException.java:96)
         at com.sap.aii.proxy.framework.core.FaultException.<init>(FaultException.java:34)
         at com.sap.aii.proxy.framework.core.SystemFaultException.<init>(SystemFaultException.java:29)
         at com.sap.aii.proxy.framework.core.BaseProxyException.<init>(BaseProxyException.java:39)
         at com.sap.aii.proxy.framework.core.AbstractProxy.send$(AbstractProxy.java:133)
         at com.sap.xss.hr.wtcor.time_event_corr_adaptivemodel.TimeEventCorrAdaptiveModel.ptcor_Uia_Weekly_Calendar(TimeEventCorrAdaptiveModel.java:410)
         at com.sap.xss.hr.wtcor.time_event_corr_adaptivemodel.Ptcor_Uia_Weekly_Calendar_Input.doExecute(Ptcor_Uia_Weekly_Calendar_Input.java:137)
         at com.sap.tc.webdynpro.modelimpl.dynamicrfc.DynamicRFCModelClassExecutable.execute(DynamicRFCModelClassExecutable.java:92)
         ... 60 more

    Dear All,
    please add infotype with read authorization in authorization object P_ORGIN with value 2011.
    this will solve the above rfc error as this is related to authorization.
    thanks,
    Khurshid

  • Time reporting screen - additional fields for clock in/clock

    Hi all, I have an issue with time reporting that I would appreciate your help in resolving. We would like to add additional fields for clock in/clock out data from external clocks. I think I saw it somewhere but now I cannot find it in the CAC2 configuration. Can you help? Thanks in advance, Maya

    see if following link can help:
    Custom field added to CATS but not showing in Data Entry View'

  • Workflow not trigerring for Clock-in/clock new entries or corrections

    Dear All,
    I am using the workflow ws12300111 template for clock-in/clock out for approval to manager. Is this appropriate one or anything else is available, whenever i raise request for the clock-in/clock out change in ess a new request is getting generated in UWL of MSS but it is not showing the clock-in/clock out change request for approval.
    Regards,
    Rajasekar.

    It is the correct WF, as there is no other wf available for it
    You need to use the report  RPTCORAPP
    In order to approve the request you have to use the back end report. It
    can approve the requests with the work flow as well.
    We would recommend you to use the
    report for the clock in clock correction approval as there is no
    specific I view available for this as it might be cumbersome for the
    Manager to do mass approval.
    Here are the reports which you can refer.
    ·        RPTCORTMAIL (Clock-In/Out Corrections: Request Correction of
    Errors)
    ·        RPTCOREMAIL (Clock-In/Out Corrections: E-Mails to Involved
    Persons)
    ·        RPTCORPOST (Clock-In/Out Corrections: Post)
    ·        RPTCORSTOPWF (Clock-In/Out Corrections: End Open Processes)
    ·        RPTCORLIST (Clock-In/Out Corrections: Check Corrections)
    ·        RPTCORAPP (Clock-In/Out Corrections: Approve Documents)
    ·        RPTCORERR (Clock-In/Out Corrections: Process Errors in Entries)

  • After Effects error: Could not launch Adobe Analysis Server (515)   ( 25 :: 101)  *POSSIBLE FIX*

    Hi. Im New to the forums so sorry in advance if i do something incorrect
    Since my Purchase of Adobe CS6, I was not able to use dynamic link, or the plugins that required you to connect to the Adobe Analysis Server (3d Tracker, Warp Stablizer ETC) It would always give me the error
    After Effects error: Could not launch Adobe Analysis Server (515)
    ( 25 :: 101)
    Or if i would use dynamiclink
    The Importer created a generic error
    Through hours and hours searching through the internet, and trying possible fixes, i found possible fixes that might help people with this error.
    *Before attempting any of these fixes, make sure you reinstall CS6 Using the Adobe Cleaner*
    This guide is for Windows OS Only.
    If the error still presists, try these options
    -If your windows account is not a administrator, Run Adobe After Affects CS6 As Administrator
    -Disable your Anti-Virus and your Firewall
    I know you have probably heard this over and over again, but this is mainly the cause of the problem. Some Anti-Viruses even when disabled, go into some sort of one eyed open mode, where it still monitors your computer ever so slightly, so you may want to uninstall the anti-virus. As for the firewall,
    1) Go to your start menu search "Check Firewall Status"
    2)Then to the left of the window, click Turn Windows Firewall on or off
    3)Then tick "Turn of Windows Firewall" on BOTH Home or work network and Public Network.
    -Close and Uninstall filtering and spyware programs such as Netnanny and Premiere Opinion. This might be using the TCP Ports that is needed for After effects, dynamic link and adobe analysis server to communicate
    -Start up Adobe Analysis server Manually. This can be done by going to C:\Program Files\Adobe\Adobe After Effects CS6\Support Files and running Adobe Analysis server.exe as Adminisrator, Then starting Premiere, After effects, etc.
    -If the Adobe Cleaner didnt already, Clean your registry. This can be done with free applications such as CCleaner.
    If none of those options work,  I would suggest a full format and reinstall of windows.
    I hope this would help people with this issue.

    captain_astronaut wrote:
    I'm running the latest version. Just installed yesterday.
    You can download and install the latest version (and older versions) of versions 11, 12, and 13 from Adobe right now. That is why I was asking for the exact version number with decimals. Just the other day, someone said they were running the latest version and they weren't aware that CC was even a thing. They were running version 11.0.3 (which isn't even the latest version of CS6 - it's 11.0.4). That's why I always ask.
    captain_astronaut wrote:
    I'm on a Mac so I don't have anti-malware, or other security software running.
    That doesn't seem like a good idea. While there can't be anything technically referred to as a "virus" on the Mac OS (due to the underlying structure), there can be (and are) malware variants out there that do attack machines running the Mac OS. As Apple products have grown in popularity, developers have been creating more and more malware aimed at OSX.
    I certainly hope you at least have your firewall running.
    captain_astronaut wrote:
    I tried launching Premiere yesterday and it crashed.
    This points to a much more serious underlying problem. Thousands (if not millions) of people are running Premiere and After Effects on Macs. What sort of error messages did you receive when it crashed?
    Try installing version 12 of AE and the previous version of Premiere as well and see if they run.

  • Doubt Clock-In/Clock-Out Corrections

    Hi,
    We are implementing ESS/MSS on EHP5.
    I have a doubt when configuring Clock in/Clock out corrections. In SPRO "Clock-In/Clock-Out Corrections->Define Processing Processes", I left checked only the option "Corrections Have to Be Approved".
    So I started the tests. I logged on with ESS user, made a correction e saved. After that I logged on POWL with the MSS user (who is the managet of the employee whose made de correction) and the entry was there. I approved, run the report RPTCORPOST and the entry was saved in TEVEN (IT 2011) table. That was perfect!!!
    I went throught the second test, now with manager performing the correction for his employee. I logged with MSS user, selected the employee, made the correction and saved. In my mind, if the manager is correcting a clock-in/clock-out, it should be approved automatically. So, I run the report RPTCORPOST and the entry wasn´t saved in TEVEN (IT 2011) table. I thougth that weird, and i decided to check if the entry could be in POWL. I went to POWL and the entry was there, waiting to be approved.
    The question is: Shouldn´t the entry be automatically approved when the manager performs a correction for his employees?
    Thanks
    Bruno

    Hi Siddharth,
    Thanks for your prompt reply. I will notifiy my customer that this behaviour is an enhance.
    As a suggestion for the future ESS/MSS version, the solution could allow setup this configuration.
    Thank you again.
    Bruno.

Maybe you are looking for

  • Selecting Multiple Files With Shift Key

    Am I right in understanding that the only way to select multiple files with the Shift key in Finder is by using File view? Seems kinda silly. Thank you, Scott

  • Reading from graph to text file in labview 7.0

    Hi Guys! I am doing a project which reads analog values from a microprocessor board and I am using the Labview example Cont Acq&Graph Voltage-Int Clk.vi. I am getting an analogue graph using this VI. is there any way I can convert the values on the g

  • T440s: How to enable the Windows eDrive feature?

    I would like to enable the eDrive feature on my T440s to encrypt my hard drive. How can I do this? In order to do so,I enabled "OS optimized defaults" in the bios settingsLoaded them and saved themDid a clean install of Windows 8.1 and removed all pa

  • Underline Problem in template of a table in smartforms

    Hi friends,                I have a requirement wherein i need to draw two line one above text as shown below : Total Invoice Amount Amount Eligible for cash I have copied std smart form LB_BIL_INVOICE template INFO_ENDSUMMEN in table TABLEITEM has t

  • My Forms in Addon Installer Wizard

    Hello everyone, I have managed to install my addon in SP01 using B1DE Tools. The problem is that I don´t know in which directory I have to copy my forms (created with Screen Painter) so they open when the addon initiates. I have copied them in the BI