| Module | Description |
| pc_reg | Module of PC register |
| if_stage | Instruction Fetch stage |
| if_id_reg | Registers between IF and ID stages |
| id_stage | Instruction Decode stage |
| id_exe_stage | Registers between ID and EXE stages |
| exe_stage | Execute stage |
| exe_mem_reg | Registers between EXE and MEM stages |
| mem_stage | Memory stage |
| mem_wb_reg | Registers between MEM and WB stages |
| wb_stage | Writeback stage |
| except | Module of exception handling |
| | |
| | Instruction Cache top |
| | Data Cache top |
| | | |
| | | JLUT top |
| | | SPC is stored in CAMs, and it will take less than two clock cycles to get address of the CAMs content specified. |
| | | TPC is stored in ubiquitous RAMs. |
| Instruction | Format | Usage |
| campi | opcode, rs, 5’h0, rd, 5’h0, func | campi rd, rs |
| camwi | opcode, rs, rt, 5’h0, 5’h0, func | camwi rt, rs |
| ramwi | opcode, rs, rt, 5’h0, 5’h0, func | ramwi rt, rs |
| ramri | opcode, rs, 5’h0, rd, 5’h0, func | ramri rd, rs |
| 8086 | MIPS |
| AX | s0(R16) |
| CX | s1(R17) |
| DX | s2(R18) |
| BX | s3(R19) |
| SP | s4(R20) |
| BP | s5(R21) |
| SI | s6(R22) |
| DI | s7(R23) |
| CS | t4(R12) |
| DS | t5(R13) |
| ES | t6(R14) |
| SS | t7(R15) |
| IP | t8(R24) |
| oo | 功能 |
| 00 | 如果mmm=110,那么位移量在操作码后面,否则没有使用位移量 |
| 01 | 操作码后面是8位有符号的位移量 |
| 10 | 操作码后面是16位有符号的位移量 |
| 11 | mmm指定一个寄存器而不是一种寻址方式 |
| mmm | 16位寄存器 |
| 000 | DS:[BX+SI] |
| 001 | DS:[BX+DI] |
| 010 | SS:[BP+SI] |
| 011 | SS:[BP+DI] |
| 100 | DS:[SI] |
| 101 | DS:[DI] |
| 110 | SS:[BP] |
| 111 | DS:[BX] |
| rrr | w=0 | w=1 |
| 000 | AL | AX |
| 001 | CL | CX |
| 010 | DL | DX |
| 011 | BL | BX |
| 100 | AH | SP |
| 101 | CH | BP |
| 110 | DH | SI |
| 111 | BH | DI |
| rrr | 段寄存器 |
| 000 | ES |
| 001 | CS |
| 010 | SS |
| 011 | DS |
| 字段 | 说明 |
| d | 运算方向 |
| w | 是否为字 |
| s | 是否符号扩展 |
| disp | 位移量 |
| data | 数据,如立即数 |
| 端口类型 | 端口地址 |
| rs232数据端口 | 20000000H |
| rs232忙位检测 | 20000004H |
| vga显示基址 | 50000000H |
| led | 70000000H |
| 键盘 | 90000000H |
| unsigned int* text_base = (int *)0x000C0000; unsigned int* graphics_base = (int *)0x50000000; //VGA 端口 unsigned int* ps2_base = (int *)0x90000000; //ps2键盘 端口 unsigned int* rs232_base = (int *)0xFFFFE000; unsigned int* rs232_busy = (int *)0xFFFFF000; unsigned int* font_base = (int *)0x000C12C0; //字库 端口 |
| 欢迎光临 DIY编程器网 (http://diybcq.com/) | Powered by Discuz! X3.2 |