EDK : FSL macros defined by Xilinx are wrong

One mistake that is not too hard to make is forgetting to put a synchronizer flop on the input of an edge detector, like you might have on a UART input (so that the edge detector has two flops, total). Depending on the routing delays, this can cause you to miss a sizable percentage of edges. (Not just delayed, but missed completely.) Using only a single flop is sometimes known as using the "greedy path".

(Actually, to mitigate metastability as well, an edge detector ought to have three flops and an AND gate. Using two is sometimes known as using the "sneaky path".)
 
On 6/18/2013 3:16 PM, Kevin Neilson wrote:
One mistake that is not too hard to make is forgetting to put a synchronizer flop on the input of an edge detector, like you might have on a UART input (so that the edge detector has two flops, total). Depending on the routing delays, this can cause you to miss a sizable percentage of edges. (Not just delayed, but missed completely.) Using only a single flop is sometimes known as using the "greedy path".

(Actually, to mitigate metastability as well, an edge detector ought to have three flops and an AND gate. Using two is sometimes known as using the "sneaky path".)
Everyone is saying the same thing, so I guess I didn't explain clearly.
Someone had already pointed out to me that I needed a synchronizer on
the received data signal in another thread that I can't find now. I
took them at their word, but was thinking they meant it was about
metastability which I figured was not a problem at these speeds (yes,
the speeds do make a difference for metastability since you never chase
it away, you just minimize it). I wasn't thinking about the serial in
signal feeding the state machine, just the shift register.

So when I made the changes, which included the synchronizer, it worked.
Because I didn't expect the synchronizer to do anything, I had
forgotten about it until I was typing the post here. I remembered at
the end of the message and realized that was what fixed the problem...

Sorry for the confusion. Still, thanks to all who replied and
especially the mystery person who suggested it in the other thread
wherever that was.

--

Rick
 
That's the same thing that happened to me when I had the problem last. I had an edge detector connected to a big synchronizer module that was in turn connected to all the input pins. When I had problems I looked inside the synchronizer module and found that it didn't have a flop on that line; it was just wired straight through.
 
rickman <gnuarm@gmail.com> wrote:
Everyone is saying the same thing, so I guess I didn't explain clearly.
Someone had already pointed out to me that I needed a synchronizer on
the received data signal in another thread that I can't find now. I
took them at their word, but was thinking they meant it was about
metastability which I figured was not a problem at these speeds (yes,
the speeds do make a difference for metastability since you never chase
it away, you just minimize it). I wasn't thinking about the serial in
signal feeding the state machine, just the shift register.
There's 3 things that could have gone wrong (and might still be doing
wrong):

You failed to synchronise between the clock domain of the input serial link
and the clock of your system (sounds like you fixed this one)

You failed to constrain the clocks and other inputs so the synthesis tool
knows what timing budget it has to meet

You failed timing analysis and didn't notice - in other words the synthesis
tool says the design it produced doesn't meet your supplied timing
constraints, despite its best efforts. If the failure is small it may still
work in some voltage/temperature/silicon situations, but it isn't guaranteed
in all cases.


Normally the last one will raise big red flags in the tool, assuming the
timing analyser does get run as part of the build. However the first two
are easy to overlook and you get no warning from the tools.

Theo
 
Ronin <gauravwadkar@gmail.com> wrote:
hi Guys,

I would like to get started in the FPGA world.
I intend to use the board to perform computations. Hence connectivity to
and from the PC should be good and via usb.

Am looking for a low cost fpga board with:
1. Inbuilt USB
2. Good to have - Ethernet port
When you say 'USB', are you intending to have a full USB stack on the board,
so you can be an arbitrary USB endpoint (eg keyboard, mass storage, printer,
camera)? Or will something like a USB-serial adaptor work - you talk to
what you think is a UART, but it's converted by an additional chip to
serial-over-USB.

The latter is much simpler, but imposes restrictions - you only show up as a
serial port and you may be limited in speed (1 Mbps or so).

JTAG over USB is slightly different, but often has similar constraints.

Can I use low cost Papillon board for this purpose without soldering ( if
there are any cables to facilitate data transfer )?
Papilio One appears to be USB over serial (FT232).

Do you have a particular preference of FPGA vendor?

Theo
 
