![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
计算机组成原理
文章平均质量分 96
_YiFei
北航研一计算机,方向NLP/KG,github@lyyf2002
展开
-
使用Verilog搭建一个单周期CPU
使用Verilog搭建一个单周期CPU搭建篇总体结构其实跟使用logisim搭建CPU基本一致,甚至更简单,因为完全可以照着logisim的电路图来写,各个模块和模块间的连接在logisim中非常清楚。唯一改变了的只有GRF和DM要多一个input PC端口,用来display的时候输出PC值;IFU同理多了一个output PC,用来把PC的值传给GRF和DM。其他的模块我都是直接对着logisim原封不动地用Verilog重新实现了一遍。目前支持指令集{addu、subu、ori、lw、sw、be原创 2020-12-04 12:10:36 · 2581 阅读 · 0 评论 -
使用logisim搭建单周期CPU与添加指令
使用logisim搭建单周期CPU与添加指令搭建总设计借用高老板的图,我们只需要分别做出PC、NPC、IM、RF、EXT、ALU、DM、Controller模块即可,再按图连线,最后进行控制信号的处理,一个CPU就差不多搭完了。目前支持的指令集为{addu、subu、ori、lw、sw、beq、jal、jr、nop、lui、sb、lb、sh、lh}下面分模块逐个分析PC本质上就是一个32位的寄存器,这里采用的是异步复位,所以直接把reset信号连在clear口。NPC由于我的CPU支持b原创 2020-11-27 11:52:00 · 16117 阅读 · 5 评论 -
MIPS小总结
MIPS读入输出字符串输出.ascii与.asciiz.ascii不会在字符串后加上'\0',而.asciiz会在字符串加'\0'。两者均以字节为单位存储数据,这会对我们带来一些小麻烦,.asciiz之后分配的空间首地址有可能无法字对齐,因此我们在定义.ascii与.asciiz时尽量写在最后面#正确写法.data array_int: .space 28 space: .asciiz " "#错误示范.data space: .asciiz " " array_int: .sp原创 2020-11-12 13:11:44 · 3996 阅读 · 5 评论 -
Verilog小总结
Verilog小总结基础assignassign作为一个组合逻辑常用的语句,可认为是将电线连接起来,当然它能做的不仅仅是将一个输入直接输出,它能把输入信号进行逻辑运算后再输出。当assign左右两边位宽不相等时,将自动进行零扩展或截断以匹配左边的位宽。eg:module top_module ( input a, input b, input c, input d, output out, output out_n ); wire w1, w2; // Declare two wi原创 2020-11-06 22:39:14 · 968 阅读 · 0 评论 -
Logisim关于Moore型和Mealy型FSM的搭建
Logisim关于Moore型和Mealy型FSM的搭建Moore型与Mealy型的区别根据黑书上所讲,Moore型状态机即为输出只取决于系统的状态,而Mealy型状态机输出取决于当前系统的状态和输入。这样的解释可能难以理解,我们可以这样去区分Moore型与Mealy型:假设现在有输入in、状态S、输出out,对于Moore型:out为关于S而不关于in的一个组合逻辑,即每个S都对应一个out(当然可能多个S的out是一样的,也即out = f(S)),只要当前状态S发生改变,out便随之改变。原创 2020-10-22 15:29:26 · 2358 阅读 · 1 评论