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设计思路

首先想到把数据路径分成五个阶段,将五个阶段分别整体封装,确定五个阶段的输入和输出,然后将封装的五个阶段连接在一起形成一个整体的数据路径。

  1. fetch instruction:我们首先确认进入这个模块的输入信号为PC(program count),clock,reset;输出信号为instruction为32位。
  2. decode :这一模块的输入信号为instruction,clock,reset和enable信号;输出信号为RS1,RS2,RD1,IMM16,IMM26.
  3. 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的输出。执行单元的输出为具体的运算结果,可自行定义。
  4. memory:这一模块输入信号为上一步执行单元计算出来的运算结果,还有来自于控制单元的信号,仅当执行Load/Store指令时,才有data memory操作,否则就会在最后直接写回register file。当有jump跳转指令时,我们也需要更新PC值进行跳转操作。
  5. writeback:最后写回阶段就是需要最后将数据写回register file。我们在各个阶段加寄存器来存储写回地址,使得写回数据和写回地址保持同步。

仿真以及基准测试(benchmarking)

合成(synthesis)

物理设计(physical design)

DLX 项目总结(Deluxe processor)相关推荐

  1. cmd文件打开闪退_批处理闪退、运行中断等问题的处理

    本文最后更新于:2019.4.3 因为我只会一些批处理代码,所以我的"局域网共享一键修复"等软件就都做成了批处理程序(后缀名为.bat)供大家使用.有些网友反馈:右键运行批处理,会 ...

  2. 标记接口,注解和注解处理器的前世今生

    文章目录 简介 注解的起源和marker interfaces 注解的定义 Retention Target 自定义参数 在运行时使用注解 在编译时使用注解 总结 简介 相信大部分的开发者都用过注解, ...

  3. 想和人脑一样智能? IBM 的芯片级模仿才是关键

    深度学习软件毫无疑问推动了人工智能的浪潮.现在,许多公司和研究人员都在花大力气在软硬件上对人脑进行模拟. 在硬件方面主要是通过对大型神经网络进行仿真.如 Google 的深度学习系统Google Br ...

  4. subd计算机系统结构,计算机体系结构第2章试题答案.doc

    计算机体系结构第2章试题答案.doc (9页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.90 积分 一 填空题1.堆栈型 通用寄存器型2.累加器型 ...

  5. loadrunner监控windows系统资源

    Loadrunner Controller可以对操作系统资源使用情况.网络延迟.Web应用程序服务器资源.数据库服务器资源.运行的虚拟用户数量.业务的响应时间等进行监控并记录这些数据,当场景执行完成之 ...

  6. JAVA三维可视化组件:Matplot 3D for JAVA(V3.0) 一个纯JAVA开发的科学数据可视化组件包 类似 Python 的matplotlib(含示例代码)

    目录 概述 组件下载及项目地址 效果展示和示例代码 概述 Matplot3D for JAVA(V3.0) 是一个基于JAVA SE 1.8环境开发的三维图形图表组件. 组件由纯JAVA SE 实现( ...

  7. SpringBoot项目中获取yml文件的属性时实体属性类出现Spring Boot Configuration Annotation Processor not found in classpath

    1.SpringBoot项目的项目结构如下: 2.属性实体类 上面出现了Spring Boot Configuration Annotation Processor not found in clas ...

  8. Android项目中创建编译期的注解

    ==注解 生命周期为RetentionPolicy.RUNTIME,可在运行时通过反射获取. 生命周期为RetentionPolicy.CLASS, 编译期处理的注解,可以使用APT(Annotati ...

  9. Django项目配合sentry实现浅析

    Django项目日志配合sentry概述 本文环境python3.5.2,Django版本1.10.2 Django项目中日志配合sentry的实现 sentry是一个错误跟踪网站,可以收集获取运行中 ...

最新文章

  1. java 二分搜索获得大于目标数的第一位_程序员常用查找算法(顺序、二分、插值、分块、斐波那契)...
  2. Halcon 标定与准确测量
  3. python 统计list中各个元素出现的次数
  4. 电脑技巧:如何解决99%的电脑防弹窗广告?
  5. HTML实现选择数据库字段,django项目中在后台获取了数据库的某一列,如何将其显示在html模板中的select标签内的option选项下?...
  6. checkbox修改默认样式
  7. lwip路由实现_TCP超时与重传《LwIP协议栈源码详解——TCP/IP协议的实现》
  8. python脚本-记录Python脚本的运行日志的方法
  9. ROS教程之ROS问题集
  10. 奖补多的2022年合肥高新区高成长企业申报时间入选范围及申报条件材料
  11. 冰冻三尺,非一日之寒!
  12. 新旧音标对照表与英式音标表
  13. Vue 2.0的建议学习顺序(尤雨溪)
  14. 哈希表_实现插入、删除、查找元素操作(链地址法解决冲突)
  15. 小度计算机笔记,“一场无速记发布会”,小度真无线智能耳机革新语音笔记功能...
  16. 线性代数之 Ax=b反问题的一个特解
  17. 8.10 shell特殊符号cut命令 8.11 sort_wc_uniq命令 8.12 tee_tr_split命令 8.13 shell特殊符号下...
  18. 修改安卓系统应用,将自己的app变成系统应用
  19. redis 为什么这么快,你真的知道吗?
  20. C#编写数据分析软件(附源码)

热门文章

  1. 【财经期刊FM-Radio|2021年01月19日】
  2. Glide加载部分图片不显示问题
  3. 人机工程学产品设计案例_儿童产品设计的那些原则【北京新易设计坊】
  4. C语言 学生成绩管理 txt存储数据
  5. 轻断食:正在横扫全球的瘦身革命
  6. 戴森空气净化器php00使用,戴森空气净化器好用吗?有什么使用技巧?
  7. 基于遗传算法的无人机监视覆盖航路规划算法研究
  8. 160429 vue.js 2 台灣小凡(体验 vuejs 2之随笔)
  9. 刚毕业的大学习,去大数据机构培训,工作好找吗?
  10. 【版本管理】版本管理规范