![](https://img-blog.csdnimg.cn/20190919212305104.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
31条指令单周期cpu设计(Verilog)
文章平均质量分 76
o0o_-_
这个作者很懒,什么都没留下…
展开
-
31条指令单周期cpu设计(Verilog)-(一)相关软件
说在前面开发环境:Vivado语言:Verilogcpu框架:Mips计算机组成原理课程终于结束了,由于以下均为课程学习过程中的内容,所以难免存在各种错误,各位大佬轻喷相关软件 vivadoXilinx公司的集成环境,笔者用的是下面这个:http://china.xilinx.com/support/download.html版本的话应该都可以吧,安装教程可以看下面...原创 2018-07-12 21:43:20 · 6460 阅读 · 3 评论 -
31条指令单周期cpu设计(Verilog)-(二)总体设计
目录31条指令单周期cpu设计(Verilog)-(一)相关软件31条指令单周期cpu设计(Verilog)-(二)总体设计31条指令单周期cpu设计(Verilog)-(三)指令分析 (重要)31条指令单周期cpu设计(Verilog)-(四)数据输入输出关系表 (重要)31条指令单周期cpu设计(Verilog)-(五)整体...原创 2018-07-14 11:27:27 · 22812 阅读 · 2 评论 -
31条指令单周期cpu设计(Verilog)-(三)指令分析
说在前面开发环境:Vivado语言:Verilogcpu框架:Mips控制器:组合逻辑鸽鸽鸽。。。指令分析流程确定一条指令所需要的具体操作 分析该条指令涉及的部件 确定各个部件的输入输出关系 画出数据通路图以ADD为例首先我们需要根据PC从指令集合中取出这条指令,然后将两个操作数相加R[rd]→R[rs]+R[rt],最后将PC+4,指向下一...原创 2019-03-21 08:54:44 · 17139 阅读 · 7 评论 -
31条指令单周期cpu设计(Verilog)-(四)数据输入输出关系表
说在前面开发环境:Vivado语言:Verilogcpu框架:Mips控制器:组合逻辑表格作用这张表用于设计整体的数据通路图(在第二篇中已经给出来了),而这张总图是用于设计Verilog代码整体结构的。设计流程在上一篇文章中分析了每一条指令的具体数据通路图,由于篇幅问题没有将单条指令的数据输入输出关系列举出来,所以就在这里整合一下(反正单条的数据通路图都有了)...原创 2019-03-21 16:16:43 · 6075 阅读 · 0 评论 -
31条指令单周期cpu设计(Verilog)-(五)整体数据通路图设计
说在前面开发环境:Vivado语言:Verilogcpu框架:Mips控制器:组合逻辑这张图是用来干啥的?我们在用verilog实现这个cpu的时候,一般是先把各个部件单独写一个module,然后再串联起来,这张图就是帮助我们连接各个部件的(通过输入输出关系)设计流程1. 把上一章中所有的部件画出来(红色方框部分)2. 根据数据输入输出关系表确定是否需...原创 2019-03-21 16:54:15 · 9135 阅读 · 0 评论 -
31条指令单周期cpu设计(Verilog)-(六)指令操作时间表设计
说在前面开发环境:Vivado语言:Verilogcpu框架:Mips控制器:组合逻辑这张表格又是干啥的呢(+_+)?废话少说,用来设计控制器的 (红色方框)设计流程1. 表头为31条指令,首列为所有的控制信号(控制信号需要解释吗?)酱紫控制信号取值为0/1,上面表格中的Rsc、Rtc、Rdc是寄存器的输入(应该设计过寄存器吧?)M开头:M...原创 2019-03-21 18:22:49 · 6990 阅读 · 0 评论 -
31条指令单周期cpu设计(Verilog)-(七)整体代码结构
说在前面开发环境:Vivado语言:Verilogcpu框架:Mips控制器:组合逻辑结构sccpu:顶层模块cpu_ins:指令译码器cpu_opcode:控制器其他均是基本模块(这些模块都是参照第二篇的总图设计的)下一篇开始上代码!...原创 2019-03-21 19:29:32 · 7273 阅读 · 5 评论 -
31条指令单周期cpu设计(Verilog)-(八)上代码→指令译码以及控制器
说在前面开发环境:Vivado语言:Verilogcpu框架:Mips控制器:组合逻辑指令译码器我们需要根据一条32位的指令的结构确定是哪一条指令可以根据操作码(op)以及功能码(func),使用case语句确定(下述代码中case语句顺序与上表相同)`timescale 1ns / 1nsmodule instr_dec( input [31:0...原创 2019-03-21 19:50:07 · 13075 阅读 · 3 评论 -
31条指令单周期cpu设计(Verilog)-(九)上代码→基本模块
不再赘述,直接上mux`timescale 1ns / 1nsmodule mux( input [31:0] a, input [31:0] b, input choose, output reg [31:0] z ); always @(*) begin case(choose) 1'b1:z <...原创 2019-03-21 20:03:39 · 8799 阅读 · 15 评论 -
31条指令单周期cpu设计(Verilog)-(十)上代码→顶层模块设计&总结
说在前面开发环境:Vivado语言:Verilogcpu框架:Mips控制器:组合逻辑设计思路按照预先设计好的数据通路图将各个模块连接起来`timescale 1ns / 1psmodule cpu( input clk, input reset, input [31:0] inst, input ...原创 2019-03-21 20:14:43 · 10080 阅读 · 12 评论