FPGA Central - World's 1st FPGA / CPLD Portal

FPGA Central

World's 1st FPGA Portal

 

Go Back   FPGA Groups > NewsGroup > FPGA

FPGA comp.arch.fpga newsgroup (usenet)

Reply
 
LinkBack Thread Tools Display Modes
  #1 (permalink)  
Old 02-08-2007, 07:57 AM
Daniel O'Connor
Guest
 
Posts: n/a
Default Replacing/emulating an asynchronous FIFO

Hi,
I am creating an FPGA (Spartan 3 XCS400) based replacement for one of our
old board designs which uses IDT 7201 -
http://www.idt.com/products/files/42...00-7202_DS.pdf.

Initially I cheated a little and created a clock for the FIFOs and lined up
my stimulus to that clock and worked out the bugs in my design.

To actually match the original board however I need to work without a
clock - the board I am replacing is controlled by another board with a
32MHz clock on it but that clock does not pass down the backplane to my
board so all I have are various signals that I must act on.

Most of the design seems to work fine except for a limitation in the FIFO
core (I am using the Xilinx async FIFO core v6.1) - it must get few clocks
from each domain after a reset otherwise it will not accept writes (or
reads presumably but it's hard to tell).

I did put a 50MHz clock on my board Just In Case(tm) however, obviously, it
won't be synchronised with the clock on the main card so I need to sync up
the incoming reset signal and then count out a few clocks to the FIFO core.

I'm still working on the last part trying to get it working but since my
design reads like a "How not to use an FPGA" (through no fault of my
own! plus I am normally a software guy, it's hard going.

Has anyone done this sort of thing before? (and would be willing to share
their solution).

I am also considering taking the 50MHz clock on my board and multiplying it
up to, say, 150MHz and sychronising/one-shotting all of the signals from
the other board to that.

--
Daniel O'Connor software and network engineer
for Genesis Software - http://www.gsoft.com.au
"The nice thing about standards is that there
are so many of them to choose from."
-- Andrew Tanenbaum
GPG Fingerprint - 5596 B766 97C0 0E94 4347 295E E593 DC20 7B3F CE8C
Reply With Quote
  #2 (permalink)  
Old 02-08-2007, 12:41 PM
Tim
Guest
 
Posts: n/a
Default Re: Replacing/emulating an asynchronous FIFO

Daniel O'Connor wrote:
> I am also considering taking the 50MHz clock on my board and multiplying it
> up to, say, 150MHz and sychronising/one-shotting all of the signals from
> the other board to that.


Yep. That's the what you have to do. All other routes lead to madness.
Synchronize the incoming signals and as much of the rest as possible. I
would look hard at making the FIFO synchronous.

Reply With Quote
  #3 (permalink)  
Old 02-08-2007, 06:20 PM
Peter Alfke
Guest
 
Posts: n/a
Default Re: Replacing/emulating an asynchronous FIFO

On Feb 8, 3:41 am, Tim <s...@nooospam.roockyloogic.com> wrote:
> Daniel O'Connor wrote:
> > I am also considering taking the 50MHz clock on my board and multiplying it
> > up to, say, 150MHz and sychronising/one-shotting all of the signals from
> > the other board to that.

>
> Yep. That's the what you have to do. All other routes lead to madness.
> Synchronize the incoming signals and as much of the rest as possible. I
> would look hard at making the FIFO synchronous.


Since you have to synchronize to a new clock anyhow, make the whole
FIFO synchronous (same clock for write and read, but with separate
Enables). That makes the FIFO design very simple, and avoids all the
tricky circuitry requires for asynchronous operation.
Peter Alfke, Xilinx

Reply With Quote
  #4 (permalink)  
Old 02-09-2007, 07:03 AM
Daniel O'Connor
Guest
 
Posts: n/a
Default Re: Replacing/emulating an asynchronous FIFO

Tim wrote:

> Daniel O'Connor wrote:
>> I am also considering taking the 50MHz clock on my board and multiplying
>> it up to, say, 150MHz and sychronising/one-shotting all of the signals
>> from the other board to that.

>
> Yep. That's the what you have to do. All other routes lead to madness.
> Synchronize the incoming signals and as much of the rest as possible. I
> would look hard at making the FIFO synchronous.


I guess that explains the pounding headaches then

--
Daniel O'Connor software and network engineer
for Genesis Software - http://www.gsoft.com.au
"The nice thing about standards is that there
are so many of them to choose from."
-- Andrew Tanenbaum
GPG Fingerprint - 5596 B766 97C0 0E94 4347 295E E593 DC20 7B3F CE8C
Reply With Quote
  #5 (permalink)  
Old 02-09-2007, 02:59 PM
Daniel O'Connor
Guest
 
Posts: n/a
Default Re: Replacing/emulating an asynchronous FIFO

Peter Alfke wrote:
>> Yep. That's the what you have to do. All other routes lead to madness.
>> Synchronize the incoming signals and as much of the rest as possible. I
>> would look hard at making the FIFO synchronous.

>
> Since you have to synchronize to a new clock anyhow, make the whole
> FIFO synchronous (same clock for write and read, but with separate
> Enables). That makes the FIFO design very simple, and avoids all the
> tricky circuitry requires for asynchronous operation.


OK, I am using the Xilinx core so the complexity of it's internal design
doesn't bother me much

I'll do as you suggest though as it makes sense to avoid the potential
testing pitfalls

Thanks for the input.

--
Daniel O'Connor software and network engineer
for Genesis Software - http://www.gsoft.com.au
"The nice thing about standards is that there
are so many of them to choose from."
-- Andrew Tanenbaum
GPG Fingerprint - 5596 B766 97C0 0E94 4347 295E E593 DC20 7B3F CE8C
Reply With Quote
  #6 (permalink)  
Old 02-09-2007, 05:59 PM
Peter Alfke
Guest
 
Posts: n/a
Default Re: Replacing/emulating an asynchronous FIFO

To quote Albert Einstein:
"Make everything as simple as possible, but not simpler".
Good advice!
Peter Alfke

On Feb 8, 10:03 pm, Daniel O'Connor <dar...@dons.net.au> wrote:
> Tim wrote:
> > Daniel O'Connor wrote:
> >> I am also considering taking the 50MHz clock on my board and multiplying
> >> it up to, say, 150MHz and sychronising/one-shotting all of the signals
> >> from the other board to that.

>
> > Yep. That's the what you have to do. All other routes lead to madness.
> > Synchronize the incoming signals and as much of the rest as possible. I
> > would look hard at making the FIFO synchronous.

>
> I guess that explains the pounding headaches then
>
> --
> Daniel O'Connor software and network engineer
> for Genesis Software -http://www.gsoft.com.au
> "The nice thing about standards is that there
> are so many of them to choose from."
> -- Andrew Tanenbaum
> GPG Fingerprint - 5596 B766 97C0 0E94 4347 295E E593 DC20 7B3F CE8C



Reply With Quote
Reply

Bookmarks

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Asynchronous FIFO - Different widths of Input & Output Ports. Gokul Verilog 1 08-25-2008 07:33 PM
Asynchronous FIFO with depth that is not a power of 2 googler Verilog 6 05-15-2008 11:10 AM
asynchronous FIFO design kelvins FPGA 3 04-10-2006 08:35 PM
Asynchronous FIFO design question [email protected] FPGA 12 03-08-2006 05:32 PM
Generating Asynchronous FIFO in Block Memory of Sparatn-II in CoreGen Atif FPGA 0 09-03-2003 06:30 AM


All times are GMT +1. The time now is 02:15 AM.


Powered by vBulletin® Version 3.8.0
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0
Copyright 2008 @ FPGA Central. All rights reserved