Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
branch: master
Fetching contributors…

Cannot retrieve contributors at this time

67 lines (52 sloc) 2.387 kb
\annex
\chapter{Modulo de operações em ponto flutuante}
\label{annex:fpu}
O módulo fpu\_double \cite{FPU_DOUBLE} implementa o IEEE-754 \cite{IEEE754}, que define
o padrão para a aritmética em ponto flutuante. Este módulo implementa as 4 operações básicas
que são adição, subtração, multiplicação e divisão. A Figura~\ref{fig:fpu_double} ilustra
a arquitetura implementada.
\begin{figure}[ht]
\centering
\includegraphics[width=.6\textwidth]{fpu_double}
\caption{Componentes do módulo FPU.}
\label{fig:fpu_double}
\end{figure}
A implementação do módulo define 7 sinais de entrada e 7 sinais de saída. A arquitetura
topo do módulo pode ser vista na Figura~\ref{fig:fpu_double_top}.
\begin{figure}[ht]
\centering
\includegraphics[width=.5\textwidth]{fpu_double_top}
\caption{Arquitetura topo do módulo FPU.}
\label{fig:fpu_double_top}
\end{figure}
As entradas do módulo são:
\begin{itemize}
\item clk: {\it{Clock}} do módulo. Todos os blocos internos sincronizam o clock com esta entrada.
\item rst: {\it{Reset}} assíncrono. Sinal global que reinicia todos os registradores do módulo.
\item enable: Habilita/desabilita o funcionamento do módulo.
\item rmode: Modo de arredondamento, sendo que é possível selecionar um arredondamento para
o número ímpar mais próximo, para zero, para cima ou para baixo.
\item fpu\_op: Modo de operação.
\item opa: Valor de 64 bits do primeiro número.
\item opb: Valor de 64 bits do segundo número.
\end{itemize}
As saídas do módulo são:
\begin{itemize}
\item out: Resultado da operação em 64 bits.
\item ready: Sinal que indica que a operação já está pronta.
\item underflow: Sinal que indica um {\it{underflow}} na operação desejada.
\item overflow: Sinal que indica um {\it{overflow}} na operação desejada.
\item inexact: Sinal que indica que o resultado da operação não é exato.
\item exception: Sinal que indica que ocorreu alguma exceção durante o cálculo.
\item invalid: Sinal que indica que o resultado é inválido.
\end{itemize}
%- Each operation takes the following amount of clock cycles to complete:
%- 1. addition : 20 clock cycles
%- 2. subtraction: 21 clock cycles
%- 3. multiplication: 24 clock cycles
%- 4. division: 71 clock cycles
%\lstinputlisting[language=VHDL,
% frame=box,
% label=lst:fpu_double,
% caption=Descrição em VHDL da arquitetura topo do módulo fpu\_double.]{code/fpu_double.vhd}
%
Jump to Line
Something went wrong with that request. Please try again.