IDELAY : Tap delay control using Ref_frequency

Hello, 
I am trying to understand the IDELAY modules and I've read quite a few discussions on this forum regarding the same. 
My doubt is the following: 
I am using Kintex-7, with speed grade -2 and the data sheet states that I must get an average delay of 52ps (Tap delay) when I set the reference frequency to 300Mhz. 
I tried driving two IDelay blocks with tap values 0 and 1 with the same signal(data_in). Ideally, the output must be two signals separated by 52ps; This is exactly what I see in the post-route FUNCTIONAL simulation. 
However, when I run the post route TIMING simulation, the difference is 64ps and not 52ps. 
Also, I probed the DATAIN  pin of the two IDelay blocks and I see the signals at the input of both the IDELAY blocks, arrive at the same time. This means the routing delay is not causing the extra (65-52)ps of delay.
Could anyone please explain this? 
Thanks! 
-Kamath 

The calibration process does not take into account the exact values, but tries to calibrate by increasing/decreaasing these tap values such that the data is at the centre of the eye
Sorry, but that's not true...
Don't confuse the calibration process of the IDELAY (which is done internally using the IDELAYCTRL and sets the delay of each tap), and any user implemented dynamic calibration process that is trying to find the center of a data eye by adjusting the number of taps.
The delay taps in the IDELAY are calibrated to be fixed values. The average value of an individual tap is Trefclk/64, however there is some variation from tap to tap - notably, the first tap is larger than the rest.
The calibration done by the IDELAYCTRL calibrates a string of 64 elements, so that the sum of the 64 elements is one complete period of REFCLK. The calibration information obtained for these 64 element is used for the 32 elements in each IDELAY/ODELAY. If all the delay elements were identical, then that would result in the perfect tREFCLK/64 for each element, but they aren't perfectly identical - due to a number of internal factors, the delay elements are slightly different.
But, a given element  will always be the same value across process voltage and temperature (PVT). So, if tap0 measures as 64ps, it will be 64ps across all PVT; tap1 may be a different value, but it will be that value across PVT.
There is a white paper that describes this effect (and others) for the Virtex-4 (which was similar to V5, V6 and the 7 series - but not UltraScale) here.
The static timing analysis tools know about the variation from tap to tap, so the results you get out of trce or Vivado static timing analysis will be exact; these should always be your final verification for "tweaking" the number of taps you want for static phase shifting of an interface.
Avrum

