Site Home   Archive Home   FAQ Home   How to search the Archive   How to Navigate the Archive   
Compare FPGA features and resources   

Threads starting:
1994JulAugSepOctNovDec1994
1995JanFebMarAprMayJunJulAugSepOctNovDec1995
1996JanFebMarAprMayJunJulAugSepOctNovDec1996
1997JanFebMarAprMayJunJulAugSepOctNovDec1997
1998JanFebMarAprMayJunJulAugSepOctNovDec1998
1999JanFebMarAprMayJunJulAugSepOctNovDec1999
2000JanFebMarAprMayJunJulAugSepOctNovDec2000
2001JanFebMarAprMayJunJulAugSepOctNovDec2001
2002JanFebMarAprMayJunJulAugSepOctNovDec2002
2003JanFebMarAprMayJunJulAugSepOctNovDec2003
2004JanFebMarAprMayJunJulAugSepOctNovDec2004
2005JanFebMarAprMayJunJulAugSepOctNovDec2005
2006JanFebMarAprMayJunJulAugSepOctNovDec2006
2007JanFebMarAprMayJunJulAugSepOctNovDec2007
2008JanFebMarAprMayJunJulAugSepOctNovDec2008
2009JanFebMarAprMayJunJulAugSepOctNovDec2009
2010JanFebMarAprMayJunJulAugSepOctNovDec2010
2011JanFebMarAprMayJunJulAugSepOctNovDec2011
2012JanFebMarAprMayJunJulAugSepOctNovDec2012
2013JanFebMarAprMayJunJulAugSepOctNovDec2013
2014JanFebMarAprMayJunJulAugSepOctNovDec2014
2015JanFebMarAprMayJunJulAugSepOctNovDec2015
2016JanFebMarAprMayJunJulAugSepOctNovDec2016
2017JanFebMarAprMayJunJulAugSepOctNovDec2017
2018JanFebMarAprMayJunJulAugSepOctNovDec2018
2019JanFebMarAprMayJunJulAugSepOctNovDec2019
2020JanFebMarAprMay2020

Authors:A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

Custom Search

Messages from 115825

Article: 115825
Subject: Re: low cost xilinx prom burner?
From: "cpope" <cepope@nc.rr.com>
Date: Wed, 21 Feb 2007 14:47:27 -0500
Links: << >>  << T >>  << A >>

<cs_posting@hotmail.com> wrote in message
news:1172071323.893445.72120@q2g2000cwa.googlegroups.com...
> On Feb 21, 10:19 am, cs_post...@hotmail.com wrote:
>
> > Then don't use the UART.  Make your own synchronous serial
> > connection.  You seem to be treating the jtag loader as somehow magic
> > - it isn't, it's still a synchronous serial connection with a download
> > speed deteremined by it's clock rate.
>
> And start by looking here:
>
> http://www.xilinx.com/publications/xcellonline/xcell_53/xc_jtag53.htm
>

Interesting! Thanks for the link.



Article: 115826
Subject: Re: Can someone give me some pointers on using ibis models?
From: Austin Lesea <austin@xilinx.com>
Date: Wed, 21 Feb 2007 11:54:25 -0800
Links: << >>  << T >>  << A >>
Tom,

What you are missing in all of this is:

support.

If you asked the same question of the Xilinx hotline, a Xilinx SI expert
would reply to your "what if" simulation, and give you the output
impedance of the driver type you had chosen.

If you were in a big company with premium support, you would get the
answer quickly.

If you were a student, or a very very small customer, a webcase may take
a few days to get you the answer.

If you posted the same question that you did but for Xilinx here on
c.a.f., I would run the simulation myself, and post the results here
(just to illustrate the tools I used, and the method for general education).

Austin

Article: 115827
Subject: Re: Can someone give me some pointers on using ibis models?
From: Austin Lesea <austin@xilinx.com>
Date: Wed, 21 Feb 2007 12:00:35 -0800
Links: << >>  << T >>  << A >>
Tom,

Further, just to show that I feel sorry for you in your plight, a SSTL
driver for Stratix II was 23.7 ohms, and suggested using a 59 ohm series
resistor to match 65 ohm t-line, and the same driver for V4 was 30.8
ohms, and suggested using a 45 ohm series resistor to match the 65 ohm line.

I use Mentor's Hyperlynx (not free), and it takes seconds to get the
answer.  How much is your time worth?  How much is a re-spin of the pcb
worth?  You pay for the tool if you save just one re-spin.

Don't like Mentor?  Cadence has a very nice tool set, and there are
others, too.

Austin

Article: 115828
Subject: Re: nets vs. pads ; constraints question
From: "John_H" <newsgroup@johnhandwork.com>
Date: Wed, 21 Feb 2007 13:45:29 -0800
Links: << >>  << T >>  << A >>
The Xilinx Constraints Guide includes the applicable elements list for each 
constraint.  Often - but not always - an attribute attached to a NET may 
propagate to the PAD or pad INST that's attached to it.  If you wonder 
whether the PAD or NET is the right target for a specific constraint, look 
up that constraint in the Constraints Guide.

I haven't worked much with XST but I've seen this in Synplify results often 
enough - when a clock pin is included in the pin list for the top module and 
the synthesizer recognizes it as a clock pin, a clock buffer is added by the 
synthesizer (rather than requiring the manual instantiation) to deliver the 
clock over the global clock routing network.  Adding this buffer between the 
pad and registers means there are now two nets.  Typically the net 
connecting the pad to the buffer will have the _c appended to the name to 
make the net unique but understandably related to the clock.

