IC设计基础001:寄存器读写,读清是如何实现的

1、Soc读写是如何实现的?

读有效: mem_rd   读写地址:mem_rw_addr, 读取的数据mem_rd_dat, 读取数据有效:mem_rd_datvld, 写有效 mem_wr, 写数据mem_wr_dat

2、读清是如何实现的?

代码中data_err_dy实现了读清功能,data_err:1表示有效,存在错误数据,在mem总线读取之前,data_err_dy一直保持为1,mem总线读取后,将data_err_dy清零。

module soc_mem_wr ( input                   soc_clk              , input                   soc_rst_n            , input                   mem_rd               , input                   mem_wr               , input       [9:0]       mem_rw_addr          , input       [31:0]      mem_wr_dat           , output  reg [31:0]      mem_rd_dat           , output  reg             mem_rd_datvld        , input                   data_err             , output  reg             send_data_enable     , output  reg             data_down_req    ); reg     data_err_dy  ; always @ (posedge soc_clk or negedge soc_rst_n) begin    if(!soc_rst_n)begin        send_data_enable   <= 1'b0;          data_down_req <= 1'b0 ;    end     else begin        if(mem_wr)		case(mem_rw_addr)		10'h0 :  send_data_enable  <= mem_wr_dat[0] ;		10'h1 :  data_down_req     <= mem_wr_dat[0] ;		default : ;		endcase	end		 always @ (posedge soc_clk or negedge soc_rst_n) begin    if(!soc_rst_n)	    mem_rd_datvld    <=  1'b0   ;	else        mem_rd_datvld    <=  mem_rd ;       always @ (posedge soc_clk or negedge soc_rst_n) begin    if(!soc_rst_n)        mem_rd_dat   <= 32'b0;      else         if(mem_rd)		case(mem_rw_addr)		10'h0   :  mem_wr_dat       <= {31'b0,send_data_enable  } ;		10'h1   :  mem_wr_dat       <= {31'b0,data_down_req     } ;		10'h2   :  mem_wr_dat       <= {31'b0,data_err_dy       } ;		default :  mem_wr_dat       <= 32'hffff_ffff              ;		endcase	end   //读清是如何实现的   always @ (posedge soc_clk or negedge soc_rst_n) begin    if(!soc_rst_n)        data_err_dy   <= 1'b0;  	else	    data_err_dy   <= (mem_rd&(mem_rw_addr==10'h2))? 1'b0 :		                  data_err_dy ? data_err_dy : data_err ;				  endmodule

---------------------
作者:IC小鸽
来源:CSDN
原文:https://blog.csdn.net/icxiaoge/article/details/90574140
版权声明:本文为作者原创文章,转载请附上博文链接!
内容解析By:CSDN,CNBLOG博客文章一键转载插件

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值