代做Lab 7: Four-Function Calculator代做Java语言

2024-12-05 代做Lab 7: Four-Function Calculator代做Java语言

Lab 7: Four-Function Calculator

Sequential Design III

Total Points: 150

Overview

We are all familiar with the basic four-function calculator which has evolved over the years from the ancient two-function (addition and subtraction) abacus to today's ubiquitous app on our mobile devices (check out this history of the calculator (https://www.thecalculatorsite.com/articles/units/history-of-the-calculator.php)).  The goal of this project is to emulate a four-function calculator on the DE2-115 board. This is essentially an example of Register Transfer Level (RTL) design in which the overall funtionality is fairly simple to state: you perform. a sequence of computations by entering decimal numbers   and arithemtic operations on a numeric keypad and observe the results on a    numeric display (typically an LCD screen).

Emulating this functionality on the DE2-115 board poses a couple of challeneges.

·  Unless we connect a keypad to the board (future project!) we have to figure out a way of using the 4 push-buttonn keys and the slider switches to enter  numbers and operations.

·  Until we figure out how to use the LCD display (future project!) we must settle for displaying the results on the 7-segment HEX displays.

Preparation

·  Review the lectures on RTL design

(https://umich.instructure.com/courses/700375/pages/session-17-register-transfer-level-rtl- design)and Sequential Multiplication

(https://umich.instructure.com/courses/700375/pages/session-19-sequential-multiplication)and use the included Verilog specifications for the Cash Register and Booth Multiplier projects to  practice debugging and verifying functional correctness using ModelSim.

·  Review the included starter and helper Verilog modules.

Design Specification

The calculator performs addition (+), subtraction (-), multiplication (x),and quotient (/) operations on 11-bit two's complement integers (full-fledged division requires introducing floating- point numbers which are beyond the scope of EECS 270!)

I/O Interface

Figure 1 shows the datapth/control decomposition and the DE2-115 interface of the calculator.

·  Entering and displaying numbers: Signed-magnitude numbers, in the range [-1023,1023], can be entered using SW[10:0] and should be displayed on {HEX7, HEX6, HEX5, HEX4}.

Operation results should be displayed on {HEX3, HEX2, HEX1, HEX0}. Numbers outside the range [-999,999] should be displayed as  indicating "can't be displayed'.

·  Entering operations: The four arithmetic operations can be entered by pressing a pushbutton KEY with SW[17] set to 0. Refer to the mapping in Figure1.

·  Entering commands: Besides entering numbers, two KEYs are used to enter the following commands when SW[17] is set to 1:

= (equals): Pressing KEY[3] displays the result of the operation on {HEX3, HEX2, HEX1, HEX0}.

C (clear): Pressing KEY[0] clears the result display and returns the calculator to its initial state.

·  Overflow indicator: Overflow should be indicated by LEDG[8] if any operation result is

outside the range of 11-bit two's complement numbers, ie., [-1024,1028] (would have been better if this was a red LED because of its location between the HEX displays!)

The calculator uses the built-in 50MHz CLOCK_50 which may need to be slowed down, using the

Clock_Div module (https://umich.instructure.com/courses/700375/files/38114943?wrap=1)   (https://umich.instructure.com/courses/700375/files/38114943/download?download_frd=1) , to   eliminate potential timing errors.

 

Figure 1: Four-Function Calculator Interface and Datapath/Control Decomposition Operation