I didn't see a cost requirement but I would take a look at a zedboard if you can swing the cost... This Zynq chip blows me away with the features versus size and cost. The chip has both the features you mention, USB (OTG) and Ethernet however they both run in the embedded ARM side of the chip. IMHO this is the right place for those two peripherals anyhow. The FPGA side of things is an artix-7 on the zedboard which is a very good sized amount of logic to play around with too. I bought a zedboard for $400ish, but I remember seeing a $100 discount for students if that fits you.

One fun thing I did with mine is run a reference design with full Ubuntu Linux running. I connected to my network then a keyboard and mouse to the USB and surfed the web on it... Totally blew me away.

I am guessing there is an analogous Altera soc too if you swing that way. I do not know of an analogous Altera board like the zedboard though.
 
Ronin wrote:
hi Guys,

I would like to get started in the FPGA world.
I intend to use the board to perform computations. Hence connectivity to and from the PC should be good and via usb.

Am looking for a low cost fpga board with:
1. Inbuilt USB
2. Good to have - Ethernet port

Can I use low cost Papillon board for this purpose without soldering ( if there are any cables to facilitate data transfer )?

Thanks in advance.

Cheers

The only suggestion I can make is to look at each of the major FPGA
manufacturers to see if there are any specials on new development
boards. Usually when they are releasing a new FPGA family they heavily
subsidize the dev board price to get new device wins. I've gotten
some great deals from Lattice this way. I seem to recall a recent
announcement from MicroSemi (Actel) about a new FPGA series...

--
Gabor
 
GaborSzakacs wrote:
Ronin wrote:
hi Guys,

I would like to get started in the FPGA world. I intend to use the
board to perform computations. Hence connectivity to and from the PC
should be good and via usb.

Am looking for a low cost fpga board with:
1. Inbuilt USB
2. Good to have - Ethernet port

Can I use low cost Papillon board for this purpose without soldering (
if there are any cables to facilitate data transfer )?

Thanks in advance.

Cheers

The only suggestion I can make is to look at each of the major FPGA
manufacturers to see if there are any specials on new development
boards. Usually when they are releasing a new FPGA family they heavily
subsidize the dev board price to get new device wins. I've gotten
some great deals from Lattice this way. I seem to recall a recent
announcement from MicroSemi (Actel) about a new FPGA series...

OK found it:

IGLOO2 dev kit at $99

http://www.microsemi.com/products/fpga-soc/design-resources/dev-kits/igloo2/igloo2-evaluation-kit#ordering

--
Gabor
 
On 15/07/13 16:39, GaborSzakacs wrote:
IGLOO2 dev kit at $99

http://www.microsemi.com/products/fpga-soc/design-resources/dev-kits/igloo2/igloo2-evaluation-kit#ordering
Interesting.

What's the general opinion about the design toolchain, both
on its own and compared to the Xilinx offering? Often the
toolchain is just as important as the device itself.
 
On 7/15/2013 12:44 PM, Tom Gardner wrote:
On 15/07/13 16:39, GaborSzakacs wrote:
IGLOO2 dev kit at $99

http://www.microsemi.com/products/fpga-soc/design-resources/dev-kits/igloo2/igloo2-evaluation-kit#ordering


Interesting.

What's the general opinion about the design toolchain, both
on its own and compared to the Xilinx offering? Often the
toolchain is just as important as the device itself.
I don't have any personal experience with the Igloo tools, but I have
heard that they aren't so great. On the other hand I have worked with
the tools from X, A and L and find them all to be fairly acceptable.

One board that wasn't mentioned is the openRISC development board from
Orsoc. It has both Ethernet and host/slave USB.

http://opencores.org/shop,item,11

They seem to be out of stock at the moment.

--

Rick
 
On 15/07/13 20:20, rickman wrote:
On 7/15/2013 12:44 PM, Tom Gardner wrote:
On 15/07/13 16:39, GaborSzakacs wrote:
IGLOO2 dev kit at $99

http://www.microsemi.com/products/fpga-soc/design-resources/dev-kits/igloo2/igloo2-evaluation-kit#ordering


Interesting.

What's the general opinion about the design toolchain, both
on its own and compared to the Xilinx offering? Often the
toolchain is just as important as the device itself.

I don't have any personal experience with the Igloo tools, but I have heard that they aren't so great.
Does that mean an/all of buggy, slow, incomplete, awkward
to use, poor synthesis/place/simluation/etc results?


