处理器之基础篇二

本文深入探讨了MIPS处理器中寄存器文件的基础知识,通过行为级和数据流两种描述方式进行解析。对于数据流描述,尽管看似简单,但其中蕴含的设计细节值得深入研究。通过解决遇到的问题,读者将能更好地理解寄存器文件的工作原理。
摘要由CSDN通过智能技术生成

今天看了寄存器文件,之前都是用的是行为级描述,所以很快就搞定了。可是用数据流来描述,那就不是那么简单,虽然也很简单,但是有可以挖掘的地方。

Cannot access memory r directly

出现了这个问题!看完我的代码你知道改哪里那说明你已经了解register file!

module Register_file(
	input wire [4:0]  rna,rnb,
	input wire [31:0] d,
	input wire [4:0]  wn,
	input wire        we,
	input wire        clk,
	input wire        clrn,
	output wire [31:0]qa,qb
    );

	wire [31:0]r[31:0];
	wire [31:0]e;
	
	assign r[0] = 0;//for zero register
	decod5 U1(wn,we,e);
    
	dffe32 R01(.d(d),.clk(clk),.clr(clrn),.en(e[1]),.q(r[1]));
	dffe32 R02(.d(d),.clk(clk),.clr(clrn),.en(e[2]),.q(r[2]));
	dffe32 R03(.d(d),.clk(clk),.clr(clrn),.en(e[3]),.q(r[3]));
	dffe32 R04(.d(d),.clk(clk),.clr(clrn),.en(e[4]),.q(r[4]));
	dffe32 R05(.d(d),.clk(clk),.clr(clrn),.en(e[5]),.q(r[5]));
	dffe32 R06(.d(d),.clk(clk),.clr(clrn),.en(e[6]),.q(r[6]));
	dffe32 R07(.d(d),.clk(clk),.clr(clrn),.en(e[7]),.q(r[7]));
	dffe32 R08(.d(d),.clk(clk),.clr(clrn),.en(e[8]),.q(r[8]));
	dffe32 R09(.d(d),.clk(clk),.clr(clrn),.en(e[9]),.q(r[9]));
	dffe32 R10(.d(d),.clk(clk),.clr(clrn),.en(e[10]),.q(r[10]));
	dffe32 R11(.d(d),.clk(clk),.clr(clrn),.en(e[11]),.q(r[11]));
	dffe32 R12(.d(d),.clk(clk),.clr(clrn),.en(e[12]),.q(r[
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值