您当前的位置: 首页 > 

FPGA硅农

暂无认证

  • 3浏览

    0关注

    282博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

基于verilog的直接相联cache

FPGA硅农 发布时间:2020-08-20 19:06:41 ,浏览量:3

cache控制器

//直接相联cache,cache大小为32块,主存大小为1024块,1块=4字,1字=32bit
//主存地址为12位,其中[1:0]是块内偏移,[6:2]是索引,[11:7]是Tag
//cache V+D+Tag+Data=1+1+5+128=135

module cache(
input clk,
input rst,
//cpucache
input [11:0]cpu_req_addr,
input cpu_req_rw,
input cpu_req_valid,
input [31:0]cpu_data_write,
output reg [31:0]cpu_data_read,
output reg cpu_ready,
//cachememory
output reg [11:0]mem_req_addr,
output reg mem_req_rw,
output reg mem_req_valid,
output reg [127:0]mem_data_write,
input [127:0]mem_data_read,
input mem_ready
);

parameter V = 134;
parameter D = 133;
parameter TagMSB = 132;
parameter TagLSB = 128;
parameter BlockMSB = 127;
parameter BlockLSB = 0 ;

parameter IDLE=0;
parameter CompareTag=1;
parameter Allocate=2;
parameter WriteBack=3;

reg [134:0] cache_data[0:31];           //134:V,133:D,[132:128]:TAG,[127:0]DATA
reg [1:0]state,next_state;
reg hit;

wire [4:0]cpu_req_index;
wire [4:0]cpu_req_tag;
wire [1:0]cpu_req_offset;

assign cpu_req_offset=cpu_req_addr[1:0];
assign cpu_req_index=cpu_req_addr[6:2];
assign cpu_req_tag=cpu_req_addr[11:7];

integer i;
//初始化cache
initial
begin
    for(i=0;i            
关注
打赏
1658642721
查看更多评论
0.0507s