On the other hand I have worked with the tools from X, A and L and find them all to be fairly
acceptable.
 
Tom Gardner wrote:
On 15/07/13 16:39, GaborSzakacs wrote:
IGLOO2 dev kit at $99

http://www.microsemi.com/products/fpga-soc/design-resources/dev-kits/igloo2/igloo2-evaluation-kit#ordering


Interesting.

What's the general opinion about the design toolchain, both
on its own and compared to the Xilinx offering? Often the
toolchain is just as important as the device itself.


I also have no experience with the Igloo tools, and I just
noticed that after all the fanfare of how big the Igloo2 is
with up to 150K LE's, the eval board has a part iwth 10K LE's
which is about the same logic density as a really small
(next to the smallest) Spartan 6. I thought $99 was too
good to be true. One nice thing about the board is the
PCIe connection, which can theoretically get data in and
out of your PC much faster than Ethernet or USB, although
it probably comes at the price of a lot of work on your part,
at least if my experience with Xilinx designs is any
indication of required effort.
--
Gabor
 
On 7/15/2013 5:14 PM, Tom Gardner wrote:
On 15/07/13 20:20, rickman wrote:
On 7/15/2013 12:44 PM, Tom Gardner wrote:
On 15/07/13 16:39, GaborSzakacs wrote:
IGLOO2 dev kit at $99

http://www.microsemi.com/products/fpga-soc/design-resources/dev-kits/igloo2/igloo2-evaluation-kit#ordering



Interesting.

What's the general opinion about the design toolchain, both
on its own and compared to the Xilinx offering? Often the
toolchain is just as important as the device itself.

I don't have any personal experience with the Igloo tools, but I have
heard that they aren't so great.

Does that mean an/all of buggy, slow, incomplete, awkward
to use, poor synthesis/place/simluation/etc results?
I don't have details, but I believe the problems included buggy and poor
results/hard to get good results.


On the other hand I have worked with the tools from X, A and L and
find them all to be fairly
acceptable.
One qualifier to that, I understand the free tools from Xilinx (which is
their own synthesis tool, XST) does not support VHDL 2008. So if you
are used to writing your code to the newer standard which is supported
(at least in part) by nearly all other vendors, you won't be able to
easily port your code to the Xilinx free tools.

--

Rick
 
I have some experience with Actel/Microsemi ProASIC chips, for the application I used them for I found them to be much slower than Xilinx or Altera. They have major benefits, like no need for an external prom because of the anti fuse ( which I think makes them slower) and if I remember correctly they were quite a bit lower power, at least compared to the stratix and virtex of that day. I did not have any complaints about the tools, in fact in those days I was using Leonardo to synthesize altera and synplify to synthesize Xilinx while the actel chips seemed to get the best results using the actel designer tools, but that was a while ago. Today Xilinx has me confused with all the different tool flows, I tried Vivado and it didn't work well for me so I am back to ise. I will say that I am happy with the results I am getting from ise synthesis and don't use synplify anymore. I have not done a design for altera in five years or so but the last time I did it was Leo and quartus which was just okay.

Personally if I was starting today designing fpga's I would go with the best Xilinx dev kit from a cost/ requirement standpoint and use the ise webpack to learn on. Papilio would be a great place to start, a strong user community with support from the board designer and a forum and even a free starters guide. You do need to figure another way to move data between PC and board but the ftdi USB to uart is one option that makes sense.

One other place to get well priced dev kits is digilent, I have been happy with what I bought from them.

Ronin if you are reading these posts are we answering what you need or talking to ourselves?

Chris
 
How about digilents basys2?

http://www.digilentinc.com/Products/Detail.cfm?NavPath=2,400,790&Prod=BASYS2

$49 for us students, USB data transfers via an onboard atmel microcontroller. No Ethernet but hey it is only $49!

Chris
 
On 16/07/13 05:59, Chris wrote:
I have some experience with Actel/Microsemi ProASIC chips, for the
application I used them for I found them to be much slower than Xilinx
or Altera. They have major benefits, like no need for an external
prom because of the anti fuse ( which I think makes them slower)
and if I remember correctly they were quite a bit lower power, at
least compared to the stratix and virtex of that day. I did not
have any complaints about the tools, in fact in those days I was
using Leonardo to synthesize altera and synplify to synthesize
Xilinx while the actel chips seemed to get the best results using the
actel designer tools, but that was a while ago. Today Xilinx has me
confused with all the different tool flows, I tried Vivado and it
didn't work well for me so I am back to ise. I will say that I am
happy with the results I am getting from ise synthesis and don't
use synplify anymore. I have not done a design for altera in five
years or so but the last time I did it was Leo and quartus which
was just okay.
Very useful. The toolflow is confusing; I'm hoping a book I've
just received will nudge me in the right direction!