- John_H

"vu_5421" <nugentoffer@gmail.com> wrote in message 
news:1172078680.923299.66240@j27g2000cwj.googlegroups.com...
> Hello all,
>
> What is the difference between a NET and a PAD with regards to
> constraints management?
>
> Also, I noticed that I can constrain my FPGA_CLK but it looks like
> there's another element called FPGA_CLK_c . Why does Xilinx ISE add
> this extra element? What is it?
>
> Thanks.
> 



Article: 115829
Subject: Re: audio low pass filtering in FPGA
From: Satoru Uzawa <satoru_uNoSpam@berkeley.edu>
Date: Wed, 21 Feb 2007 21:53:51 +0000 (UTC)
Links: << >>  << T >>  << A >>
glen herrmannsfeldt <gah@ugcs.caltech.edu> wrote:
> MikeJ wrote:
> 
>>>There is a motorola booklet describing a stereo graphic equalizer
>>>built with a 56001.  That would probably have all the logic you
>>>would need to do what you want.
> 
>> Sounds interesting. I don't suppose you have a link? Google is currently 
>> failing me ...
> 
> It is older than the web, so it might not be there.
> (Well, older than when the web started to get popular.)
> 
> I might be able to find mine and scan it.
> 
> -- glen
> 

 Web was developed on a NeXT machine which had DSP56001 in it.

 Ancient.....

 Just for your information.  Cheers!

 Satoru

Article: 115830
Subject: Re: how to use STD_LOGIC_VECTOR2
From: "KJ" <Kevin.Jennings@Unisys.com>
Date: 21 Feb 2007 13:57:29 -0800
Links: << >>  << T >>  << A >>
On Feb 21, 2:11 pm, "Pasacco" <pasa...@gmail.com> wrote:
> Hi
>
> I need to convert
>
> type : array (0 to 3) of std_logic_vector (31 downto 0)
>
> to
>
> type : STD_LOGIC_VECTOR2 ( 3 downto 0 , 31 downto 0 )
>
> As an example, I was using signal
>
> DATA_TEMP(3) <= x"80030001";
>
> How should I modify the *DATA_TEMP* signal?
>

Create a function that takes as input an array of std_logic_vector()
and outputs a two dimensional array of of std_logic_vector2.

Kevin Jennings


Article: 115831
Subject: Determine error in asynchronous signal
From: "axr0284" <axr0284@yahoo.com>
Date: 21 Feb 2007 13:57:40 -0800
Links: << >>  << T >>  << A >>
Hi,
 first of all, I know that asynchronous signals are bad, etc but
that's what i have to work with. I am using Spartan 3E FPGA. I have an
internal clock running at 125 MHz. I cannot use any DCM for conversion
so i'm stuck with that.

I get an external signal that alternates between high and low state at
a rate of 13.56 MHz with 50% duty cycle. It can happen that due to an
error in external hardware that the signal is held low or high for
more than 1/2 a cycle. I need to be able to detect this.

I originally thought of detecting the first rising edge,(Major issues
with setup time can occur here) then use a counter and approximate
that 3 125 MHz cycle should fall into the low region of the 13.56 MHz
period. If my counter reaches 3 or 4 and the signal is still hi, then
there is an error. I would also need to check if the signal stays low
for longer than necessary.

It's not very precise thought so i am wondering if there is a better
solution. Any idea???? Thanks a lot,
Amish


Article: 115832
Subject: Re: Determine error in asynchronous signal
From: Jim Granville <no.spam@designtools.maps.co.nz>
Date: Thu, 22 Feb 2007 11:39:25 +1300
Links: << >>  << T >>  << A >>
axr0284 wrote:
> Hi,
>  first of all, I know that asynchronous signals are bad, etc but
> that's what i have to work with. I am using Spartan 3E FPGA. I have an
> internal clock running at 125 MHz. I cannot use any DCM for conversion
> so i'm stuck with that.
> 
> I get an external signal that alternates between high and low state at
> a rate of 13.56 MHz with 50% duty cycle. It can happen that due to an
> error in external hardware that the signal is held low or high for
> more than 1/2 a cycle. I need to be able to detect this.
> 
> I originally thought of detecting the first rising edge,(Major issues
> with setup time can occur here) then use a counter and approximate
> that 3 125 MHz cycle should fall into the low region of the 13.56 MHz
> period. If my counter reaches 3 or 4 and the signal is still hi, then
> there is an error. I would also need to check if the signal stays low
> for longer than necessary.
> 
> It's not very precise thought so i am wondering if there is a better
> solution. Any idea???? Thanks a lot,
> Amish

Key question is how much more than 1/2 a cycle is an error ?
How soon do you need to flag that as an error ?
Is jitter OK on that error signal ?

You need to set a trip threshold, and the longer that it, % wise,
the easier it gets :)

It's basically an XOR edge detector triggering a monostable.

-jg



Article: 115833
Subject: Re: Can someone give me some pointers on using ibis models?
From: "Andrew FPGA" <andrew.newsgroup@gmail.com>
Date: 21 Feb 2007 14:44:15 -0800
Links: << >>  << T >>  << A >>
Hi Tom,
Have a look at the contents of the ibis file with a text editor. Some
sections of the file will show I vs V figures for the IO. So using V/I
= R you can get an approximation for the output impedance of any
drivers.

