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 90225

Article: 90225
Subject: Virtex4 shift register layout: Horizontal or vertical?
From: jjohnson@cs.ucf.edu
Date: 6 Oct 2005 18:07:59 -0700
Links: << >>  << T >>  << A >>

Summary: Should high-speed shift registers (purely DFFs) flow
left->right, top->bottom, or does it matter?

Doing a Virtex4 (LX100). I wound up with high-speed inputs (clocks and
serial data) on the IOBs that run vertically down the center of the
die. OK for clocks, since the DCMs and BUFGs are also in that center
column.

Regarding data: I deserialize the inputs, and pass parallel data to
some large datapath blocks that start on the left edge of the die. I
constrain all my deserializer logic to use sites near the center column
to minimize clock skew. (Sorry, I can't use the on-chip deserializers;
they max out at 10 bits, and I need 12.)

Kind of annoying to take my inputs from the center over to the left,
and then start flowing left-to-right, but that's just how the layout
wound up...

Anyway, older Xilinx docs say you should flow left->right, and
numerical operations should have their MSB flowing downward (?) to make
best use of carry chains. Is that still the case?

Back to my deserializers: I'm using 20 of them, so that's 40 6-bit
shift registers (6 bits on rising edge, 6 bits on falling edge), which
I plan to do manual placement on. I don't want to use the SRL16's (yet;
long story...), but just DFFs.

I thought left->right flow was perfect for shift registers, but ISE
seems to place all the DFFs for a downward flow. Actually, since my
inputs are all down the center column (20 serial data streams) and need
to go left, horizontal alignment flowing right-to-left makes for best
placement. Not sure about routing though...

Any suggestions? The data is coming in close to 1Gbps, so the shift
regs run close to 500 MHz...

Thanks again for all the help; I'll appreciate your input as I work
another weekend...


Article: 90226
Subject: Re: Altera Gate Delay Simulation
From: "morpheus" <saurster@gmail.com>
Date: 6 Oct 2005 19:24:39 -0700
Links: << >>  << T >>  << A >>
Hey,
I have been dealing with this situation as well. When you compile the
design, look in the project folder under modelsim sub folder, you
should be able to find a .vo or .vho file depending upon your settings
for verilog or vhdl in quartus II.
Create a project in Modelsim and add the .vo or .vho file along with
the stratix GX atoms file, u should be able to get it from altera
website.
For gate delay simulation, get the .sdo file from the design's project
folder. When simulating in Modelsim, choose the SDO tab and add this
.sdo file there and then simulate...its MAGIC!!!
later
MORPHEUS


Article: 90227
Subject: Xilinx WebPack and command line
From: Remis Norvilis <norvilis@charter.net.removethis>
Date: Thu, 06 Oct 2005 21:45:46 -0500
Links: << >>  << T >>  << A >>
I wonder if there is a posibility to do Xilinx fpga synthesis and
implementation from command line on WindowsXP platform to speed up the
process. 
Xilinx web site mentioned something, that it's only availabe for CPLDs.
XESS have an app note on how to use Make file to script and automate build
process. It needs fe_shell utility, but I don't think it comes with WebPack
edition.

Article: 90228
Subject: Question about metastability that's been on my mind for a while
From: "Michael Chan" <mchan@itee.uq.edu.au>
Date: Fri, 7 Oct 2005 13:43:04 +1000
Links: << >>  << T >>  << A >>
I learnt at uni that two flip-flops is generally sufficient for 
synchronising an asynchronous signal.  But what if the phase of the sampled 
signal isn't uniformly random?  In particular, how would I deal with 
synchronising two different clock domains where one clock is the reference 
of a PLL, and the second clock is the output of that PLL, say 8 times 
faster.  Also, the frequency of the input clock, and consequently the output 
clock is FM modulated - although the frequency variation is slight.  The 
frequency of the fast clock is on the order of GHz.  I figure that since the 
two clocks are related, the chance of metastability is drastically higher.

How should one deal with such a scenario?

Thanks in advance,

Michael. 



Article: 90229
Subject: Re: I'm desperate... EDK project simulation
From: Zara <yozara@terra.es>
Date: Fri, 07 Oct 2005 06:00:33 GMT
Links: << >>  << T >>  << A >>
On Thu, 06 Oct 2005 11:16:15 -0500,
mvetromille@gmail-dot-com.no-spam.invalid (Melissa Vetromille) wrote:

