This shows you the differences between two versions of the page.
|
ac-is:teme-ie:proiect [2023/12/13 22:38] ionut.pascal [Grading] |
ac-is:teme-ie:proiect [2024/01/07 18:47] (current) ionut.pascal old revision restored (2023/12/13 23:58) |
||
|---|---|---|---|
| Line 4: | Line 4: | ||
| * Hard Deadline: **28.12.2023**, **23:59** | * Hard Deadline: **28.12.2023**, **23:59** | ||
| * Publish date: **13.12.2023** | * Publish date: **13.12.2023** | ||
| - | * Last update: **13.12.2023, 22:00** | + | * Last update: **13.12.2023, 23:50** |
| * History: | * History: | ||
| - | * 13.12.2023, 22:00 | + | * 13.12.2023, 23:50 |
| * Publish the assignment | * Publish the assignment | ||
| Line 18: | Line 18: | ||
| ===== Description and requirements ===== | ===== Description and requirements ===== | ||
| + | Floating point has a long history in the engineering field and in computer science. The promoter was Leonardo Torres Quevedo back in 1914; nowadays, we use IEEE754 Standard Implementation. [[https://en.wikipedia.org/wiki/Floating-point_arithmetic|Wiki]] | ||
| + | The assignment consists in implementing a floating point multiplication algorithm for 2 numbers with the following format (S_EEEE_MMMMMMM): | ||
| + | * 1 sign bit - S | ||
| + | * 4 exponent bits - E | ||
| + | * 7 mantissa bits - M | ||
| + | The implementation can follow the proposed state machine: | ||
| + | {{ :ac-is:teme-ie:untitled_diagram.jpg?nolink |}} | ||
| + | Because we encounter a multiplication of fixed point (mantissa), we should implement a dedicated module responsible for this operation. The Booth algorithm is a suitable option which reduces the complexity but keeps a good understanding behind. The size of the operands is dependent on the size of the mantissa. | ||
| + | |||
| + | Requirements: | ||
| + | - Implement Booth algorithm in the dedicated file for 2 8bit operands: | ||
| + | - Take 2 random 8bit numbers of your choice and demonstrate the algorithm on the paper; | ||
| + | - Implement the Verilog code. | ||
| + | - Implement the floating point multiplication algorithm: | ||
| + | - Take 2 random 12bit numbers of your choice which respects the floating point format and demonstrate the multiplication on the paper; | ||
| + | - Implement the Verilog code. | ||
| + | |||
| + | <note important>Don't forget to follow the TODO's inside the code and check for the errors and messages in the console! Checking is implemented inside the testcase!</note> | ||
| + | |||
| ===== Implementation ===== | ===== Implementation ===== | ||
| Line 81: | Line 100: | ||
| ===== Notes ===== | ===== Notes ===== | ||
| - | * For the floating point implementation, the behavior of the register is the one studied in the lab. | + | * For the floating point implementation, the behavior of the register is the one studied in the [[ac-is:lab-ie:lab02#The Register|lab]]. |
| * You can modify the state machine as you like, as long as it respects the requirements. | * You can modify the state machine as you like, as long as it respects the requirements. | ||
| + | * For VIVADO, the top module for simulation is the booth test; when implementing the floating point multiplication, don't forget to change the test | ||
| Line 95: | Line 115: | ||
| * general presentation of your solution; | * general presentation of your solution; | ||
| * description of any complex coding parts that you consider additional explanation is needed and they are too long to be an inline comment; | * description of any complex coding parts that you consider additional explanation is needed and they are too long to be an inline comment; | ||
| + | * Pictures/Scans of your paper demonstrations. | ||
| * The archive shall __**not**__ contain any other files from the implementation folder (i.e. test files, project specific files, etc). | * The archive shall __**not**__ contain any other files from the implementation folder (i.e. test files, project specific files, etc). | ||
| Line 130: | Line 151: | ||
| * **Booth Multiplication Another Example** - [[https://www.javatpoint.com/booths-multiplication-algorithm-in-coa|Click]] | * **Booth Multiplication Another Example** - [[https://www.javatpoint.com/booths-multiplication-algorithm-in-coa|Click]] | ||
| - | ===== Anexă ===== | + | ===== Appendix ===== |