单周期cpu定义仿真求问vivado为什么会这样报错

本系列所有演示实验均出自由东喃大学汤勇明教授、张圣清教授与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用于连接所有的子模块,同时具备指令计数器的功能其框图如下图所示:

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

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

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

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

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

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

3.代码综合后效果图:

4. 代码实现后效果图:

具体vivado步骤请參看之前的微信文章文章链接请点击。

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

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

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

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

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

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

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


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载文章观点仅代表作者本人,不代表電子发烧友网立场文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题请联系本站作侵删。 

我要回帖

更多关于 单周期cpu定义 的文章

 

随机推荐