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

    文章

    34

    浏览量

    13452
  • eg01开发板
    +关注

    关注

    0

    文章

    1

    浏览量

    1861
  • 单周期处理器

    关注

    0

    文章

    1

    浏览量

    1463

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

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

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    AM62x开发板的常见接口问题及排查思路(第2期)

    AM62x处理器作为TI新一代高性能、低功耗处理器,在工业控制、人机交互、边缘计算等领域有着广泛应用。此前,小编整理过大家在OK62xx-C开发板开发过程中常见的部分问题,得到了很多
    的头像 发表于 11-07 08:06 4961次阅读
    AM62x<b class='flag-5'>开发板</b>的常见接口问题及排查思路(第2期)

    RK3568开发板暗藏32兼容开关?飞凌嵌入式带你一键解锁!

    RK3568是一款64位处理器,飞凌嵌入式为其提供的交叉编译也是64的,然而部分用户可能需要在RK3568开发板上运行32应用。本文将
    的头像 发表于 07-19 08:49 4186次阅读
    RK3568<b class='flag-5'>开发板</b>暗藏32<b class='flag-5'>位</b>兼容开关?飞凌嵌入式带你一键解锁!

    基于米尔全志T536开发板的多协议物联网关的方案测试

    处理器的特点,这里进一步的进行软件开发,充分利用开发板的硬件资源,完成业务产品的需求。这里以物联网多协议网关应用为研究为目的,首先建立基础的从各个硬件设读取硬件端口
    的头像 发表于 06-19 08:03 1476次阅读
    基于米尔全志T536<b class='flag-5'>开发板</b>的多协议物联网关的方案测试

    中微爱芯32MCU开发板AiP32RV15X介绍

    AiP32RV15X开发板是一款基于RISCV内核的32MCU开发板,提供了板载调试、RESET、WAKEUP按键、三色LED、CAN收发
    的头像 发表于 06-17 10:54 609次阅读
    中微爱芯32<b class='flag-5'>位</b>MCU<b class='flag-5'>开发板</b>AiP32RV15X介绍

    有奖丨米尔 瑞芯微RK3562开发板免费试用新增名额!

    米尔与瑞芯微合作发布的新品基于瑞芯微RK3562应用处理器的MYD-YR3562开发板免费试用名额增加
    的头像 发表于 06-13 08:04 854次阅读
    有奖丨米尔 瑞芯微RK3562<b class='flag-5'>开发板</b>免费试用新增名额!

    基于RK处理器,创龙TL3562-MiniEVM开发板试用体验

    数量: 10块   更多热点文章阅读 基于平头哥TH1520芯片,润开鸿HH-SCDAYU800A开发板免费试用 RISC-V开发板深度评测!顶级开发板免费试用,速度来体验 限时申请
    的头像 发表于 06-05 16:31 916次阅读
    基于RK<b class='flag-5'>处理器</b>,创龙TL3562-MiniEVM<b class='flag-5'>开发板</b>试用体验

    技术分享 | 如何在2k0300(LoongArch架构)处理器上跑通qt开发流程

    技术分享 | 如何在2k0300开发板(LoongArch架构)处理器上跑通qt开发流程
    的头像 发表于 05-20 11:05 655次阅读
    技术分享 | 如何在2k0300(LoongArch架构)<b class='flag-5'>处理器</b>上跑通qt<b class='flag-5'>开发</b>流程

    Linux开发板CAN总线测试方法,触觉智能RK3568开发板演示

    本文介绍Linux开发板CAN总线测试方法,使用触觉智能EVB3568鸿蒙开发板演示,搭载瑞芯微RK3568,四核A55处理器,主频2.0Ghz,1T算力NPU;支持OpenHarmo
    的头像 发表于 04-11 19:14 919次阅读
    Linux<b class='flag-5'>开发板</b>CAN总线测试方法,触觉智能RK3568<b class='flag-5'>开发板</b>演示

    NXP基于i.MX 91应用处理器打造的FRDM i.MX 91开发板特性参数详解

    FRDM i.MX 91开发板。该开发板基于i.MX 91应用处理器打造,专为加速工业与物联网的开发而设计,提供了一种经济高效、安全且具有多种连接选项的解决方案。
    的头像 发表于 03-21 09:37 12.3w次阅读
    NXP基于i.MX 91应用<b class='flag-5'>处理器</b>打造的FRDM i.MX 91<b class='flag-5'>开发板</b>特性参数详解

    爆款推荐 | 迅为RK3568开发板4核处理器+1T算力NPU+好用到爆的配套资料和视频!

    爆款推荐 | 迅为RK3568开发板4核处理器+1T算力NPU+好用到爆的配套资料和视频!
    的头像 发表于 03-19 13:41 1190次阅读
    爆款推荐 | 迅为RK3568<b class='flag-5'>开发板</b>4核<b class='flag-5'>处理器</b>+<b class='flag-5'>1</b>T算力NPU+好用到爆的配套资料和视频!

    基于龙芯2K0300处理器 龙芯中科携手正点原子发布龙芯ATK-DL2K0300B开发板

    龙芯中科携手正点原子发布龙芯ATK-DL2K0300B开发板。该开发板为正点原子发布的首款龙芯开发板,为基于龙芯2K0300处理器打造,是一款性价比高、集低功耗与自主创新能力于一身的国
    的头像 发表于 02-25 15:29 1263次阅读
    基于龙芯2K0300<b class='flag-5'>处理器</b> 龙芯中科携手正点原子发布龙芯ATK-DL2K0300B<b class='flag-5'>开发板</b>

    恩智浦推出FRDM i.MX 93开发板

    备受嵌入式开发者青睐的恩智浦FRDM开发平台,迎来了一新成员——FRDM i.MX 93开发板,这也是第一块配备i.MX MPU的FRDM开发板
    的头像 发表于 02-21 14:22 2915次阅读

    迅为电子推出iTOP-RK3576开发板

    随着人工智能、物联网和边缘计算的飞速发展,迅为公司重磅推出iTOP-RK3576开发板。这款开发板搭载瑞芯微RK3576处理器,不仅具备高达2.2GHz的处理频率,还提供强劲的6TOP
    的头像 发表于 01-15 17:22 1246次阅读

    基于君正T30/T41、海思、国科微芯片处理器的图像传输开发板、智能安全帽、执法记录仪ODM定制开发

    提供基于君正T30/T41、海思、国科微芯片处理器的图像传输开发板、智能安全帽、执法记录仪ODM定制开发,可提供源代码和图纸
    的头像 发表于 01-11 09:19 1095次阅读
    基于君正T30/T41、海思、国科微芯片<b class='flag-5'>处理器</b>的图像传输<b class='flag-5'>开发板</b>、智能安全帽、执法记录仪ODM定制<b class='flag-5'>开发</b>

    OpenHarmony怎么修改DPI密度值?触觉智能RK3566鸿蒙开发板演示

    开源鸿蒙OpenHarmony系统下,修改DPI密度值的方法,触觉智能Purple Pi OH鸿蒙开发板演示,搭载了瑞芯微RK3566四核处理器,Laval鸿蒙社区推荐开发板,已适配全新开源鸿蒙OpenHarmony5.0 Re
    的头像 发表于 12-24 11:46 1082次阅读
    OpenHarmony怎么修改DPI密度值?触觉智能RK3566鸿蒙<b class='flag-5'>开发板</b>演示