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 99625

Article: 99625
Subject: Re: Variable Bus Input/Output Fifo
From: Allan Herriman <allanherriman@hotmail.com>
Date: Tue, 28 Mar 2006 03:27:17 +1000
Links: << >>  << T >>  << A >>
On 27 Mar 2006 08:24:57 -0800, "Dominic" <dominicwalkes@yahoo.com>
wrote:

>Has anyone ever written a variable width fifo?  I would like to have a
>fifo that accepts a 32-bit input and reads out a 16 bit output.

Do it all the time.  This is particularly easy with Xilinx block rams
as they can have different widths on each port.

As always, you have to keep your wits about you when designing the
pointers & flag logic.

Regards,
Allan

Article: 99626
Subject: Re: Spartan 3e Starter Kit finally available? No, not really.
From: "John Adair" <removethisthenleavejea@replacewithcompanyname.co.uk>
Date: Mon, 27 Mar 2006 18:38:38 +0100
Links: << >>  << T >>  << A >>
Tommy

At the moment it is penciled in for the 500E part as it is most available 
and for the target market that we going for but it might be made available 
in a footprint that could accomodate the 1600E. However we are still playing 
with some concepts on this board that even for us are different. We do have 
some targets in mind but even for us it is a bit early to talk about these 
publically. Multiple devices are also in the envelope of what we are 
considering but that might be Tarfessock2. It's on the roadmap too but I 
have not put a date on it yet before anyone asks.

As always if you have a serious commercial application it is worth talking 
to us offline as to what we can do. We do a lot spin-off designs of the 
boards from our development board products ranging from simple connector 
changes to radical changes that are barely recognisable as the origonal 
board. Sometimes it goes the other way like MINI-CAN and it spins out from a 
customer requirement into a development board.

Anyway enough my commercial spin, Philip will be telling me off in his best 
Aussie voice,  so offline if you want more data. Any of the Enterpoint's 
public email address can be used to contact me if marked for my attention.

John Adair
Enterpoint Ltd. - Home of UAP. Enterpoint's University Access Program.
http://www.enterpoint.co.uk


"Tommy Thorn" <foobar@nowhere.void> wrote in message 
news:44281847$0$58042$742ec2ed@news.sonic.net...
> John Adair wrote:
>> Well we might beat them out with Tarfessock1 after all then.
>>
>> John Adair
>> Enterpoint Ltd. - Soon to be Home of Tarfessock1. The PCMCIA Spartan-3E 
>> Development Board.
>
> Can you share a bit of the specs?  If it has an XC3S1600E and megabytes of 
> external storage then I'm interested.
>
> Tommy 



Article: 99627
Subject: Re: OpenSPARC released
From: "Shyam" <shyam.thoziyoor@gmail.com>
Date: 27 Mar 2006 09:52:57 -0800
Links: << >>  << T >>  << A >>
Allan Herriman wrote:

> It appears openSparc Verilog is written to target an ASIC, not an
> FPGA.  Whilst it might be possible to get it to compile and even fit
> into an FPGA, the performance would probably not be stunning.
>
> In that sense, a different soft-cpu designed to be used on an FPGA
> would probably be better.

---It's interesting to see "SoftCores for Multicore FPGA
implementations" listed as an example research area that can be
explored with OpenSPARC technology, at
http://opensparc.sunsource.net/nonav/research.html. Not sure what
area/delay/power one would end up with if this core is implemented on
an FPGA as is. Perhaps certain enhancements/simplifications may be
carried out to the present core in order to make it useful within an
FPGA. Since they have released a variety of hardware/software tools
(and their sources) I guess it becomes possible to study the
performance impact of any architectural modifications.

Has anybody already started working on implementing this on an FPGA? I
would be very interested to know the results.I want to try to do this
but am presently hampered because I don't have Synopsys DC (which is
the recommended synthesis environment) appropriately set up.

Thanks,
Shyam


Article: 99628
Subject: Re: ERROR:NgdBuild:604
From: "Mich" <michiel.vanderlinden@gmail.com>
Date: 27 Mar 2006 10:17:01 -0800
Links: << >>  << T >>  << A >>
Now it works fine
Thanks for the help

Greets
Michiel


Article: 99629
Subject: Re: Altera web site inaccessible
From: Jan Panteltje <pNaonStpealmtje@yahoo.com>
Date: Mon, 27 Mar 2006 19:01:20 GMT
Links: << >>  << T >>  << A >>
 On a sunny day (Mon, 27 Mar 2006 22:04:29 +0200) it happened Ben Twijnstra
<btwijnstra@gmail.com> wrote in
<3bb06$442826db$d52e23a9$24513@news.chello.nl>:

>Jan Panteltje wrote:
>
>> Altera (HELLO!!!!) still does not work from the Netherlands today
>> (monday), it did not work sunday either.
>> Neither does the IP 66.35.227.20 directly
>
>Strange. I in The Netherlands too and I haven had a single problem. What
>provider are you on? My trace goes from Chello to Level3 to savvis.net.
>Could be that your provider goes through a different route.
>
>Best regards,
>
>
>Ben
It is working now, from 1600h or so?
Not a provider, I have a direct line (direct-adsl KPN), webserver, ftp server, mail server,
all here too.
I *am* the ISP.
KPN has wxs.nl doing the work:

traceroute to altera.com (66.35.227.20), 30 hops max, 40 byte packets
 1  10.0.0.138 (10.0.0.138)  0.493 ms  0.523 ms  0.384 ms
 2  195.190.249.104 (195.190.249.104)  6.125 ms  6.094 ms  6.244 ms
 3  iawxsrt-dc2-bb21b.wxs.nl (213.75.1.213)  9.540 ms  9.362 ms  9.636 ms
 4  acr2-so-6-0-0.Amsterdamamx.savvis.net (208.174.49.177)  9.431 ms  10.412 ms  9.483 ms
 5  acr1-ae0.Amsterdamamx.savvis.net (208.174.48.89)  10.888 ms  10.869 ms  10.649 ms
 6  bcs1-so-1-2-0.Londonlnx.savvis.net (204.70.193.146)  18.299 ms  18.848 ms  18.332 ms
 7  bcs2-so-0-0-0.NewYork.savvis.net (204.70.192.121)  96.990 ms  96.735 ms  96.956 ms
 8  bcs2-so-4-0-0.Washington.savvis.net (204.70.192.1)  93.815 ms  93.142 ms  92.341 ms
 9  bcs1-so-7-0-0.Washington.savvis.net (204.70.192.33)  96.560 ms  96.722 ms  97.368 ms
10  dcr1-so-3-0-0.Atlanta.savvis.net (204.70.192.53)  106.457 ms  107.380 ms  107.569 ms
11  dcr1-so-3-2-0.dallas.savvis.net (204.70.192.82)  130.313 ms  132.094 ms  131.095 ms
12  dcr2-so-2-0-0.LosAngeles.savvis.net (204.70.192.86)  158.809 ms  185.870 ms  158.541 ms
13  dcr1-as0-0.LosAngeles.savvis.net (204.70.192.117)  161.903 ms  162.221 ms  162.413 ms
14  dcr2-so-2-0-0.SanFranciscosfo.savvis.net (204.70.192.90)  166.046 ms  166.140 ms  166.398 ms
15  bhr1-pos-0-0.SantaClarasc8.savvis.net (208.172.156.198)  168.992 ms  168.039 ms  168.155 ms
16  csr11-ve240.santaclarasc8.savvis.net (66.35.194.82)  442.153 ms  168.002 ms  168.160 ms
17  66.35.226.219 (66.35.226.219)  170.399 ms  172.133 ms  169.886 ms

etc...

Groeten
Jan

Article: 99630
Subject: OPB IPIF Master Support
From: "Guru" <ales.gorkic@email.si>
Date: 27 Mar 2006 12:01:11 -0800
Links: << >>  << T >>  << A >>
Hi everyone,

I am building a OPB peripheral. I used Create - Import Peripheral
wizard from EDK 7.1 (using opb_ipif_v2_00_h). I selected Master
Support, no DMA, no FIFO, 8x32 bit registers and 4 interrupts.
Most of the things works fine, just Master Support gives me a lot of
trouble. I have selected only one local slave register for data (on
which Asyncronous FIFO will be connected) - as a source address for
Master data transfer. The destination address is DDR address. I want to
use burst transfer with incrementing ONLY destination address, while
source address must remain constant (similar to DMA's SINC and DINC
flags).  Every time I use burst transfer BOTH addresses are
incremented, while single beat (4 bytes) transfer works OK, but with
much lower transfer speed.
I modified the wizard generated "Master model functionality" in
user_logic.vhd template to correct this issue, but unsucessfull. I
commented the lines where addresses are incremented, but the IPIF seems
to overrides my settings - addresses are incremented anyway.

Does anyone knows the solution for my problem?

Thnx, Guru


Article: 99631
Subject: Re: Altera web site inaccessible
From: Ben Twijnstra <btwijnstra@gmail.com>
Date: Mon, 27 Mar 2006 22:04:29 +0200
Links: << >>  << T >>  << A >>
Jan Panteltje wrote:

> Altera (HELLO!!!!) still does not work from the Netherlands today
> (monday), it did not work sunday either.
> Neither does the IP 66.35.227.20 directly

Strange. I in The Netherlands too and I haven had a single problem. What
provider are you on? My trace goes from Chello to Level3 to savvis.net.
Could be that your provider goes through a different route.

Best regards,


Ben




Article: 99632
Subject: Re: Altera web site inaccessible
From: n06W13+mgk25@cl.cam.ac.uk (Markus Kuhn)
Date: 27 Mar 2006 20:12:24 GMT
Links: << >>  << T >>  << A >>
> I don't think it's a block. It sounds like a messed up BGP announcement.

No problem from the UK academic network either. Sounds indeed more
like a problem with the Internet, rather than with Altera's web server.

Article: 99633
Subject: deglitching a clock
From: John Larkin <jjlarkin@highNOTlandTHIStechnologyPART.com>
Date: Mon, 27 Mar 2006 12:26:16 -0800
Links: << >>  << T >>  << A >>
We have a perfect-storm clock problem. A stock 16 MHz crystal
oscillator drives a CPU and two Spartan3 FPGAs. The chips are arranged
linearly in that order (xo, cpu, Fpga1, Fpga2), spaced about 1.5"
apart. The clock trace is 8 mils wide, mostly on layer 6 of the board,
the bottom layer. We did put footprints for a series RC at the end (at
Fpga2) as terminators, just in case.

Now it gets nasty: for other reasons, the ground plane was moved to
layer 5, so we have about 7 mils of dielectric under the clock
microstrip, which calcs to roughly 60 ohms. Add the chips, a couple of
tiny stubs, and a couple of vias, and we're at 50 ohms, or likely
less.

And the crystal oscillator turns out to be both fast and weak. On its
rise, it puts a step into the line of about 1.2 volts in well under 1
ns, and doesn't drive to the Vcc rail until many ns later. At Fpga1,
the clock has a nasty flat spot on its rising edge, just about halfway
up. And it screws up, of course. The last FPGA, at the termination, is
fine, and the CPU is ancient 99-micron technology or something and
couldn't care less.

