1 |
6 |
root |
<!--# include virtual="/ssi/ssi_start.shtml" -->
|
2 |
|
|
<b><font size=+2 face="Helvetica, Arial"
|
3 |
|
|
color=#bf0000>Project Name: SSRAM interface</font></b>
|
4 |
|
|
<p>
|
5 |
|
|
<font size=+1><b><u>Description</u></b></font>
|
6 |
|
|
<P>
|
7 |
|
|
The 'SSRAM interface core' is a collection of designs for easy integration of synchronous srams (ZBT srams) in your designs.<br>
|
8 |
|
|
<p>
|
9 |
|
|
<font size=+1><b><u>Core Description</u></b></font>
|
10 |
|
|
<p>
|
11 |
|
|
Currently 2 designs have been implemented. ssram_conn and cs_ssram.<br>
|
12 |
|
|
The entity ssram_conn provides a standard interface to the ssram. It provides the pipeline correction and all IO structures needed for high speed bidirectional data transfers (including full FPGA IO-cell usage).<br>
|
13 |
|
|
The entity cs_ssram uses the standard interface to turn the ssram into a cycle shared memory. Because ZBTs feature zero bus latency there is no impact on throughput. Thus providing a low-cost alternative to dual-ported rams.<br>
|
14 |
|
|
<br>
|
15 |
|
|
The design uses attributes to preserve all tri-state enables. Standard compiler strategy is to optimize redundant logic resulting in a single output/tristate enable signal. For maximum performance all output enables have to be preserved. Xilinx and Altera devices (and others probably too) can use their high speed paths to the IO-blocks only if every IO-block has its own output-enable. For ASIC implementations it results in the lowest Tco and Tsu possible.<br>
|
16 |
|
|
The attributes used are for Leonardo Spectrum. Please tell me what attributes should be used for other compilers (like synplicity).
|
17 |
|
|
<p>
|
18 |
|
|
<font size=+1><b><u>Implementations:</u></b></font>
|
19 |
|
|
<li>Standard interface for pipelined ZBTs</li>
|
20 |
|
|
<li>Dual ported memory using cycle shared ssram</li>
|
21 |
|
|
<p>
|
22 |
|
|
<font size=+1><b><u>Current Status:</u></b></font>
|
23 |
|
|
<ul>
|
24 |
|
|
<li>Designs are available in VHDL from OpenCores CVS via <a href="http://www.opencores.org/cvsweb.shtml/">cvsweb</a> or via <a href="/cvsmodule.shtml">cvsget</a></li>
|
25 |
|
|
<li>ToDo:
|
26 |
|
|
<ul>
|
27 |
|
|
<li>Modify the standard interface so it supports pipelined and flow-through ZBTs</li>
|
28 |
|
|
<li>Modify the standard interface for multi-compiler attributes.</li>
|
29 |
|
|
<li>Modify the cycle shared implementation so it can handle more than 2 sources (tri-ported, quad-ported etc. memories)</li>
|
30 |
|
|
</ul>
|
31 |
|
|
</li>
|
32 |
|
|
</ul>
|
33 |
|
|
<p>
|
34 |
|
|
<font size=+1><b><u>Synthesis:</u></b></font>
|
35 |
|
|
<p>
|
36 |
|
|
Using the slowest Altera APEX20KE device 66MHz is possible.<br>
|
37 |
|
|
<p>
|
38 |
|
|
<font size=+1><b><u>Author & Maintainer(s):</u></b></font>
|
39 |
|
|
<ul><a href="mailto:rherveille@opencores.org_NOSPAM">Richard Herveille</a></ul>
|
40 |
|
|
<p><font size=+1><b><u>Mailing-list:</u></b></font>
|
41 |
|
|
<ul><a href=mailto:cores@opencores.org_NOSPAM>cores@opencores.org_NOSPAM</A></ul>
|
42 |
|
|
|
43 |
|
|
|
44 |
|
|
<!--# include virtual="/ssi/ssi_end.shtml" -->
|