forked from ultraembedded/cores
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
0 parents
commit 1910cda
Showing
1 changed file
with
30 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
### Simple SDRAM Controller | ||
|
||
This IP core is that of a small, simple SDRAM controller used to provide a 32-bit pipelined Wishbone interface to a 16-bit SDRAM chip. | ||
|
||
When accessing open rows, reads and writes can be pipelined to achieve full SDRAM bus utilization, however switching between reads & writes takes a few cycles. | ||
|
||
The row management strategy is to leave active rows open until a row needs to be closed for a periodic auto refresh or until that bank needs to open another row due to a read or write request. | ||
|
||
This IP supports supports 4 open active rows (one per bank). | ||
|
||
##### Testing | ||
|
||
Verified under simulation against a couple of SDRAM models and on the miniSpartan6+ board which features the AS4C16M16S. | ||
|
||
The supplied testbench works with the free version Modelsim. | ||
|
||
##### Configuration | ||
* SDRAM_MHZ - Clock speed (verified with 50MHz & 100MHz) | ||
* SDRAM_ADDR_W - Total SDRAM address width (cols+rows+banks) | ||
* SDRAM_COL_W - Number of column bits | ||
* SDRAM_READ_LATENCY - Read data latency (use 3 for 100MHz, 2 for 50MHz) | ||
* SDRAM_TARGET - Target XILINX or SIMULATION | ||
|
||
##### Size / Performance | ||
|
||
With the default configuration... | ||
|
||
* the design contains 191 flops. | ||
* synthesizes to > 160MHz on Xilinx Spartan 6 LX9 (speed -3) | ||
* can hit up-to 92% of maximum bus rate for sequential accesses taking into account row open/close and refreshes. |