Adding termination at Fpga2 helps a little, but Fpga1 still glitches
now and then. If it's not truly double-clocking then the noise margin
must be zilch during the plateau, and the termination can't help that.

One fix is to replace the xo with something slower, or kluge a series
inductor, 150 nH works, just at the xo output pin, to slow the rise.
Unappealing, as some boards are in the field, tested fine but we're
concerned they may be marginal.

So we want to deglitch the clock edges *in* the FPGAs, so we can just
send the customers an upgrade rom chip, and not have to kluge any
boards.

Some ideas:

1. Use the DCM to multiply the clock by, say, 8. Run the 16 MHz clock
as data through a dual-rank d-flop resynchronizer, clocked at 128 MHz
maybe, and use the second flop's output as the new clock source. A
Xilinx fae claims this won't work. As far as we can interpret his
English, the DCM is not a true PLL (ok, then what is it?) and will
propagate the glitches, too. He claims there *is* no solution inside
the chip.

2. Run the clock in as a regular logic pin. That drives a delay chain,
a string of buffers, maybe 4 or 5 ns worth; call the input and output
of the string A and B. Next, set up an RS flipflop; set it if A and B
are both high, and clear it if both are low. Drive the new clock net
from that flop. Maybe include a midpoint tap or two in the logic, just
for fun.

3. Program the clock logic threshold to be lower. It's not clear to us
if this is possible without changing Vccio on the FPGAs. Marginal at
best.


Any other thoughts/ideas? Has anybody else fixed clock glitches inside
an FPGA?

John




Article: 99634
Subject: Re: C-based FPGA programming/mixed languages
From: manu <manuel.pezzin@free.fr>
Date: Mon, 27 Mar 2006 22:29:14 +0200
Links: << >>  << T >>  << A >>
Hello,
I'm not sure synthesis tools exist for SpecC, since it was originaly 
dedicated to system specification.
SystemC can be a good choice if you intend to write new modules. It is 
an IEEE standard and is widely supported in HW simulation tools and 
progressively by some HW synthesis tools too.
Actually, the "synthesis" tools I've tested so far (Synopsys 
-discontinued- and Prosilog compiler)  translate SystemC to 
synthesisable VHDL or Verilog. Celoxica also support it but I've not 
tested their compiler yet. Generaly, the results are very good if your 
SystemC code is written in an "hardware-oriented" style.
Concerning simulation, common commercial products (Modelsim, NC-Sim and 
probably VCS-MX too) support designs with modules written in the 3 
langages mixed toguether thanks to component wrappers.
Well, it's true that SystemC is easier to use from the syntax point of 
view when you're used to C++ langage. But you have to keep in mind that 
if you code your modules in a software-like style, you take the risk of 
obtaining inefficient and buggy hardware. Knowledge of hardware-oriented 
coding style is still required to obtain good results. In particular, 
some basic concepts must be mastered like the difference between signals 
and variables, usage of for loops, etc..
Last bu not least, you'll probably have to debug the VHDL code anyway, 
so it should be usefull to have some langage knowledge.

Best regards

Manu


The Other Guy a écrit :
> Hi,
> 
> I apologize if I sound like I don't know what I'm talking about. I am 
> primarily a C programmer, but I am involved in a hardware design project 
> at the moment, and would like some advice.
> 
> The 'proof of concept' phase of the development is being done in VHDL, 
> with a processor core implementing some of the features. As the features 
> will be incomplete when the project is handed over to me (due to time 
> constraints), I will need to make modifications to the hardware design.
> 
> My preference is to develop in C for now as the functionality required 
> is easily implemented in C, while learning VHDL is going to take quite 
> some time.
> 
> I've been investigating C-based languages, in particular SystemC, SpecC, 
> and FpgaC. SystemC is based on C++ classes, and FpgaC is still rather 
> incomplete. SpecC looks like a good option, but I can't find any details 
> about how the output can be used to programme a FPGA. Knowing not all 
> vendor software is compatible, is SpecC suitable for this purpose?
> 
> My second question surrounded the mixing of languages. Is it possible 
> for me to use SpecC or another language, while still making use of the 
> VHDL code that has already been written and tested?
> 
> Thanks,
> 
> The Other Guy

Article: 99635
Subject: Re: OpenSPARC released
From: chrisbw@gmail.com
Date: 27 Mar 2006 12:31:45 -0800
Links: << >>  << T >>  << A >>
You also aren't going to get an accurate FPGA gate count after ASIC
synthesis.
If I synthesized this OpenSparc processor with DC, targetted a certain
ASIC cell library and got a count of 1 million gates for instance, that
might be resynthesized for a Virtex2 part and be 2 million gates.
Just as an example, I have no clue about these numbers except FPGA
gates will be more.