Similar Messages

  • IDELAY tap delay across PVT?

    Hello, 
    I have a design wherein the input data signal goes into the IBUF which drives an IDelay Block. I believe that tap delay value remains same across all PVTs, but the timing data obtained for different timing corners are not the same. 
    These are the results I obtained: 
    Datapath considered for timing analysis :  IO Pad => IBUF => IDELAY==> D-input of ILOGIC FlipFlop   
    Experiment 1 : config_time_cornes -corner Slow -delay_type max_min
                           config_time_corners -corner Fast -delay_type none 
    Timing report : attached file : slow.png             
    Experiment 2 : config_time_corners -corner Fast -delay_type max_min 
                           config_time_corners -corner Slow -delay_type none 
    Timing report: attached file : fast.png 
    I see the logic-delay of IBUF is different in these two cases, which is expected as i- changes with PVT.
    However, the logic-delay of IDELAY block is changing as well:  
    0.331ns at fast process corner
    0.666ns at slow process corner 
    Is this expected? If yes, how is tap delay assumed to remain same across all PVTs?
    Also, i ran some iterations wherein I changed tap values and found the difference between delayed signals (tap-delay) at different process corners and I found that to be different too. 
    Could anyone explain this? 
    Any help will be appreciated
    Thanks! 
    -Kamath 

    The calibration process does not take into account the exact values, but tries to calibrate by increasing/decreaasing these tap values such that the data is at the centre of the eye
    Sorry, but that's not true...
    Don't confuse the calibration process of the IDELAY (which is done internally using the IDELAYCTRL and sets the delay of each tap), and any user implemented dynamic calibration process that is trying to find the center of a data eye by adjusting the number of taps.
    The delay taps in the IDELAY are calibrated to be fixed values. The average value of an individual tap is Trefclk/64, however there is some variation from tap to tap - notably, the first tap is larger than the rest.
    The calibration done by the IDELAYCTRL calibrates a string of 64 elements, so that the sum of the 64 elements is one complete period of REFCLK. The calibration information obtained for these 64 element is used for the 32 elements in each IDELAY/ODELAY. If all the delay elements were identical, then that would result in the perfect tREFCLK/64 for each element, but they aren't perfectly identical - due to a number of internal factors, the delay elements are slightly different.
    But, a given element  will always be the same value across process voltage and temperature (PVT). So, if tap0 measures as 64ps, it will be 64ps across all PVT; tap1 may be a different value, but it will be that value across PVT.
    There is a white paper that describes this effect (and others) for the Virtex-4 (which was similar to V5, V6 and the 7 series - but not UltraScale) here.
    The static timing analysis tools know about the variation from tap to tap, so the results you get out of trce or Vivado static timing analysis will be exact; these should always be your final verification for "tweaking" the number of taps you want for static phase shifting of an interface.
    Avrum

  • Midi Delay when Using Rewire?

    I am experiencing really bad midi delay when using
    LE7.1 & Reason 3.0 in Rewire mode.
    Should this be happenening? I take it that I am setup properly for rewire or I would not hear anything at all. I can trigger Reason synths via LE in rewire mode but the delay is so bad that it is unplayable.I thought "latency" issues only occured when using audio. I have tried different buffer sizes to no avail.
    Any ideas?

    ok I'll answer my own post.
    Issue was a toggle box in LE prefs to control "Rewire Behaviour". Set it to "Live mode" not "Playback" mode solves this issue.

  • Tape delay gets cut off in the middle of a project

    I'm working on a multichannel 24bit, 48kHz audio project in Soundtrack Pro version 1.1.
    I'm using WAVs as source material.
    One of the audiotracks contains a short sample of 1 second, that has a Tape Delay effect on it with the feedback on 55%, so it keeps repeating for about a minute. At least, that's what is should do.
    The problem is that it gets cut off after around 15 seconds.
    This does not happen when I solo the track or some of the tracks.
    I've converted the 24bit, 48kHZ source WAVs to 24bit & 16bit AIFFs, but this doesn't make a difference.
    I found a work around, by solo exporting & importing the track with the delay on it, but this is not how it should be.
    Has anyone had similar problems and maybe found a solution?
    Thanks.
    G5 Dual 1.8Ghz   Mac OS X (10.4.9)  

    For everybody who has the same problem: I found a solution.
    Soundtrack appears to end an effect abruptly after around 15 seconds when there are no new clips on the timeline in that track.
    The solution is adding 'silent clips' in those tracks every 10 or 15 seconds for as long as the effect has to continue. Not very elegant, but it works.

  • Tapped delay line structure

    If I wish to emulate a wireless multi-path channel, is there a way I can bring in the tapped delay line filter structure into my LV code ? I mean, would I be able to get accurate delays, say in the order of ns for my taps ? Also, how do I model the delays ?I've been searching for help on this subject but haven't been able to find much.

    If you know your filter specifications (lower/upper passband/stopband) then you can use the "Digital FIR Filter" vi to filter your channel. If you know the coefficients of the desired filter, then you can use the "FIR Filter" vi. One way you can create delay is to use the "Continuous Convolution (FIR)" vi to convolve your waveform with a shifted Kronecker delta. You can make this delay in the order of ns if the sampling frequency of the simulated channel is high enough. Have you looked at LabVIEW examples that use filtering? Check out the example "FIR Filtering and Response.vi" in the NI Example Finder. 
    Marcus B.
    ELP Support Engineer
    National Instruments

  • Retrieving values from table control using DYNP_VALUES_READ

    Hi all,
    I am trying to retrieve the values from the table control using the FM DYNP_VALUES_READ. I have a situation where user enter values in table control in T.code FB60 in Withholding tab for validation purpose. There i'll have to check based on some entries maintained in SET.
    I am unable to get the values when i scroll to the next page in the table control. FM raising an exception invalid_dynprofield.
    Expecting reply...

    You have to populate the dynpfields internal table before calling the function,
    data: repid like sy-repid.
    dynpfields-fieldname = 'PNAME'.
    append dynpfields.
    repid = sy-repid.
    call function 'DYNP_VALUES_READ'
    exporting
    dyname = repid
    dynumb = sy-dynnr
    tables
    dynpfields = dynpfields
    exceptions
    others.
    read table dynpfields index 1.
    pname = dynpfields-fieldvalue.
    Now you will have the field value in pname
    Hope this helps
    Vinodh Balakrishnan

  • How to implement line selectability for a table control using table Wizard?

    Hello SDN Community,
    I have created a table control using the Table Wizard.  I found my exact question in this forum, but unfortunately it had not been andsered.  While I cannot paste a screen-print into this plane-text area, here are the steps I followed...
    1) SE51
    2) Create new screen 0100
    3) Click Layout button
    4) Clidk Table Control (with Wizard) and draw box on canvas.
    5) Step is "Start" - click Continue
    6) Step is "Name of Table Control" - provided name
    7) Step is "Table Name" - provided name of dictionary table (AUFK)
    8) Step is "Definition of Columns" - selected order numver and order text
    9) Step is "Table Control Attributes" - Line Selectability is in display mode - cannot set it.
    I would like to have a selectability column for my table.  Would appreciate any insight into how to do this.
    Thank you,
    Dean Atteberry.

    This is a puzzling...
    For the table control wizard, in the Table Control Attributes step, I was able to get line selectability to open up by declaring a char01 data element at the beginning of my type.
    The puzzling is in regards to the "Selection col. fld" entry field.
    If I leave it blank and try to go to the next step, I get message "Enter the name of the selection column if you are using a program table"
    So it looked like it wanted to know the name of my selection column.  So I type in "CHAR1".  and got the message "The field "CHAR1" for the selection column is already contained in the table."
    Hmmmmm.... don't understand............
    Dean Atteberry.

  • How can I reference a winforms control using a variable in Powershell?

    I have a powershell winform that has a lot of text boxes, but for the sake of this post, lets say I have 5. I want to loop through the 5 text boxes to see if their text property is empty. If the textbox contains something, I want to add the text value to
    an array. Here's an example of what I'm trying to do.
    textbox1.text = "Red"
    textbox2.text = ""
    textbox3.text = "Blue"
    textbox4.text = ""
    textbox5.text = ""
    $MyArray = @()
    for ($i = 1; $i -le 5; $i++) {
    If ($textbox[$i].text -ne "") {
    $MyArray += $textbox[$i].text
    I realize the textbox object is not an array so this code will not work. I guess the simple question is, How can I reference a set of static controls using a variable without having to do something like this
    [object[]]$textboxes = New-Object System.Windows.Forms.TextBox
    For ($i = 1; $i -lt 5; $i++) {
    $textboxes += New-Object windows.forms.textbox
    $textboxes[$i].DataBindings.DefaultDataSourceUpdateMode = [System.Windows.Forms.DataSourceUpdateMode]::OnValidation
    $textboxes[$i].Name = $textboxes[$i]
    $BoxItems.Controls.Add($textboxes[$i])

    Hi D-Dub,
    here are two ways to retrieve the text value of $Textbox1:
    $Textbox1.Text
    (Get-Variable "Textbox1").Value.Text
    Now what could you do with the second way, inside a loop, I wonder ... ;)
    Cheers,
    Fred
    There's no place like 127.0.0.1

  • How to create and use Webservice controls using WSDL in weblogic portal10.3

    Hi All,
    I have WSDL , How to create webservice controls using the WSDL in weblogic portal 10.3 and use those controls to invoke those webservice methods?
    please give me the documents links for this.
    Thanks
    Venkata Sarvabatla

    As far as I remember, Controls can be called only from Pageflows, BackingFiles, Another Control (Like control calling another control) etc. In pageflow we use annotation @Control and give control classname and a varialbe for that. I am pretty sure this annotation may not work from normal java class and in your case a JAVA JSR Class.
    If you installed the samples, refer the samples from WLS: C:\beawlp103\wlserver_10.3\samples\server\examples\src\examples\webservices. They have lot of fully ready to work samples with instructions. I used clientgen ant task. But you can use standard SUN JDK Command "wsimport" also to generate the java files from the WSDL. Open any command prompt. If java is in classpath, just run wsimport and that should give an idea.
    Goud

  • Multiple selection in List control using CheckBox as itemrenderer

    Hey all,
                I am trying to get multiple selection working in a list control using the CheckBox as itemrederer but I am unable to get a list of selected indices even though I have multiple check boxes selected
    <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
                    layout="vertical">
        <mx:Script>
            <![CDATA[
                private function onChange():void
                    trace(chkList.selectedIndices);
            ]]>
        </mx:Script>
    <mx:ArrayCollection id="collection">
            <mx:Object label="Test A"/>
            <mx:Object label="Test B"/>
            <mx:Object label="Test C"/>
            <mx:Object label="Test D"/>
            <mx:Object label="Test E"/>
            <mx:Object label="Test F"/>
            <mx:Object label="Test G"/>
        </mx:ArrayCollection>
    <mx:List id="chkList" dataProvider="{collection}" itemRenderer="mx.controls.CheckBox" change="onChange();" allowMultipleSelection="true"/>
    </mx:Application>
    I always get the last item I clicked
    Thanks,
    Firdosh

    Hi there, I'll tweak your code a little bit to something like this:
    <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
                    layout="vertical">
        <mx:Script>
            <![CDATA[
                 import mx.events.ListEvent;
                 import mx.controls.CheckBox;
               [Bindable]
               private var mySelectedIndexes:ArrayCollection=new ArrayCollection();
                private function onChange(e:ListEvent):void
                   if(CheckBox(e.itemRenderer).selected){
                             mySelectedIndexes.addItem(e.rowIndex);
                   }else{
                                  mySelectedIndexes.removeItemAt(mySelectedIndexes.getItemIndex(e.rowIndex));     
                   chkList.selectedIndices=mySelectedIndexes.toArray();
            ]]>
        </mx:Script>
    <mx:ArrayCollection id="collection">
            <mx:Object label="Test A"/>
            <mx:Object label="Test B"/>
            <mx:Object label="Test C"/>
            <mx:Object label="Test D"/>
            <mx:Object label="Test E"/>
            <mx:Object label="Test F"/>
            <mx:Object label="Test G"/>
        </mx:ArrayCollection>
    <mx:List id="chkList" dataProvider="{collection}" itemRenderer="mx.controls.CheckBox"  itemClick="onChange(event);" allowMultipleSelection="true"/>
    </mx:Application>

  • Some free tapes are not used by backup job - dpm 2012 r2

    Hi,
    I have DPM 2012 R2 with IBM TotalStorage 3572 tape library. It is 8 slot tape library. All was working with initial 8 tapes I added to tape library. I had one Protection group to be archived on 8 tapes. I was doing Daily and weekly backups. Every 2nd week
    I would do a weekly backup and keep it for 2 weeks i.e. I need 2 tapes for weekly backups. All was working ok until I introduced two new weekly tapes as a replacement for 2 weekly tapes in library. Because of disaster recovery procedure - I have to take
    weekly tapes out of library and store them in disaster recovery location for some time. So I pulled out 2 weekly tapes and added 2 new tapes. New tapes were marked free and they are showing as Free tapes.
    Now - the trouble is that these 2 free tapes are not used by backup job and instead - backup job writes weekly backup on any of the available Daily tapes (like from 4-5 days ago) instead of using one of the Free tapes that are available.
    I'd like the backup job (Protection group) to use Free tapes first and only if there are no available free tapes - to go and do backup on Daily tape or ask for a free tape.
    I am probably doing something wrong here - so I would really appriciate if anyone can help me with this? Any ideas?
    Thanks,
    Damir.
    D.

    Hi,
    What update rollup are you running on the DPM 2012 R2 server ?  DPM 2012 R2 UR5 introduced a new refresh feature that will re-enumerate data sources on an individual protected server.
    Check for VSS errors inside the guests that are having problems being backed up.
    Please remember to click “Mark as Answer” on the post that helps you, and to click “Unmark as Answer” if a marked post does not actually answer your question. This can be beneficial to other community members reading the thread. Regards, Mike J. [MSFT]
    This posting is provided "AS IS" with no warranties, and confers no rights.

  • Converting a tape to MP3 using Garageband and my MacBook...

    I'm having a problem converting some of my old books on tape to MP3 using my MacBook and my stereo. I have a cord with mini-plig attachments on both ends - one end is connected to the headphone out jack on my stereo and the other is connected to the mini-attachment next to the headphone jack on the MacBook. For whatever reason whenever I try to record all I get is distorted static.
    Any ideas on how to proceed with this?

    You may need to adjust the volume levels both on the stereo output and the MacBook Sound Input Level in System Preferences. You need to adjust it so that the signal isn't amplified too much resulting in clipping or distortion.
    You should be able to preview the sound coming into the MacBook to adjust those levels until it has an acceptable sound quality.

  • Installing Enterprise Manager 10g Grid Control Using an Existing Database

    I want to install Enterprise Manager 10g Grid Control 10.2.0.3 using an existing database. This database is RAC 10.2.0.2. and I use it as Infrastructure Metadata Repository.
    I is said in Oracle documentation that SYSMAN schema has to be dropped, thus Database console repository has to be dropped. As far as I understand after Grid Control installation I will not be able to use Database console for my RAC 10.2.0.2 Infrastructure Metadata Repository database. I will be able to use only Grid Control for this database.
    Am I right? Could you give me any advice about Installing Enterprise Manager 10g Grid Control Using an Existing Database?
    Thank you.

    I am trying to install the OEM rel 2.0 on AIX 5L from the downloaded software zip files which are as below,
    AIX_Grid_Control_full_10201_disk1.zip (656,766,406 bytes) (cksum - 2157028496)
    AIX_Grid_Control_full_10201_disk2.zip (655,758,726 bytes) (cksum - 2350778444)
    AIX_Grid_Control_full_10201_disk3.zip (641,760,716 bytes) (cksum - 2053607771)
    AIX_Grid_Control_full_10201_disk4.zip (606,903,411 bytes) (cksum - 4162514797)
    AIX_Grid_Control_full_10201_disk5.zip (576,555,758 bytes) (cksum - 3304661461)
    AIX_Grid_Control_full_10201_disk6.zip (459,658,650 bytes) (cksum - 3120478203)
    AIX_Grid_Control_full_10201_disk7.zip (311,903,435 bytes) (cksum - 2438252536)
    AIX_Grid_Control_full_10201_disk8.zip (224,594,251 bytes) (cksum - 2618845234)
    I am unable to locate the runInstaller in any of the disks 1- 8 ,can somebody help me on this. Thanks

  • How can I work lsmw with table control using mm01 appl?

    Hi
    How can I work lsmw with table control using mm01 appl?
    Is it difefrent the way we handle table control in BDC?
    Thank You

    Hi
    How can I work lsmw with table control using mm01 appl?
    Is it difefrent the way we handle table control in BDC?
    Thank You

  • Data Modeling for controls using XML views(SAPUI5)

    Hello ,
    I am trying to create Table control using XML view and binding data to it through controller onInit method.
    XML View Code is as follows :
    <core:View xmlns="sap.m" xmlns:l="sap.ui.layout" xmlns:core="sap.ui.core">
        <l:VerticalLayout width="100%">
            <l:content>
                <Text id="description" class="marginAll" />
                <Table id="idProductsTable" items="{       
                    path:'/businessData'
                }">
                    <headerToolbar>
                        <Toolbar>
                            <Label text="Products"></Label>
                        </Toolbar>
                    </headerToolbar>
                    <columns>
                        <Column>
                            <Label text="Product" />
                        </Column>
                        <Column>
                            <Label text="Supplier" />
                        </Column>
                        <Column>
                            <Label text="Dimensions" />
                        </Column>
                    </columns>
                    <items>
                        <ColumnListItem>
                            <cells>
                                <ObjectIdentifier title="{COUNTRY}" text="{COUNTRY}" />
                            </cells>
                            <Text text="{REGION}"></Text>
                            <Text text="{CITY}"></Text>
                        </ColumnListItem>
                    </items>
                </Table>
            </l:content>
        </l:VerticalLayout>
    </core:View>
    Controller onInit method Code is as follows :
    var oData = {
                businessData : [ {
                    'COUNTRY' : "Canada",
                    'CITY' : "Toronto",
                    'REGION' : "US",
                    'LANGUAGE' : "English"
                    'COUNTRY' : "China",
                    'CITY' : "Bejeing",
                    'REGION' : "Ashia",
                    'LANGUAGE' : "Chinese"
            var demoJSONModel = new sap.ui.model.json.JSONModel();
            demoJSONModel.setData(oData);
            sap.ui.getCore().getElementById("idProductsTable").setModel(
                    demoJSONModel);
    Same thing when i tried with JS views , it worked however through XML view , I am getting empty table.
    Is the data modeling correct for XML views?
    Thanks,
    Mahesh.

    I've got it ! The reason for that is you bind items as below,
         <Table id="idProductsTable" items="{    
                    path:'/businessData'
                }">
    This pattern is followed if you wanna add a formatter/sorter/grouping.
    As you don't do any of those you can bind items as below &  it doesn't require  data-sap-ui-xx-bindingSyntax="complex".
    <Table id="idProductsTable" items="{/businessData}">

Maybe you are looking for

  • Creation of Dynamic Date Variables to be used in WebI reports

    What we are trying to achieve is to create 4 optional filters (Current Day, Current Week, Last Week, Last Month) on 4 different dates which will allow the users to use them in WebI reports. When using an optional SAP Customer Exit variable in BEx and

  • Query regarding memory upgrade

    I have k8mm-v (MS 7142 v1.x) Micro ATX mobo with chipset k8m800-ce and VT8237 memory module required by the system: 184 pin unbuffererd ddr266/333/400 DDR SDRAM and can support upto 2 gb (this is as per motherboard manual) My questions: 1.  whether I

  • How to use counter in this case

    in my selection screen i have billing doc no-vbeln. in my ztable i have etimes a field. when i enter a bill doc no and press f8, my etimes feild in ztable sets to 1. my requirement is if i enter a bill doc as 97600654 for first time, etimes is 1. for

  • How can i add link to web in an applicaion(Urgent)

    Hi I want to add link in an application mean when user click on this link it open a browser and goes to that address. I want to do that thing in JFrame.plz help me.

  • Need help on Oracle Report format

    Hi, I need help on Oracle Reports. I am generating a report in excel sheet. I have a column which is 13 digit number (In database it is CHAR datatype). In excel sheet it showing some thing like 9.78381E+12. I want to show complete number like 9783805