0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

你们会设计CPU取指执行电路吗?

FPGA之家 来源:数字积木 作者:数字积木 2021-07-27 16:55 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

【前言】

最近手上写了一个练手的小项目,项目的大致要求是实现一个取指,执行电路。取指的指令预存在,从ROM中读取指令后,根据预定的解码规则,对指令进行解码,并执行相对应的操作。发出来和大家共同分享。

该工程的设计要求如下:

ram模块中,储存有初始化的指令数据。我们要设计一个取指电路,并能根据不同的指令执行不同的操作。指令数据为16bit.

指令编码定义如下:

如果指令代码为0,则下一个状态为空闲。如果指令的低位8位为0,高位8位非0,则读取指定高位8位的存储器,并将其写入obuf0。如果指令的低8位非0,且高8位也不是0,则将下8位作为数据,写入地址为上8位的存储器中。

List4显示了指令获取电路。它实例化了五个模块:PC0(程序计数器、8位计数器)、Ir0(指令寄存器、16位计数器)、OBUF0(输出缓冲器、16位计数器)、STATE0(状态机)和RAM0(存储器,8位256字块RAM)。模块pc0用于指定要读取的地址,以便从ram0获取(提取)指令代码。指令代码存储在IR0中。

此指令获取操作在两种状态下执行:fetcha和fetchb。fetcha用于取地址操作,该地址作为读取ram中指令的地址,fetchb用于指令寄存操作,将指令寄存到指令寄存器中。

在execa和execb状态下,执行表1中的操作。如果存储在IR0中的指令代码为0,则下一个状态为空闲。如果指令的低位8位为0,高位8位非0,则读取指定高位8位的存储器,并将其写入obuf0。如果指令的下8位非0,则将下8位写入地址为上8位的存储器。

指令解码列在table1中

顶层代码如图所示:

下面是该工程的测试模块:

1796e308-eb92-11eb-a97a-12bb97331649.jpg

下面的ram模块的代码:

17b49bb4-eb92-11eb-a97a-12bb97331649.jpg

状态控制模块的代码:

17c181d0-eb92-11eb-a97a-12bb97331649.png

计数器模块的代码:

17d38f1a-eb92-11eb-a97a-12bb97331649.png

设计说明

该工程有以下模块组成:

PC0(程序计数器、8位计数器)、

Ir0(指令寄存器、16位计数器)、

OBUF0(输出缓冲器、16位计数器)、

STATE0(状态机)、

RAM0(存储器,8位256字块RAM)。

其中,PC0,IR0,OBUF0是例化计数器模块得到的,该计数器模块拥有计数和寄存数据两个功能,分别由端口 inc 和 端口 load 控制。

当 inc有效时,在下一个时钟,会将计数器内部的计数器自增1,并在q端输出。

当load信号有效时,在下一个时钟会将D端 的数据寄存到该计数器的寄存器中,并在Q端输出。

PC0利用的是计数器的计数功能,用于产生取指令的地址信息。

IR0利用的是计数器的寄存功能,用于将ram中取出的指令暂时寄存。

OBUF0利用的是计数器的寄存功能,用于将输出中暂时寄存。

在状态机控制模块中,设置了以下五个状态:

IDLE:空闲态。

FETCHA:取地址状态。同时将程序计数器的内部计数值加一。

FETCHB:取指令,指令寄存状态。将从ram中读出的指令写入到指令寄存器模块中。

EXECA:指令解码模块,判断指令的停止,读,写控制信号。如果为写信号,将指令的低8位作为数据写到高8位对应的地址中。如果为读指令,跳转到EXECB状态,将指令的低8位输出。如果停止信号为真3,跳转到空闲状态。

EXECB:执行状态。用于将指令的低8位输出。

在ram模块中,储存有初始化的指令数据。

编辑:jq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • cpu
    cpu
    +关注

    关注

    68

    文章

    11218

    浏览量

    222956

原文标题:简单的CPU取指执行电路设计

