龙芯MIPSdemo的vivado仿真

龙芯MIPSdemo的vivado仿真

  • 预览
  • 步骤

本文所用源码已经上传至github

预览

第一次模拟仿真成功时的画面
龙芯MIPSdemo的vivado仿真_第1张图片
来点细节看看
龙芯MIPSdemo的vivado仿真_第2张图片

步骤

  1. 因为龙芯的源码只有实机测试功能,没有仿真用的testbench,所以要自己写一个出来。
`timescale 1ns / 1ps
//*************************************************************************
//   > 文件名: tb.v
//   > 描述  :五级流水CPU的testbench
//   > 作者  : trialley
//   > 日期  : 2019-05-03
//*************************************************************************
module tb(//仿真界面将显示该模块的端口

    input  [ 4:0] rf_addr,
    input  [31:0] mem_addr,
    
    output [31:0] rf_data,
    output [31:0] mem_data,
    output [31:0] IF_pc,//取指地址
    output [31:0] IF_inst,//取到的指令
    output [31:0] ID_pc,//
    output [31:0] EXE_pc,
    output [31:0] MEM_pc,
    output [31:0] WB_pc,
    
    //5级流水新增
    output [31:0] cpu_5_valid,
    output [31:0] HI_data,
    output [31:0] LO_data
    );
	
	//实例化CPU
	reg resetn;
    reg clk;
	pipeline_cpu cpu(
		.clk     (clk ),
		.resetn  (resetn  ),

		.rf_addr (rf_addr ),
		.mem_addr(mem_addr),
		.rf_data (rf_data ),
		.mem_data(mem_data),
		.IF_pc   (IF_pc   ),
		.IF_inst (IF_inst ),
		.ID_pc   (ID_pc   ),
		.EXE_pc  (EXE_pc  ),
		.MEM_pc  (MEM_pc  ),
		.WB_pc   (WB_pc   ),
		.cpu_5_valid (cpu_5_valid),
		  .HI_data (HI_data ),
		  .LO_data (LO_data )
	);

	//仿真开始
	initial begin
		clk = 0;
		#10000 resetn=0;
		#20000 resetn=1;
		
		forever #5000 clk = ~clk;
	end
	
endmodule
  1. 龙芯源码无法进行简单的仿真,所以要先综合,后仿真
    龙芯MIPSdemo的vivado仿真_第3张图片
  2. 每次对硬件逻辑进行修改后需要重新运行综合
    在这里插入图片描述
  3. 每次修改仿真代码之后需要重新运行仿真
    龙芯MIPSdemo的vivado仿真_第4张图片

以上。

你可能感兴趣的:(龙芯MIPSdemo的vivado仿真)