1 |
13 |
root |
<!--# include virtual="/ssi/ssi_start.shtml" -->
|
2 |
|
|
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
|
3 |
|
|
<html>
|
4 |
|
|
<head>
|
5 |
|
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
6 |
|
|
<meta name="GENERATOR" content="Mozilla/4.7 (Macintosh; I; PPC) [Netscape]">
|
7 |
|
|
</head>
|
8 |
|
|
<body>
|
9 |
|
|
<b><font face="Helvetica, Arial"><font color="#BF0000"><font size=+2>Project
|
10 |
|
|
Name: Floating Point Unit</font></font></font></b>
|
11 |
|
|
<p><font size=-1>(See change Log at bottom of page for changes/updates)</font>
|
12 |
|
|
<br>
|
13 |
|
|
<p><u><font size=+1>Description</font></u>
|
14 |
|
|
<p>This is a single precision floating point unit. It is fully IEEE 754
|
15 |
|
|
compliant. It can currently perform Add/Sub, Mul and Divide operations,
|
16 |
|
|
as well as integer to floating point and floating point to integer conversions.
|
17 |
|
|
It supports four rounding modes: Round to Nearest Even, Round to Zero,
|
18 |
|
|
Round to +INF and Round to -INF.
|
19 |
|
|
<p>There is now also a separate FP compare unit. It is located in the fpu/fcmp
|
20 |
|
|
directory.
|
21 |
|
|
<br>
|
22 |
|
|
<p><u><font size=+1>Motivation</font></u>
|
23 |
|
|
<ul>
|
24 |
|
|
<li>
|
25 |
|
|
A 100% IEEE 754 compliant Floating Point Unit</li>
|
26 |
|
|
|
27 |
|
|
<li>
|
28 |
|
|
Usable by the OR1K CPU</li>
|
29 |
|
|
|
30 |
|
|
<li>
|
31 |
|
|
Options to extend the core</li>
|
32 |
|
|
|
33 |
|
|
<li>
|
34 |
|
|
Free !</li>
|
35 |
|
|
</ul>
|
36 |
|
|
|
37 |
|
|
<p><br><u><font size=+1>Compatibility</font></u>
|
38 |
|
|
<p>To the best of my knowledge the FPU is 100% IEEE 754 compliant. I have
|
39 |
|
|
run over 14Mil. test vectors on it, that where generated using the
|
40 |
|
|
SoftFloat library by John R. Hauser, which can be found at: <a href="http://HTTP.CS.Berkeley.EDU/~jhauser/arithmetic/SoftFloat.html">http://HTTP.CS.Berkeley.EDU/~jhauser/arithmetic/SoftFloat.html</a>
|
41 |
|
|
<br>The test pattern generator is included with the distribution.
|
42 |
|
|
<br>
|
43 |
|
|
<p><u><font size=+1>Performance</font></u>
|
44 |
|
|
<ul>
|
45 |
|
|
<li>
|
46 |
|
|
Single cycle execution</li>
|
47 |
|
|
|
48 |
|
|
<li>
|
49 |
|
|
4 stage pipeline (this will probably be change in the future)</li>
|
50 |
|
|
</ul>
|
51 |
|
|
|
52 |
|
|
<p><br><u><font size=+1>Implementing the Core</font></u>
|
53 |
|
|
<p>It is very difficult to partition such a complex piece of hardware for
|
54 |
|
|
optimal pipe lining. Therefore you will need a synthesis tool that has
|
55 |
|
|
a "retiring" feature to obtain best results.
|
56 |
|
|
<p>Actual Add/Sub, Multiply and Divide cores must be replaced in the primitives.v
|
57 |
|
|
file, or your synthesis tool must be able to synthesize them for you. I
|
58 |
|
|
might fix this in the future.
|
59 |
|
|
<br>
|
60 |
|
|
<p><u><font size=+1>Status</font></u>
|
61 |
|
|
<p>Second version of the core is released. Included with the release is
|
62 |
|
|
also a test bench and a test pattern generator.
|
63 |
|
|
<p>I won't be doing any more work on the core in the near future, except
|
64 |
|
|
for bug fixes.
|
65 |
|
|
<p>The core can be downloaded from OpenCores CVS via <a href="http://www.opencores.org/cvsweb.shtml/">cvsweb</a>
|
66 |
|
|
or via <a href="/cvsmodule.shtml">cvsget</a> (use fpu for module name)
|
67 |
|
|
<br>
|
68 |
|
|
<p><u><font size=+1>To-Do</font></u>
|
69 |
|
|
<p>Things that need to be done:
|
70 |
|
|
<ul>
|
71 |
|
|
<li>
|
72 |
|
|
Add a remainder function</li>
|
73 |
|
|
|
74 |
|
|
<li>
|
75 |
|
|
Predict leading zeros to improve performance of post normalize unit</li>
|
76 |
|
|
</ul>
|
77 |
|
|
|
78 |
|
|
<p><br><u><font size=+1>Author / Maintainer</font></u>
|
79 |
|
|
<p>I have been doing ASIC design, verification and synthesis for over 15
|
80 |
|
|
years. I hope you find this cores useful. Please send me a note if you
|
81 |
|
|
intend to use it !
|
82 |
|
|
<p>Many thanks to Damjan Lampret for his support and motivation !
|
83 |
|
|
<p>Rudolf Usselmann
|
84 |
|
|
<br><a href="mailto:rudi@asics.ws_NOSPAM">rudi@asics.ws_NOSPAM</a>
|
85 |
|
|
<br><a href="http://www.asics.ws">www.asics.ws</a>
|
86 |
|
|
<p>Feel free to send me comments, suggestions and bug reports.
|
87 |
|
|
<br>
|
88 |
|
|
<p><u><font size=+1>Change Log</font></u>
|
89 |
|
|
<p>9/16/00 RU
|
90 |
|
|
<br>- Added FP compare unit
|
91 |
|
|
<p>9/15/00 RU
|
92 |
|
|
<br>- Added int to float and float to int conversion
|
93 |
|
|
<br>- Fixed documentation
|
94 |
|
|
<p>9/13/200 RU
|
95 |
|
|
<br>- Initial release
|
96 |
|
|
<br>
|
97 |
|
|
</body>
|
98 |
|
|
</html>
|
99 |
|
|
<!--# include virtual="/ssi/ssi_end.shtml" -->
|