通过ip核实现五级流水线的板极验证——Verilog

本文详细介绍了如何通过IP核实现五级流水线的板级验证,涉及Verilog语言,重点是数据存储器和指令存储器的IP核封装,以及板载数码管的使用来观察流水线状态。实验中,通过IP核实现了ROM和RAM,利用时钟管理确保IP核与CPU频率协调,通过数码管显示PC、地址和数据,实现了动态观察流水线运行的效果。
摘要由CSDN通过智能技术生成
  • 实验目的
    1加深对五级流水线的工程理解,通过适当修改使之能够在板子上验证流水线的跑动。本次实验的板子对象是EGO1(具体的验证方法将在下面详细展开),同时使用的工具是vivado,要验证的流水工程是上次提供的init_test项目(即对于一套指令的运行)。
    2通过IP核的引入,将原来的指令存储器与数据存储器通过IP核封装起来,加深对ROM与RAM的理解,同时了解怎么编写初始化的coe文件,以及对IP核的使用方法。
    3、增强对项目的理解,拓展需要添加的功能,主要为了适应板极验证以及IP核的加入出现的问题,增强实验工程的robust。通过优化程序使之能够以较好的频率(越高越好)运行,探索频率在这个实验中的一些影响。
  • 功能概述
  1. 板极验证的功能介绍

一开始在想怎么能够在板子上有效地体现出流水线的跑动过程时有一点懵逼,因为上一个项目的流水线是直接在Vivado的控制台直接观察同时在生成文件的基础上进行对比验证的,那么这一次搬到板子上当然对于每个人都有很大的安排空间,于是我就从上一次验证的方法入手开始研究怎么有效地搬到板子上,首先是对于上一次的init_test指令的验证,我们是在下图的基础上研究的:

                     

也就是说我们是通过观察一系列指令的操作后数据存储器的地址对应的数据是否正确来判断指令操作的正确性,这就给我一个很大的方向了,那就是我们通过控制EGO1上的流水线开始工作后,当工作停止后,通过选择数据存储器的地址来观察该地址所对应的数据是否正确来验证init_test工程的运行,但是之后又觉得没能体现出运行的过程,于是我又把运行过程中pc的变化值,以及对应时间点对于输入数据存储器的地址(即cpu对数据存储器的请求地址输出)以及此时对应地址的数据给呈现出来,这样就会给人一种流水线不断在跑动的感觉,同时可以看到执行过程中对数据储存器的调用以及输出,注意在执行过程中看到的数据地址对应的数据输出可能与执行后最终的结果不一样。

有了这种验证方法,我就大致确定了最终的板极验证方法了,就是通过一个按钮作为CPU运行的启动键,其实在本实验中就是start变量,一旦按动这个按钮,我们的EGO1就开始了运行我们事先写好的的init_test指令;然后当然我们还有一个拨动开关作为reset键,作为重置作用(这个大家应该都理解他的作用),注意本实验中reset是低电平有效;然后是enable拨动开关,如下图

这是一个阐述了reset以及enable对于流水线状态机的运行影响效果图,只有当enable一直为高电平时程序才能不断驱动流水线正常运行,一旦我们将使能端置零,流水线就会停下来使得我们程序中断,那么这时也是我们停下来观察运行该过程中某个状态的pc、数据存储器的地址以及数据的好机会,也就是说,待会的板极验证,我也会用到这个方法来中断运行并观察那个时刻的数据以及状态;当我们再次将使能端有效化同时再次按动启动键,流水线会正常继续运行。上面是对于流水线的一个整体架构,也就是一个大概的启动,中断,以及重置,但是怎么看到数据呢?别急,来了。

怎么观察数据变动?当然是数码管喽,上一次用到数码管的实验我记得是驱动七段译码管来显示输入的数据,因为EGO1的七段译码管总共有八个,而且他们的位选是八位中选一位,但是前后四位的编码输入是不一样的,也就是说我们必须分前后四位的数据进行输入,这也就有了上一次输入的原理图会出现两个数据输入,一个位选输入的原因,这一个是一个重要的问题,一开始在弄的时候忘了这个问题,折腾了好久才想起这个错误。如下图,这是我们之前实验课上要实现输入数据然后在板子通过的显示管电路,注意我说的两个数据输出!(同时我们这是一位输出数字,在本实验中我们会利用时钟信号进行扫描):

下面是对于七段译码管的译码说明,如图他说开发板上的数码管是共阴极的,所以我们编码的时候也需要注意这个问题:

有了这个七段译码管我们就好办多了,首先只要我们把pc的数值输

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值