1 |
6 |
root |
<!--# include virtual="/ssi/ssi_start.shtml" -->
|
2 |
|
|
<p><font color="#BF0000" size="5" face="Helvetica, Arial"><b>Project
|
3 |
|
|
Name: Embedded FPGA Core</b></font> </p>
|
4 |
|
|
|
5 |
|
|
<p><font size="2">(See change Log at bottom of page for
|
6 |
|
|
changes/updates)</font> <br>
|
7 |
|
|
</p>
|
8 |
|
|
|
9 |
|
|
<p><font size="4"><u>Architecture Description</u></font> </p>
|
10 |
|
|
|
11 |
|
|
<p>Field-Programmable
|
12 |
|
|
Gate Arrays (FPGAs) are flexible and reusable high-density
|
13 |
|
|
circuits that can be (re)configured by the designer, enabling the
|
14 |
|
|
VLSI design/validation/ simulation cycle to be performed more
|
15 |
|
|
quickly and cheaply.</p>
|
16 |
|
|
|
17 |
|
|
<p>The flexibility
|
18 |
|
|
provided by FPGAs cause a substantial performance penalty due to
|
19 |
|
|
non-specialized circuit design and signal delay through the
|
20 |
|
|
programmable routing resources, compared do ASIC designs but
|
21 |
|
|
FPGAs are still 1000 times faster than circuit simulators.</p>
|
22 |
|
|
|
23 |
|
|
<p>This core
|
24 |
|
|
provides plural of high-speed reprogrammable logic. This FPGA has
|
25 |
|
|
regular structure and consists of three configurable elements:
|
26 |
|
|
Look-Up-Tables (LUTs), each with 8 inputs and 2 outputs, full 4b
|
27 |
|
|
adders and Input-Output Cells (IOCs). It logic size is
|
28 |
|
|
aproximately equal to 1500 Virtex LUTs. The development system
|
29 |
|
|
offers fully automated logic placement and routing (more about
|
30 |
|
|
P&R software can be found in FPGA P&R Software document).
|
31 |
|
|
Every non-adder function is stored in static memory array, called
|
32 |
|
|
LUT, during programing phase. Also connections are established to
|
33 |
|
|
match desired schematics. Programing data should be supplied by
|
34 |
|
|
any external data source, e.g. main memory, disk, processor
|
35 |
|
|
built.</p>
|
36 |
|
|
|
37 |
|
|
<p><i>NOTE: This
|
38 |
|
|
version does not support multiple FPGA connection, but FPGA
|
39 |
|
|
design can be easily adopted, connecting status registers in
|
40 |
|
|
Input Output Logic module. There is also no tristate support.</i></p>
|
41 |
|
|
|
42 |
|
|
<p>Full specification <a
|
43 |
|
|
href="http://www.opencores.org/cores/fpga/Fpga.pdf">Fpga.pdf (84k)</a>
|
44 |
|
|
.</p>
|
45 |
|
|
|
46 |
|
|
<p>More information
|
47 |
|
|
about the WISHBONE SoC and a full specification can be found <a
|
48 |
|
|
href="http://www.opencores.org/wishbone/">here</a>. </p>
|
49 |
|
|
|
50 |
|
|
<p><font size="4"><u></u></font> </p>
|
51 |
|
|
|
52 |
|
|
<p><font size="4"><u>Software
|
53 |
|
|
Description</u></font></p>
|
54 |
|
|
|
55 |
|
|
<p>Placement and
|
56 |
|
|
routing software is a tool, which automaticaly (or with some user
|
57 |
|
|
help) distributes given elements, so that they match certain
|
58 |
|
|
criteria. For FPGA (Field Programmable Gate Array) this criteria
|
59 |
|
|
usully is limited number of FPGA resources (connections, number
|
60 |
|
|
of programmable elements, speed of (or part of) circuit, etc).
|
61 |
|
|
More about resources and their functionality can be found in FPGA
|
62 |
|
|
Architecture document.</p>
|
63 |
|
|
|
64 |
|
|
<p>Command line utility is in development, which performs mapping,
|
65 |
|
|
placement and routing for specified
|
66 |
|
|
architecture. Currently it supports two input file types:</p>
|
67 |
|
|
|
68 |
|
|
<ul>
|
69 |
|
|
<li>Verilog, GTECH library, technology independent</li>
|
70 |
|
|
<li>EDIF, technology independent</li>
|
71 |
|
|
</ul>
|
72 |
|
|
|
73 |
|
|
<p>Since P&R is
|
74 |
|
|
NP-complete problem, no optimal practical solution for large
|
75 |
|
|
placement can be found, so we are forced to search for
|
76 |
|
|
sub-optimal solution.</p>
|
77 |
|
|
<p>KRPAN P&R Software Beta v0.1 is now available for download, but
|
78 |
|
|
it still needs a lot of work<br>
|
79 |
|
|
<a href="http://www.opencores.org/cores/fpga/KRPAN.jar">KRPAN.jar (118k)</a>
|
80 |
|
|
(Requires <a href="http://java.sun.com/products/jdk/1.2/index.html">Java Runtime Environment v1.2</a>).</p>
|
81 |
|
|
<p><code>.jar</code> files can be run using JRE on command line:<br>
|
82 |
|
|
<code>java -jar KRPAN.jar</code></p>
|
83 |
|
|
<p>Jar (code correctness) can be verified using Sun's <code>jarsigner</code> command line utility.
|
84 |
|
|
OpenCores (self published) certificate is available <a href="http://www.opencores.org/cores/fpga/opencores.cer">here</a><br>
|
85 |
|
|
<b>KRPAN P&R software is published under <a href="http://www.gnu.org">GNU</a> <a href="http://www.gnu.org/philosophy/categories.html">GPL</a> license, available <a href="http://www.opencores.org/cores/fpga/gpl.txt">here</a>.</b></p>
|
86 |
|
|
<p>Download KRPAN P&R API Documentation (<code>javadoc</code>)
|
87 |
|
|
<a href="http://www.opencores.org/cores/fpga/docs.jar">docs.jar (398k)</a>
|
88 |
|
|
.</p>
|
89 |
|
|
<p>Complete KRPAN P&R Java sources
|
90 |
|
|
<a href="http://www.opencores.org/cores/fpga/sources.jar">sources.jar (133k)</a>
|
91 |
|
|
.</p>
|
92 |
|
|
|
93 |
|
|
<p>Java programming
|
94 |
|
|
language was choosed, to allow full portabillity on several
|
95 |
|
|
platforms and faster development.<br>
|
96 |
|
|
Also we conjecture that Java will become more supported and used
|
97 |
|
|
and have more computing potential. Java console applications
|
98 |
|
|
require 70% to 250% the speed of maximally optimized C programs
|
99 |
|
|
to calculate same results (only Windows platform was tested, but
|
100 |
|
|
compilers provided by Sun share same code). It is estimated, for
|
101 |
|
|
this application, that Java would run 100% slower than matching C
|
102 |
|
|
program.</p>
|
103 |
|
|
|
104 |
|
|
<p>KRPAN screenshot after routing phase:<br>
|
105 |
|
|
<IMG SRC="sshot1.gif"></p>
|
106 |
|
|
|
107 |
|
|
<p>Preliminary SW documentation is available <a href="http://www.opencores.org/cores/fpga/fpga_sw.pdf">here</a> (PDF, 81k)</p>
|
108 |
|
|
|
109 |
|
|
<p><font size="4"><u>Status</u></font></p>
|
110 |
|
|
|
111 |
|
|
<ul>
|
112 |
|
|
<li>P&R software coding started 15th february</li>
|
113 |
|
|
<li>full source code available when first stable
|
114 |
|
|
version will be reached - aproximately at end of March</li>
|
115 |
|
|
<li><font color="#FF0000">HELP NEEDED</font> - more
|
116 |
|
|
Verilog/Edif examples are needed to test, if you wish to
|
117 |
|
|
help please contact us first before sending actual files.</li>
|
118 |
|
|
<li><font color="#FF0000">SUGGESTIONS NEEDED.</font> You can help with
|
119 |
|
|
architecture design - many things are still open.</li>
|
120 |
|
|
<li>message will be posted to <code>cores@opencores.org</code> when any
|
121 |
|
|
significant progress is made. <code>cores@opencores.org</code> is at the same time
|
122 |
|
|
official mailing list for FPGA project.</li>
|
123 |
|
|
</ul>
|
124 |
|
|
|
125 |
|
|
<p> </p>
|
126 |
|
|
|
127 |
|
|
<p><font size="4"><u>Authors / Maintainers</u></font></p>
|
128 |
|
|
|
129 |
|
|
<p>Marko Mlinar - SW part, architecture<br>
|
130 |
|
|
<a href="mailto:markom@opencores.org_NOSPAM">markom@opencores.org</a>
|
131 |
|
|
<br>
|
132 |
|
|
Damjan Lampret - HW design<br>
|
133 |
|
|
<a href="mailto:lampret@opencores.org_NOSPAM">lampret@opencores.org</a>
|
134 |
|
|
</p>
|
135 |
|
|
|
136 |
|
|
<p>Feel free to send us comments, suggestions or bug reports.</p>
|
137 |
|
|
|
138 |
|
|
<p><font size="4"><u></u></font> </p>
|
139 |
|
|
|
140 |
|
|
<p><a NAME="LOG"><font size="4"><u>Change Log</u></font></a> </p>
|
141 |
|
|
|
142 |
|
|
<ul>
|
143 |
|
|
<li>13/3/2001 MM Initial web page </li>
|
144 |
|
|
<li>30/3/2001 MM Added KRPAN v0.1 </li>
|
145 |
|
|
<li>5 /4/2001 MM Modifications to architecture, spec updated </li>
|
146 |
|
|
<li>20/4/2001 MM first SW spec available, added screen shot </li>
|
147 |
|
|
</ul>
|
148 |
|
|
<!--# include virtual="/ssi/ssi_end.shtml" -->
|