Posts

Showing posts from December, 2022

How to build a very simple RISC-V Processor

Image
Disclaimers I’m not an expert, and this was done a year ago, so I might get a lot of things wrong. Introduction The Task Last year (December 2021), The final course project for “HARDWARE SYNTHESIS LAB” was to implement in FPGA an Calculator with following spec: 5 decimal point precision Can do Addition, Subtraction, Multiplication, Division, and Square Root Use UART Serial Terminal as an UI Done Individually Solutions: Motivation for using High-level Approach One of the most common solutions last year was to do the UI Interaction with a Finite State Machine (FSM), a communicating UART state machine, and a dedicated circuit to perform calculations using Fixed Point Decimal Representation. This method is efficient and straight-forward to implement. However, The limitations of this approach is that translating Calculator design into an FSM is a laborious process since FSM is really low-level. This makes complex functionalities difficult. Given that this year’s final project required a

How to build a very simple RISC-V Processor

Image
Disclaimers I’m not an expert, and this was done a year ago, so I might get a lot of things wrong. Introduction The Task Last year (December 2021), The final course project for “HARDWARE SYNTHESIS LAB” was to implement in FPGA an Calculator with following spec: 5 decimal point precision Can do Addition, Subtraction, Multiplication, Division, and Square Root Use UART Serial Terminal as an UI Done Individually Solutions: Motivation for using High-level Approach One of the most common solutions last year was to do the UI Interaction with a Finite State Machine (FSM), a communicating UART state machine, and a dedicated circuit to perform calculations using Fixed Point Decimal Representation. This method is efficient and straight-forward to implement. However, The limitations of this approach is that translating Calculator design into an FSM is a laborious process since FSM is really low-level. This makes complex functionalities difficult. Given that this year’s final project required a