>> Zarawrote:
>On Wed, 05 Oct 2005 19:16:02 -0500,
>> mvetromille@gmail-dot-com.no-spam.invalid (Melissa Vetromille)
>wrote:
>> 
>> 
>> You must create a new chipscope icon with Disable Boundary Scan
>> Component Instance. hta will give you an Icon with more ports than
>> usual, these ports must be connected to the corresponding ports of
>the
>> opb_mdm component (use Show ports with default connections when
>> connecting ports)
>
>I don't know how to disable the boundary scan component instance. I
>tryied to do this, but it was unsuccessfull. Could you help me
>again?
>
>Thank you!


Open Chipscoper Core generator. Select ICON, press Next>. Write name
of file, select device family and in ICON parameters select Number of
Control Ports and Check Disable Boundary Component Instance, press
Next>. Slect you preferred settings, and press generate Core. There
you are.

Article: 90230
Subject: Re: Question about metastability that's been on my mind for a while
From: "Hubble" <reiner@huober.de>
Date: 6 Oct 2005 23:04:03 -0700
Links: << >>  << T >>  << A >>
This is a synchronoeus design. Note that the phase of input clock and
feedback of a PLL is approximately zero and the uncertainty can be well
defined, as well as the setup and hold times of the clock divider (3
ffs for 8 times faster output). So you can statically analyze your
design, with a static timing analyzer or manually and insert
appropriate delay gates to fulfill your setup/hold time requirements so
that no metastability occurs at all.

Hubble.


Article: 90231
Subject: Re: More than one embedded system in ISE
From: Zara <yozara@terra.es>
Date: Fri, 07 Oct 2005 06:04:40 GMT
Links: << >>  << T >>  << A >>
On Thu, 06 Oct 2005 15:07:20 -0400, Francis
<NO_SPAM_stpierre_AT_grm.polymtl.ca_NO_SPAM> wrote:

>Adding a new microblaze in a EDK project is ok, I already now this but..
>For me it is easier to have two different EDK included in ISE.
>I want to instantiate multiple EDK (as component) connected to my IP 
>made in ISE. Will be easier in ISE because I have a lot of pins.
>Is it still possible?
>

If I try to add a second XPS project to an ISE project, it is not
allowed. I suppose that with some hacking it should be possible to do
that, but I think it will be really difficult to maintain and debug.

I f you use various microblazes within the same EPS project, it will
be easier to track resource usage (BRAM..) and to connect all of them
through the same opb_mdm

Article: 90232
Subject: Re: Virtex4 shift register layout: Horizontal or vertical?
From: "Antti Lukats" <antti@openchip.org>
Date: Fri, 7 Oct 2005 08:44:49 +0200
Links: << >>  << T >>  << A >>
<jjohnson@cs.ucf.edu> schrieb im Newsbeitrag
news:1128647278.987068.51970@o13g2000cwo.googlegroups.com...
>
> Summary: Should high-speed shift registers (purely DFFs) flow
> left->right, top->bottom, or does it matter?
>
> Doing a Virtex4 (LX100). I wound up with high-speed inputs (clocks and
> serial data) on the IOBs that run vertically down the center of the
> die. OK for clocks, since the DCMs and BUFGs are also in that center
> column.
>
> Regarding data: I deserialize the inputs, and pass parallel data to
> some large datapath blocks that start on the left edge of the die. I
> constrain all my deserializer logic to use sites near the center column
> to minimize clock skew. (Sorry, I can't use the on-chip deserializers;
> they max out at 10 bits, and I need 12.)
>

6 bit shift register places nicely into single CLB cluster with ALL routing
being implemente in the switchbox, eg with no local routing involved at all.
So there is no top to bottom or left to right issue at all as its so
compact. So as of shift register there is no issue.

but at 500MHz clock, sure careful design is required.

so for your deserializer

1) use idelay so you can fine adjust the routing delay/diff from iob to the
shift dff 'cluster'
1a) use DDR input flops in IOB for the first stage
2) place the parallel holding register 'around' the serializer cluster, this
could be possible with short local routing
2a) implement a 2 bit serial parallel cluster (that uses only swithcbox
routing) and place the 2 bit clusters so that they reach each by local
routing

you only need some RLOCs in your macros and all the thing is done.
sounds like fun thing todo - I was amazed myself when I measured actual real
clock speeds of 970MHz in slowest speed grade V4 :)

