计算机系统综合设计
设计报告
组长:张冠(09003105)
成员:杨 俊(09003209)
孙啸寅(09003112)
万乾坤(09003218)
李传佑(09003214)
刘 森(09003110)
黄 河(09003206)
东南大学计算机科学与工程学院
二OO六年九月
设计名称 | 基于MIPS32的SOC设计 | |||||
完成时间 | 2006.9 | 验收时间 | ||||
本组成员情况 | ||||||
姓 名 | 学 号 | 承 担 的 任 务 | 成 绩 | |||
张冠 | 09003105 | mips32CPU、CTC、PWM、WDT、BIOS、 实验报告、最终测试 | ||||
刘 森 | 09003110 | LED、LCD | ||||
孙啸寅 | 09003112 | mips32CPU、I/O模块 | ||||
黄 河 | 09003206 | UART | ||||
杨 俊 | 09003209 | mips32CPU、INT32、SOC模块 | ||||
李传佑 | 09003214 | KEY,部分BIOS | ||||
万乾坤 | 09003218 | Mini C Compilers | ||||
注:本设计报告中各个部分如果页数不够,请大家自行扩页,原则是一定要把报告写详细,能说明本组设计的成果和特,能够反应小组中每个人的工作。报告中应该叙述设计中的每个模块。设计报告将是评定每个人成绩的一个重要组成部分。
本组设计的功能描述(含所有实现的模块的功能) |
SOC模块 串联CPU和外围接口模块,实现片上系统的功能。 MEMorIO模块 该模块功能作用是给cpu添加io接口,当读写mem时给RAM输出存储器读写信号,当读写io时给外设输出io读写信号,提供数据线和地址线与外设连接. UART模块 简单的串行通信模块。负责控制将CPU来的8位数据并转串,然后按照异步串行通信数据格式输出,将串口来的8位串行数据串转并,并在CPU请求的时候输入给CPU。 LED模块 通过向该控制电路写32位数据,经过译码控制共阳极的7段LED显示。32位数每半个字节控制一位7段LED,从高位到地位排列。每个LED灯显示十六进制数,从0到F。 LED0模块 LED的附属模块,一个LED灯的输出显示。 KEY模块 自动扫描4×4的键盘,当有键盘按下的时候扫描键值,将键值记录到键值寄存器,然后向CPU发出中断。CPU响应中断,当CPU读出键值后,撤销中断请求。 CTC模块 定时/计数器模块。两个定时/计数器CNT0和CNT1。具有计数和定时两个功能。计数方式下可以对输入的外部脉冲进行计数,当计数到初值寄存器的值的时候,设置状态寄存器的相应位。定时方式下,在时钟作用下计时器做减1,到0的时候设置状态寄存器的相应位,并在相应的COUT脚输出一个时钟的低电平(平时COUT是高电平)。状态寄存器在被读取后被清零。 PWM模块 脉冲宽度调制模块。可以调节脉冲的频率和占空比(本模块不支持)。一个12位PWM内部一个计数器和一个对比值,计数器周而复始的加1计数,计数到0FFFH的时候转为0再计数。当计数器的值大于对比值,输出端输出低电平,否则输出高电平。 WDT模块 看门狗模块。内含一个16位定时器,系统复位后计数值为FFFFHc语言编译器ide代码编辑,之后每时钟计数值减1,当减到0的时候,向CPU发4个时钟周期的RESET信号,同时计数值恢复到FFFFH并继续计数。通过软件不断地定期写看门狗端口来复位看门狗,使计数器重新从FFFFH开始计数。增加看门狗电路后,CPU的RESET输入脚是系统复位信号和看门狗发出的复位信号的组合。 mips32模块 mips32CPU顶层模块。负责串联起CPU内各个控制、取指、执行、中断等模块。完成基于mips指令集的32位CPU功能。具有32位指令,16位地址线和32位数据线。 CountClock模块 用于串行通信UART的顶层模块。 control32模块 控制单元模块。根据指令中的指令码(op)和功能码(funct)的不同组合输出相应的控制信号。 dmemory32模块 存储单元模块。实际完成对数据存储器(RAM)的读写操作。 executs32模块 执行单元模块。完成逻辑运算、算术运算、移位运算、比较转移的PC值计算、比较后赋值。 idecode32模块 译码单元模块。对寄存器组进行操作。根据指令译码结果,决定向其他部件(如运算器)送1路或两路数据。 ifetc32模块 取指单元模块。到程序ROM中取指令、对PC值进行+4处理、完成各种跳转指令的PC修改功能。 int32模块 中断模块。具有两个中断功能——中断0和中断1,中断0优先级大于中断1,不支持同级中断嵌套。将$12和$14设计为两个中断返回地址存放寄存器,分别在中断0和中断1到来的时候存放返回地址。它们分别称为$i0和$i1。 timecount模块 时钟脉冲分频模块。共分为四个脉冲,每个脉冲的频率相同,且均为系统时钟频率的4倍。不同的脉冲用以控制不同的CPU内部模块的运行。 cs138模块 译码模块。用于产生各个接口模块的片选信号。 |
本组设计的主要特 |
1、可运行指定的31条MIPS指令的RISC型MIPS32微处理器,具有32位指令,16位地址线和32数据线。 2、处理器采用哈佛结构,有独立的2KB的指令存储器和4KB的数据存储器 具有2个中断源入口,两级中断优先级。 3、键盘采用中断方式,而非扫面方式,为中断0级(最高级)。 4、2个32位定时/计数器。 5、CPU内部采用分频的方法,用不同的时钟对不同的模块进行同步控制,从而提高了主频。 6、键盘和LCD的时钟由CTC提供,初始化程序在BIOS中。 7、具有看门狗功能,通过指令对WDT进行复位。 8、MEM和IO统一编址。IO的高3位产生片选CS信号,故最多支持8个接口,低5位用来选择8个32位的端口。 9、附有类C语言编译器,详细见MIPS32编译程序使用手册。 10、提供有LCD接口电路。 11、CPU与接口之间的数据线有64条,用于CPU输出和读入数据。 12、CPU内的ROM和RAM均采用同步控制。 13、采用32位的mips汇编BIOS程序。 14、编写有RAM和内部寄存器使用规则,避免因用户随意修改RAM和寄存器内存放的值而导致的系统瘫痪。 15、规定了用户用mips汇编写代码时可用的寄存器和RAM地址空间。 16、按住键盘上的某个键,在屏幕上并不是连续显示键值,两个前后显示的键值之间会有一定的时间间隔。 17、当编译用户的C程序时,如果堆栈指针越界,编译程序会提示出错,并在LED上显示三条横线。 18、最多支持7个LED的显示。 |
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论