>>I would think that if I had an ibis simulator, then I could use the ibis
>>models provided by manufacturers and then create ibis models of my own to
>>simulate the transmission lines in my design.
>>1) Is that last assumption correct?

In my experience, not quite. For example, in hyperlynx you can use
their GUI to enter parameters/geometry etc from your transmission
line, and import the ibis model for the drivers/receivers. One doesn't
"create" IBIS models for the transmission lines as such.


Article: 115834
Subject: Re: Determine error in asynchronous signal
From: "Peter Alfke" <peter@xilinx.com>
Date: 21 Feb 2007 14:54:18 -0800
Links: << >>  << T >>  << A >>
The straightforward implementation (counting 125 MHz during every half-
period of 13.5 MHz) has a phasing error of one 125 MHz period = 8 ns.
If that is too big an error, you can frequency-double the 125 MHz
(asuming it has a 50% duty cycle) quite easily, see my "Six easy
pieces" in Xilinx TechXclusives. That reduces the phasing error to 4
ns. Then you must declare an error when the count reaches 11.
Peter Alfke


On Feb 21, 2:39 pm, Jim Granville <no.s...@designtools.maps.co.nz>
wrote:
> axr0284 wrote:
> > Hi,
> >  first of all, I know that asynchronous signals are bad, etc but
> > that's what i have to work with. I am using Spartan 3E FPGA. I have an
> > internal clock running at 125 MHz. I cannot use any DCM for conversion
> > so i'm stuck with that.
>
> > I get an external signal that alternates between high and low state at
> > a rate of 13.56 MHz with 50% duty cycle. It can happen that due to an
> > error in external hardware that the signal is held low or high for
> > more than 1/2 a cycle. I need to be able to detect this.
>
> > I originally thought of detecting the first rising edge,(Major issues
> > with setup time can occur here) then use a counter and approximate
> > that 3 125 MHz cycle should fall into the low region of the 13.56 MHz
> > period. If my counter reaches 3 or 4 and the signal is still hi, then
> > there is an error. I would also need to check if the signal stays low
> > for longer than necessary.
>
> > It's not very precise thought so i am wondering if there is a better
> > solution. Any idea???? Thanks a lot,
> > Amish
>
> Key question is how much more than 1/2 a cycle is an error ?
> How soon do you need to flag that as an error ?
> Is jitter OK on that error signal ?
>
> You need to set a trip threshold, and the longer that it, % wise,
> the easier it gets :)
>
> It's basically an XOR edge detector triggering a monostable.
>
> -jg



Article: 115835
Subject: Re: Do you like Virtex-5 ?
From: "kunil" <kunilkuda@gmail.com>
Date: 21 Feb 2007 16:40:38 -0800
Links: << >>  << T >>  << A >>
On Feb 21, 12:56 am, "Pete Fraser" <pfra...@covad.net> wrote:
> I am a consultant, and have had good luck with Avnet and with
> the local rep organization. There's never been too much of a problem
> getting prototypes and pilot-production Xilinx parts for any of my
> clients.
>
> Have you tried getting in touch with the local rep organization?
> A good relationship with them could work wonders.

Good for you.

I live in Indonesia, and struggling to death for getting XC3S100E
from AvNet and NuHorizon Singapore (I mean buying it, not getting free
samples of it).

I don't know what they're thinking about. But I think small customer
who
ordered 10-pieces of XC3S100E for electronic billboard is not worth
enough to serve.

That's where Digikey saved my day =)

I just wish there are more distributors that specialized in small
order
quantity. FPGAs and CPLDs obviously not an easy part to search in
SE Asia region.

-kunil


Article: 115836
Subject: Re: Determine error in asynchronous signal
From: John_H <newsgroup@johnhandwork.com>
Date: Thu, 22 Feb 2007 00:55:06 GMT
Links: << >>  << T >>  << A >>
axr0284 wrote:
> Hi,
>  first of all, I know that asynchronous signals are bad, etc but
> that's what i have to work with. I am using Spartan 3E FPGA. I have an
> internal clock running at 125 MHz. I cannot use any DCM for conversion
> so i'm stuck with that.
> 
> I get an external signal that alternates between high and low state at
> a rate of 13.56 MHz with 50% duty cycle. It can happen that due to an
> error in external hardware that the signal is held low or high for
> more than 1/2 a cycle. I need to be able to detect this.
> 
> I originally thought of detecting the first rising edge,(Major issues
> with setup time can occur here) then use a counter and approximate
> that 3 125 MHz cycle should fall into the low region of the 13.56 MHz
> period. If my counter reaches 3 or 4 and the signal is still hi, then
> there is an error. I would also need to check if the signal stays low
> for longer than necessary.
> 
> It's not very precise thought so i am wondering if there is a better
> solution. Any idea???? Thanks a lot,
> Amish

1) How precise do you want to be and 2) is this a unique test or do you 
want the measurement in production?

I've been playing down at this level in the Spartan 3E for a while.  It 
can be done to extreme precision but how much pain and resource do you 
want to throw that direction?

Article: 115837
Subject: Re: Determine error in asynchronous signal
From: Jim Granville <no.spam@designtools.maps.co.nz>
Date: Thu, 22 Feb 2007 14:49:03 +1300
Links: << >>  << T >>  << A >>
John_H wrote:
<snip>
>> It's not very precise thought so i am wondering if there is a better
>> solution. Any idea???? Thanks a lot,
>> Amish
> 
> 
> 1) How precise do you want to be and 2) is this a unique test or do you 
> want the measurement in production?
> 
> I've been playing down at this level in the Spartan 3E for a while.  It 
> can be done to extreme precision but how much pain and resource do you 
> want to throw that direction?