Article: 99636
Subject: Re: deglitching a clock
From: "Antti Lukats" <antti@openchip.org>
Date: Mon, 27 Mar 2006 22:35:31 +0200
Links: << >>  << T >>  << A >>
"John Larkin" <jjlarkin@highNOTlandTHIStechnologyPART.com> schrieb im 
Newsbeitrag news:6jgg221p6iuffrbbb6dtml39fn3u9sdu4k@4ax.com...
> We have a perfect-storm clock problem. A stock 16 MHz crystal
> oscillator drives a CPU and two Spartan3 FPGAs. The chips are arranged
> linearly in that order (xo, cpu, Fpga1, Fpga2), spaced about 1.5"
> apart. The clock trace is 8 mils wide, mostly on layer 6 of the board,
> the bottom layer. We did put footprints for a series RC at the end (at
> Fpga2) as terminators, just in case.
>
> Now it gets nasty: for other reasons, the ground plane was moved to
> layer 5, so we have about 7 mils of dielectric under the clock
> microstrip, which calcs to roughly 60 ohms. Add the chips, a couple of
> tiny stubs, and a couple of vias, and we're at 50 ohms, or likely
> less.
>
> And the crystal oscillator turns out to be both fast and weak. On its
> rise, it puts a step into the line of about 1.2 volts in well under 1
> ns, and doesn't drive to the Vcc rail until many ns later. At Fpga1,
> the clock has a nasty flat spot on its rising edge, just about halfway
> up. And it screws up, of course. The last FPGA, at the termination, is
> fine, and the CPU is ancient 99-micron technology or something and
> couldn't care less.
>
> Adding termination at Fpga2 helps a little, but Fpga1 still glitches
> now and then. If it's not truly double-clocking then the noise margin
> must be zilch during the plateau, and the termination can't help that.
>
> One fix is to replace the xo with something slower, or kluge a series
> inductor, 150 nH works, just at the xo output pin, to slow the rise.
> Unappealing, as some boards are in the field, tested fine but we're
> concerned they may be marginal.
>
> So we want to deglitch the clock edges *in* the FPGAs, so we can just
> send the customers an upgrade rom chip, and not have to kluge any
> boards.
>
> Some ideas:
>
> 1. Use the DCM to multiply the clock by, say, 8. Run the 16 MHz clock
> as data through a dual-rank d-flop resynchronizer, clocked at 128 MHz
> maybe, and use the second flop's output as the new clock source. A
> Xilinx fae claims this won't work. As far as we can interpret his
> English, the DCM is not a true PLL (ok, then what is it?) and will
> propagate the glitches, too. He claims there *is* no solution inside
> the chip.
>
> 2. Run the clock in as a regular logic pin. That drives a delay chain,
> a string of buffers, maybe 4 or 5 ns worth; call the input and output
> of the string A and B. Next, set up an RS flipflop; set it if A and B
> are both high, and clear it if both are low. Drive the new clock net
> from that flop. Maybe include a midpoint tap or two in the logic, just
> for fun.
>
> 3. Program the clock logic threshold to be lower. It's not clear to us
> if this is possible without changing Vccio on the FPGAs. Marginal at
> best.
>
>
> Any other thoughts/ideas? Has anybody else fixed clock glitches inside
> an FPGA?
>
> John
>

you can run a genlocked NCO clocked from in-fabric onchip oscillator. your 
internal recovered clock will have jitter +-1 clock period of the ring 
oscillator (what could be as high as about 370MHz in S3), you might need a 
some sync logic that will ensure the 16mhz clock edges are only used to 
adjust the NCO.

using DLL/DDM possible want work as the FAE said, DCMs require decent clock 
to operate.

Antti 



Article: 99637
Subject: Re: Altera web site (in)accessible
From: Jim Granville <no.spam@designtools.co.nz>
Date: Tue, 28 Mar 2006 08:51:09 +1200
Links: << >>  << T >>  << A >>
Seems to be up again , from NZ...
> 


Article: 99638
Subject: Re: deglitching a clock
From: Jim Granville <no.spam@designtools.co.nz>
Date: Tue, 28 Mar 2006 08:55:50 +1200
Links: << >>  << T >>  << A >>
John Larkin wrote:

> Some ideas:
> 
> 1. Use the DCM to multiply the clock by, say, 8. Run the 16 MHz clock
> as data through a dual-rank d-flop resynchronizer, clocked at 128 MHz
> maybe, and use the second flop's output as the new clock source. A
> Xilinx fae claims this won't work. As far as we can interpret his
> English, the DCM is not a true PLL (ok, then what is it?) and will
> propagate the glitches, too. He claims there *is* no solution inside
> the chip.
> 
> 2. Run the clock in as a regular logic pin. That drives a delay chain,
> a string of buffers, maybe 4 or 5 ns worth; call the input and output
> of the string A and B. Next, set up an RS flipflop; set it if A and B
> are both high, and clear it if both are low. Drive the new clock net
> from that flop. Maybe include a midpoint tap or two in the logic, just
> for fun.
> 
> 3. Program the clock logic threshold to be lower. It's not clear to us
> if this is possible without changing Vccio on the FPGAs. Marginal at
> best.
> 
> 
> Any other thoughts/ideas? Has anybody else fixed clock glitches inside
> an FPGA?

Enable the schmitt option on the pin :)
Sorry...

Since the issue is 'local', I'd fix it locally, and 2. sounds 
preferable. You know the CLK freq, so can choose the delay banding.

-jg



Article: 99639
Subject: Re: OpenSPARC released
From: "Shyam" <shyam.thoziyoor@gmail.com>
Date: 27 Mar 2006 12:57:38 -0800
Links: << >>  << T >>  << A >>
Is it not possible to use DC and target an FPGA library, say Altera's
Stratix family? I was thinking that's possible.

Or does one need to use DC FPGA?

Thanks,
Shyam


Article: 99640
Subject: Re: deglitching a clock
From: John Larkin <jjlarkin@highNOTlandTHIStechnologyPART.com>
Date: Mon, 27 Mar 2006 13:04:09 -0800
Links: << >>  << T >>  << A >>
On Mon, 27 Mar 2006 22:35:31 +0200, "Antti Lukats"
<antti@openchip.org> wrote:

>"John Larkin" <jjlarkin@highNOTlandTHIStechnologyPART.com> schrieb im 
>Newsbeitrag news:6jgg221p6iuffrbbb6dtml39fn3u9sdu4k@4ax.com...
>> We have a perfect-storm clock problem. A stock 16 MHz crystal
>> oscillator drives a CPU and two Spartan3 FPGAs. The chips are arranged
>> linearly in that order (xo, cpu, Fpga1, Fpga2), spaced about 1.5"
>> apart. The clock trace is 8 mils wide, mostly on layer 6 of the board,
>> the bottom layer. We did put footprints for a series RC at the end (at
>> Fpga2) as terminators, just in case.
>>
>> Now it gets nasty: for other reasons, the ground plane was moved to
>> layer 5, so we have about 7 mils of dielectric under the clock
>> microstrip, which calcs to roughly 60 ohms. Add the chips, a couple of
>> tiny stubs, and a couple of vias, and we're at 50 ohms, or likely
>> less.
>>
>> And the crystal oscillator turns out to be both fast and weak. On its
>> rise, it puts a step into the line of about 1.2 volts in well under 1
>> ns, and doesn't drive to the Vcc rail until many ns later. At Fpga1,
>> the clock has a nasty flat spot on its rising edge, just about halfway
>> up. And it screws up, of course. The last FPGA, at the termination, is
>> fine, and the CPU is ancient 99-micron technology or something and
>> couldn't care less.
>>
>> Adding termination at Fpga2 helps a little, but Fpga1 still glitches
>> now and then. If it's not truly double-clocking then the noise margin
>> must be zilch during the plateau, and the termination can't help that.
>>
>> One fix is to replace the xo with something slower, or kluge a series
>> inductor, 150 nH works, just at the xo output pin, to slow the rise.
>> Unappealing, as some boards are in the field, tested fine but we're
>> concerned they may be marginal.
>>
>> So we want to deglitch the clock edges *in* the FPGAs, so we can just
>> send the customers an upgrade rom chip, and not have to kluge any
>> boards.
>>
>> Some ideas:
>>
>> 1. Use the DCM to multiply the clock by, say, 8. Run the 16 MHz clock
>> as data through a dual-rank d-flop resynchronizer, clocked at 128 MHz
>> maybe, and use the second flop's output as the new clock source. A
>> Xilinx fae claims this won't work. As far as we can interpret his
>> English, the DCM is not a true PLL (ok, then what is it?) and will
>> propagate the glitches, too. He claims there *is* no solution inside
>> the chip.
>>
>> 2. Run the clock in as a regular logic pin. That drives a delay chain,
>> a string of buffers, maybe 4 or 5 ns worth; call the input and output
>> of the string A and B. Next, set up an RS flipflop; set it if A and B
>> are both high, and clear it if both are low. Drive the new clock net
>> from that flop. Maybe include a midpoint tap or two in the logic, just
>> for fun.
>>
>> 3. Program the clock logic threshold to be lower. It's not clear to us
>> if this is possible without changing Vccio on the FPGAs. Marginal at
>> best.
>>
>>
>> Any other thoughts/ideas? Has anybody else fixed clock glitches inside
>> an FPGA?
>>
>> John
>>
>
>you can run a genlocked NCO clocked from in-fabric onchip oscillator. your 
>internal recovered clock will have jitter +-1 clock period of the ring 
>oscillator (what could be as high as about 370MHz in S3), you might need a 
>some sync logic that will ensure the 16mhz clock edges are only used to 
>adjust the NCO.

Nice idea. But I do need the 16 MHz to be long-term correct, although
duty cycle and edges could jitter a bit and not cause problems. So I
could build an internal ring oscillator and use that to resync the
incoming 16 MHz clock (dual-rank d-flops again) on the theory that the
input glitches will never last anything like the 300-ish MHz resync
clock period. And that's even easier.

Thanks for the input,

John



Article: 99641
Subject: Re: OpenSPARC released
From: "J o h n _ E a t o n (at) hp . com (no spaces)" <"J o h n _ E a t o n (at) hp . com (no spaces)">
Date: Mon, 27 Mar 2006 13:07:30 -0800
Links: << >>  << T >>  << A >>
Jan Decaluwe wrote:

> 
> As for the SPARC code, it seems like an extreme example. I wouldn't
> call this RTL code. It's more like a manually generated technology-
> independent netlist. For example, they don't even use flip-flop
> inference. And they do have excessive hierarchy.
> 
> I suspect that it should be possible to gain at least an order
> of magnitude in terms of lines of code by using a proper RTL
> style. And the synthesis results might be better. (Excessive
> hierarchy tends to yield suboptimal synthesis results).
> 



That's what I was afraid of. Structural netlists are useful for transmitting
an intact design without revealling the "real source" code. That code is what
you need if you really want to understand or modify the design.

This is like compiling a C file into a linked assembler file and releasing
that as "open source". You can create an executable but that's about it.

Thanks but no thanks.


John Eaton


