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

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

3天内不再提示

基于EGO1开发板的32位单周期处理器设计案例

YCqV_FPGA_EETre 来源:未知 作者:佚名 2017-11-17 06:42 次阅读

本系列所有演示实验均出自由东南大学汤勇明教授、张圣清教授与Xilinx大学计划经理陆佳华先生所编著的教材《搭建你的数字积木·数字电路与逻辑设计(Verilog HDL&Vivado版)》。此教材为教育部Xilinx公司产学合作专业综合改革重点支持项目,并作为Xilinx公司大学计划指定教材。

本书系统论述了数字电路与逻辑设计的理论、方法与实践技术。全书基于Verilog HDL与Vivado开发环境,共18章,详尽介绍了如下内容: 逻辑设计与Vivado基础、布尔代数与Verilog HDL基础、组合逻辑电路设计基础、时序逻辑电路设计基础、有限状态机设计基础、逻辑设计工程技术基础、Vivado数字积木流程、串行通信接口控制器RAM接口控制器、字符点阵显示模块接口控制器、VGA接口控制器、数字图像采集、数字逻辑系统设计案例、单周期CPU设计案例、数字信号处理设计案例(FIR)、数字图像处理设计案例、大学生FPGA设计案例以及Xilinx资源导读。

为便于教师和广大读者学习与动手实践,本书配套提供了教学课件、教学视频程序代码等教学资源。本书适合作为普通高等院校电子信息类、电气信息类、自动化类专业的本科生教材,也可作为相关专业研究生参考教材,并适合作为电子与电气工程技术领域的科研工程技术人员的参考用书。

实验步骤实验内容

本实验介绍32位单周期处理器设计,并在EGO1开发板上实现。

实验原理

本实验用以下模块来实现:

ALU:ALU算术逻辑单元,是处理器中的一个重要功能模块,用来执行多组加减乘除等算术运算以及或与非等逻辑运算。算术逻辑单元的操作和种类由控制器觉定,处理的数据来自存储器,处理后的结果送回存储器或者暂存于算术逻辑单元中。ALU框图如下所示,alu为控制信号,包括了ALU需要执行的运算的命令,a和b为两个输入,r是运算结果,z为carry。

REGFILE:一个32位深度的寄存器文件,用于缓存来自memory或ALU的数据指令op和func将被转换成wreg、regrt、shift等信号,如下图所示:

DATAPATH: DATAPATH用于连接所有的子模块,同时具备指令计数器的功能,其框图如下图所示:

INSTMEM:instruction memory,指令储存器,用于存放工程的测试指令。

DATAMEM:用于存储所有工程测试数据例如ALU计算结果等。输入为写使能、时钟、地址以及写入的数据,输出为data_out信号,其框图如下所示:

KEY2INST:将开关状态转换为CPU的指令。

SHOWONLED:将最终计算结果或者开关状态按照预先设定好的模式通过LED展示给用户。输入计算结果和开关状态,输出为控制LED的信号,其框图如下所示:

功能实现

通过本实验,可实现一个CPU,根据输入的指令控制LED灯。

实验资料:可以通过github下载,下载链接请点击这里。

代码说明:本实验的代码已经全部封装成IP核,用户只需将IP核调用并正确连续即可,MIPS_CPU.xdc为本实验的管脚约束文件。

实验操作
  1. 本实验使用Vivado 2017.1 进行开发,开发界面如下。如果您未安装vivado,安装流程请点击这里。

2.实验RTL视图:

3.代码综合后效果图:

4. 代码实现后效果图:

具体vivado步骤请参看之前的微信文章,文章链接请点击这里

验证流程

将代码下载到板卡后,可按照下面的操作实现一个简单的加法运算,两个家数分别为16位的0000000100000000和16位的0000000000000000,操作过程如下:

  1. 将B14-B0设置为0,将B15设置为0,然后再设置为1,完成系统复位。

  2. 将B9-B8设置为10,将B7-B0设置为00000001,然后将B13设置为1后马上设置为0,目的是加载data+bh。

  3. 将B9-B8设置为11,将B7-B0设置为00000000,然后将B13设置为1后马上设置为0,目的是加载data_bl。

  4. 将B9-B8设置为00,将B7-B0设置为00000000,然后将B13设置为1后马上设置为0,目的是加载data_ah。

  5. 将B9-B8设置为01,将B7-B0设置为00000000,然后将B13设置为1后马上设置为0,目的是加载data_al。

  6. 将B12-B10设置为000,这样就选择了加法运算模式。然后将B14设置为1,此时CPU运行运算,结果为0000000100000000,此时的结果将显示在16位LED上。

实验效果图


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

    关注

    0

    文章

    33

    浏览量

    13075
  • eg01开发板
    +关注

    关注

    0

    文章

    1

    浏览量

    1800
  • 单周期处理器

    关注

    0

    文章

    1

    浏览量

    1382

原文标题:【玩转EGO1系列教程三】:在EGO1开发板上实现RISC