What does 'extreme precision' and 'pain and resource' equate to, on the 3E ?

-jg


Article: 115838
Subject: Re: Determine error in asynchronous signal
From: John_H <newsgroup@johnhandwork.com>
Date: Thu, 22 Feb 2007 01:52:55 GMT
Links: << >>  << T >>  << A >>
John_H wrote:
> axr0284 wrote:
>> Hi,
>>  first of all, I know that asynchronous signals are bad, etc but
>> that's what i have to work with. I am using Spartan 3E FPGA. I have an
>> internal clock running at 125 MHz. I cannot use any DCM for conversion
>> so i'm stuck with that.
>>
>> I get an external signal that alternates between high and low state at
>> a rate of 13.56 MHz with 50% duty cycle. It can happen that due to an
>> error in external hardware that the signal is held low or high for
>> more than 1/2 a cycle. I need to be able to detect this.
>>
>> I originally thought of detecting the first rising edge,(Major issues
>> with setup time can occur here) then use a counter and approximate
>> that 3 125 MHz cycle should fall into the low region of the 13.56 MHz
>> period. If my counter reaches 3 or 4 and the signal is still hi, then
>> there is an error. I would also need to check if the signal stays low
>> for longer than necessary.
>>
>> It's not very precise thought so i am wondering if there is a better
>> solution. Any idea???? Thanks a lot,
>> Amish
> 
> 1) How precise do you want to be and 2) is this a unique test or do you 
> want the measurement in production?
> 
> I've been playing down at this level in the Spartan 3E for a while.  It 
> can be done to extreme precision but how much pain and resource do you 
> want to throw that direction?

First stab:

Most people can just skip the post when their eyes start to glaze over; 
I'm going into detail to show what *can* be done, not necessarily to 
suggest this is a great way to go.


The fastest routed LUT delay in the S3E is on the order of 270 ps (from 
-MIN timing).

If an 8-LUT ring oscillator were used, the oscillator period would be a 
maximum of about 230 MHz or just over 16 ring oscillator periods in your 
  13.56 MHz period.

For each half cycle, use a ring oscillator and a 5-bit combinatorial 
Gray code counter to count the ring oscillator half periods.  If the 
ring oscillator is only enabled when the half cycle you're measuring 
begins, the ring oscillator starts oscillating and the Gray counter 
starts counting when you enter the appropriate half cycle.  When the end 
of the half cycle hits, latch the count values into their embedded 
registers and latch a 1 in a self-reset register.  Use the self-reset 
register to reset the ring oscillator and clear the Gray counter.  When 
all is zero, asynchronously clear the self-reset register.  The ring 
oscillator is disabled and held in reset until the next half period begins.

End result - you can decode a binary count value from the bits you've 
latched independently for the two half cycles.  The two values should be 
approximately the same and the sum of the two counts is the total ring 
oscillator LUT delays in a 13.56 MHz period.  If the 13.56 MHz period 
*is* constant, the 100% point total should be roughly consistent between 
adjacent cycles though it may vary by many percent across temperature, 
voltage, and other internal influences.  You can compare the two half 
counts to a percentage of the total to see if you're in the acceptance 
window or not.

The 8-LUT ring oscillator can be constructed in one CLB with around 20 
ps routing between LUTs (as reported by the Timing Analyzer or FPGA 
Editor) with judicious selection of which LUT goes where (using LOC or 
RLOC/RLOC_ORIGIN constraints) to access the shortest, most consistent 
timing.  SLICE_L and SLICE_M delays vary slightly but don't impact a 
measurement on the order of what you're trying to achieve.

The ring oscillator and the combinatorial Gray counter should be 
developed with great care.  The conversion from the 8-bit Johnson 
counter (the ring oscillator) and the 5-bit half-period Gray counter is 
more than 2 minutes of work especially with the extra bit in the Gray 
counter used to reduce confusion between conflicting Johnson counts and 
Gray counts when they both transition about the same time when sampled. 
  The self-reset is used to guarantee hold times between the sampling 
13.56 MHz clock and the clear.

What a mess, right?  But, ...
Your resolution could be just over 1% in the slowest device (a count of 
93 for the total period).
You use no DCMs.
You don't even need the 125 MHz clock.
You have lots of fun straining your Gray matter.

- John_H

Article: 115839
Subject: Re: Determine error in asynchronous signal
From: John_H <newsgroup@johnhandwork.com>
Date: Thu, 22 Feb 2007 01:56:16 GMT
Links: << >>  << T >>  << A >>
Jim Granville wrote:
> John_H wrote:
> <snip>
>>> It's not very precise thought so i am wondering if there is a better
>>> solution. Any idea???? Thanks a lot,
>>> Amish
>>
>>
>> 1) How precise do you want to be and 2) is this a unique test or do 
>> you want the measurement in production?
>>
>> I've been playing down at this level in the Spartan 3E for a while.  
>> It can be done to extreme precision but how much pain and resource do 
>> you want to throw that direction?
> 
> What does 'extreme precision' and 'pain and resource' equate to, on the 
> 3E ?
> 
> -jg

Precision: better than 800 ps.  Another technique could be used to 
approximately halve that value if needed.

Pain and resource: check the other post.

