Jamil Khatib

\openhw project template

OpenHWproject template

(C) Copyright 2000 Jamil Khatib.

Contents

1  List of authors and changes
2  Project Definition
    2.1  Introduction
    2.2  Objectives
3  Specifications
    3.1  System Specification
    3.2  External Interfaces
    3.3  Hardware specification
    3.4  Software specification
    3.5  Interface between SW and HW
4  Internal Blocks
5  Design description
    5.1  Decode Unit
        5.1.1  Design notes
        5.1.2  Timing and flow charts
    5.2  Adder/Subtracter Unit
        5.2.1  Design notes
        5.2.2  Timing and flow charts
    5.3  Compare Unit
        5.3.1  Design notes
        5.3.2  Timing and flow charts
    5.4  Scripts, files and any other information
    5.5  Design conventions and coding styles
    5.6  Design Modeling
6  Testing and verifications
    6.1  Simulation and Test benches
    6.2  verification techniques and algorithms
        6.2.1  Verification Software
    6.3  Test plans
7  Implementations
8  Reviews and comments
9  References

1  List of authors and changes

Name Changes Date Contact address
Jamil Khatib Initial release 17-7-2000 khatib@opencores.org

2  Project Definition

2.1  Introduction

Floating point numbers and calculations have great use in every day calculations like banks transactions, scientific calculations, graphics, egineering drawings and even games. These kind of calculations will be very solw if they are done without any hw support. This floating point unit core should deliver speed up the calculations. The hardware core and software libraries is going to be provided.

2.2  Objectives

The main objective of this project is to build an IEEE-754 compatible Floating-point unit core and its software. This core should give high performance and have the ability to interface to any CPU core as well as with the OpenRisc1000 processor.

3  Specifications

3.1  System Specification

3.2  External Interfaces

Inputs to the FPU:

Outputs from the FPU:

OR1K issue and completion units will know what gets in the FPU and when result should come out. If you the calculation times can be variable for the SAME type of operation then we need extra outputs.OR1K core will decide whether can issue FP instructions or not (detect hazards etc.).

3.3  Hardware specification

3.4  Software specification

3.5  Interface between SW and HW

4  Internal Blocks

The hardware can be divided into the following main blocks:

5  Design description

5.1  Decode Unit

5.1.1  Design notes

5.1.2  Timing and flow charts

5.2  Adder/Subtracter Unit

5.2.1  Design notes

5.2.2  Timing and flow charts

5.3  Compare Unit

5.3.1  Design notes

5.3.2  Timing and flow charts

5.4  Scripts, files and any other information

5.5  Design conventions and coding styles

5.6  Design Modeling

6  Testing and verifications

6.1  Simulation and Test benches

Test benches should be made for each execution block at least to verify their operations with any interference from other blocks.

Specifications of test benches TBD.

6.2  verification techniques and algorithms

The functional verifications will be made in two steps

  1. Through SW verification by set of test vectors and checking versus IEEE-754 compliant software.

  2. Through prototyping on FPGA and testing it on real operations and calculations.

6.2.1  Verification Software

6.3  Test plans

Testing should take care of complex operations and well known bugs cased by sequence of operations.

Test plans, equations and operations are TBD

7  Implementations

8  Reviews and comments

9  References


File translated from TEX by TTH, version 2.67.
On 2 Aug 2000, 23:27.