Write your own CPUJump to: Navigation, search
Folder
- 1 processors and MIPS
- 2 programmable logic devices and Verilog HDL
- 3 Openmips Processor Blueprint for teaching edition
- 4 The first instruction of the Ori
- 5 logic, SHIFT and NOP
- 6 Moving
- 7 arithmetic
- 8 Transfer
- 9 Load/store
- Ten co-processor
- One Exception
- A Practice Version Openmips
- - Small Sopc
- - Validation
- the Transplant Uc/os-ii
- - Appendix A tutorial Openmips Interface description of each module
- - Appendix B openmips Implementation of all instructions and corresponding machine code
- - References
|
processors and MIPS
- Basic isa:x86 ARM SPARC Power MIPS
programmable logic devices and Verilog HDL
- Different Pld:pla PAL GAL PROM EPLD CPLD FPGA
- Product-based: With or gate + storage element (trigger)
- Lookup table-based: FPGA general input variable <=5
- Schematic diagram (Schematic)
- Verilog HDL
- Module
- Port:input, output
- Data type:
- NET type:wire (0 1 X Z) Tri wor trior Wand triand tri1 tri0 supply0 supply1
- Type variable: Reg integer Real
- Logic function: Assign (clogging = non-clogging <=)
- Always
- Sensitive signal: Level/Edge (Posedge, Negedge)
- Initial
- Compiler instructions: ' Define ' include ' ifdef ...
- Synthesis (Synthesis): Algorithmic/Behavioral Description--RTL-------------PLD grid table
- Modelsim Simulation
Openmips Processor Blueprint for teaching edition
- Level 5 Pipeline: Refer to, decode, run, access, write back
The first instruction of the Orilogic, SHIFT and NOP
- Related issues (pipelining introduces concurrent competition?) Each stage can be treated as a separate HDL module)
- Data Related: Raw WAR WAW ==> openmips only has raw correlation, such as: Ori $, $, 0x1100; Ori, $ $, 0x0020
- P111 assumes that the read register is to be written on the next clock rising edge. The data that will be written directly as the result output
- if (Reg2_read_o==1 ' B1 && ex_wreg_i==1 ' B1 && ex_wd_i==reg2_addr_o begin reg2_o <= ex_wdata_i;
- Insert Pause Period
- Compiler scheduling (command reflow)
- Data pre-push
Moving
- Special registers Hi, LO?
arithmetic
- Pipeline pause: Keep the PC intact, at the same time before the nth stage of the pause
- CTRL module: There may be a pause request only in the decoding and running phase
- Multiply add instruction: Is this a bit off the principle of RISC?
- Division Instruction (Trial business law)
Transfer
- Delay slots
- Assume the transition during the run phase. There will be 2 invalid instructions.
- The instruction that has entered the reference stage is still invalid: the transfer inference can be performed during the decoding phase. Avoid wasting clock cycles
- P210 Bal is a special case of Bgezal (rs=0)
Load/store
- p258 the relevant specifications of the Wishbone bus?
- p268 MIPS32 Special semaphore mechanism: there is no guarantee that atomic operation must be atomic, and it is agreed that the test set is executed without atomicity. But let ' settings ' take effect only when the atom is actually executing
- Link Loading ll:llbit
- Conditional Storage SC
- Load related issues
- Check to see if there is a load associated with the previous instruction during the decoding phase. Assumption exists. Let the decoding, take the finger pause, and run, access, write back continue (equivalent to inserting a NOP)
co-processor
- The mips32:cp0 is used as a system control, CP1, and CP3 as floating-point processing. CP2 reserved
- Registers in the CP0
- Status
- MMU Related: ENTRYLO0/1 Context
- TLB correlation: Index Random pagemask Wired entryhi ...
- Exception: Badvaddr cause EPC
- Timed Interrupt: Compare
Exception
- Type: RESET, Soft Reset, DSS DINT NMI, Machine Check, Interrupt, ...
- Exact exception (k, transactional?) )
- Handle exceptions in the order in which they are run, rather than in the order in which they occur?
- Assuming that an exception occurs in the delay slot, then the value saved to the EPC is PC-4, otherwise the PC
- Syscall
- Eret
- p332 Assign excepttype_o = {B0, Excepttype_is_eret, 2 ' B0, Instvalid, Excepttype_is_syscall, 8 ' B0};
Practice Version OpenmipsSmall SopcValidationTransplant Uc/os-iiAppendix A tutorial Openmips Interface description of each moduleAppendix B openmips All instructions to implement and the corresponding machine codeReference
Write your own CPU notes