问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

求cache的verilog代码

发布网友 发布时间:2022-07-27 09:08

我来回答

1个回答

热心网友 时间:2023-10-25 03:59

/* $Author: karu $ */
/* $LastChangedDate: 2009-03-04 23:09:45 -0600 (Wed, 04 Mar 2009) $ */
/* $Rev: 45 $ */
//
// Cache mole for CS/ECE 552 Project
// Written by Andy Phelps
// 4 May 2006
//
// Modified by Derek Hower
// 30 Oct 2006
// Changed to 4-word lines, byte addressable
//
// See the documentation on the class web page.
// Although this mole has been tested, it is not guaranteed to work.
// Please report errors to the TA.
//
mole cache (
input enable,
input clk,
input rst,
input createmp,
input [4:0] tag_in,
input [7:0] index,
input [2:0] offset,
input [15:0] data_in,
input comp,
input write,
input valid_in,

output [4:0] tag_out,
output [15:0] data_out,
output hit,
output dirty,
output valid,
output err
);

parameter cache_id = 0; // overridden for each cache instance
wire [4:0] ram0_id = (cache_id<<3) + 0; // These allow each memory to create a unique mp file
wire [4:0] ram1_id = (cache_id<<3) + 1;
wire [4:0] ram2_id = (cache_id<<3) + 2;
wire [4:0] ram3_id = (cache_id<<3) + 3;
wire [4:0] ram4_id = (cache_id<<3) + 4;
wire [4:0] ram5_id = (cache_id<<3) + 5;

wire [15:0] w0, w1, w2, w3;
assign go = enable & ~rst;
assign match = (tag_in == tag_out);

assign err = offset[0]; //word aligned; odd address is invalid

assign wr_word0 = go & write & ~offset[2] & ~offset[1] & (match | ~comp);
assign wr_word1 = go & write & ~offset[2] & offset[1] & (match | ~comp);
assign wr_word2 = go & write & offset[2] & ~offset[1] & (match | ~comp);
assign wr_word3 = go & write & offset[2] & offset[1] & (match | ~comp);

assign wr_dirty = go & write & (match | ~comp);
assign wr_tag = go & write & ~comp;
assign wr_valid = go & write & ~comp;
assign dirty_in = comp; // a compare-and-write sets dirty; a cache-fill clears it

memc #(16) mem_w0 (w0, index, data_in, wr_word0, clk, rst, createmp, ram0_id);
memc #(16) mem_w1 (w1, index, data_in, wr_word1, clk, rst, createmp, ram1_id);
memc #(16) mem_w2 (w2, index, data_in, wr_word2, clk, rst, createmp, ram2_id);
memc #(16) mem_w3 (w3, index, data_in, wr_word3, clk, rst, createmp, ram3_id);

memc #( 5) mem_tg (tag_out, index, tag_in, wr_tag, clk, rst, createmp, ram4_id);
memc #( 1) mem_dr (dirtybit,index, dirty_in, wr_dirty, clk, rst, createmp, ram5_id);
memv mem_vl (validbit,index, valid_in, wr_valid, clk, rst, createmp, ram0_id);

assign hit = go & match;
assign dirty = go & (~write | (comp & ~match)) & dirtybit;
assign data_out = (write | ~go)? 16'h0000 :
offset[2] ? (offset[1] ? w3 : w2) : (offset[1] ? w1 : w0) ;
assign valid = go & validbit & (~write | comp);

endmole

参考资料:http://pages.cs.wisc.e/~karu/courses/cs552/spring2009/wiki/index.php/Main/CacheMole

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
艾芙洛洗发水为什么不在商场销售商 艾芙洛洗发水是英国的吗 毕业生刚刚签了三方协议,想毁,怎么办 适合夫妻干的生意有哪些 新生蜜蜂多久出巢试飞 新生蜜蜂什么时候进行首次试飞? 蜜蜂几月几日出生外貌和颜色? 当脚模一定要脚趾修长吗 脚长成这样,能当脚膜吗 固话遇忙记存呼叫业务有什么特点? 什么是固话遇忙记存呼叫业务? 光谷大洋百货女装里面有哪些品牌啊。 请问新买的手机电池需要用完后再充电吗?第一次充电需要充多久? 锂子电池手机前几次充电怎么冲? 哪位亲知道敷尔佳面膜是也有假的吗 福州大洋百货有哪些女装品牌 敷尔佳面膜仿版里面成分是不是一样的? 在零下40℃的环境下不停的搅拌一盆水,水会结冰吗? 盐水在负40度不结冰,拿到常温迅速结冰,这是什么现象? 开了微店,怎么让更多的人知道呢? 有零下40摄氏度的水吗? 到底水什么情况下才结冰? 常温常压下的水! 青丘狐传说在哪里拍的 请问下三生三世十里桃花里面的青丘这个地方是在普者黑的具体什么地方拍摄的?谢谢了! 请问拍摄三生三世十里桃花的青丘是在哪里取景的,详细地址是哪里 三生三世十里桃花里的青丘和十里桃林是在哪拍摄的,具体的,青丘是在普者黑的什么地方拍摄的,急用谢谢! 最好的遇见舒画的扮演者是谁 中医刮痧一次刮多长时间为最好,是不是刮倒红为止? 昨天晚上梦见外婆做的糖饼给我吃,我吃了几口超好吃,超甜!就是有点糊... 在网上买两个人的票,可是没看清用了一个人的身份证,两个人可以一起上高铁吗 大人小孩同用一个身份证号码买高铁票后能刷身份证进站吗? 我用我的12306账号和别人一起买的火车票,两个人是否可以直接刷各自的身份证进站乘车? 这段verilog代码为什么cache里面赋不了值,在modelsim里面是红线,难道因为是input就不能给其他赋值了吗 verilog 模块例化出现的问题 出错是什么原因啊 有没verilog编写智力竞赛抢答器的程序哦?急急!!谢谢了 verilog HDL8路抢答器课程设计怎么写啊? 邹市明输了比赛,轩轩怎么打败一切拦路虎? 电动车控制器价格大概多少啊?96v控制器须要多少钱 为什么新生儿一到黄昏就哭闹?家长正确的应对方法有哪些? 来到幼儿园三周啦!现在幼儿园准备放假了,园长叫写期末总结怎么写? 派大星继承王位是哪一集 揭秘派大星不为人知的3大秘密 新规不系安全带怎么处罚 江宴和霍辰东是不是一个人 《幸福触手可及》中谁的表演最让人觉得惊艳? 郑州市第二十四中学和36中学哪个好 拉文向初恋女友求婚成功吗? 联盟最帅球员求婚成功,妻子有多美? 拉文成功向女友求婚,他们还有多久才会正式结婚? 拉文与女友相识几年了? NBA最美的女友是谁? 怎么看刹车片磨损情况? 刚开的网站应该怎么做宣传???