文章出处:【微信号:zhuyandz,微信公众号:FPGA之家】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    单片机程序的执行

    ,DDRRAM的速度也是很慢,即使是SRAM也是慢了不少,于是再提高工作频率也提高不了程序的执行速度,所以现在CPU工作频率最快是在2003左右,一个瓶颈出现了。 为了提高CPU的使用率,换个角度想一下
    发表于 12-04 06:20

    从代码执行看单片机内存的分配

    是要求把取得的数送到A累加器,所以取出的数字经内部数据总线进入A累加器,而不是进入指令寄存器。至此,一条指令的执行完毕! 单片机中PC=0002H,PC在CPU每次向存储器
    发表于 12-02 07:58

    电路板三防漆是哪三防?

    三防漆在电子行业意义重大,其“三防”功能明确指向防潮、防盐雾、防霉。电子设备运行中,潮湿电路板短路腐蚀,盐雾侵蚀金属影响电气性能,霉菌滋生干扰功能,三防漆正是为应对这些恶劣因素,提升设备可靠性
    的头像 发表于 11-21 16:58 497次阅读
    <b class='flag-5'>电路</b>板三防漆是<b class='flag-5'>指</b>哪三防?

    流水线基本结构

    3级流水线(Cortex-M0) 分为以下三个阶段: (Fetch):从存储器中读取指令。 解码(Decode):解析指令的操作类型和操作数。 执行(Execute):执行指令(如
    发表于 11-21 07:35

    蜂鸟E203部分(IFU)架构解读

    蜂鸟E203的原理: ITCM是64位宽的SRAM,每64位为一个lane。由于ITCM是由SRAM构成的,因此上次访问读过SRAM之后,SRAM的输出值一直保存住(直到下次 SRAM 被再次读
    发表于 10-21 09:55

    POE电保护

    防雷 / 过电压 / 电流 / ESD 电子电路保护器件专业提供商 针对POE电, 国际IEEE 802.3标准说明 及两种电方式   www.yint.com.cn 本文为音特公司技术人员
    的头像 发表于 10-17 16:33 387次阅读
    POE<b class='flag-5'>取</b>电保护

    CPU 到 GPU,渲染技术如何重塑游戏、影视与设计?

    CPU(CentralProcessingUnit)是计算机的中央处理器,它负责执行各种程序和指令。CPU渲染是指使用CPU执行渲染流程
    的头像 发表于 09-01 12:16 673次阅读
    从 <b class='flag-5'>CPU</b> 到 GPU,渲染技术如何重塑游戏、影视与设计?

    如果在FMC执行“程序”或“擦除”时发生中断事件,是否处理中断事件?

    如果在FMC执行“程序”或“擦除”时发生中断事件,是否处理中断事件?
    发表于 08-27 08:01

    探索CPU架构的奥秘,揭秘高性能计算的隐形引擎

    的深海,揭开那些隐藏在高性能计算背后的神秘面纱。1.指令(Fetch)程序计数器(PC):CPU通过程序计数器获取下一条指令的内存地址。指令读取:从存储器或缓存中读
    的头像 发表于 08-13 11:58 526次阅读
    探索<b class='flag-5'>CPU</b>架构的奥秘,揭秘高性能计算的隐形引擎

    请问USB缓冲区数据可以多次吗?

    在使用USB软件获取数据是,下位机给我发送了13个32位数据到USB IN缓冲区,为什么我调用API函数想要第一次1个32位数据,完之后再取12位数据,程序会卡死。
    发表于 07-16 08:12

    集成EEPROM与监控电路‌的CPU Supervisor ON Semiconductor CAT1025WI-45-GT3

    集成EEPROM与监控电路‌的CPU Supervisor ON Semiconductor CAT1025WI-45-GT3
    的头像 发表于 05-28 17:01 1060次阅读
    集成EEPROM与监控<b class='flag-5'>电路</b>‌的<b class='flag-5'>CPU</b> Supervisor ON Semiconductor CAT1025WI-45-GT3

    CPU的各种指令和执行流程

    在集成电路设计中,CPU的指令是计算机中央处理单元(CPU)用来执行计算任务的基本操作指令集。这些指令是
    的头像 发表于 04-18 11:24 1923次阅读

    RISC-V五级流水线CPU设计

    本文实现的CPU是一个五级流水线的精简版CPU(也叫PCPU,即pipeline),包括IF(指令)、ID(解码)、EX(执行)、MEM(内存操作)、WB(回写)。
    的头像 发表于 04-15 09:46 1351次阅读
    RISC-V五级流水线<b class='flag-5'>CPU</b>设计

    CPU到GPU:渲染技术的演进和趋势

    和优缺点CPU(CentralProcessingUnit)是计算机的中央处理器,它负责执行各种程序和指令。CPU渲染是指使用CPU执行
    的头像 发表于 02-21 11:11 1376次阅读
    从<b class='flag-5'>CPU</b>到GPU:渲染技术的演进和趋势

    料机DCS数据采集物联网解决方案

    在火电厂中,堆料机承担着储存、输送原料的重要任务,通过PLC、DCS等执行允许堆料、允许料、外围料运行、堆料机紧急停机、堆料运行、堆
    的头像 发表于 12-24 10:23 829次阅读
    堆<b class='flag-5'>取</b>料机DCS数据采集物联网解决方案