本文主要思路是建立一个4个8位寄存器,然后在顶层文件中对这四个寄存器写入数值,最后在四个存储器中读取数值。
其模块框图如下:
下面是verilog代码实现:
(1)存储器模块
module device_regs(clk,reset,data_in,data_adr,wr_en,rd_en,read_data);
input clk,reset;
input wr_en, rd_en;
input [7:0] data_in;
input [1:0] data_adr;
output [7:0] read_data;
reg [7:0] reg0,reg1,reg2,reg3;
wire [7:0] reg0_nxt,reg1_nxt,reg2_nxt,reg3_nxt;
reg[7:0] read_data,read_data_nxt;
wire reg_match0,reg_match1,reg_match2,reg_match3;
assign reg_match0 = (data_adr == 2'b00);
assign reg_match1 = (data_adr == 2'b01);
assign reg_match2 = (data_adr == 2'b10);
assign reg_match3 = (data_adr == 2'b11