IEEE Standard 754 Floating Point Numbers Multiplier
IEEE 754 Floating Point Multiplier是一個基於Verilog的設計,使用有限狀態機結構實現。其主要功能是接收兩個浮點數,將它們相乘,然後輸出IEEE 754格式的乘積浮點表示。這個專案使用了8個不同的狀態,每個狀態負責不同的運算和數據處理任務。

Project Details


IEEE 754 Floating Point Multiplier專案的目標是用Verilog實現一個能夠有效處理浮點數相乘並且可以合成的電路。IEEE 754是一種標準的浮點數表示方式,它包含了三個部分:符號位(sign bit)、指數部分(exponent)、和小數部分(fraction)。我們的設計需要處理這三個部分,並實現浮點乘法的運算。

Specification

  • It is active-high synchronous reset architecture
  • The rounding mode is round to nearst
  • You should try to maximize the operation frequency of this pipeline floating multiplier
  • The output latency after data input should be smaller than 60 clock cycles

I/O Defination

Signal Name Direction Bit Width Description
CLK Input 1 Clock signal
RESET Input 1 Synchronous reset signal (active high)
ENABLE Input 1 Asserted when input data is vaild
DATA_IN Input 8 The data will input when ENABLE is high
DATA_OUT Output 8 Output data
READY Output 1 Asserted when DATA_OUT is vaild

Design

這個專案的核心結構是有限狀態機(finite state machine),它共包含8個不同的狀態,每個狀態都負責不同的任務。
以下是每個狀態的主要功能:
  1. Idle:在閒置狀態下,所有的值都被歸零,準備接收新的輸入。這包括清除暫存器、重置接線、和輸出控制訊號
  2. DataIn:這個狀態用於將輸入的浮點數資料分別存儲至 A 和 B,準備進行後續的運算
  3. Unpack:根據IEEE 754格式,將輸入的浮點數資料拆解為符號位(sign)、指數(exponent)和小數部分(fraction)
  4. Mul0:使用Chip Wise乘法器對A和B的小數部分(fraction)進行乘法運算
  5. Mul1:處理符號位(sign bit)以及對指數(exponent)進行加法運算
  6. Norm:這個狀態負責處理溢位,確保結果在浮點數表示的有效範圍內,同時進行四捨五入運算
  7. Pack:將計算結果分成8組,準備進行後續的輸出
  8. Output在最終的狀態下,將計算結果以IEEE 754浮點表示輸出