Antti

























Article: 90233
Subject: Re: Question about metastability that's been on my mind for a while
From: Klaus Falser <kfalser@durst.it>
Date: Fri, 7 Oct 2005 08:45:44 +0200
Links: << >>  << T >>  << A >>
In article <newscache$tz0zni$bj6$1@lbox.itee.uq.edu.au>, 
mchan@itee.uq.edu.au says...
> I learnt at uni that two flip-flops is generally sufficient for 
> synchronising an asynchronous signal.  But what if the phase of the sampled 
> signal isn't uniformly random?  In particular, how would I deal with 
> synchronising two different clock domains where one clock is the reference 
> of a PLL, and the second clock is the output of that PLL, say 8 times 
> faster.  Also, the frequency of the input clock, and consequently the output 
> clock is FM modulated - although the frequency variation is slight.  The 
> frequency of the fast clock is on the order of GHz.  I figure that since the 
> two clocks are related, the chance of metastability is drastically higher.
> 
> How should one deal with such a scenario?
> 
> Thanks in advance,
> 
> Michael. 
> 
> 
> 
If the two clock domains are related and the two rising edges matches,  
you could clock one domain with a rising clock and the next with a 
falling clock. This way (depends on the frequency and the margin on the 
setup/hold times) you are always sampling when output of the first 
domain is stable and you can avoid synchronisation at all.

Regards 
Klaus

Article: 90234
Subject: Re: Actel Libero upgrade - problem with clk pin - Synplify
From: "Neill A" <neilla@ewst.co.uk>
Date: 7 Oct 2005 00:04:02 -0700
Links: << >>  << T >>  << A >>
OK, I just assumed that you were using a dcf file since that is what
the error message reffered to.  You could try reimporting your source
files into designer, but ensure the little tick box for keep exisiting
timing constraints is unticked.  Then if it compiles you can then set
up your timing constraints again.


Article: 90235
Subject: Re: FPGA behaviour when its used resource is >90% ?
From: ALuPin@web.de
Date: 7 Oct 2005 00:05:18 -0700
Links: << >>  << T >>  << A >>

> I am reaching upper limit of FPGA resource but still I can fit in all
> the logic cores.

Is the timing analysis still good ?

Rgds
Andr=E9


Article: 90236
Subject: Re: DDR constraints in Xilinx/UCF, Synplicity?
From: "Antti Lukats" <antti@openchip.org>
Date: Fri, 7 Oct 2005 09:07:52 +0200
Links: << >>  << T >>  << A >>
<jjohnson@cs.ucf.edu> schrieb im Newsbeitrag
news:1128646162.783940.272640@o13g2000cwo.googlegroups.com...
>
> HELP!
> How to constrain source-synchronous DDR inputs in Xilinx?
> In Synplify Pro?

just an advice (maybe you did it already) if you are planning to use DCM at
500MHz you need speed grade -12 check out that the LX100 is available in
that speedgrade in the timeframe you need it. Maybe it is, just sounds like
a good idea to check out now (to avoid surprises). I would be very careful
with any design that depends on the DCM output of 500MHz. 2cent advice.

well you probably could get away without using DCM also (and using slower
speed grade)

and as of contrains if you make proper (R)LOCed macros then you can keep
most of the design uncontstrained as the timing is guaranteed by the LOC of
the primitives. sure if the router makes hassle you may even need to end up
using dedicated rotuing constraints, but again thats not timing constraints

Antti



Article: 90237
Subject: Re: Question about metastability that's been on my mind for a while
From: "Michael Chan" <mchan@itee.uq.edu.au>
Date: Fri, 7 Oct 2005 17:12:00 +1000
Links: << >>  << T >>  << A >>
"Hubble" <reiner@huober.de> wrote in message 
news:1128665043.630658.249210@g47g2000cwa.googlegroups.com...
> This is a synchronoeus design. Note that the phase of input clock and
> feedback of a PLL is approximately zero and the uncertainty can be well
> defined, as well as the setup and hold times of the clock divider (3
> ffs for 8 times faster output). So you can statically analyze your
> design, with a static timing analyzer or manually and insert
> appropriate delay gates to fulfill your setup/hold time requirements so
> that no metastability occurs at all.
>
> Hubble.
>