Article: 99642
Subject: Re: deglitching a clock
From: "Antti Lukats" <antti@openchip.org>
Date: Mon, 27 Mar 2006 23:10:48 +0200
Links: << >>  << T >>  << A >>
"John Larkin" <jjlarkin@highNOTlandTHIStechnologyPART.com> schrieb im 
Newsbeitrag news:0gkg22t80t0838e2odqlfet8h3pror7np4@4ax.com...
> On Mon, 27 Mar 2006 22:35:31 +0200, "Antti Lukats"
> <antti@openchip.org> wrote:
>
>>"John Larkin" <jjlarkin@highNOTlandTHIStechnologyPART.com> schrieb im
>>Newsbeitrag news:6jgg221p6iuffrbbb6dtml39fn3u9sdu4k@4ax.com...
>>> We have a perfect-storm clock problem. A stock 16 MHz crystal
>>> oscillator drives a CPU and two Spartan3 FPGAs. The chips are arranged
>>> linearly in that order (xo, cpu, Fpga1, Fpga2), spaced about 1.5"
>>> apart. The clock trace is 8 mils wide, mostly on layer 6 of the board,
>>> the bottom layer. We did put footprints for a series RC at the end (at
>>> Fpga2) as terminators, just in case.
>>>
>>> Now it gets nasty: for other reasons, the ground plane was moved to
>>> layer 5, so we have about 7 mils of dielectric under the clock
>>> microstrip, which calcs to roughly 60 ohms. Add the chips, a couple of
>>> tiny stubs, and a couple of vias, and we're at 50 ohms, or likely
>>> less.
>>>
>>> And the crystal oscillator turns out to be both fast and weak. On its
>>> rise, it puts a step into the line of about 1.2 volts in well under 1
>>> ns, and doesn't drive to the Vcc rail until many ns later. At Fpga1,
>>> the clock has a nasty flat spot on its rising edge, just about halfway
>>> up. And it screws up, of course. The last FPGA, at the termination, is
>>> fine, and the CPU is ancient 99-micron technology or something and
>>> couldn't care less.
>>>
>>> Adding termination at Fpga2 helps a little, but Fpga1 still glitches
>>> now and then. If it's not truly double-clocking then the noise margin
>>> must be zilch during the plateau, and the termination can't help that.
>>>
>>> One fix is to replace the xo with something slower, or kluge a series
>>> inductor, 150 nH works, just at the xo output pin, to slow the rise.
>>> Unappealing, as some boards are in the field, tested fine but we're
>>> concerned they may be marginal.
>>>
>>> So we want to deglitch the clock edges *in* the FPGAs, so we can just
>>> send the customers an upgrade rom chip, and not have to kluge any
>>> boards.
>>>
>>> Some ideas:
>>>
>>> 1. Use the DCM to multiply the clock by, say, 8. Run the 16 MHz clock
>>> as data through a dual-rank d-flop resynchronizer, clocked at 128 MHz
>>> maybe, and use the second flop's output as the new clock source. A
>>> Xilinx fae claims this won't work. As far as we can interpret his
>>> English, the DCM is not a true PLL (ok, then what is it?) and will
>>> propagate the glitches, too. He claims there *is* no solution inside
>>> the chip.
>>>
>>> 2. Run the clock in as a regular logic pin. That drives a delay chain,
>>> a string of buffers, maybe 4 or 5 ns worth; call the input and output
>>> of the string A and B. Next, set up an RS flipflop; set it if A and B
>>> are both high, and clear it if both are low. Drive the new clock net
>>> from that flop. Maybe include a midpoint tap or two in the logic, just
>>> for fun.
>>>
>>> 3. Program the clock logic threshold to be lower. It's not clear to us
>>> if this is possible without changing Vccio on the FPGAs. Marginal at
>>> best.
>>>
>>>
>>> Any other thoughts/ideas? Has anybody else fixed clock glitches inside
>>> an FPGA?
>>>
>>> John
>>>
>>
>>you can run a genlocked NCO clocked from in-fabric onchip oscillator. your
>>internal recovered clock will have jitter +-1 clock period of the ring
>>oscillator (what could be as high as about 370MHz in S3), you might need a
>>some sync logic that will ensure the 16mhz clock edges are only used to
>>adjust the NCO.
>
> Nice idea. But I do need the 16 MHz to be long-term correct, although
> duty cycle and edges could jitter a bit and not cause problems. So I
> could build an internal ring oscillator and use that to resync the
> incoming 16 MHz clock (dual-rank d-flops again) on the theory that the
> input glitches will never last anything like the 300-ish MHz resync
> clock period. And that's even easier.
>
> Thanks for the input,
>
> John
>
the gen locked NCO would be cycle accurate too, ok I meant you would fine 
adjust the NCO to track the 16mhz
but given and higher clock you can build different deglitch circuitries 
without the need of an full digital PLL technique

antti





Article: 99643
Subject: Re: deglitching a clock
From: John Larkin <jjlarkin@highNOTlandTHIStechnologyPART.com>
Date: Mon, 27 Mar 2006 13:15:33 -0800
Links: << >>  << T >>  << A >>
On Tue, 28 Mar 2006 08:55:50 +1200, Jim Granville
<no.spam@designtools.co.nz> wrote:

>John Larkin wrote:
>
>> Some ideas:
>> 
>> 1. Use the DCM to multiply the clock by, say, 8. Run the 16 MHz clock
>> as data through a dual-rank d-flop resynchronizer, clocked at 128 MHz
>> maybe, and use the second flop's output as the new clock source. A
>> Xilinx fae claims this won't work. As far as we can interpret his
>> English, the DCM is not a true PLL (ok, then what is it?) and will
>> propagate the glitches, too. He claims there *is* no solution inside
>> the chip.
>> 
>> 2. Run the clock in as a regular logic pin. That drives a delay chain,
>> a string of buffers, maybe 4 or 5 ns worth; call the input and output
>> of the string A and B. Next, set up an RS flipflop; set it if A and B
>> are both high, and clear it if both are low. Drive the new clock net
>> from that flop. Maybe include a midpoint tap or two in the logic, just
>> for fun.
>> 
>> 3. Program the clock logic threshold to be lower. It's not clear to us
>> if this is possible without changing Vccio on the FPGAs. Marginal at
>> best.
>> 
>> 
>> Any other thoughts/ideas? Has anybody else fixed clock glitches inside
>> an FPGA?
>
>Enable the schmitt option on the pin :)