Article: 115840
Subject: Re: Determine error in asynchronous signal
From: Tim Wescott <tim@seemywebsite.com>
Date: Wed, 21 Feb 2007 18:32:04 -0800
Links: << >>  << T >>  << A >>
axr0284 wrote:

> Hi,
>  first of all, I know that asynchronous signals are bad, etc but
> that's what i have to work with. I am using Spartan 3E FPGA. I have an
> internal clock running at 125 MHz. I cannot use any DCM for conversion
> so i'm stuck with that.
> 
> I get an external signal that alternates between high and low state at
> a rate of 13.56 MHz with 50% duty cycle. It can happen that due to an
> error in external hardware that the signal is held low or high for
> more than 1/2 a cycle. I need to be able to detect this.
> 
> I originally thought of detecting the first rising edge,(Major issues
> with setup time can occur here) then use a counter and approximate
> that 3 125 MHz cycle should fall into the low region of the 13.56 MHz
> period. If my counter reaches 3 or 4 and the signal is still hi, then
> there is an error. I would also need to check if the signal stays low
> for longer than necessary.
> 
> It's not very precise thought so i am wondering if there is a better
> solution. Any idea???? Thanks a lot,
> Amish
> 
It may take less logic to shift it in, and look for three or four 
consecutive ones or zeros.

-- 

Tim Wescott
Wescott Design Services
http://www.wescottdesign.com

Posting from Google?  See http://cfaj.freeshell.org/google/

"Applied Control Theory for Embedded Systems" came out in April.
See details at http://www.wescottdesign.com/actfes/actfes.html

Article: 115841
Subject: Using Xilinx DCM FX output without DLL
From: dipumisc@hotmail.com
Date: 21 Feb 2007 18:41:10 -0800
Links: << >>  << T >>  << A >>

I need to design an FPGA for a chip bringup system with the following
clocking requirements:

There is a 2.75 MHz input clock from the DUT. One part of the FPGA-DUT
interface is running on this clock.
We need to generate a 11 MHz ( 4x) clock using the 2.75 MHz input. One
part of the FPGA-DUT interface is running on this 4x clock.

Given the slow speeds involved, I dont need a phase-lock. There is
large timing margin. But I need the FX functionality in the DCM to
generate the higher frequency clock. I am planning to get a 16x ( 44
MHz ) clock generated at the FX output of the DCM and then divide
using a simple counter to get the 4x clock.

How to I connect the feedback clock input of the DCM? For other
designs where the input clock frequency is high enough for DLL
locking, we take the CLK0 through a BUFG and connect it back to CLKFB.
The same signal also goes to the flops in the design.

Thanks.

-Dipu


Article: 115842
Subject: Re: Cyclone II "altsyncram" timing constraints?
From: "Rob" <robnstef@frontiernet.net>
Date: Thu, 22 Feb 2007 03:20:30 GMT
Links: << >>  << T >>  << A >>
What speed grade part do you have? Only the fastest part is spec'd to 
operate its M4K (true dual port mode) at 200MHz.  Other key contributors to 
this high memory speed are:

1.  both ports driven from the same clock (which is what you are doing).
2.  memory clocks driven by the internal PLL onto the global clock network.



