- 博客(139)
- 收藏
- 关注
原创 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
215
原创 操作系统课程设计
(2)文件接口 对文件的操作包括以下内容: (a)新建文件:输入文件基本信息和内容后在模拟磁盘中建立文件的目录并 按规定方式组织数据的存放。(d)修改文件内容:能够通过命令修改指定文件的任意盘块中的信息。(3)内存缓冲页 文件接口中对文件内容的查看和修改过程,需要将文件内容先读入一个 M×K大小的缓冲区,其中页大小M和磁盘块的大小相等,K可以取值为8、16 等: (a)内存缓冲的分配:当有多个进程查看、修改文件时,能有效分配K个缓 冲页,需要记录每个缓冲页的所有者、访问时间和是否修改等信息。
2025-01-20 10:25:19
238
原创 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
127
原创 简单文件系统的实现
为了简单起见,可以不使用索引结点,其中的每个目录项应包含文件名、物理地址、长度等信息,还可以通过目录项实现对文件对读和写的保护。√ format:对文件存储器进行格式化,即按照文件系统对结构对虚拟磁盘空间进行布局,并在其上创建根目录以及用于管理文件存储空间等的数据结构。通过具体的文件存储空间的管理、文件的物理结构、目录结构和文件操作的实现,加深对文件系统内部功能和实现过程的理解。(2)文件存储空间对分配可以采用显式链接分配或者其他的办法。√create:用于创建文件;√rm:用于删除文件。
2025-01-17 22:07:34
209
原创 请求调页存储管理方式的模拟
该作业共有320条指令,即它的地址空间为32页,目前它的所有页都还未调入内存。在模拟过程中,如果所访问的指令已经在内存中,则显示其物理地址,并转下一条指令。如果所访问的指令还未装入内存,则发生缺页,此时需记录缺页的次数,并将相应页调入内存。在所有320条指令执行完毕后,请计算并显示作业运行过程中发生的缺页率。通过对页面、页表、地址转换和页面置换过程的模拟,加深对请求调页系统的原理和实现过程的理解。(1)假设每个页面中可存放10条指令,分配给一作业的内存块数为4。•50%的指令是顺序执行的。
2025-01-17 22:06:02
261
原创 使用动态分区分配方式的模拟
(1)用C语言分别实现采用首次适应算法和最佳适应算法的动态分区分配过程alloc( )和回收过程free( )。请分别采用首次适应算法和最佳适应算法,对内存块进行分配和回收,要求每次分配和回收后显示出空闲分区链的情况。了解动态分区分配方式中使用的数据结构和分配算法,并进一步加深对动态分区存储管理方式及其实现过程的理解。•作业1申请130KB。•作业3申请100KB。•作业4申请200KB。•作业2申请60KB。•作业2释放60KB。•作业6申请60KB。•作业7申请50KB。•作业6释放60KB。
2025-01-17 22:04:23
240
原创 使用动态优先权的进程调度算法模拟
•••• 进程被阻塞的时间BLOCKTIME,表示已阻塞的进程再等待BLOCKTIME个时间片后,将转换成就绪状态。•••• 进程的阻塞时间STARTBLOCK,表示当进程再运行STARTBLOCK个时间片后,将进入阻塞状态。•••• 进程还需占用的CPU时间ALLTIME。•••• 进程优先数 PRIORITY,并规定优先数越大的进程,其优先权越高。•••• 进程已占用的CPU时间CPUTIME。•••进程在就绪队列中呆一个时间片,优先数加1。•••• 进程状态STATE。•••• 进程标识数 ID。
2025-01-17 22:02:12
430
原创 vivado 五级流水CPU设计
本次实验是对单周期CPU实验的拔高,多周期CPU是指一条指令需要花费多个周期才能完成所有操作,在每个周期内只做一部分操作,本次实验分为取指、译码、执行、访存、写回五个阶段,此时每个周期只做一部分操作。将CPU划分为多周期的优势在于,每个时钟周期内CPU需要做的工作就变少,因此频率可以更高,且每个部件做的事情单一了,比如取指部件只负责从指令存储器中取出指令,因此CPU可以进行流水工作,也相当于一个时钟周期完成一条指令,频率更高,因此CPU可以运行的更快。熟悉并掌握多周期流水CPU的原理和设计。
2025-01-17 21:37:40
294
原创 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
247
原创 vivado运算器设计
学习MIPS指令集,熟知指令类型,了解指令功能和编码,归纳基础的ALU运算指令。用独热码方式实现alu_control,如图2.1。接口描述如表2.1所示,了解MIPS指令集中的运算指令,学会对这些指令进行归纳分类。进一步加强运用 verilog 语言进行电路设计的能力。熟悉使用verilog语言进行设计,仿真的过程。熟悉并掌握 ALU 的原理、功能和设计。为后续设计 cpu 的实验打下基础。观察仿真波形,确认电路设计是否正确。表2.1 运算器EX模块接口描述。译码阶段根据操作码所得运算类型。
2025-01-17 21:31:28
283
原创 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
822
原创 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
279
原创 vivado指令存储器rom设计
中的地址对应的基本存储单元大小是一个字节。也就是指令存储器本质上是按照字节进行寻址的。本次实验中设计的指令存储器实现的功能是给出一个地址,同时能读出。功能为每个时钟周期从指令存储器中取出一条指令。观察指令存储器的时序图。初始化rom用到的verilog指令为$readmemh。字节的内容,从而作为一条指令的内容。熟悉使用verilog语言进行设计,仿真的过程。熟悉14条MIPS32指令的格式。了解指令存储器原理以及取指过程。指令,请将其翻译成机器指令。指令的地址由程序计数器。本次实验中用到的测试的。
2025-01-17 21:18:39
1039
原创 词法分析器
(2)为了方便进行自动评测,输入的被编译源文件统一命名为 testfile.txt(注意不要写错文件名);【特别提醒】 (1)读取的字符串要原样保留着便于输出,特别是数字,这里输出的并不是真正的单词值,其实是读入的字符串,单词值需另行记录。-> ⼗进制编码为32,33,40-126的ASCII字符,‘’(编码92)出现当且仅当为’\n’单词名称 类别码 单词名称 类别码 单词名称 类别码 单词名称 类别码。单⾏注释:以序列 ‘//’ 开始,直到换⾏符结束,不包括换⾏符。/’ 时结束,包括结束处‘*/’。
2025-01-09 00:36:50
318
原创 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
1630
原创 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
1985
原创 洛谷 P1068 [NOIP2009 普及组] 分数线划定
世博会志愿者的选拔工作正在 A 市如火如荼的进行。为了选拔最合适的人才,A 市对所有报名的选手进行了笔试,笔试分数达到面试分数线的选手方可进入面试。面试分数线根据计划录取人数的150%划定,即如果计划录取m名志愿者,则面试分数线为排名第m×150%(向下取整)名的选手的分数,而最终进入面试的选手为笔试成绩不低于面试分数线的所有选手。现在就请你编写程序划定面试分数线,并输出所有进入面试的选手的报名号和笔试成绩。
2024-09-21 19:53:34
717
原创 洛谷 P1104 生日
cjf 君想调查学校 OI 组每个同学的生日,并按照年龄从大到小的顺序排序。但 cjf 君最近作业很多,没有时间,所以请你帮她排序。
2024-09-20 19:26:37
760
原创 洛谷 P1152 欢乐的跳
一个n个元素的整数数组,如果数组两个连续元素之间差的绝对值包括了1n−1之间的所有整数,则称之符合“欢乐的跳”,如数组1423321。给定一个数组,你的任务是判断该数组是否符合“欢乐的跳”。
2024-09-19 23:08:04
489
原创 洛谷 P1116 车厢重组
在一个旧式的火车站旁边有一座桥,其桥面可以绕河中心的桥墩水平旋转。一个车站的职工发现桥的长度最多能容纳两节车厢,如果将桥旋转180度,则可以把相邻两节车厢的位置交换,用这种方法可以重新排列车厢的顺序。于是他就负责用这座桥将进站的车厢按车厢号从小到大排列。他退休后,火车站决定将这一工作自动化,其中一项重要的工作是编一个程序,输入初始的车厢顺序,计算最少用多少步就能将车厢排序。
2024-09-19 22:53:30
309
原创 洛谷 P2676 [USACO07DEC] Bookshelf B
Farmer John 最近为奶牛们的图书馆添置了一个巨大的书架,尽管它是如此的大,但它还是几乎瞬间就被各种各样的书塞满了。现在,只有书架的顶上还留有一点空间。所有N1≤N≤20000头奶牛都有一个确定的身高Hi1≤Hi≤10000。设所有奶牛身高的和为S。书架的高度为B,并且保证1≤B≤S2000000007。为了够到比最高的那头奶牛还要高的书架顶,奶牛们不得不像演杂技一般,一头站在另一头的背上,叠成一座“奶牛塔”。
2024-09-18 16:44:45
308
原创 洛谷 P1781 宇宙总统
地球历公元 6036 年,全宇宙准备竞选一个最贤能的人当总统,共有n个非凡拔尖的人竞选总统,现在票数已经统计完毕,请你算出谁能够当上总统。
2024-09-18 15:37:45
600
原创 洛谷 P1059 [NOIP2006 普及组] 明明的随机数
明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数N≤100,对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作。
2024-09-16 10:14:08
682
原创 洛谷 P1271 【深基9.例1】选举学生会
学校正在选举学生会成员,有nn≤999)名候选人,每名候选人编号分别从1到n,现在收集到了mm≤2000000)张选票,每张选票都写了一个候选人编号。现在想把这些堆积如山的选票按照投票数字从小到大排序。
2024-09-16 09:30:47
490
原创 洛谷 P1067 [NOIP2009 普及组] 多项式输出
一元nfxanxnan−1xn−1⋯a1xa0an0其中,aixi称为i次项,ai称为i次项的系数。给出一个一元多项式各项的次数和系数,请按照如下规定的格式要求输出该多项式:多项式中自变量为x,从左到右按照次数递减顺序给出多项式。多项式中只包含系数不为0的项。如果多项式n次项系数为正,则多项式开头不出号,如果多项式n次项系数为负,则多项式以号开头。对于不是最高次的项,以号或者。
2024-08-26 10:31:57
690
原创 洛谷 P1518 [USACO2.4] 两只塔姆沃斯牛 The Tamworth Two
两只牛逃跑到了森林里。Farmer John 开始用他的专家技术追捕这两头牛。你的任务是模拟他们的行为(牛和 John)。追击在10×10的平面网格内进行。一个格子可以是:一个障碍物,两头牛(它们总在一起),或者 Farmer John。两头牛和 Farmer John 可以在同一个格子内(当他们相遇时),但是他们都不能进入有障碍的格子。CF牛在地图里以固定的方式游荡。每分钟,它们可以向前移动或是转弯。如果前方无障碍(地图边沿也是障碍),它们会按照原来的方向前进一步。
2024-08-25 16:59:00
630
原创 洛谷 P4924 [1007] 魔法少女小Scarlet
Scarlet 最近学会了一个数组魔法,她会在n×n二维数组上将一个奇数阶方阵按照顺时针或者逆时针旋转90∘。首先,Scarlet 会把1到n2的正整数按照从左往右,从上至下的顺序填入初始的二维数组中,然后她会施放一些简易的魔法。Scarlet 既不会什么分块特技,也不会什么 Splay 套 Splay,她现在提供给你她的魔法执行顺序,想让你来告诉她魔法按次执行完毕后的二维数组。
2024-08-24 10:49:12
1030
原创 洛谷 P1042 [NOIP2003 普及组] 乒乓球
国际乒联现在主席沙拉拉自从上任以来就立志于推行一系列改革,以推动乒乓球运动在全球的普及。其中11分制改革引起了很大的争议,有一部分球员因为无法适应新规则只能选择退役。华华就是其中一位,他退役之后走上了乒乓球研究工作,意图弄明白11分制和21分制对选手的不同影响。在开展他的研究之前,他首先需要对他多年比赛的统计数据进行一些分析,所以需要你的帮忙。
2024-08-19 21:56:23
772
原创 洛谷 P5742 【深基7.例11】评等级
现有N名同学,每名同学需要设计一个结构体记录以下信息:学号、学业成绩和素质拓展成绩、综合分数(实数)。每行读入同学的学号、学业成绩和素质拓展成绩,并且计算综合分数(分别按照70%和30%权重累加),存入结构体中。还需要在结构体中定义一个成员函数,返回该结构体对象的学业成绩和素质拓展成绩的总分。然后需要设计一个函数,其参数是一个学生结构体对象,判断该学生是否“优秀”。优秀的定义是学业和素质拓展成绩总分140分,且综合分数80分。当然通过本题很容易啦,本题只是为了帮助你训练结构体的使用方法。
2024-08-19 15:32:49
501
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人