Actually, ignore the 8 times multiplication, as that makes the problem 
trivial to solve.  In the problem I was trying to solve, I couldn't treat 
the two clock domains as synchronised, since one clock sometimes led, and 
sometimes lagged the other clock.  This resulted in data changing just as it 
was being sampled.  I was told to add some flipflops to fix up the problems, 
but it didn't seem like a very good solution.  As it was, I sampled data on 
the falling edge of the clock, but I wonder what I could have done if there 
wasn't sufficient timing margin for that to work (taking into account the 
jitter between the two domains).  Actually, thinking about it now I think it 
would have been sufficient to simply sample the output of the negative edge 
triggered flip-flop with a positive edge triggered flip-flop. 



Article: 90238
Subject: Re: FPGA behaviour when its used resource is >90% ?
From: "Antti Lukats" <antti@openchip.org>
Date: Fri, 7 Oct 2005 09:13:36 +0200
Links: << >>  << T >>  << A >>
<kkumar@northernpower.com> schrieb im Newsbeitrag
news:1128646945.462597.311650@f14g2000cwb.googlegroups.com...
> Hi,
> We are using Xilinx Spartan2E in our platform and so far functioning of
> every logical cores was looking good. Today, I saw some weird behaviour
> after addng additional logic, all of sudden I was missing some signals
> coming out of FPGA and some signals looks different. This additional
> logic does not interfer with the exisitng logic cores.
> I am reaching upper limit of FPGA resource but still I can fit in all
> the logic cores.
>
> So my question is, by utilizing the FPGA resource around 90%, does the
> behaviour of FPGA logics becomes unpredictible ?
>
> Any pointers or suggestions in this regard is much appreciated.
>
> Thank you in advance.
>
> -Kiran
>

the logic utilization numer is somewhat magic/bogus, but reaching the limit
makes the probability of unexplained behaviour larger, yes.

at the very basics a rock solid design should work. should work no matter
what, if it runs the toolflow it should work (no matter the utilization).
but its hardly ever so in real life. so adding unrelated logic (even when
total utilization is not nearly at the max) may introduce unexpected
failures.

there is no direct advice for you, lots of troubleshooting may be required.
the extra logic may iterfere to the way the rest of the logic can be placed
what makes the timing different and that can cause problems that did happen
before

Antti








Article: 90239
Subject: Re: .lib file for Xilinx FPGAs?
From: "Simon Heinzle" <sheinzle@student.ethz.ch>
Date: Fri, 7 Oct 2005 09:19:13 +0200
Links: << >>  << T >>  << A >>
Once Again: Thanks a lot guys!

Best regards,
Simon


"Simon Heinzle" <sheinzle@student.ethz.ch> wrote in message 
news:4344d45b@news1.ethz.ch...
> Hi everybody,
>
> With ASICs, there are standard cell libraries in .lib file format for the 
> target process -- is there a comparable .lib file for the Xilinx FPGAs?
>
> Best regards,
> Simon
> 



Article: 90240
Subject: Re: FPGA behaviour when its used resource is >90% ?
From: Zara <yozara@terra.es>
Date: Fri, 07 Oct 2005 07:32:09 GMT
Links: << >>  << T >>  << A >>
On 6 Oct 2005 18:02:25 -0700, kkumar@northernpower.com wrote:

>Hi,
>We are using Xilinx Spartan2E in our platform and so far functioning of
>every logical cores was looking good. Today, I saw some weird behaviour
>after addng additional logic, all of sudden I was missing some signals
>coming out of FPGA and some signals looks different. This additional
>logic does not interfer with the exisitng logic cores.
>I am reaching upper limit of FPGA resource but still I can fit in all
>the logic cores.
>
>So my question is, by utilizing the FPGA resource around 90%, does the
>behaviour of FPGA logics becomes unpredictible ?
>
>Any pointers or suggestions in this regard is much appreciated.
>
>Thank you in advance.
>
>-Kiran

Look at possible timing constraints violation. If neccessary, make
constraints stricter, by increasing the frequency and/or adding jitter
to the clocks


Article: 90241
Subject: Re: FSM with High load on clock signal
From: "Marco" <marcotoschi@nospam.it>
Date: Fri, 7 Oct 2005 09:41:15 +0200
Links: << >>  << T >>  << A >>

