📄 gr.v
字号:
`timescale 1ns / 1ps////////////////////////////////////////////////////////////////////////////////// Company: // Engineer://// Create Date: 22:58:41 11/07/07// Design Name: GR.v// Module Name: GR// Project Name: KD-CPU// Target Device: // Tool versions: // Description: 本文定义了一个8*8的通用寄存器组,改寄存器组有一个写端口,有一个读端口,以及一个读写地址// PS: 这里的寄存器不是对register模块的实例,仅为普通的reg.// Dependencies:// Author: 彭龙// Revision:// Revision 0.01 - File Created// Additional Comments:// ////////////////////////////////////////////////////////////////////////////////module GR(GR_out,GR_in,clk,reset,GR_address,load_enable); parameter width=8; output[width-1:0] GR_out; //GR的输出端口 input[width-1:0] GR_in; //GR的输入端口 input clk; //同步时钟,上升沿触发 input reset; //(异步)复位,低电平有效 input[2:0] GR_address; //寄存器读写地址 input load_enable; //载入使能 integer i; reg[width-1:0] GR_out; reg[width-1:0] register[width-1:0]; always@(posedge clk or negedge reset )//or load_enable) //写寄存器 begin if(!reset)begin //寄存器数组置零 for(i=0;i<7;i=i+1) register[i]<='b0; end else if(load_enable) begin case(GR_address) 'b000:register[0]<=GR_in; 'b001:register[1]<=GR_in; 'b010:register[2]<=GR_in; 'b011:register[3]<=GR_in; 'b100:register[4]<=GR_in; 'b101:register[5]<=GR_in; 'b110:register[6]<=GR_in; 'b111:register[7]<=GR_in; endcase end end always@(GR_address or register[0] or register[1] or register[2] or register[3] or register[4] or register[5] or register[6] or register[7])//读寄存器 begin case(GR_address) 'b000:GR_out<=register[0]; 'b001:GR_out<=register[1]; 'b010:GR_out<=register[2]; 'b011:GR_out<=register[3]; 'b100:GR_out<=register[4]; 'b101:GR_out<=register[5]; 'b110:GR_out<=register[6]; 'b111:GR_out<=register[7]; endcase endendmodule
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -