16位RISC处理器的Verilog代码

此项目是16位RISC处理器的Verilog代码。在此Verilog项目中,提供了用于16位RISC处理器的Verilog代码。RISC处理器是基于其指令集和哈佛式数据路径结构而设计的。 然后,RISC处理器在Verilog中实现,并使用Xilinx ISIM进行验证。附件中包括:RISC处理器的指令集、处理器控制单元设计、ALU控制单元设计、RISC处理器的Verilog代码等等;了解更多请下载附件。

应用介绍

此项目是16位RISC处理器的Verilog代码。

在此Verilog项目中,提供了用于16位RISC处理器的Verilog代码。RISC处理器是基于其指令集和哈佛式数据路径结构而设计的。 然后,RISC处理器在Verilog中实现,并使用Xilinx ISIM进行验证。

附件中包括:RISC处理器的指令集、RISC处理器的指令格式、处理器控制单元设计、ALU控制单元设计、RISC处理器的Verilog代码:1.指令存储器的Verilog代码,2.注册文件的Verilog代码,3.数据存储器的Verilog代码,4. ALU单元的Verilog代码,5. RISC处理器的ALU控制单元的Verilog代码,6. RISC处理器的数据路径的Verilog代码,7. RISC处理器控制单元的Verilog代码,8. 16位RISC处理器的Verilog代码,9. 16位RISC处理器的Verilog Testbench代码,参数文件、指令存储器文件示例、示例数据存储文件。

RISC处理器的指令集:

A. Memory Access Instructions

1. Load Word:

               LD ws, offset(rs1) ws:=Mem16[rs1 + offset]

2. Store Word:

               ST rs2, offset(rs1) Mem16[rs1 + offset]=rs2

B. Data Processing Instructions

1. Add:

               ADD ws, rs1, rs2 ws:=rs1 + rs2

2. Subtract:

               SUB ws, rs1, rs2 ws:=rs1 – rs2

3. Invert (1‘s complement):

               INV ws, rs1 ws:=!rs1

4. Logical Shift Left:

               LSL ws, rs1, rs2 ws:=rs1 << rs2

5. Logical Shift Right:

               LSR ws, rs1, rs2 ws:=rs1 >> rs2

6. Bitwise AND:

               AND ws, rs1, rs2 ws:=rs1 • rs2

7. Bitwise OR:

              OR ws, rs1, rs2 ws:=rs1 | rs2

8. Set on Less Than:
             SLT ws, rs1, rs2 ws:=1 if rs1 < rs2; ws:=0 if rs1 ≥ rs2

C. Control Flow Instructions

1. Branch on Equal:
               BEQ rs1, rs2, offset
               Branch to (PC + 2 + (offset << 1)) when rs1 = rs2

2. Branch on Not Equal:
              BNE rs1, rs2, offset
              Branch to (PC + 2 + (offset << 1)) when rs1 != rs2

3. Jump: JMP offset Jump to {PC [15:13], (offset << 1)}


本人在下方展示了指令存储器的Verilog代码;想了解更多请下载附件。

`include "Parameter.v"
// fpga4student.com 
// FPGA projects, VHDL projects, Verilog projects 
// Verilog code for RISC Processor 
// Verilog code for Instruction Memory
module Instruction_Memory(
 input[15:0] pc,
 output[15:0] instruction
);
 reg [`col - 1:0] memory [`row_i - 1:0];
 wire [3 : 0] rom_addr = pc[4 : 1];
 initial
 begin
  $readmemb("./test/test.prog", memory,0,14);
 end
 assign instruction =  memory[rom_addr]; 
endmodule

文件列表(部分)

名称 大小 修改日期
16位RISC处理器的Verilog代码(附件).txt3.56 KB2020-04-02
gmfdg.png83.37 KB2020-04-05
rmtergisf.jpg34.53 KB2020-04-05
微信图片_20200402225723.png32.31 KB2020-04-02
微信图片_20200402225738.png48.69 KB2020-04-02
image0.00 KB2020-04-05

立即下载

相关下载

[算术逻辑单元(ALU)的Verilog代码] 此项目是算术逻辑单元(ALU)的Verilog代码。上一次,在VHDL中设计并实现了算术逻辑单元(ALU)。 提出了用于ALU的完整VHDL代码。现在,apollocode提供了ALU的Verilog代码。 还提供了用于ALU的testbench Verilog代码以进行仿真。附件中包括:ALU的Verilog代码、ALU的Testbench Verilog代码、ALU的仿真波形。了解更多请下载附件。
[16位RISC处理器的Verilog代码] 此项目是16位RISC处理器的Verilog代码。在此Verilog项目中,提供了用于16位RISC处理器的Verilog代码。RISC处理器是基于其指令集和哈佛式数据路径结构而设计的。 然后,RISC处理器在Verilog中实现,并使用Xilinx ISIM进行验证。附件中包括:RISC处理器的指令集、处理器控制单元设计、ALU控制单元设计、RISC处理器的Verilog代码等等;了解更多请下载附件。
[Full Adder的Verilog代码] 此项目是Full Adder的Verilog代码。在此Verilog项目中,提供了Full Adder的Verilog代码。 Full Adder的行为和结构Verilog代码均已实现。附件中包括:使用行为代码的完整加法器的Verilog代码、完整加法器的Verilog代码,使用结构代码。想了解的更多请下载附件。
[比较器的Verilog代码] 此项目是比较器的Verilog代码。在该项目中,在Verilog HDL中设计并实现了一个简单的2位比较器。 给出了真值表,K-Map和比较器的最小化方程。 比较器的Verilog代码由ModelSim仿真,并给出了仿真波形。2位比较器的规格如下:输入:2位A和B用于比较;输出:A_greater_B:如果A> B,则为高,否则为低;A_equal_B:如果A = B,则为高,否则为低;A_less_B:如果A [D触发器的Verilog代码] 此项目是D触发器的Verilog代码。D触发器是数字逻辑电路中的基本组件。 此项目中提供了D触发器的Verilog代码。 实现了两种类型的D型触发器,即上升沿D型触发器和下降沿D型触发器。附件文件中包括:上升沿D型触发器的Verilog代码、带有同步复位的上升沿D触发器的Verilog代码、具有异步复位高电平的上升沿D触发器的Verilog代码、具有异步复位低电平的上升沿D触发器的Verilog代码等等。了解更多请下载附件。
[4x4乘法器的Verilog代码] 此项目是4x4乘法器的Verilog代码。该项目将使用Verilog HDL实现4x4乘法器。所使用的技术是移位/相加算法,但不同的功能是使用两相自计时系统,以将乘法时间减少一半。此附件文件包括:乘法器的Verilog代码、4x4乘法器的仿真结果。注意:一旦确定了启动信号,乘法器便开始执行乘法。 通过创建2个相位时钟,它将乘法时间减少了一半。结束信号,通知乘法器乘法已经完成并且结果准备就绪。

评论列表 共有 0 条评论

暂无评论

微信捐赠

微信扫一扫体验

立即
上传
发表
评论
返回
顶部