"Symon" <symon_brewer@hotmail.com> wrote in message 
news:434584b2$0$49022$14726298@news.sunsite.dk...
> "Marco" <marcotoschi@nospam.it> wrote in message 
> news:di2she$iji$1@news.ngi.it...
>> Hallo,
>> I have made a clock divider (1 MHz) with a counter connected to system 
>> clock (50 MHz).
>> This counter has a threshold which goes high on the last count.
>> This pulse drives some blocks as a clock enable (the clock input of these 
>> blocks is connected to system clock).
>> Every block is falling edge sensitive.
>>
> Why are you using the falling edge? Your 50MHz clock should come from a 
> BUFG and only use one edge (either rising or falling) in all the places it 
> goes. So, the counter and the 'blocks' you mention should all use the same 
> edge. Is that what you are doing?

There are an ADC and a DAC connected to FPGA pins, and they are falling edge 
sensitive.


>>
>> The pulse drives also a FSM where every state send high/low 4 signals.
>>
>> In this way there is no gating clock, but now pulse signal has high load.
>>
>> I can't use DCM because of the too low out frequency.
>>
>> What could I do to reduce load and skew?
>>
> The enable signal will be automatically buffered by the Xilinx routing. As 
> long as you've told the timing analyser that your main clock is going at 
> 50MHz, you don't have to worry about 'load' (or fanout as it's often 
> called) or skew. To send a 1MHz signal out of the FPGA, as you mentioned 
> in your other thread, you might like to consider also generating a 2MHz 
> enable from your 50 MHz counter, as well as the 1MHz one, to toggle the 
> IOB flip-flop.


This morning I have verified that XST generates a fanout at least of 3 on 
the signal used as clock for FSM indipendentely from the number of signal to 
drive into FSM. So if the clock is the system clock buffered automatically 
by XST, the load and skew aren't a trouble and they aren't "visible".

Even if I reproduce the clock signal and the state machines, every clock 
signal has a load of 3. It takes a skew of 1ns and a delay of 2ns.

In my case I can't use the system clock. At this point I think the only way 
is to use a BUFG.

So I have placed a BUFG and the trouble seems to be solved, but the DAC 
reacts in different ways depending on the level of optimizazion of mapping 
and post-placing.

I send a clock signal of 1 MHz, a Chip Select, and 16 serial data bits.

I have thought that depending on the level of optimization, the delay 
between clock and chip select could be different, so the DAC don't go into 
power on state.

In what way may I solve this trouble?

Many Thanks
Marco






Article: 90242
Subject: Re: Avoiding meta stability?
From: "Bill" <billbill@telia.se>
Date: Fri, 7 Oct 2005 10:36:12 +0200
Links: << >>  << T >>  << A >>

"Bob Perlman" <bobsrefusebin@hotmail.com> wrote in message
news:hidak117pd0s9icqp9ohofgjgcs8vq1ks4@4ax.com...

> The problem with your approach is that the second flip-flop, the one
> clocked with the 24 MHz falling edge, has less than half as much time
> to settle (thanks to the AND gate delay) before being applied to the
> circuit.  If the first flip-flop says HIGH and the second flip-flop
> says "I dunno," what happens to your circuit?

(first a modification) lets change this:

>  process(clk_24M)
>  begin
>    if rising_edge(clk_24M) then
>      if a = b then
>        q <= a;
>      end if;
>    end if;
>  end process;

to this instead:

>  process(clk_24M)
>  begin
>    if rising_edge(clk_24M) then
>      q <= a or b;
>    end if;
>  end process;

1.)    At least one of the flip-flops are always correct.

