cache代码
`timescale 1ns / 1ps
//cache共32块,分为16组,每组2块,即两路组相联,1块=4字,1字=4字节
//主存共1024块,4096个字
//主存地址共12位,[1:0]为块内偏移,[5:2]为组地址,[11:6]为Tag
//V、D、Tag、Data=1+1+6+128=136
module cache(
input clk,
input rst,
//cpucache
input [11:0]cpu_req_addr,
input cpu_req_valid,
input cpu_req_rw,
input [31:0]cpu_data_write,
output reg [31:0]cpu_data_read,
output reg cpu_ready,
//cachemain memory
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 IDLE=0;
parameter CompareTag=1;
parameter Allocate=2;
parameter WriteBack=3;
parameter V=135;
parameter D=134;
parameter TagMSB=133;
parameter TagLSB=128;
parameter BlockMSB=127;
parameter BlockLSB=0;
reg [135:0] cache_data [0:31];
reg [1:0]state,next_state;
reg hit;
reg hit1,hit2;
reg way; //若hit,则way无意义,若miss,则way表示分配的那一路
wire [3:0]cpu_req_index;
wire [5: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[5:2];
assign cpu_req_tag=cpu_req_addr[11:6];
integer i;
//初始化cache
initial
begin
for(i=0;i
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?