[FPGA]MIPS CPU及ISA设计

2016-01-19  本文已影响1218人  st0rm23

CPU

CPU功能简介

支持指令

指令类型 指令名
R-type add
R-type sub
R-type and
R-type or
R-type xor
R-type nor
R-type slt
R-type sll
R-type srl
R-type sllv
R-type srlv
R-type jr
R-type mfc0
R-type mtc0
I-type addi
I-type andi
I-type ori
I-type xori
I-type lui
I-type lw
I-type sw
I-type lh
I-type sh
I-type lb
I-type sb
I-type beq
I-type bne
I-type slti
J-type j
J-type jal
J-type syscall
J-type eret

中断

中断相关指令

CP0主要寄存器说明

寄存器 编号 作用
Status 12 状态寄存器、特权、中断屏蔽位及使能可控位
Cause 13 中断异常类型及中断持起位
EPC 14 中断返回地址

CP0中断协处理数据通路

CP0_data_path.png

CPU数据通路实现

datapath.png

CPU时序状态转移

state_diagram.png

CPU数据通路信号控制

cpu_control.png

这些控制信号直接地对应于上面那个时序状态图。也就是在某个状态的时候控制数据通路的控制信号输入的值。那么数据通路就会根据输入的值执行不同的操作即可执行相应的结果。

RAM

RAM简介

VGA外设

VGA显示接口模块简介

显示器接口模块

VGA接口模块.png

VGA显示器接口模块的核心是vgac也就是controller模块,controller模块根据扫描时钟送出行/场同步信号hsync/vsync给VGA显示器,同时送出已经转化好的该时钟周期内扫描像素点的行/列位置row_addr/col_addr。将行/列位置进行计算后得到一个内存的地址,通过选择器与CPU_DATA经过条件选择后送入vram,取得当前像素的显示数据,包括颜色和ascii码。将ascii码送入font_dev得到点阵的数据data,在和之前的color进行与运算将最终的RGB送入VGA显示器,这样就完成了整个VGA接口模块的显示过程。

键盘外设

键盘简介

键盘模块可以接受键盘发来的扫描码,并且内部具有32位的硬件缓冲区。当缓冲区中有数据的时候将会将int位置位高,表示当前存在中断,用于通知CPU进行处理。

键盘外设模块

ps2_keyboard.png

Ps2键盘模块的核心为ps2_kbd模块。Ps2_kbd模块根据扫描时钟clk不断地对PS2C,PS2D进行扫描并存入队列中,如果队列中非空,那么ready=1也就是处于有键盘输入,通知CPU中断。当wea置为0的时候,也就是表示为读取状态,其内部的FIFO队列将在当前时钟周期结束时弹出一个扫描码,如果FIFO队列为空,那么重新将ready置为0,表示已经读完数据,不对CPU进行中断。

上一篇下一篇

猜你喜欢

热点阅读