"Jules" <jules@dsf.org.uk> wrote in message 
news:1172059976.345496.76990@s48g2000cws.googlegroups.com...
> Just wondered if anyone could point me to documentation on the timing
> constraints for the "altsyncram" standard module on Cyclone II.  I
> have chapter 8 of the device handbook, which has a basic diagram, but
> when I try to duplicate the timing of this diagram, I don't seem to be
> able to get clock speeds above about 100MHz to work correctly
> (according to Quartus II's simulation).  I understood this module was
> supposed to function at 200MHz, so I guess I must be doing something
> wrong, but what it is I'm at a loss to explain.  I've tried shifting
> my clock signal's phase in relation to the control signals, but
> haven't found anything that helps.   In case it's relevant, I'm using
> it in true dual-port mode, with a single clock for both ports.
> 



Article: 115843
Subject: Re: Using Xilinx DCM FX output without DLL
From: Austin <austin@xilinx.com>
Date: Wed, 21 Feb 2007 19:25:48 -0800
Links: << >>  << T >>  << A >>
dipu,

Connect nothing to the CLKFB pin.  Use of the CLKFB pin invokes the DLL 
function (which you do not need, or can use at these low CLKIN frequency).

Just run the CLKFX output to a BUFG, and go from there.

Austin

Article: 115844
Subject: Re: Determine error in asynchronous signal
From: Jim Granville <no.spam@designtools.maps.co.nz>
Date: Thu, 22 Feb 2007 16:45:57 +1300
Links: << >>  << T >>  << A >>
John_H wrote:

<snip>
> 
> First stab:
> 
> Most people can just skip the post when their eyes start to glaze over; 
> I'm going into detail to show what *can* be done, not necessarily to 
> suggest this is a great way to go.
> 
> 
> The fastest routed LUT delay in the S3E is on the order of 270 ps (from 
> -MIN timing).
> 
> If an 8-LUT ring oscillator were used, the oscillator period would be a 
> maximum of about 230 MHz or just over 16 ring oscillator periods in your 
>  13.56 MHz period.
> 
> For each half cycle, use a ring oscillator and a 5-bit combinatorial 
> Gray code counter to count the ring oscillator half periods.  If the 
> ring oscillator is only enabled when the half cycle you're measuring 
> begins, the ring oscillator starts oscillating and the Gray counter 
> starts counting when you enter the appropriate half cycle.  When the end 
> of the half cycle hits, latch the count values into their embedded 
> registers and latch a 1 in a self-reset register.  Use the self-reset 
> register to reset the ring oscillator and clear the Gray counter.  When 
> all is zero, asynchronously clear the self-reset register.  The ring 
> oscillator is disabled and held in reset until the next half period begins.

Interesting.

and perhaps allow a 6th bit, or more, just to cover faster than expected
ring osc cases. You could also make the Gray Counter saturating, so 
there is no confusion of '>' - otherwise a multiple of Gray cycles might
get a 'pass mark'.

> 
> End result - you can decode a binary count value from the bits you've 
> latched independently for the two half cycles.  The two values should be 
> approximately the same and the sum of the two counts is the total ring 
> oscillator LUT delays in a 13.56 MHz period.  If the 13.56 MHz period 
> *is* constant, the 100% point total should be roughly consistent between 
> adjacent cycles though it may vary by many percent across temperature, 
> voltage, and other internal influences.  You can compare the two half 
> counts to a percentage of the total to see if you're in the acceptance 
> window or not.
> 
> The 8-LUT ring oscillator can be constructed in one CLB with around 20 
> ps routing between LUTs (as reported by the Timing Analyzer or FPGA 
> Editor) with judicious selection of which LUT goes where (using LOC or 
> RLOC/RLOC_ORIGIN constraints) to access the shortest, most consistent 
> timing.  SLICE_L and SLICE_M delays vary slightly but don't impact a 
> measurement on the order of what you're trying to achieve.
> 
> The ring oscillator and the combinatorial Gray counter should be 
> developed with great care.  The conversion from the 8-bit Johnson 
> counter (the ring oscillator) and the 5-bit half-period Gray counter is 
> more than 2 minutes of work especially with the extra bit in the Gray 
> counter used to reduce confusion between conflicting Johnson counts and 
> Gray counts when they both transition about the same time when sampled. 

I think here you have jumped to sampling BOTH, in order to hike the
precision from the ~4ns to the ~270ps, right ?

I've often thought of doing exactly this, but wondered just how you'd
'align' the Johnson edges, with the Gray, to keep things
a) monotonic
and
b) hopefully nominally equal in LSB step size.

>  The self-reset is used to guarantee hold times between the sampling 
> 13.56 MHz clock and the clear.
> 
> What a mess, right?  But, ...
> Your resolution could be just over 1% in the slowest device (a count of 
> 93 for the total period).
> You use no DCMs.
> You don't even need the 125 MHz clock.

No, but as some stage an absolute time reference might be a good idea ?

I've also thought of building two of these types of circuit, and having 
one in a CAL phase whilst the other samples the IP, and then swap on the
next cycle, (and so on). Thus you store the 93 (or 87, or 104) or 
whatever your CAL says is the present time-value.

Have you ever tried that ?

Logic has > doubled (bit it is 2-of-the-same), but you now track-out the
process and temp variations.


Another idea was to 'Coarse Cal', with a tapped Osc, so the CAL scheme
simply tries to lock N x OscPeriod, to some reference time.

-jg


Article: 115845
Subject: Re: Determine error in asynchronous signal
From: John_H <newsgroup@johnhandwork.com>
Date: Thu, 22 Feb 2007 07:05:23 GMT
Links: << >>  << T >>  << A >>
Jim Granville wrote:
> John_H wrote:
> 
> <snip>
>>
>> First stab:
>>
>> Most people can just skip the post when their eyes start to glaze 
>> over; I'm going into detail to show what *can* be done, not 
>> necessarily to suggest this is a great way to go.
>>
>>
>> The fastest routed LUT delay in the S3E is on the order of 270 ps 
>> (from -MIN timing).
>>
>> If an 8-LUT ring oscillator were used, the oscillator period would be 
>> a maximum of about 230 MHz or just over 16 ring oscillator periods in 
>> your  13.56 MHz period.
>>
>> For each half cycle, use a ring oscillator and a 5-bit combinatorial 
>> Gray code counter to count the ring oscillator half periods.  If the 
>> ring oscillator is only enabled when the half cycle you're measuring 
>> begins, the ring oscillator starts oscillating and the Gray counter 
>> starts counting when you enter the appropriate half cycle.  When the 
>> end of the half cycle hits, latch the count values into their embedded 
>> registers and latch a 1 in a self-reset register.  Use the self-reset 
>> register to reset the ring oscillator and clear the Gray counter.  
>> When all is zero, asynchronously clear the self-reset register.  The 
>> ring oscillator is disabled and held in reset until the next half 
>> period begins.
> 
> Interesting.
> 
> and perhaps allow a 6th bit, or more, just to cover faster than expected
> ring osc cases. You could also make the Gray Counter saturating, so 
> there is no confusion of '>' - otherwise a multiple of Gray cycles might
> get a 'pass mark'.

The ring oscillator is subject to the -MIN timing for the device; the 
numbers work out to 40% of the fastest (-5) speed grade.  Adding an 
extra bit or two would increase the range to measure longer times but 
I'd expect the maximum counts to be about 160 for the sum of the two 
halves rather than the 93 or 271 for the max -4 numbers or the -MIN 
numbers, respectively, given what I saw as "typical" on my S3E Starter 
board (-4 device).  There should be no part that exceeds a LUT-delay 
count of 271 for an 8-LUT ring oscillator in a Spartan 3E device.