Personally if I was starting today designing fpga's I would go
with the best Xilinx dev kit from a cost/ requirement standpoint
and use the ise webpack to learn on.
That's what I've been planning, but I know what I don't know.

I'm biassed towards Xilinx simply because I used an XC2000 back
in the 80s, and knew and liked Wim Roelandts when he was at HP
(insider joke: that was before HP was renamed Agilent).


Papilio would be a great place to start, a strong user community with
support from the board designer and a forum and even a free starters guide.
You do need to figure another way to move data between PC and board but
the ftdi USB to uart is one option that makes sense.
My primary requirement (almost the only requirement!) is high
speed serial interface. I've been looking at the Ztex 1.15b with the
highest speed variant of a spartan-6-75 for 239euro.
http://www.ztex.de/usb-fpga-1/usb-fpga-1.15.e.html
The company has a range of simple useful shields, and has
been around long enough to have an "obsolete boards" section.

Nonetheless, if anyone else has any observations, I'll listen.


Ronin if you are reading these posts are we answering what you need or talking to ourselves?
I can't answer for Ronin, but you and others /are/ helping me.
 
On 7/16/2013 4:15 AM, Tom Gardner wrote:
That's what I've been planning, but I know what I don't know.

I'm biassed towards Xilinx simply because I used an XC2000 back
in the 80s, and knew and liked Wim Roelandts when he was at HP
(insider joke: that was before HP was renamed Agilent).
I didn't work with the XC2000 series, but I did a bit with the 3000.
Not so much fun using those tools as today although it was either
schematic or manual editing of the part in the chip editor.

So should I assume you are actually agnostic about the brand of FPGA?


My primary requirement (almost the only requirement!) is high
speed serial interface. I've been looking at the Ztex 1.15b with the
highest speed variant of a spartan-6-75 for 239euro.
http://www.ztex.de/usb-fpga-1/usb-fpga-1.15.e.html
The company has a range of simple useful shields, and has
been around long enough to have an "obsolete boards" section.
I'm not familiar with your use of the terms "high speed serial
interface" and "shields". By shields do you mean daughter cards? I
think shields is the term used for Arduino daughter cards, I don't
normally see it used anywhere else.

As to "high speed serial interface" that is a bit broad. Are you
talking about an async RS-232 type interface or something more specific
like USB high speed or Ethernet?

It looks like the ztec board has USB, but that is through the Cypress
chip and so isn't directly accessible to the FPGA.

What do you want the high speed serial port for?

Don't you have any requirements for the FPGA?


Nonetheless, if anyone else has any observations, I'll listen.
Certainly if you are willing to spend well over $200 there are lots of
boards around. Do you have any other requirements?

--

Rick
 
On Tuesday, July 16, 2013 1:15:09 AM UTC-7, Tom Gardner wrote:
On 16/07/13 05:59, Chris wrote:

I have some experience with Actel/Microsemi ProASIC chips, for the

application I used them for I found them to be much slower than Xilinx

or Altera. They have major benefits, like no need for an external

prom because of the anti fuse ( which I think makes them slower)

and if I remember correctly they were quite a bit lower power, at

least compared to the stratix and virtex of that day.
I was looking up some of my old designs and the ProASICs were not antifuse, just flash based. Again, very useful in that you don't need an external PROM for bitstream storage but you pay for it in performance. If I needed to push the limits of speed it would not be done with an Actel (/Microsemi). I would use the Actel/Microsemi solution if I was looking for space savings or lower power... as long as I can convince myself I can still meet my design requirements.

I did actually work on an antifuse Actel over 10 years ago, a 54SX series. Those were hairy, they only programmed once and were in a PQ208 package that took FOREVER to put down on a board. We used to cut all of the pins to remove the device then desolder them pin by pin, if you tried changing it more than once you were guaranteed to rip pads off the board... ahhh the good old days.


I can't answer for Ronin, but you and others /are/ helping me.
Great, thanks for the feedback, I just wanted to check if Ronin was getting what he wanted out of his question.
 