文章出处:【微信号:FPGA-EETrend,微信公众号:FPGA开发圈】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    正点原子fpga开发板不同型号

    处理器和FPGA逻辑单元。ZYNQ-7000系列的开发板通常具备以下特点: 低成本 :适合预算有限的个人和教育机构。
    的头像 发表于 11-13 09:30 274次阅读

    米尔RK3576开发板特惠活动!

    近日,米尔电子发布基于瑞芯微RK3576核心开发板,RK3576作为国产热门处理器,其高性能数据处理能力、领先的AI智能分析、强大的扩展性与兼容性受到广大
    的头像 发表于 11-12 01:00 122次阅读
    米尔RK3576<b class='flag-5'>开发板</b>特惠活动!

    ARM开发板与FPGA的结合应用

    大的功能和更高的灵活性,满足各种复杂应用的需求。 二、ARM开发板与FPGA的优势 高性能:ARM处理器具有高性能的特点,可以处理复杂的算法和任务。FPGA则可以实现高速的数字信号处理
    的头像 发表于 11-05 11:42 292次阅读

    ARM开发板与树莓派的比较

    处理器 ARM开发板通常采用不同的ARM处理器,如Cortex-A系列、Cortex-M系列等,而树莓派则主要使用博通的ARM处理器。树莓派的处理
    的头像 发表于 11-05 11:11 220次阅读

    如何选择合适的ARM开发板

    在嵌入式系统设计和开发领域,ARM处理器因其高性能、低功耗和广泛的应用场景而受到青睐。 1. 确定项目需求 在选购ARM开发板之前,首先要明确项目的具体需求。这包括: 性能需求 :项目
    的头像 发表于 11-05 11:09 208次阅读

    ElfBoard技术贴|如何在NXP源码基础上适配ELF 1开发板的UART功能

    UART即通用异步收发,是一种支持全双工串行通信协议的接口。在i.MX6ULL处理器平台上,该处理器原生支持多达8路的UART接口,提供了丰富的串行通信能力。 针对ELF 1
    的头像 发表于 09-25 13:56 2242次阅读
    ElfBoard技术贴|如何在NXP源码基础上适配ELF <b class='flag-5'>1</b><b class='flag-5'>开发板</b>的UART功能

    linux开发板与树莓派的区别

    操作系统的微型计算机,主要用于教育、编程、媒体播放等领域。 硬件配置 Linux开发板:Linux开发板的硬件配置因厂商和型号而异,通常包括处理器、内存、存储、网络接口等。 树莓派:树莓派的硬件配置相对固定,包括
    的头像 发表于 08-30 15:34 732次阅读

    linux开发板和单片机开发的区别

    硬件架构 Linux开发板和单片机开发在硬件架构上有很大的区别。Linux开发板通常基于ARM、x86或其他处理器架构,具有较高的处理能力和
    的头像 发表于 08-30 15:30 618次阅读

    米尔基于NXP iMX.93开发板的M33处理器应用开发笔记

    资源MYD-LMX9X开发板(米尔基于NXPiMX.93开发板)3.软件资源Windows7及以上版本软件:IAREmbeddedWorkbench4.板载固件调试
    的头像 发表于 06-29 08:01 1234次阅读
    米尔基于NXP iMX.93<b class='flag-5'>开发板</b>的M33<b class='flag-5'>处理器</b>应用<b class='flag-5'>开发</b>笔记

    RK3562开发板:安卓Linux开发从入门到精通(一)

    Rockchip新一代64位处理器RK3562设计的评估,(Quad-coreARMCortex-A53,主频最高2.0GHz)可应用于物联网网关、平板电脑、智
    的头像 发表于 03-28 08:31 919次阅读
    RK3562<b class='flag-5'>开发板</b>:安卓Linux<b class='flag-5'>开发</b>从入门到精通(一)

    ELF 1技术贴|开发板底板电源电路讲解

    ELF1开发板由核心和底板组成,底板集成CAN、Wi-Fi&BT、Ethernet、音频、USB.Camera、LCD显示、温湿度传感、UART等功能外设,核心
    的头像 发表于 01-15 13:28 1095次阅读
    ELF <b class='flag-5'>1</b>技术贴|<b class='flag-5'>开发板</b>底板电源电路讲解

    【米尔-瑞萨RZ/G2UL开发板开发板开箱与接口介绍

    开发板简介 MYC-YG2UL核心开发板基于RZ/G2UL处理器,通用64工业MPU RZ/G2UL是瑞萨一款高性能
    发表于 01-14 13:25

    riscv开发板推荐

    、灵活和可扩展的指令集,使得各种芯片设计人员可以根据自己的需求来自定义处理器设计,而无需受到专有指令集的限制。因此,越来越多的开发者开始使用RISC-V进行各种应用的开发和研究。 在选择RISC-V
    的头像 发表于 01-07 16:43 1462次阅读

    EGO1开发板的硬件规格、软件支持、应用场景及优势

    的硬件设计和制造工艺,具备以下主要硬件规格: 1.1 处理器EGO1采用64四核ARM Cortex-A53处理器,在保证高性能的同时,还能节约功耗。 1.2 内存:板载
    的头像 发表于 12-21 15:49 2598次阅读

    ego1原理图介绍

    电子发烧友网站提供《ego1原理图介绍.pdf》资料免费下载
    发表于 12-21 09:32 10次下载