>> End result - you can decode a binary count value from the bits you've 
>> latched independently for the two half cycles.  The two values should 
>> be approximately the same and the sum of the two counts is the total 
>> ring oscillator LUT delays in a 13.56 MHz period.  If the 13.56 MHz 
>> period *is* constant, the 100% point total should be roughly 
>> consistent between adjacent cycles though it may vary by many percent 
>> across temperature, voltage, and other internal influences.  You can 
>> compare the two half counts to a percentage of the total to see if 
>> you're in the acceptance window or not.
>>
>> The 8-LUT ring oscillator can be constructed in one CLB with around 20 
>> ps routing between LUTs (as reported by the Timing Analyzer or FPGA 
>> Editor) with judicious selection of which LUT goes where (using LOC or 
>> RLOC/RLOC_ORIGIN constraints) to access the shortest, most consistent 
>> timing.  SLICE_L and SLICE_M delays vary slightly but don't impact a 
>> measurement on the order of what you're trying to achieve.
>>
>> The ring oscillator and the combinatorial Gray counter should be 
>> developed with great care.  The conversion from the 8-bit Johnson 
>> counter (the ring oscillator) and the 5-bit half-period Gray counter 
>> is more than 2 minutes of work especially with the extra bit in the 
>> Gray counter used to reduce confusion between conflicting Johnson 
>> counts and Gray counts when they both transition about the same time 
>> when sampled. 
> 
> I think here you have jumped to sampling BOTH, in order to hike the
> precision from the ~4ns to the ~270ps, right ?
> 
> I've often thought of doing exactly this, but wondered just how you'd
> 'align' the Johnson edges, with the Gray, to keep things
> a) monotonic
> and
> b) hopefully nominally equal in LSB step size.

Both are sampled, indeed, making the precision a *minimum* or 270 ps but 
a maximum just under 800 ps with a typical -4 value being, perhaps, 
about 450 ps (based on my one sample of one -4 ES device).

The Johnson counter is the "ruling" time stamp.  Using the full Johnson 
count range as one period, each step in the Johnson count is 1/16 and 
the half-period counter give gray values in 1/2 steps.  If the Johnson 
counter says 1/16 but the Gray counter says 5.5, the Gray gets nudged to 
6.0 rather than brought down to 5.0.  Care must be taken to align the 
uncertainties such that a disagreement between values is "obvious" as to 
which way to correct the Gray value.

The LSB sizes are pretty darned close when the LUTs are in the same CLB 
and the routes are all the same, shortest length.  I mentioned there's a 
slight difference between SLICE_M and SLICE_L LUTs bet the system ends 
up pretty darned consistent.

>>  The self-reset is used to guarantee hold times between the sampling 
>> 13.56 MHz clock and the clear.
>>
>> What a mess, right?  But, ...
>> Your resolution could be just over 1% in the slowest device (a count 
>> of 93 for the total period).
>> You use no DCMs.
>> You don't even need the 125 MHz clock.
> 
> No, but as some stage an absolute time reference might be a good idea ?

If you want an absolute measurement, the 125 MHz can be used as a 
reference to measure the ring oscillator frequency.  Absolutely.  The 
task at hand was determining when the duty cycle of the 13.56 MHz signal 
is out of whack; nothing absolute needed.

> I've also thought of building two of these types of circuit, and having 
> one in a CAL phase whilst the other samples the IP, and then swap on the
> next cycle, (and so on). Thus you store the 93 (or 87, or 104) or 
> whatever your CAL says is the present time-value.
> 
> Have you ever tried that ?

The beauty is that the same ring oscillator can feed the frequency 
counter.  No need for an independent CAL cycle if you're interested in 
the average frequency.  Something I'm looking at now for a different 
application is using a reference oscillator to drive the scale in a 
sing-oscillator based NCO where jitter isn't a huge concern (a couple 
nanoseconds are fine) but the phase needs to be agile - far beyond the 
capabilities of a DCM.

> Logic has > doubled (but it is 2-of-the-same), but you now track-out the
> process and temp variations.

For applications where one ring oscillator is used for cal and another 
is used for strict delay rather than another ring oscillator, my concern 
has been that the full scale values would be off a bit because of the 
energy (and heating) for the CW oscillator versus the one-shot delay. 
It's all touchy-feely at this point without a bit of testing or specific 
device knowledge but the differences should be minor if everything is 
very close together.  I just haven't tried.

> Another idea was to 'Coarse Cal', with a tapped Osc, so the CAL scheme
> simply tries to lock N x OscPeriod, to some reference time.
> 
> -jg

A tapped oscillator as in finely adjusting the ring oscillator? 
Absolutely.  A combination of LUTs with different route time selections 
(choose the longer or the shorter route) in a ring oscillator can arrive 
at a closest-approximation to some M/N of the reference clock, dithering 
between two very close ring period values to keep the phase where it 
needs to be.  Carry chains can also provide some tight resolution though 
the overall frequency can tend to increase because the carry chain 
starts to leave the ring oscillator's neighborhood and needs to be 
routed back.

This is the stuff of good fun for me.  It's been nice bouncing it by 
you, Jim.  If anyone else has looked far enough into the ramblings to 
spark some interest, kudos!  Silicon is wonderful to stretch in funny 
ways to think outside the sandbox.

- John_H