Don't I wish! There is a programmable delay element in the IO block,
but it's probably a string of inverters, not an honest R-C delay, so
it likely can't be used to lowpass the edge. We're not sure.

I wish they'd tell us a little more about the actual electrical
behavior of the i/o bits. I mean, Altera and Actel and everybody else
has snooped all this out already.

>Sorry...
>
>Since the issue is 'local', I'd fix it locally, and 2. sounds 
>preferable. You know the CLK freq, so can choose the delay banding.

That's looking promising; we're testing that one now. Gotta figure how
many cells it takes to delay 5 ns. (We'll just xor the ends and bring
that out to a test point.)

John



Article: 99644
Subject: Re: Nios II - VHDL Source Code, Licensing
From: "Derek Simmons" <dereks314@gmail.com>
Date: 27 Mar 2006 13:16:30 -0800
Links: << >>  << T >>  << A >>
My understanding is that when you purchase the development tools you
are entering into an agreement with Altera to use their software with
only their devices. When you generate a NIOS II design from SOPC
Builder the files are suppose to be encrypted. They have a device
called HardCopy that is suppose to be a compromise for an ASIC device.
The rep I was talking to said that there were exceptions but they were
negoiated on a contract to contract basis.


Article: 99645
Subject: ERROR:Xst:827 - bad synchronous description
From: "bobrics" <bobrics@gmail.com>
Date: 27 Mar 2006 13:21:20 -0800
Links: << >>  << T >>  << A >>
Hi,

