sleepycat的笔记 https://bbs.21ic.com/?462975 [收藏] [复制] [RSS]

日志

基于MIPS的32位流水线CPU设计

已有 3901 次阅读2008-6-21 23:54 |个人分类:FPGA|系统分类:EDA/PLD

设计简介                                               





本设计实现了一个具有标准的32位5级流水线架构的MIPS指令兼容CPU系统。具备常用的五十余条指令,解决了大部分数据相关,结构相关,乘除法的流水化处理等问题,并实现了可屏蔽的中断网络。另外配有专用的汇编集成开发环境,可以做到汇编级程序开发。由于此设计可直接应用于FPGA芯片中,因此具有很高的实用价值。本设计体系简洁,易于扩展,非常适合以IP核的形式作为嵌入式设备的高性能单片机或MCU使用。同时,其设计过程是一个最小系统扩展法的实现范例,论文阐述了如何将一个设计雏形发展成实用化的成品的过程 。#此前在首页部分显示#                  



此CPU的特点





本设计基于MIPS的32位流水线架构,设计过程中力图尽可能的遵循原有的MIPS CPU的功能和指令集,基本做到与MIPS III指令集的兼容。本CPU具有如下特点:
1.具有完整的五级流水线架构,采用独立的32位的数据总线和地址总线,数据存储器兼容8位和16位数据宽度;
2.采用MIPS指令集,兼容50余条常用指令;
3.提供了有符号和无符号的乘法、除法的硬件处理机制;
4.实现了可屏蔽的外部中断和指令溢出例外;
5.提供了分支延迟槽机制和无延迟跳转网络;
6.采用数据前推技术解决大部分数据相关问题;
7.提供了完整的开发工具,包括自主开发的汇编集成开发环境,可以通过汇编语言进行快速开发


此CPU的创新点





•自主设计了较新颖的可屏蔽的外部中断和内部溢出中断处理系统,根据嵌入式系统的要求,将原有的MIPS中断系统予以简化,并在流水线架构下采用了非协处理器方式实现(2入2出法)。使得中断系统简洁高效,十分适合于嵌入式环境。
•提供了专门针对此设计而开发的汇编语言开发环境,而此类工具在许多样机水平的设计中并不提供。它使得此设计做到了可用与实用。





资源下载地址   






论文part1


论文part2


CPU代码(VerilogHDL语言 QuartusII 7.1环境)


汇编语言开发环境(VB6)


测试程序


答辩稿



如有问题可以联系wuzhenzhi@gmail.com


路过

鸡蛋

鲜花

握手

雷人

发表评论 评论 (3 个评论)

回复 eeplus 2008-12-13 13:36
赞赏博主的分享,不过这个cpu代码算不上优秀的设计,很多写法会导致timin不是很好,速度上不去。

QUOTE:
以下为wuzhenzhi的回复: 关于本CPU设计的速度: 首先承认因为时间比较短,任务比较多,没有顾及太多优化。 请读者主要参考流水线版本的代码。因为单周期和多周期的版本不是任务要求,在实验时产生了少量时序冲突。后来一直没有时间纠正。流水线的版本基本上符合时序要求。 流水线版本中提供了两个版本。其中一个是低速但是功能较全的。大概是20M左右。另一个是时钟频率较高的版本,经测定fmax=94M,主要是去除了中断系统。所有的数据旁路,以及移位指令,乘除法指令。但保留了基础的结构。 谢谢您的意见。也希望您对具体的地方予以进一步说明
回复 backup 2009-6-23 23:33
中国的希望啊,呵呵!
回复 frx 2009-8-2 02:58
龙芯欢迎你,呵呵