2.)    If one of the flip-flop outputs are metastable then the OR-gate says
1 or 0 (if one of it's inputs is metastabel).



And remember this can only happen around the rising or falling edge of the
1.8 MHz signal, so by doing this OR-thing we can get the correct bit-value
the first sample time or at the following sample time.



For my design it doesn't matter if I get the right bit-value shifted 1 more
clk in the 24 MHz clock domain.



I presume that the OR-gate always deliver a valid 0 (Vout<= VOL) or 1
(Vout=>VOH) when one of it's inputs is a valid 0 or 1 and the other is
undefined (between VIH and VIL). But i'm not sure of this behavior maybe
some one can reply on this?




Article: 90243
Subject: Re: Avoiding meta stability?
From: "Bill" <billbill@telia.se>
Date: Fri, 7 Oct 2005 10:47:30 +0200
Links: << >>  << T >>  << A >>
"Bill" <billbill@telia.se> wrote in message
news:4346337d$0$49011$14726298@news.sunsite.dk...

> I presume that the OR-gate always deliver a valid 0 (Vout<= VOL) or 1
> (Vout=>VOH) when one of it's inputs is a valid 0 or 1 and the other is
> undefined (between VIH and VIL). But i'm not sure of this behavior maybe
> some one can reply on this?

What I mean is that I want to be sure that the OR-gate in the FPGA has the
following truth table:



A B | Q

----+---

0 X | 0 or 1

X 0 | 0 or 1

X 1 | 1

1 X | 1

1 1 | 1



(Where X means metastable, logical 0 or a logical 1)



Then my circuit will work.



Article: 90244
Subject: Re: FSM with High load on clock signal
From: "Symon" <symon_brewer@hotmail.com>
Date: Fri, 7 Oct 2005 01:56:37 -0700
Links: << >>  << T >>  << A >>
"Marco" <marcotoschi@nospam.it> wrote in message 
news:di58qu$eof$1@news.ngi.it...
>
> "Symon" <symon_brewer@hotmail.com> wrote in message 
> news:434584b2$0$49022$14726298@news.sunsite.dk...
>> Why are you using the falling edge? Your 50MHz clock should come from a 
>> BUFG and only use one edge (either rising or falling) in all the places 
>> it goes. So, the counter and the 'blocks' you mention should all use the 
>> same edge. Is that what you are doing?
>
> There are an ADC and a DAC connected to FPGA pins, and they are falling 
> edge sensitive.
>
OK Marco, let me see if I understand your design. You have an FPGA. It has a 
50 MHz clock available. Let's call this the 'masterclock'. Attached to the 
FPGA are a DAC and a ADC. These parts are designed to be clocked at 1MHz, 
let's call these the DAC_clock and the ADC_clock. Here's some VHDL.


--snippet to generate clock enables
if res_n = '0' then
  --add async resets here
elsif rising_edge(masterclock) then
  count <= (count + 1) mod 50;  --may not synthesise, but you get the idea
  if (count = 25) then
    DAC_clock <= '0';
    ADC_clock <= '0';
  elsif (count = 0) then
    DAC_clock <= '1';
    ADC_clock <= '1';
  end if;
  if (count = 49) then
    enable_1MHz <= '1';  --this is our 1MHz enable signal
  else
    enable_1MHz <= '0';
  end if;
end if;


--snippet to demonstrate clock enable

if res_n = '0' then
  --add async resets here
elsif rising_edge(masterclock) then
  if (enable_1MHz = '1') then  --Here's the clock enable
    --add your 1 MHz state machine stuff here e.g.
    DAC_data <= new_DAC_data_value;
    ADC_data <= data_from_ADC_device;
  end if;
end if;

So, you see that every FF is clocked by the rising edge of the 50MHz clock. 
Some are only enabled one every microsecond, but their clock input is still 
our masterclock. This masterclock should come from a BUFG. No nasty 'falling 
edges' needed. Draw a timing diagram; it'll help you see what's happening!


>
>>>
>>> The pulse drives also a FSM where every state send high/low 4 signals.
>>>
>>> In this way there is no gating clock, but now pulse signal has high 
>>> load.
>>>
>>> I can't use DCM because of the too low out frequency.
>>>
>>> What could I do to reduce load and skew?
>>>
>> The enable signal will be automatically buffered by the Xilinx routing. 
>> As long as you've told the timing analyser that your main clock is going 
>> at 50MHz, you don't have to worry about 'load' (or fanout as it's often 
>> called) or skew. To send a 1MHz signal out of the FPGA, as you mentioned 
>> in your other thread, you might like to consider also generating a 2MHz 
>> enable from your 50 MHz counter, as well as the 1MHz one, to toggle the 
>> IOB flip-flop.
>
>
> This morning I have verified that XST generates a fanout at least of 3 on 
> the signal used as clock for FSM indipendentely from the number of signal 
> to drive into FSM. So if the clock is the system clock buffered 
> automatically by XST, the load and skew aren't a trouble and they aren't 
> "visible".
>
> Even if I reproduce the clock signal and the state machines, every clock 
> signal has a load of 3. It takes a skew of 1ns and a delay of 2ns.
>
> In my case I can't use the system clock. At this point I think the only 
> way is to use a BUFG.
>
> So I have placed a BUFG and the trouble seems to be solved, but the DAC 
> reacts in different ways depending on the level of optimizazion of mapping 
> and post-placing.
>
> I send a clock signal of 1 MHz, a Chip Select, and 16 serial data bits.
>
> I have thought that depending on the level of optimization, the delay 
> between clock and chip select could be different, so the DAC don't go into 
> power on state.
>
> In what way may I solve this trouble?
>
> Many Thanks
> Marco
>
Sorry Marco, this last part of your post is a mystery to me. You only need 
one 'clock' signal, the masterclock. It should have a fanout of more than 3! 
The 1MHz enable signal should go to all the FFs in your FSM, I think this 
signal should have a lot more than 3 loads as well. A delay of 2ns and a 
skew of 1ns is fine for this clock. Do you want to post some code?
Anyway, if this makes any sense to you, post back, and we can talk about the 
timing constraints you need to set!
HTH, Syms. 



