How is it possible that cnum is not synthesised what does


Digital System Design Project 1 - Computer and RPN Calculator

Aims

1. To learn how to design your own computer from first principles.

2. To learn how to program your own computer in machine code.

Digital designs often include a microprocessor. Perhaps the fastest way of becoming familiar with microprocessors, and how to program them, is to build a simple microprocessor from scratch.

Prior Preparation

There are only two laboratory sessions allocated to this project. You must therefore aim to have finished all your hardware prior to the second laboratory session. You will need to rely primarily on ModelSim for your debugging (at home).

If you do not already know, you should find out how an RPN calculator works. (RPN calculators are normally faster to use than ordinary calculators. They are also simpler to implement because there is no need for brackets.)

Question

Why will Quartus complain if the Instruction Cycle is split over two "always" blocks, with the first having "if (go)" and the second having "if (Reset)"?

Questions

- How does Pmem(IP, instruction) work?

- What does the test code do?

- Why, after showing 19, does the display remain on 0 until the IP reaches 00 again?

- Are letters or numbers being stored into the program memory?

- How does the Turbo feature work?

- What does it mean to have synchronised the turbo signal?

- What can go wrong if we had used Turbo instead of turbo_safe?

- What do get_number and get_location do?

o How do they relate to the CPU Instruction Set?

- What do the instructions `MOV `SHL and `MOV `SHR do exactly?
o Why is an assignment made to the Flag Register?

- How is it possible that "cnum" is not synthesised? What does the synthesiser do instead?

- Look at the RTL. Why, with only a few lines of code, is there now a bird's nest of wires?

- Describe exactly how each Instruction works.

- Why does using the addresses 0, 4 and 8 introduce a delay?

- When the displayed Dout changes on the board, is the IP 4 or 5? Why?

- The thirty-two registers of the CPU are all unsigned. Yet we allow signed comparisons. How does this work?

- Explain why the above test program produces what it does.

- What is being stored into program memory now? Functions? Letters? Or binary numbers?

- What does the first program do, and why?

- What about the two lines of changes, related to move-with-shift? What should they do?

- Why might an atomic instruction, such as ATC, be important in a CPU?

- What does the line "assign Dval = Rgout[`DVAL];" do?

o Why do we want that line?

- What change did you have to make to your program?

- Does your computer have to evaluate 8'b1 << bit every time you want to set or clear a bit? Explain.

- Why is a flip-flop required?

- Why do we not want to use two or more flip-flops?

- Why not use negedge?

- Why might we want the CPU to automatically clear the Flag Register after a Reset?

- What does the above Verilog code do?

- What does the test program do?

o Why is 128 loaded into the Flag Register?

- What happens if the Program Memory contains an instruction to store a value into Register 28 (`RDINP)? Will the value stay there? For how long? Which takes precedence if both a move instruction and the hardware try to change `RDINP at the same time?

- Is it possible for `RDINP to change halfway through when the programmer tries to move

`RDINP into another register? When Turbo mode is off?

- Why might we have chosen to use the falling edge rather than the rising edge, or in other words, why do we want to detect push button releases rather than push button presses?

- When you first started, did you think you would ever finish Part 1?

Attachment:- Assignment.rar

Request for Solution File

Ask an Expert for Answer!!
Computer Engineering: How is it possible that cnum is not synthesised what does
Reference No:- TGS01406962

Expected delivery within 24 Hours