Article: 115846
Subject: VHDL code for Generating registers
From: "Sandip" <sandip.gaikwad@gmail.com>
Date: 21 Feb 2007 23:06:58 -0800
Links: << >>  << T >>  << A >>
I want to generate a program in VHDL for generating registers which
can be used then into a state machine.
If anyone has a sample program to share, it  will be very helpful.

Thanks and regards,
sandip


Article: 115847
Subject: Re: Determine error in asynchronous signal
From: Jim Granville <no.spam@designtools.maps.co.nz>
Date: Thu, 22 Feb 2007 21:25:40 +1300
Links: << >>  << T >>  << A >>
John_H wrote:
> Jim Granville wrote:
>> Logic has > doubled (but it is 2-of-the-same), but you now track-out the
>> process and temp variations.
> 
> 
> For applications where one ring oscillator is used for cal and another 
> is used for strict delay rather than another ring oscillator, my concern 
> has been that the full scale values would be off a bit because of the 
> energy (and heating) for the CW oscillator versus the one-shot delay. 
> It's all touchy-feely at this point without a bit of testing or specific 
> device knowledge but the differences should be minor if everything is 
> very close together.  I just haven't tried.

Just to clarify my details, I was not thinking of a dual Cal / SW osc, 
but of an Alternate scheme ( like in PAL TV's ), where you try and build 
two identical Oscs, and then use each one 50% of the time.

- this does imply a repetitive trigger situation (as in the OP ), and 
most precison delay measuring schemes are triggered in one way or another.

  That means heating / thermal die slopes / etc do not matter, because 
you alternately cal and use each one, and at whatever the trigger rate 
is ( 80ns here )

-jg


Article: 115848
Subject: Re: Cyclone II "altsyncram" timing constraints?
From: "ALuPin@web.de" <ALuPin@web.de>
Date: 22 Feb 2007 00:52:21 -0800
Links: << >>  << T >>  << A >>
If you are using the RAM as top level in your test design
maybe you should use additional input and output registers

Rgds
Andre


Article: 115849
Subject: Re: Cyclone II "altsyncram" timing constraints?
From: "RedskullDC" <RedskullDC@SPAM.yahoo.com.au>
Date: Thu, 22 Feb 2007 20:48:33 +1100
Links: << >>  << T >>  << A >>
Hi Jules,

"Jules" <jules@dsf.org.uk> wrote in message 
news:1172059976.345496.76990@s48g2000cws.googlegroups.com...
> Just wondered if anyone could point me to documentation on the timing
> constraints for the "altsyncram" standard module on Cyclone II.  I
> have chapter 8 of the device handbook, which has a basic diagram, but
> when I try to duplicate the timing of this diagram, I don't seem to be
> able to get clock speeds above about 100MHz to work correctly
> (according to Quartus II's simulation).  I understood this module was
> supposed to function at 200MHz, so I guess I must be doing something
> wrong, but what it is I'm at a loss to explain.  I've tried shifting
> my clock signal's phase in relation to the control signals, but
> haven't found anything that helps.   In case it's relevant, I'm using
> it in true dual-port mode, with a single clock for both ports.
>

Using it on my board with a 2C20F484C7, no registers on the outputs,
it takes around 8ns for the outputs to stabilize after the clock pulse 
transition.

That is using the V6.1 Q2 and libraries, according the simulation results.

Your results may vary depending on your C2's speed grade, the version
of Q2 libraries you are using (if the megafunctions have changed that is),
or other aspects of your design.

Red






Site Home   Archive Home   FAQ Home   How to search the Archive   How to Navigate the Archive   
Compare FPGA features and resources   

Threads starting:
1994JulAugSepOctNovDec1994
1995JanFebMarAprMayJunJulAugSepOctNovDec1995
1996JanFebMarAprMayJunJulAugSepOctNovDec1996
1997JanFebMarAprMayJunJulAugSepOctNovDec1997
1998JanFebMarAprMayJunJulAugSepOctNovDec1998
1999JanFebMarAprMayJunJulAugSepOctNovDec1999
2000JanFebMarAprMayJunJulAugSepOctNovDec2000
2001JanFebMarAprMayJunJulAugSepOctNovDec2001
2002JanFebMarAprMayJunJulAugSepOctNovDec2002
2003JanFebMarAprMayJunJulAugSepOctNovDec2003
2004JanFebMarAprMayJunJulAugSepOctNovDec2004
2005JanFebMarAprMayJunJulAugSepOctNovDec2005
2006JanFebMarAprMayJunJulAugSepOctNovDec2006
2007JanFebMarAprMayJunJulAugSepOctNovDec2007
2008JanFebMarAprMayJunJulAugSepOctNovDec2008
2009JanFebMarAprMayJunJulAugSepOctNovDec2009
2010JanFebMarAprMayJunJulAugSepOctNovDec2010
2011JanFebMarAprMayJunJulAugSepOctNovDec2011
2012JanFebMarAprMayJunJulAugSepOctNovDec2012
2013JanFebMarAprMayJunJulAugSepOctNovDec2013
2014JanFebMarAprMayJunJulAugSepOctNovDec2014
2015JanFebMarAprMayJunJulAugSepOctNovDec2015
2016JanFebMarAprMayJunJulAugSepOctNovDec2016
2017JanFebMarAprMayJunJulAugSepOctNovDec2017
2018JanFebMarAprMayJunJulAugSepOctNovDec2018
2019JanFebMarAprMayJunJulAugSepOctNovDec2019
2020JanFebMarAprMay2020

Authors:A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

Custom Search