I have a problem synthesizing a VHDL code. The error is the following:
ERROR:Xst:827 - "C:/Xilinx/work/MYPROJECT/projectfile.vhd" line 134:
Signal codeLen<25> cannot be synthesized, bad synchronous description.
The answer record # 14047: XST - "ERROR:Xst:827 suggests using clock
events in the topmost IF statement, which I am doing (The synchronous
element description is based on the 'event VHDL attribute. In order for
XST to infer a synchronous element, the 'event VHDL attribute must be
present in the topmost "IF" statement of your process. Furthermore,
there should be no embedded 'event statements within a process.)

Here is the suggested example:
synchronous_description : process (clk, reset) is begin
if reset = '1' then -- asynchronous reset
q <= '0'; -- you can have embedded if statements if you need to
elsif clk'event and clk = '1' then -- still the topmost if statement
q <= d; -- you can put your case statements here or
end if; -- embed more if statements but not
end process; -- any more 'event statements


Here is my code. Please let me know if you see any problems.
here DataIn is 31 downto 0
CODELEN_WIDTH is 32, so codeLen is 31 downto 0 as well.

MY_PROCESS: process(reset, clk, state)
	begin
		if (reset = '1') then
			codeLen <= (others => '0');
                        ReadDone <= '0';
                elsif (rising_edge(clk) and state = 0) then
			if (attr_byte_counter < ATTR_HEADER_LEN_BYTES) then
                                -- some other signal assignments
				if (attr_byte_counter = 0) then
					ReadDone <= '0';
				elsif (attr_byte_counter = 1) then
					maxLocals <= DataIn(DATAIN_WIDTH-1 downto DATAIN_WIDTH/2);
					codeLen(CODELEN_WIDTH-1 downto CODELEN_WIDTH/2) <=
DataIn(DATAIN_WIDTH/2-1 downto 0);
					ReadDone <= '0';
                                elsif (attr_byte_counter = 2) then
					codeLen(CODELEN_WIDTH/2-1 downto 0) <= DataIn(DATAIN_WIDTH-1
downto DATAIN_WIDTH/2);
                                        -- the rest of DataIn bits are
ignored
					ReadDone <= '1';
                                else -- do nothing
                                end if;
                 else
                 end if;
end process;


Article: 99646
Subject: Re: deglitching a clock
From: "John_H" <johnhandwork@mail.com>
Date: Mon, 27 Mar 2006 21:23:58 GMT
Links: << >>  << T >>  << A >>
"John Larkin" <jjlarkin@highNOTlandTHIStechnologyPART.com> wrote in message 
news:6jgg221p6iuffrbbb6dtml39fn3u9sdu4k@4ax.com...
> We have a perfect-storm clock problem. A stock 16 MHz crystal
> oscillator drives a CPU and two Spartan3 FPGAs. The chips are arranged
> linearly in that order (xo, cpu, Fpga1, Fpga2), spaced about 1.5"
> apart. The clock trace is 8 mils wide, mostly on layer 6 of the board,
> the bottom layer. We did put footprints for a series RC at the end (at
> Fpga2) as terminators, just in case.
>
> Now it gets nasty: for other reasons, the ground plane was moved to
> layer 5, so we have about 7 mils of dielectric under the clock
> microstrip, which calcs to roughly 60 ohms. Add the chips, a couple of
> tiny stubs, and a couple of vias, and we're at 50 ohms, or likely
> less.
>
> And the crystal oscillator turns out to be both fast and weak. On its
> rise, it puts a step into the line of about 1.2 volts in well under 1
> ns, and doesn't drive to the Vcc rail until many ns later. At Fpga1,
> the clock has a nasty flat spot on its rising edge, just about halfway
> up. And it screws up, of course. The last FPGA, at the termination, is
> fine, and the CPU is ancient 99-micron technology or something and
> couldn't care less.
>
> Adding termination at Fpga2 helps a little, but Fpga1 still glitches
> now and then. If it's not truly double-clocking then the noise margin
> must be zilch during the plateau, and the termination can't help that.
>
> One fix is to replace the xo with something slower, or kluge a series
> inductor, 150 nH works, just at the xo output pin, to slow the rise.
> Unappealing, as some boards are in the field, tested fine but we're
> concerned they may be marginal.
>
> So we want to deglitch the clock edges *in* the FPGAs, so we can just
> send the customers an upgrade rom chip, and not have to kluge any
> boards.
>
> Some ideas:
>
> 1. Use the DCM to multiply the clock by, say, 8. Run the 16 MHz clock
> as data through a dual-rank d-flop resynchronizer, clocked at 128 MHz
> maybe, and use the second flop's output as the new clock source. A
> Xilinx fae claims this won't work. As far as we can interpret his
> English, the DCM is not a true PLL (ok, then what is it?) and will
> propagate the glitches, too. He claims there *is* no solution inside
> the chip.
>
> 2. Run the clock in as a regular logic pin. That drives a delay chain,
> a string of buffers, maybe 4 or 5 ns worth; call the input and output
> of the string A and B. Next, set up an RS flipflop; set it if A and B
> are both high, and clear it if both are low. Drive the new clock net
> from that flop. Maybe include a midpoint tap or two in the logic, just
> for fun.
>
> 3. Program the clock logic threshold to be lower. It's not clear to us
> if this is possible without changing Vccio on the FPGAs. Marginal at
> best.
>
>
> Any other thoughts/ideas? Has anybody else fixed clock glitches inside
> an FPGA?
>
> John

Kludge the boards.

The DCM is based on tapped delay lines - the old "Delay Locked Loop" with 
added functionality.  If you have a glitch go in, a glitch will come out.

A bad clock is a bad clock.  You *might* be able to seriously mess with the 
signal by using the KEEPER attribute to push the Spartan3 I/O into a 
schmidt-like behavior but it isn't a good fix, just a punt.  You might also 
try backdriving the pin with a 2mA setting (*not* 2mA at opposite rail - 
check the IBIS model) to push the threshold up or down, but again - this is 
a mess.  It's much better to change the board; my own recommendation is to 
change the oscillator to something with some strength. 



Article: 99647
Subject: Re: deglitching a clock
From: "Peter Alfke" <peter@xilinx.com>
Date: 27 Mar 2006 13:29:02 -0800
Links: << >>  << T >>  << A >>

John Larkin wrote:
>>
> And the crystal oscillator turns out to be both fast and weak. On its
> rise, it puts a step into the line of about 1.2 volts in well under 1
> ns, and doesn't drive to the Vcc rail until many ns later.

Why would the signal round-trip delay be several ns,  at 6" or 15 cm
per ns one-way propagation on a pc-board ?
The flat spot at 1.2 V is usually the result of a matched (weak) driver
achieving half-amplitude driving the transmission line, and waiting for
the reflection coming back from the far end. But "many nanoseconds ???
Peter Alfke


Article: 99648
Subject: Re: OpenSPARC released
From: javaguy11111@gmail.com
Date: 27 Mar 2006 13:36:23 -0800
Links: << >>  << T >>  << A >>
I have been playing around with opensparc some using xst. I did manage
to get a build without errors, but since I did not have a clock defined
 everything got optimized away.  So no gate counts. One thing I did
learn is to not import the files using Project Navigator. It just locks
it up.

A build using an xst script worked. There was one file that had a
function defined that was causing xst to fail. However when I removed
it I got no more complaints.

It may not be possible to synthesize with 8 cores, but I thought I saw
something in the docs about being to specify fewer cores.

I will probably play around with it some more as free time allows and
see how far I can get with it.




Shyam wrote:
> Allan Herriman wrote:
>
> > It appears openSparc Verilog is written to target an ASIC, not an
> > FPGA.  Whilst it might be possible to get it to compile and even fit
> > into an FPGA, the performance would probably not be stunning.
> >
> > In that sense, a different soft-cpu designed to be used on an FPGA
> > would probably be better.
>
> ---It's interesting to see "SoftCores for Multicore FPGA
> implementations" listed as an example research area that can be
> explored with OpenSPARC technology, at
> http://opensparc.sunsource.net/nonav/research.html. Not sure what
> area/delay/power one would end up with if this core is implemented on
> an FPGA as is. Perhaps certain enhancements/simplifications may be
> carried out to the present core in order to make it useful within an
> FPGA. Since they have released a variety of hardware/software tools
> (and their sources) I guess it becomes possible to study the
> performance impact of any architectural modifications.
>
> Has anybody already started working on implementing this on an FPGA? I
> would be very interested to know the results.I want to try to do this
> but am presently hampered because I don't have Synopsys DC (which is
> the recommended synthesis environment) appropriately set up.
> 
> Thanks,
> Shyam


Article: 99649
Subject: Re: ERROR:Xst:827 - bad synchronous description
From: mk <kal*@dspia.*comdelete>
Date: Mon, 27 Mar 2006 21:45:22 GMT
Links: << >>  << T >>  << A >>
On 27 Mar 2006 13:21:20 -0800, "bobrics" <bobrics@gmail.com> wrote:

...
>MY_PROCESS: process(reset, clk, state)
>	begin
...
>                elsif (rising_edge(clk) and state = 0) then


Remove the state from the dependency list and the elsif expression.
You don't need the state dependency. Move the state = 0 expression to
the statement which elsif evaluates.

HTH.



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