为以下代码写注释timescale 1ns 1ps Company Engineer Create Date 20210507 133915 Design Name Module Name MEMWBReg Project Name Target Devices Tool Versions Description Dependencies Revision Revision
/*
- timescale指定时间单位和时间精度
- 其中,1ns表示时间单位为纳秒,1ps表示时间精度为皮秒 */ timescale 1ns / 1ps
/*
- 以下为文件基本信息注释
- 包括公司、工程师、创建日期、设计名称、模块名称、项目名称、目标设备、工具版本、描述、依赖关系、修订版本、附加注释等 */ ////////////////////////////////////////////////////////////////////////////////// // Company: // Engineer: // // Create Date: 2021/05/07 13:39:15 // Design Name: // Module Name: MEMWBReg // Project Name: // Target Devices: // Tool Versions: // Description: // // Dependencies: // // Revision: // Revision 0.01 - File Created // Additional Comments: // //////////////////////////////////////////////////////////////////////////////////
/*
-
定义模块MEMWBReg,包含多个输入输出端口 */ module MEMWBReg( input clk, //时钟信号 input reset_n, //复位信号 input en, //使能信号 input [31:0] PCAdd4_FromMEM, //来自MEM模块的PC+4数据 output reg[31:0] PCAdd4_ToWB, //传输到WB模块的PC+4数据
input [31:0] ALUResult_FromMEM, //来自MEM模块的ALU计算结果数据 output reg[31:0] ALUResult_ToWB, //传输到WB模块的ALU计算结果数据
input [31:0] MEMReadData_FromMEM,//来自MEM模块的读取数据 output reg[31:0] MEMReadData_ToWB, //传输到WB模块的读取数据
input [4:0] WriteReg_FromMEM, //来自MEM模块的写寄存器号 output reg[4:0] WriteReg_ToWB, //传输到WB模块的写寄存器号
input MemtoReg_FromMEM, //来自MEM模块的写回寄存器信号 input RegWrite_FromMEM, //来自MEM模块的寄存器写使能信号 input J_FromMEM, //来自MEM模块的跳转信号
output reg MemtoReg_ToWB, //传输到WB模块的写回寄存器信号 output reg RegWrite_ToWB, //传输到WB模块的寄存器写使能信号 output reg J_ToWB //传输到WB模块的跳转信号 );
/*
- PC+4数据传输到WB模块 */ always @ (posedge clk) begin if(!reset_n) PCAdd4_ToWB<=32'h00000000; //复位状态下,传输0 else if(en==1) PCAdd4_ToWB<=PCAdd4_FromMEM; //使能状态下,传输来自MEM模块的数据 else PCAdd4_ToWB<=PCAdd4_ToWB; //其他状态下,保持不变 end
/*
- ALU计算结果数据传输到WB模块 */ always @ (posedge clk) begin if(!reset_n) ALUResult_ToWB<=32'h00000000; //复位状态下,传输0 else if(en==1) ALUResult_ToWB<=ALUResult_FromMEM; //使能状态下,传输来自MEM模块的数据 else ALUResult_ToWB<=ALUResult_ToWB; //其他状态下,保持不变 end
/*
- 读取数据传输到WB模块 */ always @ (posedge clk) begin if(!reset_n) MEMReadData_ToWB<=32'h00000000; //复位状态下,传输0 else if(en==1) MEMReadData_ToWB<=MEMReadData_FromMEM; //使能状态下,传输来自MEM模块的数据 else MEMReadData_ToWB<=MEMReadData_ToWB; //其他状态下,保持不变 end
/*
- 写寄存器号传输到WB模块 */ always @ (posedge clk) begin if(!reset_n) begin WriteReg_ToWB <=32'h00000000; //复位状态下,传输0 end else if(en==1) begin WriteReg_ToWB <=WriteReg_FromMEM; //使能状态下,传输来自MEM模块的数据 end else begin WriteReg_ToWB <=WriteReg_ToWB ; //其他状态下,保持不变 end end
/*
- 写回寄存器信号、寄存器写使能信号、跳转信号传输到WB模块 */ always @ (posedge clk) begin if(!reset_n) begin MemtoReg_ToWB <=32'h00000000; //复位状态下,传输0 RegWrite_ToWB <=32'h00000000; //复位状态下,传输0 J_ToWB <=32'h00000000; //复位状态下,传输0 end else if(en==1) begin MemtoReg_ToWB <=MemtoReg_FromMEM ; //使能状态下,传输来自MEM模块的数据 RegWrite_ToWB <=RegWrite_FromMEM ; //使能状态下,传输来自MEM模块的数据 J_ToWB <=J_FromMEM ; //使能状态下,传输来自MEM模块的数据 end else begin MemtoReg_ToWB <=MemtoReg_ToWB; //其他状态下,保持不变 RegWrite_ToWB <=RegWrite_ToWB; //其他状态下,保持不变 J_ToWB <=J_ToWB ; //其他状态下,保持不变 end end
endmodul
原文地址: https://www.cveoy.top/t/topic/fjze 著作权归作者所有。请勿转载和采集!