Article: 90245
Subject: Re: Xilinx IMPACT Problem... detects 101 unknown devices
From: "Simon Peacock" <simon$actrix.co.nz>
Date: Fri, 7 Oct 2005 22:23:14 +1300
Links: << >>  << T >>  << A >>
some parallel cable III have the wrong logic to use with low voltage
parts... mine wont work below 3.3V.. what is your Jtag?


Simon


"Klaus Bickertt" <kfb@mpe.mpg.de> wrote in message
news:ee90993.5@webx.sUN8CHnE...
> My ISE7.1 says parallel cable drivers installed, but refuses to recognize
my old cable III and tries using anon-existent multilink. Seems to be
reading Prom & Virtex Id's, but can't start them after program. How do I get
IMPACT to accept a Cable III ?



Article: 90246
Subject: Re: FSM with High load on clock signal
From: "Marco" <marcotoschi@nospam.it>
Date: Fri, 7 Oct 2005 12:06:35 +0200
Links: << >>  << T >>  << A >>
> So, you see that every FF is clocked by the rising edge of the 50MHz 
> clock. Some are only enabled one every microsecond, but their clock input 
> is still our masterclock. This masterclock should come from a BUFG. No 
> nasty 'falling edges' needed. Draw a timing diagram; it'll help you see 
> what's happening!
>

My code is similar to that you posted, the idea is the same.
The only difference is I have used core generator to create the components.
I will try drawing a timing diagram.


>
>>
>>>>
>>>> The pulse drives also a FSM where every state send high/low 4 signals.
>>>>
>>>> In this way there is no gating clock, but now pulse signal has high 
>>>> load.
>>>>
>>>> I can't use DCM because of the too low out frequency.
>>>>
>>>> What could I do to reduce load and skew?
>>>>
>>> The enable signal will be automatically buffered by the Xilinx routing. 
>>> As long as you've told the timing analyser that your main clock is going 
>>> at 50MHz, you don't have to worry about 'load' (or fanout as it's often 
>>> called) or skew. To send a 1MHz signal out of the FPGA, as you mentioned 
>>> in your other thread, you might like to consider also generating a 2MHz 
>>> enable from your 50 MHz counter, as well as the 1MHz one, to toggle the 
>>> IOB flip-flop.
>>
>>
>> This morning I have verified that XST generates a fanout at least of 3 on 
>> the signal used as clock for FSM indipendentely from the number of signal 
>> to drive into FSM. So if the clock is the system clock buffered 
>> automatically by XST, the load and skew aren't a trouble and they aren't 
>> "visible".
>>
>> Even if I reproduce the clock signal and the state machines, every clock 
>> signal has a load of 3. It takes a skew of 1ns and a delay of 2ns.
>>
>> In my case I can't use the system clock. At this point I think the only 
>> way is to use a BUFG.
>>
>> So I have placed a BUFG and the trouble seems to be solved, but the DAC 
>> reacts in different ways depending on the level of optimizazion of 
>> mapping and post-placing.
>>
>> I send a clock signal of 1 MHz, a Chip Select, and 16 serial data bits.
>>
>> I have thought that depending on the level of optimization, the delay 
>> between clock and chip select could be different, so the DAC don't go 
>> into power on state.
>>
>> In what way may I solve this trouble?
>>
>> Many Thanks
>> Marco
>>
> Sorry Marco, this last part of your post is a mystery to me. You only need 
> one 'clock' signal, the masterclock. It should have a fanout of more than 
> 3! The 1MHz enable signal should go to all the FFs in your FSM, I think 
> this signal should have a lot more than 3 loads as well. A delay of 2ns 
> and a skew of 1ns is fine for this clock. Do you want to post some code?
> Anyway, if this makes any sense to you, post back, and we can talk about 
> the timing constraints you need to set!
> HTH, Syms.


