项目实习(二)简单CISC模型机设计

2024-03-17 03:30

本文主要是介绍项目实习(二)简单CISC模型机设计,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

大学期间开始的第二个项目实习,这次是利用Altera MAX+plus Ⅱ设计一个简单的CISC模型机,能实现计算机简单的逻辑运算功能。

设计选题

  1. 设计题目
    输入5个有符号整数(8位二进制补码表示),求最大负数的绝对值并输出显示。
  2. 开发环境
    Altera MAX+plus Ⅱ
  3. 设计完成的内容
    (1)完成系统的总体设计,画出模型机数据通路框图;
    (2)设计微程序控制器(CISC模型计算机)的逻辑结构框图;
    (3)设计机器指令格式和指令系统;
    (4)设计时序产生器电路;
    (5)设计所有机器指令的微程序流程图;
    (6)设计操作控制器单元;在CISC模型计算机中,设计的内容包括微指令格式(建议采用全水平型微指令)、微指令代码表(根据微程序流程图和微指令格式来设计)和微程序控制器硬件电路(包括地址转移逻辑电路、微地址寄存器、微命令寄存器和控制存储器等。具体电路根据微程序控制器的逻辑结构框图、微指令格式和微指令代码来设计)。
    (7)设计模型机的所有单元电路,并用VHDL语言(也可使用GDF文件----图形描述文件)对模型机中的各个部件进行编程,并使之成为一个统一的整体,即形成顶层电路或顶层文件;
    (8)由给出的题目和设计的指令系统编写相应的汇编语言源程序;
    (9)根据设计的指令格式,将汇编语言源程序手工转换成机器语言源程序,并将其设计到模型机中的ROM中去;
    (10)使用EDA软件进行功能仿真,要保证其结果满足题目的要求;(其中要利用EDA软件提供的波形编辑器,选择合适的输入输出信号及中间信号进行调试。)
    (11)器件编程,并在EDA实验平台上进行操作演示。
  4. 设计基本要求
    要求掌握CISC模型机的组成和工作原理(CISC模型机可以是任何计算机组成原理教材上的结构图),学会Altera MAX+plus Ⅱ或Quartus Ⅱ EDA软件的使用,能用EDA软件设计一个能完成一定功能的模型计算机,并通过功能仿真和在EDA实验平台上运行一个程序来验证模型机设计的正确性。

系统总体设计

  1. 设计模型机通路框图
    模型机通路框图
  2. 设计控制器的逻辑结构框图
    逻辑结构框图
  3. 设计机器指令格式和指令系统
    指令格式和指令系统
    说明:15-12位作为指令的操作码字段,11-10位属于源寄存器(Rs),而9-8位属于目的寄存器(Rd),7-0位后八位则是模型机立即数,采用定点整数补码表示。
    对Rs和Rd的规定:
    规定
    模型机规定数据的表示采用定点整数的补码形式表示,单字长为8位:
    数据规定
  4. 设计时序产生器电路
    T1,T2,T3,T4与CLR,Q之间的关系图:
    时序关系图
  5. 设计微程序流程图
    微程序流程图
  6. 设计操作控制器单元
    (1)设计微指令格式和微指令代码表
    CISC模型机系统使用的微指令采用全水平型微指令,字长为25位,其中微命令字段为17位,P字段为2位,后继微地址为6位,其格式如下:
    微指令格式
    微指令格式中的后继微地址从左到右以此为μA5,μA4,μA3,μA2,μA1和
    μA0。
    由微指令格式和微程序流程图编写的微指令代码表如下所示, 在微指令的代码表中微命令字段从左边到右代表的微命令信号依次为:LOAD、LDPC、LDAR、LDIR、LDRi、RD_B、RS_B、S1、S0、ALU_B、LDAC、LDDR、WR、CS、SW_B、LED_B、LDFR。
    微指令代码表1
    微指令代码表2
    (2)设计地址转移逻辑电路
    地址转移逻辑电路是根据微程序流程图中的棱形框部分及多个分支微地址,利用微地址寄存器的异步置“1”端,实现微地址的多路转移。由于是采用逻辑电路来实现的,故而称之为地址转移逻辑电路。在微地址流程图中,P(1)(高电平有效)测试时,根据指令的操作I7~I4强制修改后继地址的低四位;在P(2)(高电平有效)时,根据状态条件进行2路分支,并且都在T4内形成后继微指令的微地址。
    SE5=FS·P(2)·T4
    SE4=I7·P(1)·T4
    SE3=I6·P(1)·T4
    SE2=I5·P(1)·T4
    SE1=I4·P(1)·T4
  7. 设计嵌入式CISI模型计算机的顶层电路图