On 16/07/13 17:00, rickman wrote:
So should I assume you are actually agnostic about the brand of FPGA?
Correct.


My primary requirement (almost the only requirement!) is high
speed serial interface. I've been looking at the Ztex 1.15b with the
highest speed variant of a spartan-6-75 for 239euro.
http://www.ztex.de/usb-fpga-1/usb-fpga-1.15.e.html
The company has a range of simple useful shields, and has
been around long enough to have an "obsolete boards" section.

I'm not familiar with your use of the terms "high speed serial interface" and "shields". By shields do you mean daughter cards? I think shields is the term used for Arduino daughter cards, I don't
normally see it used anywhere else.
Yes, I was using it in the arduino sense, e.g. ztec's PSU
module.


As to "high speed serial interface" that is a bit broad. Are you talking about an async RS-232 type interface or something more specific like USB high speed or Ethernet?
All I want to do is sample the output of a MAX9979 as fast as possible,
and then store and process it in fairly simple (albeit high speed) ways.
1GS/s is a good round number. 900M/s wouldn't be bad, but
is less sexy :) A stretch goal is to sample
at 2GS/s using separate interleaved channels. Looks like the
various SERDES i/o structures will be useful, provided I can
avoid having any PHY-level encoding. Raw bitstreams only, please :)

Getting hold of a MAX9979 without paying 200euro is a
separate issue :(


It looks like the ztec board has USB, but that is through the Cypress chip and so isn't directly accessible to the FPGA.
Correct. You can also program the Cypress chip yourself
if you want an on-board controller that doesn't easily
fit into the FPGA.


Nonetheless, if anyone else has any observations, I'll listen.

Certainly if you are willing to spend well over $200 there are lots of boards around. Do you have any other requirements?
Not really, although a 3+ medium-speed DACs (~1MS/s) might
be handy!
 
On 7/16/2013 12:36 PM, Tom Gardner wrote:
On 16/07/13 17:00, rickman wrote:
So should I assume you are actually agnostic about the brand of FPGA?

Correct.


My primary requirement (almost the only requirement!) is high
speed serial interface. I've been looking at the Ztex 1.15b with the
highest speed variant of a spartan-6-75 for 239euro.
http://www.ztex.de/usb-fpga-1/usb-fpga-1.15.e.html
The company has a range of simple useful shields, and has
been around long enough to have an "obsolete boards" section.

I'm not familiar with your use of the terms "high speed serial
interface" and "shields". By shields do you mean daughter cards? I
think shields is the term used for Arduino daughter cards, I don't
normally see it used anywhere else.

Yes, I was using it in the arduino sense, e.g. ztec's PSU
module.


As to "high speed serial interface" that is a bit broad. Are you
talking about an async RS-232 type interface or something more
specific like USB high speed or Ethernet?

All I want to do is sample the output of a MAX9979 as fast as possible,
and then store and process it in fairly simple (albeit high speed) ways.
1GS/s is a good round number. 900M/s wouldn't be bad, but
is less sexy :) A stretch goal is to sample
at 2GS/s using separate interleaved channels. Looks like the
various SERDES i/o structures will be useful, provided I can
avoid having any PHY-level encoding. Raw bitstreams only, please :)

Getting hold of a MAX9979 without paying 200euro is a
separate issue :(
So the MAX9979 is some sort of buffer chip and you want to sample the
output using a SERDES or two? Why didn't you say that? Not all FPGAs
have SERDES. I've not worked with them before so I can't tell you which
have encoding or not. I do know that Lattice was the first company to
add SERDES to their low cost line of FPGAs. Once they did it, X and A
had to as well.


It looks like the ztec board has USB, but that is through the Cypress
chip and so isn't directly accessible to the FPGA.

Correct. You can also program the Cypress chip yourself
if you want an on-board controller that doesn't easily
fit into the FPGA.
My question is, what do you want from the USB port?


Nonetheless, if anyone else has any observations, I'll listen.

Certainly if you are willing to spend well over $200 there are lots of
boards around. Do you have any other requirements?

Not really, although a 3+ medium-speed DACs (~1MS/s) might
be handy!
That can be done in the FPGA with a few spare pins. How much resolution
do you need?

--

Rick
 

Welcome to EDABoard.com

Sponsor

Back
Top