Masterclock has a high fanout, about 100.
I have replicated 2 times the clock pulse at 1MHz and the state machines to 
verify if it could low the fanout.
I have obtained that every replicated clock (the pulse at 1 MHz) used to 
drive a state machine has a load equal to 3.

I have tried now avoiding replication hardware and BUFG connected to clock 
pulse.
In this way clock pulse at 1MHz hs a load of 7. There are skew 1ns and delay 
2,5ns.
I have made lots of experiments because I thought the main trouble could 
come from that.

If I want update every channel, I should send 4 words of 16 bits and 4 
ChipSelect.
(I have made lots of post-place simulations and everything is ok).

I have sent them and not every channel is updated. Which channel depends on 
level of optimization.

If I try to update the out of only one channel (sending 500-1000 16-bit 
datas sequentially to DAC) the system works well.

It seems doesn't accept a sequential update of different channels.
I'm sure to wait the time needed to update a single channel. I have verified 
it.

Could be a trouble depending on DAC and not from my logic?

In example the control unit which read what channel to update and configure 
the nultiplexer?


Many and many thanks for your precious answer
Marco 



Article: 90247
Subject: Re: Avoiding meta stability?
From: "Symon" <symon_brewer@hotmail.com>
Date: Fri, 7 Oct 2005 03:16:26 -0700
Links: << >>  << T >>  << A >>
Hi Bill,
Sorry, but your circuit is not good. In fact it wastes some FFs and logic to 
make the metastability performance worse by many orders of magnitude. The 
time from b to q in your circuit is half a 24MHz clock period. The OR gate 
eats up some of this time. This is much better:-

  process(clk_24M)
  begin
    if rising_edge(clk_24M) then
      a <= d;
      q <= a;
    end if;
  end process;
The signal 'a' has a whole 24 MHz period to settle. In your UCF file, do 
this:-

NET "a" MAXDELAY = 1ns;

This is just to make sure the router doesn't screw up.

Have you taken Philip's advice and read
http://www.fpga-faq.org/FAQ_Pages/0017_Tell_me_about_metastables.htm ?

Also, re-read Bob's post. He's explained very well why your circuit isn't 
good, and your latest modification doesn't address the concerns he 
expresses.

HTH, Syms.



Article: 90248
Subject: Re: FSM with High load on clock signal
From: "Symon" <symon_brewer@hotmail.com>
Date: Fri, 7 Oct 2005 03:22:24 -0700
Links: << >>  << T >>  << A >>
"Marco" <marcotoschi@nospam.it> wrote in message 
news:di5hbd$i0i$1@news.ngi.it...
>
>
> Masterclock has a high fanout, about 100.
> I have replicated 2 times the clock pulse at 1MHz and the state machines 
> to verify if it could low the fanout.

Why do you want to lower the fanout? Have you connected the clock pulse at 
1MHz to the clock input of any FFs? If you have, this is your mistake. It 
should only connect to the CE pins. The clock pins of *ALL* your FFs should 
connect to the 50MHz masterclock.

Cheers, Syms. 



Article: 90249
Subject: Re: Avoiding meta stability?
From: "rhnlogic@yahoo.com" <rhnlogic@yahoo.com>
Date: 7 Oct 2005 03:28:58 -0700
Links: << >>  << T >>  << A >>
Bill wrote:
> 2.)    If one of the flip-flop outputs are metastable then the OR-gate says
> 1 or 0 (if one of it's inputs is metastabel).

This problem is that an OR gate which could do this absolutely reliably
would require either infinite gain or infinite propogation delay.
Using real components without infinite gain, the OR gate will have an
small analog range of input voltages where the gain won't be enough to
drive the output load to either a "1" or "0" in only a few nanoseconds.
In fact, since an OR gate does not have internal positive feedback as
does the preceeding flip-flop, it may actually slow down the resolution
of any metastable transition states.

It's usually better to omit the OR gate and thus provide more settling
time into the next register.

I wouldn't doubt that if you could build a fast infinite gain OR gate,
you could also use it, not only to design synchronizers, but to design
perpetual motion machines.


IMHO. YMMV.
-- 
rhn A.T nicholson d.O.t C-o-M




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