这篇关于项目实习(二)简单CISC模型机设计的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/817661

相关文章

部署Vue项目到服务器后404错误的原因及解决方案

《部署Vue项目到服务器后404错误的原因及解决方案》文章介绍了Vue项目部署步骤以及404错误的解决方案,部署步骤包括构建项目、上传文件、配置Web服务器、重启Nginx和访问域名,404错误通常是... 目录一、vue项目部署步骤二、404错误原因及解决方案错误场景原因分析解决方案一、Vue项目部署步骤

C++初始化数组的几种常见方法(简单易懂)

《C++初始化数组的几种常见方法(简单易懂)》本文介绍了C++中数组的初始化方法,包括一维数组和二维数组的初始化,以及用new动态初始化数组,在C++11及以上版本中,还提供了使用std::array... 目录1、初始化一维数组1.1、使用列表初始化(推荐方式)1.2、初始化部分列表1.3、使用std::

golang内存对齐的项目实践

《golang内存对齐的项目实践》本文主要介绍了golang内存对齐的项目实践,内存对齐不仅有助于提高内存访问效率,还确保了与硬件接口的兼容性,是Go语言编程中不可忽视的重要优化手段,下面就来介绍一下... 目录一、结构体中的字段顺序与内存对齐二、内存对齐的原理与规则三、调整结构体字段顺序优化内存对齐四、内

0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型的操作流程

《0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeekR1模型的操作流程》DeepSeekR1模型凭借其强大的自然语言处理能力,在未来具有广阔的应用前景,有望在多个领域发... 目录0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型,3步搞定一个应

redis群集简单部署过程

《redis群集简单部署过程》文章介绍了Redis,一个高性能的键值存储系统,其支持多种数据结构和命令,它还讨论了Redis的服务器端架构、数据存储和获取、协议和命令、高可用性方案、缓存机制以及监控和... 目录Redis介绍1. 基本概念2. 服务器端3. 存储和获取数据4. 协议和命令5. 高可用性6.

Deepseek R1模型本地化部署+API接口调用详细教程(释放AI生产力)

《DeepseekR1模型本地化部署+API接口调用详细教程(释放AI生产力)》本文介绍了本地部署DeepSeekR1模型和通过API调用将其集成到VSCode中的过程,作者详细步骤展示了如何下载和... 目录前言一、deepseek R1模型与chatGPT o1系列模型对比二、本地部署步骤1.安装oll

Spring AI Alibaba接入大模型时的依赖问题小结

《SpringAIAlibaba接入大模型时的依赖问题小结》文章介绍了如何在pom.xml文件中配置SpringAIAlibaba依赖,并提供了一个示例pom.xml文件,同时,建议将Maven仓... 目录(一)pom.XML文件:(二)application.yml配置文件(一)pom.xml文件:首

配置springboot项目动静分离打包分离lib方式

《配置springboot项目动静分离打包分离lib方式》本文介绍了如何将SpringBoot工程中的静态资源和配置文件分离出来,以减少jar包大小,方便修改配置文件,通过在jar包同级目录创建co... 目录前言1、分离配置文件原理2、pom文件配置3、使用package命令打包4、总结前言默认情况下,

JAVA调用Deepseek的api完成基本对话简单代码示例

《JAVA调用Deepseek的api完成基本对话简单代码示例》:本文主要介绍JAVA调用Deepseek的api完成基本对话的相关资料,文中详细讲解了如何获取DeepSeekAPI密钥、添加H... 获取API密钥首先,从DeepSeek平台获取API密钥,用于身份验证。添加HTTP客户端依赖使用Jav

python实现简易SSL的项目实践

《python实现简易SSL的项目实践》本文主要介绍了python实现简易SSL的项目实践,包括CA.py、server.py和client.py三个模块,文中通过示例代码介绍的非常详细,对大家的学习... 目录运行环境运行前准备程序实现与流程说明运行截图代码CA.pyclient.pyserver.py参