Question 1: Verilog Part
In the website;
http://www.marmaralectures.com/referenceforsecondproject/
There is code for the Bird CPU, the keypad, 7-segment display, the main module, and the assembler with some missing sections (marked with the remark to be added).
- Complete the missing sections in the all code given,
- Load it into the FPGA kit,
- Connect the keypad and the 7-segment monitor to FPGA.
Write an assembly program in Bird which will turn your hardware into a pocket calculator which is capable of adding and multiplying numbers.
- # key will act as sum (ie, +)
- * key will act as multiplication (ie, *)
There will be no previlege in calculations, ie, if you enter 3#2*10 the result will be 50, not 23. Or, in other words, + and * will have the same privilege.
In your code, you must have at least two function calls, call addit and call mult, to perform addition and multiplication after you finish entering a number and press * or #.
Your calculator must read the numbers from the keypad and display them in decimal on seven segment display.To display your result in decimal, you must write an additional piece of code (Assembly code not in Verilog) to convert your hexadecimal result into decimal (or binary coded decimal, BCD). You must do this in software and NOT in hardware. Some hints on how this can be done is described in the following link:
https://my.eng.utah.edu/~nmcdonal/Tutorials/BCDTutorial/BCDConversion.html Disregard BCD conversion in hardware part.
There is an accompanying video which shows how the system you will build should work. (Note that in this video numbers are hexadecimal but you will implement as decimal)
Question 2: Logisim Part
You will implement Bird in Logisim.
You have;
Bird CPU
Two 16-bit switchboards, switchboards 1 and 2
Two Push Button, PB1 and PB2
One 4*7-segment display
Your assembly program will have a variable sum, which is initialized to sum=0 at the start. Then your code will continuously poll the 16- bit switchboards (16-bit pins).
If PB1 is pressed, you will read the number from switchboard 1, calculate sum=sum+(entered number), display new sum on 4*7-segment register. If PB2 is pressed, you will read the number from switchboard 2, calculate sum=sum+(entered number)*(entered number), display new sum on 4*7-segment register.
The numbers must be converted to decimal before displaying. The conversion process must be done in software in a function.
Reviews
There are no reviews yet.