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 11-03-2006, 04:24 AM
Anonyma
Guest
 
Posts: n/a
Default digilent spartan-3 board sram timing

Hi,

This is a question about digilent spartan-3 starter board ,
which has a simple 10ns sram and 20ns clock.
I am using a simple controller to access the sram.
During a read operation, the address is stored into
a register and oe is activated at the first rising edge
of the clock and data is retrieved at the next edge.
The 20 ns period seems not large enough to accommodate
the pad delay and external loading. A simple testing
circuit shows that about 0.2% read errors.
There is no error if the reading period
is extended to 2 clocks.

Is it possible to put some timing or other constraints
in the ucf file to help timing? Thanks.



Reply With Quote
  #2 (permalink)  
Old 11-03-2006, 01:05 PM
radarman
Guest
 
Posts: n/a
Default Re: digilent spartan-3 board sram timing

Anonyma wrote:
> Hi,
>
> This is a question about digilent spartan-3 starter board ,
> which has a simple 10ns sram and 20ns clock.
> I am using a simple controller to access the sram.
> During a read operation, the address is stored into
> a register and oe is activated at the first rising edge
> of the clock and data is retrieved at the next edge.
> The 20 ns period seems not large enough to accommodate
> the pad delay and external loading. A simple testing
> circuit shows that about 0.2% read errors.
> There is no error if the reading period
> is extended to 2 clocks.
>
> Is it possible to put some timing or other constraints
> in the ucf file to help timing? Thanks.


One thing to check is that your final output flops are being mapped to
pad registers, and not internal registers. That will eliminate any
variability in prop delay due to different paths in the fabric,
presenting a stable address more quickly. As a general rule, you should
always register outputs at the pad, unless you have some good reason
not to, especially for busses.

I'm not sure how to do that in ISE, though - I use mostly Altera at the
moment.

Reply With Quote
  #3 (permalink)  
Old 11-04-2006, 01:01 AM
Brian Davis
Guest
 
Posts: n/a
Default Re: digilent spartan-3 board sram timing

Anonyma wrote:
> The 20 ns period seems not large enough to accommodate
> the pad delay and external loading. A simple testing
> circuit shows that about 0.2% read errors.


Follow the bouncing links from this old post for some notes
about write strobe generation timing, and some SRAM test
code for the S3 starter kit.

http://groups.google.com/group/comp....222450bf8e47c8

Brian

Reply With Quote
  #4 (permalink)  
Old 11-04-2006, 01:49 PM
Brian Drummond
Guest
 
Posts: n/a
Default Re: digilent spartan-3 board sram timing

On 3 Nov 2006 05:05:24 -0800, "radarman" <[email protected]> wrote:

>Anonyma wrote:
>> Hi,
>>
>> This is a question about digilent spartan-3 starter board ,
>> which has a simple 10ns sram and 20ns clock.
>> ... A simple testing
>> circuit shows that about 0.2% read errors.


>> Is it possible to put some timing or other constraints
>> in the ucf file to help timing? Thanks.

>
>One thing to check is that your final output flops are being mapped to
>pad registers, and not internal registers. That will eliminate any
>variability in prop delay due to different paths in the fabric,


Very important. In addition to eliminating variability, in Xilinx parts
it can eliminate about 4ns of routing delay in each path ( = 8ns for the
round trip ).

>I'm not sure how to do that in ISE, though - I use mostly Altera at the
>moment.


To check what's going on in this respect, look at the .mrp (Map Report)
file in ISE. The IOB section (near the end) lists INFF, OUTFF (or OFF)
and ENBFF for input, output and tristate flipflops in the IPB
respectively.

To modify what's happening, there are a number of hoops to jump through.
The first is to enable "map FFs into IOBs" settings in the tools; most
of the others relate to preventing ISE from optimising away useful
signals, like the FFs you need (e.g. if they are shared with internal
logic). Apply "keep" attributes to prevent signals disappearing, and
"equivalent_register_removal" = "false" attributes to appropriate
registers. And keep trying until the right behaviour is reported in the
..mrp file.

- Brian

Reply With Quote
Reply

Bookmarks


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
Any eval SW comes with Spartan 3E Dev board from Xilinx/Digilent ? [email protected] FPGA 1 06-23-2006 05:55 PM
Spartan 3 Digilent Board Expansion Connectors Renniks FPGA 1 12-21-2005 06:12 PM
Digilent SRAM Controller al99999 FPGA 6 12-16-2005 01:45 AM


All times are GMT +1. The time now is 12:03 PM.


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