首页 > 编程知识 正文

c51扩展数据类型有哪四种,堆栈寄存器属于什么部分

时间:2023-05-06 07:27:21 阅读:120450 作者:3071

2读1写通用寄存器文件设计实现文章目录2读1写通用寄存器文件设计实现一、接口设计二、接口结构三、设计实现

另一方面,接口设计寄存器堆数为32个,存储数据位宽为32位,以二维排列实现,有可能同时发生读取和写入。 其中,第0寄存器总是0 (无论写什么数据,寄存器值都是0 )

二.接口结构

三.实现设计

//filename 3360 datapath.v//designer 3360 lianggenyuan//-------input clk; 输入NRSt; 输入静态; 输入仁; input [4:0]raddr1; input [4:0]raddr2; 输入文; input [4:0]waddr; input [31:0]wdata; output [31:0]rs1; output [31:0]rs2; reg [31:0] mem [31:0]; reg wen_reg; reg waddr_reg; reg ren_reg; reg raddr1_reg; reg raddr2_reg; reg [31:0]rs1; reg [31:0]rs2; integer i; always @ (posedgeclkornegedgenrst ) beginif (! nrst ) beginwen_reg=0; waddr_reg=0; ren_reg=0; raddr1_reg=0; raddr2_reg=0; endelse beginwen_reg=wen; waddr_reg=waddr; ren_reg=ren; raddr1_reg=raddr1; raddr2_reg=raddr2; 结束always @ (posedgeclkornegedgenrst ) beginif (! nrst ) Beginfor(I=0; i=31; i=i 1) mem(I )=32 ) B0; endelseif(stall==0Wen_reg==1) beginmem[waddr_reg]=wdata; EndelseBeginfor(I=0; i=31; i=i 1) mem[i]=mem[i]; 结束always @ (posedgeclkornegedgenrst ) beginif (! nrst ) beginrs1=0; rs2=0; endelseif(ren==1) beginrs1=mem[raddr1_reg]; rs2=mem[raddr2_reg]; endelse beginrs1=0; rs2=0; 端对端模块

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。