单周期处理器的数据路径(datapath)设计VHDL代码VIVADO仿真
名称:单周期处理器的数据路径(datapath)设计VHDL代码VIVADO仿真
软件:VIVADO
语言:VHDL
代码功能:
单周期处理器的数据路径(datapath)
指令执行通过使用程序计数器向指令存储器提供指令地址来开始。在获取指令后,指令使用的寄存器操作数由该指令的字段指定。一旦获取了寄存器操作数,就可以对其进行操作以计算内存地址(用于加载或存储)、计算算术结果(用于整数算术逻辑指令)或相等性检查(用于分支)。如果指令是算术逻辑指令,则ALU的结果必须写入寄存器。如果操作是加载或存储,则ALU结果用作地址,用于存储寄存器中的值或将内存中的值加载到寄存器中。这个ALU或存储器的结果被写回寄存器堆。连接功能单元的蓝线代表由多个信号组成的总线。箭头用于引导读者了解信息是如何流动的。由于信号线可能交叉,我们通过线交叉处存在的点来明确显示交叉线何时连接。
一些输入(RegWrite、ALUSrc、ALUCC、MemRead、MemWrite、MemtoReg)是由名为“control”的模块导出的控制信号。控制单元应该稍后设计,在这个实验室里,你假设你有所有的控制信号作为输入。
图2显示了单周期处理器的数据路径

FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
演示视频:
设计文档:
1.工程文件

2.程序文件



程序源文件如下

3.程序运行

4.程序RTL图

5.程序仿真
仿真3us ,如下图,输出18,与testbench要求一致

提供的testbench最终应该输出18

具体仿真图如下



部分代码展示:
---------------------------------------------------------------------------------- -- Company: -- Engineer: -- -- Create Date: 2019/02/13 23:17:30 -- Design Name: -- Module Name: Datapath - Behavioral -- Project Name: -- Target Devices: -- Tool Versions: -- Description: -- -- Dependencies: -- -- Revision: -- Revision 0.01 - File Created -- Additional Comments: -- ---------------------------------------------------------------------------------- library IEEE; use IEEE.STD_LOGIC_1164.ALL; -- Uncomment the following library declaration if using -- arithmetic functions with Signed or Unsigned values --use IEEE.NUMERIC_STD.ALL; -- Uncomment the following library declaration if instantiating -- any Xilinx leaf cells in this code. --library UNISIM; --use UNISIM.VComponents.all; entity Datapath is PORT ( clk , reset : IN STD_LOGIC ; RegWrite , MemtoReg , ALUsrc , MemWrite , MemRead : IN STD_LOGIC ; ALU_CC : IN STD_LOGIC_VECTOR (3 downto 0); opcode : OUT STD_LOGIC_VECTOR (6 downto 0); Funct7 : OUT STD_LOGIC_VECTOR (6 downto 0); Funct3 : OUT STD_LOGIC_VECTOR (2 downto 0); Datapath_Result : OUT STD_LOGIC_VECTOR (31 downto 0)); end Datapath; architecture Behavioral of Datapath is -- -------------- Component declaration ---------------- Component FlipFlop IS PORT ( clk , reset : IN STD_LOGIC ; d : IN STD_LOGIC_VECTOR (7 downto 0); q : OUT STD_LOGIC_VECTOR (7 downto 0)); end Component ; Component HA is PORT ( A , B : IN STD_LOGIC_VECTOR (7 downto 0); SUM : OUT STD_LOGIC_VECTOR (7 downto 0); Cout : OUT STD_LOGIC ); end Component ; Component RegFile IS PORT ( clk , reset , rg_wrt_en : IN STD_LOGIC ; rg_wrt_addr : IN STD_LOGIC_VECTOR (4 downto 0); rg_rd_addr1 , rg_rd_addr2 : IN STD_LOGIC_VECTOR (4 downto 0); rg_wrt_data : IN STD_LOGIC_VECTOR (31 downto 0); rg_rd_data1 , rg_rd_data2 : OUT STD_LOGIC_VECTOR (31 downto 0)); end Component ; Component alu is Port ( a, b : in std_logic_vector (31 downto 0); ALU_Operation : in std_logic_vector (3 downto 0); Result : out std_logic_vector (31 downto 0); Carry_out, zero, overflow : out std_logic); end Component ; Component data_mem is PORT ( MemRead , MemWrite : IN STD_LOGIC ; add : IN STD_LOGIC_VECTOR (8 downto 0); write_data : IN STD_LOGIC_VECTOR (31 downto 0); read_data : OUT STD_LOGIC_VECTOR (31 downto 0)); end Component ;
代码文件(付费下载):
![]()
1、代码文件需要付费后才可见。
2、支付问题请联系微信公众号客服。
3、优质Verilog/VHDL代码资源,所见即所得。
Verilog/VHDL资源下载 » 单周期处理器的数据路径(datapath)设计VHDL代码VIVADO仿真
2、支付问题请联系微信公众号客服。
3、优质Verilog/VHDL代码资源,所见即所得。
Verilog/VHDL资源下载 » 单周期处理器的数据路径(datapath)设计VHDL代码VIVADO仿真
发表评论
模板文件不存在: ./template/plugins/comment/pc/index.htm