DLX 项目总结(Deluxe processor)
DLX project 项目总结
- DLX 处理器的架构设计
- datapath设计思路
- 仿真以及基准测试(benchmarking)
- 合成(synthesis)
- 物理设计(physical design)
DLX 处理器的架构设计
下图我们可以看到,我们的顶层结构由三个部分组成,第一部分是IRAM(Instruction RAM),第二部分是DRAM(Data RAM),第三部分是DLX。
IRAM:是一个异步RAM存储器,用于存储二进制指令。当读取并初始化汇编程序并将其转化为二进制指令,指令依次存入IRAM中,便于之后运行程序正确读取指令。
DRAM:是一个同步写、异步读的RAM存储器,有一个高电平复位信号,一个高电平读使能信号和一个高电平写使能信号,具体封装如下。
DLX:包含 datapath 和 Control unit 两部分,其中数据路径包括五个阶段:fetch,decode,execution,memory,writeback。Control unit 包括三种:FSM,Microprogrammed,hardwired CU。最后选择了hardwired CU因为较为容易实现流水线pipeline操作。
datapath设计思路
首先想到把数据路径分成五个阶段,将五个阶段分别整体封装,确定五个阶段的输入和输出,然后将封装的五个阶段连接在一起形成一个整体的数据路径。
- fetch instruction:我们首先确认进入这个模块的输入信号为PC(program count),clock,reset;输出信号为instruction为32位。
- decode :这一模块的输入信号为instruction,clock,reset和enable信号;输出信号为RS1,RS2,RD1,IMM16,IMM26.
- execution :执行模块是最关键的设计部分,也是最难的部分之一,这里我们可以有很多思路实现。这里输入信号为RS1(读端口源1),RS2(读端口源2),RD1(写地址端口),IMM16(16位立即数),IMM26(26位立即数),WDATA(写回数据端口),RF1(读端口1的使能信号),RF2(读端口2的使能信号),WF(写端口使能信号),ENABLE,S1,S2,S3,S4(这里因为我们只设计执行的指令类型有:判断分支,基本运算+,-,*,位运算 or,xor,and。所以四位选择信号足够了),clock,reset信号。一部分信号来自于Control unit,一部分来自于上一阶段decoder的输出。执行单元的输出为具体的运算结果,可自行定义。
- memory:这一模块输入信号为上一步执行单元计算出来的运算结果,还有来自于控制单元的信号,仅当执行Load/Store指令时,才有data memory操作,否则就会在最后直接写回register file。当有jump跳转指令时,我们也需要更新PC值进行跳转操作。
- writeback:最后写回阶段就是需要最后将数据写回register file。我们在各个阶段加寄存器来存储写回地址,使得写回数据和写回地址保持同步。
仿真以及基准测试(benchmarking)
合成(synthesis)
物理设计(physical design)
DLX 项目总结(Deluxe processor)相关推荐
- cmd文件打开闪退_批处理闪退、运行中断等问题的处理
本文最后更新于:2019.4.3 因为我只会一些批处理代码,所以我的"局域网共享一键修复"等软件就都做成了批处理程序(后缀名为.bat)供大家使用.有些网友反馈:右键运行批处理,会 ...
- 标记接口,注解和注解处理器的前世今生
文章目录 简介 注解的起源和marker interfaces 注解的定义 Retention Target 自定义参数 在运行时使用注解 在编译时使用注解 总结 简介 相信大部分的开发者都用过注解, ...
- 想和人脑一样智能? IBM 的芯片级模仿才是关键
深度学习软件毫无疑问推动了人工智能的浪潮.现在,许多公司和研究人员都在花大力气在软硬件上对人脑进行模拟. 在硬件方面主要是通过对大型神经网络进行仿真.如 Google 的深度学习系统Google Br ...
- subd计算机系统结构,计算机体系结构第2章试题答案.doc
计算机体系结构第2章试题答案.doc (9页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.90 积分 一 填空题1.堆栈型 通用寄存器型2.累加器型 ...
- loadrunner监控windows系统资源
Loadrunner Controller可以对操作系统资源使用情况.网络延迟.Web应用程序服务器资源.数据库服务器资源.运行的虚拟用户数量.业务的响应时间等进行监控并记录这些数据,当场景执行完成之 ...
- JAVA三维可视化组件:Matplot 3D for JAVA(V3.0) 一个纯JAVA开发的科学数据可视化组件包 类似 Python 的matplotlib(含示例代码)
目录 概述 组件下载及项目地址 效果展示和示例代码 概述 Matplot3D for JAVA(V3.0) 是一个基于JAVA SE 1.8环境开发的三维图形图表组件. 组件由纯JAVA SE 实现( ...
- SpringBoot项目中获取yml文件的属性时实体属性类出现Spring Boot Configuration Annotation Processor not found in classpath
1.SpringBoot项目的项目结构如下: 2.属性实体类 上面出现了Spring Boot Configuration Annotation Processor not found in clas ...
- Android项目中创建编译期的注解
==注解 生命周期为RetentionPolicy.RUNTIME,可在运行时通过反射获取. 生命周期为RetentionPolicy.CLASS, 编译期处理的注解,可以使用APT(Annotati ...
- Django项目配合sentry实现浅析
Django项目日志配合sentry概述 本文环境python3.5.2,Django版本1.10.2 Django项目中日志配合sentry的实现 sentry是一个错误跟踪网站,可以收集获取运行中 ...
最新文章
- java 二分搜索获得大于目标数的第一位_程序员常用查找算法(顺序、二分、插值、分块、斐波那契)...
- Halcon 标定与准确测量
- python 统计list中各个元素出现的次数
- 电脑技巧:如何解决99%的电脑防弹窗广告?
- HTML实现选择数据库字段,django项目中在后台获取了数据库的某一列,如何将其显示在html模板中的select标签内的option选项下?...
- checkbox修改默认样式
- lwip路由实现_TCP超时与重传《LwIP协议栈源码详解——TCP/IP协议的实现》
- python脚本-记录Python脚本的运行日志的方法
- ROS教程之ROS问题集
- 奖补多的2022年合肥高新区高成长企业申报时间入选范围及申报条件材料
- 冰冻三尺,非一日之寒!
- 新旧音标对照表与英式音标表
- Vue 2.0的建议学习顺序(尤雨溪)
- 哈希表_实现插入、删除、查找元素操作(链地址法解决冲突)
- 小度计算机笔记,“一场无速记发布会”,小度真无线智能耳机革新语音笔记功能...
- 线性代数之 Ax=b反问题的一个特解
- 8.10 shell特殊符号cut命令 8.11 sort_wc_uniq命令 8.12 tee_tr_split命令 8.13 shell特殊符号下...
- 修改安卓系统应用,将自己的app变成系统应用
- redis 为什么这么快,你真的知道吗?
- C#编写数据分析软件(附源码)