
Vivado
文章平均质量分 72
[ToE]
这个作者很懒,什么都没留下…
展开
-
vivado MIPS32五级流水CPU设计
独立设计并实现一个电路模块和一款具有哈佛结构的32位标量处理器,该处理器兼容MIPS32 release 1指令集架构,具有5级静态流水,考虑流水线停顿、延迟槽、控制相关、数据相关、结构相关等(具体要求见下面的“内容安排”)至少实现21条指令ADD、SUB、OR、AND、XOR、NOR、SLT、SLTU、SLL、SRL、SRA、LUI, ADDU、ADDIU、SUBU、LW、SW、BEQ、BNE、JAL、JR。↑↑↑该代码一脉相承,来自你秦之前的学长(学姐)无私分享,修改了其中的一些小bug,加油小登。原创 2025-01-23 22:00:00 · 221 阅读 · 0 评论 -
vivado32位乘法器实现
在该模块中,通过一个循环,每次根据Y的最低位是否为 1 来决定是否将X累加到中间结果Result_tmp中,然后对Y进行移位操作,对Result_tmp进行右移操作,循环 32 次后得到最终的乘积。(1)mul32:作为整个乘法器的顶层模块,它接收两个 32 位的输入信号X和Y,并输出一个 64 位的乘法结果Result。该部分通过调用abs_calculator获取输入数据的绝对值,然后调用multiply_loop进行原码一位乘的运算,最后根据输入数据的符号位确定最终的乘法结果。图1 电路模块原理图。原创 2025-01-17 22:21:20 · 140 阅读 · 0 评论 -
vivado 五级流水CPU设计
本次实验是对单周期CPU实验的拔高,多周期CPU是指一条指令需要花费多个周期才能完成所有操作,在每个周期内只做一部分操作,本次实验分为取指、译码、执行、访存、写回五个阶段,此时每个周期只做一部分操作。将CPU划分为多周期的优势在于,每个时钟周期内CPU需要做的工作就变少,因此频率可以更高,且每个部件做的事情单一了,比如取指部件只负责从指令存储器中取出指令,因此CPU可以进行流水工作,也相当于一个时钟周期完成一条指令,频率更高,因此CPU可以运行的更快。熟悉并掌握多周期流水CPU的原理和设计。原创 2025-01-17 21:37:40 · 295 阅读 · 0 评论 -
vivado单周期CPU设计
为了验证单周期CPU的正确性,我们需要建立一个SOPC(System on a programmable chip),在这个sopc系统中包含单周期CPU模块(single_cycle_cpu)和指令存储器(inst_rom),single_cycle_cpu从inst_rom中读取指令,指令进入single_cycle_cpu开始执行,实现如框图2.1所示。图2.2中除inst_rom模块之外,其余的模块是single_cycle_cpu包含的模块。为后续设计多周期cpu的实验打下基础。原创 2025-01-17 21:34:14 · 250 阅读 · 0 评论 -
vivado运算器设计
学习MIPS指令集,熟知指令类型,了解指令功能和编码,归纳基础的ALU运算指令。用独热码方式实现alu_control,如图2.1。接口描述如表2.1所示,了解MIPS指令集中的运算指令,学会对这些指令进行归纳分类。进一步加强运用 verilog 语言进行电路设计的能力。熟悉使用verilog语言进行设计,仿真的过程。熟悉并掌握 ALU 的原理、功能和设计。为后续设计 cpu 的实验打下基础。观察仿真波形,确认电路设计是否正确。表2.1 运算器EX模块接口描述。译码阶段根据操作码所得运算类型。原创 2025-01-17 21:31:28 · 284 阅读 · 0 评论 -
vivado译码器设计
通过分析,我们得知译码器需要译码出reg1_read_o和reg2_read_o,以及aluop_o,wreg_o信号。信号和指令的关系,如表2.3所示。为此,我们需要将指令进行划分,用来译码。由此可分析得知我们需要6-64译码器,以及5-32译码器。指令主要由I-Type,J-Type,R-Type三种格式组成。熟知指令类型,了解指令功能和编码,译码器实现框图2.1。了解MIPS指令集中的运算指令,学会对这些指令进行归纳分类。对应inst_i[25:21],用于译码输入。从regfile读入数据1。原创 2025-01-17 21:27:20 · 824 阅读 · 0 评论 -
vivado寄存器设计
1、实验目的、重点难点实验目的:1.熟悉并掌握MIPS计算机中寄存器堆的原理和设计方法。2.初步了解MIPS指令结构和源操作数/目的操作数的概念。3.熟悉并运用verilog语言进行电路设计。4.为后续设计cpu的实验打下基础。实验重点:熟悉使用verilog语言进行设计,仿真的过程。实验难点:观察仿真波形,确认电路设计是否正确。2、MIPS相关知识2.1 数据格式处理器可处理的数据格式定义如下:比特(bit, b)字节(Byte, 8bits, B)原创 2025-01-17 21:21:21 · 286 阅读 · 0 评论 -
vivado指令存储器rom设计
中的地址对应的基本存储单元大小是一个字节。也就是指令存储器本质上是按照字节进行寻址的。本次实验中设计的指令存储器实现的功能是给出一个地址,同时能读出。功能为每个时钟周期从指令存储器中取出一条指令。观察指令存储器的时序图。初始化rom用到的verilog指令为$readmemh。字节的内容,从而作为一条指令的内容。熟悉使用verilog语言进行设计,仿真的过程。熟悉14条MIPS32指令的格式。了解指令存储器原理以及取指过程。指令,请将其翻译成机器指令。指令的地址由程序计数器。本次实验中用到的测试的。原创 2025-01-17 21:18:39 · 1066 阅读 · 0 评论 -
Vivado组合逻辑电路设计
如图3.2所示,为带优先级的83编码器模块图,83编码器有8线输入,3线输出。应用场景是:根据指令译码后的结果生成ALU模块的操作码alu_op。如图3.1所示,为38译码器的电路模块图。38译码器有3线输入,8线输出。3线输入会组成000到111共8个不同的数字,输出对应会有8种状态。表3.1是38译码器的真值表。在我们1阶段的电路模块中会多次用到多路选择器。图3.3是5选1多路选择器的模块图,表3.3是5选1多路选择器的真值表。图 3.1 38译码器模块图。表3.2为83编码器的真值表。原创 2024-11-07 00:00:00 · 1992 阅读 · 0 评论 -
Vivado时序逻辑电路设计
如下为带低电平有效异步复位端的触发器实现代码,图3.5为其模块示意图。如下为带使能端的D触发器,图3.7为其模块示意图。如下为带同步复位端的D触发器实现代码,图3.6为其模块示意图。如下为最简单的D触发器的实现代码,图3.4为其模块示意图。表 3.5 带低电平有效异步复位端的触发器真值表。图 3.6 带同步复位端的D触发器模块图和波形图。表 3.6 带同步复位端的D触发器真值表。图 3.7 带使能端的D触发器模块图。表 3.7 带使能端的D触发器真值表。图3.8 带使能端的D触发器的波形图。原创 2024-11-20 00:37:15 · 1692 阅读 · 0 评论