16位CPU设计 Logisim 被呈现。带有数据路径和控制单元的16位简单CPU如下所示:

的设计过程 中央处理器 在Logisim中:
1.多路复用器:

图2.多路复用器的屏幕截图
在这种设计中,多路复用器模块将从控制单元获取10位选择信号,并输出10个16位数据输入之一。设计该模块时,我们可以看到多路复用器将传输N日 如果N,则将16位数据输入到输出日 10位选择信号的位有效“HIGH”其他位为零。注意,应该像这样控制来自控制器单元的选择信号。 10位选择信号中只有一个位是高电平。例如,如果我们希望多路复用器输出4日 输入时,选择信号将为0x008 = 0000001000。
因此,我们使用10个多路复用器2到1,在第一级控制单元的10位输入中输入1位选择信号。 模块。如果1位选择信号为高电平,则每个多路复用器将输出输入数据,否则将输出零。然后在2nd stage, we use a OR gate to OR all 日 e outputs of 10 multiplexers. Since 日 ere is just 1 bit in 日 e 10-bit select signal is asserted 高, we will get 日 e expected output at 日 e output of 日 e OR gate.
总线输出 = Dout when DinOut is asserted 高.
总线输出 = R0in…R7in when R0out….R7out is asserted 高
总线输出 = Gin when Gout is asserted 高
2. Addsub:

图3. Addsub模块的屏幕截图
该模块将根据来自控制器单元的addsub信号执行ADD和SUB操作。 MUX将在以下选择操作的结果:
Addsub = 0:执行添加操作。
Addsub = 1:执行SUB操作。

图4. 2位计数器模块的屏幕截图
2位计数器将根据时钟的上升沿而上升,并且如果run = 0或Resetn = 0,则清零。因此,我们使用2个T触发器并相互连接,如图4和OR所示。门用于产生清除信号,以清除计数器。
关于T型触发器的简介:

Qnext = T xor Q
To make it as a counter, 日 e T input is asserted 高. It becomes Q下一页=不是Q。我们在下图中连接2个T-FF:

图5.使用TFF的2位向上计数器
运作方式

表1. 2位向上计数器u的操作唱TFF
b。 控制单元:

表2.控制 信号
我们将根据上表对控制单元进行签名。可以看出,在第一个周期中,IRin将被置为高电平,而在下一个周期中,控制信号将跟随该表。周期数将等于2位计数器的值,因此在下图中,我们将获得计数器的输出作为多路复用器的选择信号,作为控制单元的最后一级。

图6。 控制单元最后阶段的屏幕截图
同样,上图所示的MUX 2至1用于在将Resetn设置为低电平时清除所有控制信号。
此外,从表中可以看出,在每个周期中,我们需要4个MUX到1来选择4个不同指令的控制信号,因此我们在3个周期中使用3个MUX 4到1,这3个MUX 4到1的每个输入取决于IR值从8日 to 6日 。详情如下所示:

图7。 3 MUX 4 to 1的第1部分的屏幕截图

图8。 3 MUX 4 to 1的第2部分的屏幕截图
如我们所见,我们使用2解码器3至8来解码寄存器地址。第一个是将3位RX解码为8位控制信号,另一个是将3位RY解码为8位控制信号。
最后,我们按照表2的说明和周期数为3 MUX 4至1提供正确的输入。详见图7和8。
4. 16位 Logisim中的简单CPU
我们连接所有模块在s之前和寄存器中实现电路文件simple_CPU.circ并使用Logisim进行了测试。

图9.最终电路

图10.包含计数器模块的控制单元电路
通过更改各种Din或指令并观察总线,寄存器文件和控制信号的值,成功在Logisim上测试了16位CPU电路的最终电路。
Logisim Circuit文件下载:
您可能还会喜欢:
D触发器的VHDL代码
D触发器的Verilog代码
比较器的Verilog代码
FIFO存储器的Verilog代码
FIFO存储器的VHDL代码
用于16位单周期MIPS微处理器的Verilog代码
Verilog中的可编程数字延迟计时器
Verilog HDL中的基本数字逻辑组件
VHDL中的FIR滤波器
什么是FPGA?为什么要使用FPGA?
VHDL中的完整8位微控制器
用于32位无符号除法器的Verilog代码
Verilog中的定点矩阵乘法[完整代码和教程]
提前进位乘法器的Verilog代码
微控制器的Verilog代码(第3部分)
LogiSim中的16位处理器CPU设计和实现
使用Verilog HDL在FPGA上进行图像处理
参数化的N位开关尾环计数器
使用两相自计时系统的4x4乘法器的Verilog代码
FPGA上数字时钟的VHDL代码
使用有限状态机(FSM)的停车系统的Verilog代码
交通信号灯控制器的Verilog代码
FPGA上的闹钟的Verilog代码
8位比较器的VHDL代码
使用VHDL和Xilinx核发生器的矩阵乘法设计
将文本文件加载到FPGA中的两种方法
FPGA Xilinx Spartan-6上的车牌许可证识别Verilog / Matlab实现
什么是FPGA编程? FPGA与软件编程
面向学生的推荐且价格合理的Xilinx FPGA板
面向学生的推荐且价格合理的Altera FPGA板
没意见:
发表评论