IC设计基础002:RAM的读延时与读数据锁存

1、什么是RAM的读延时?

RAM读延时指的是读使能ren有效后获得有效读数据rdata所需的rclk周期数。RAM读延时通常有1拍延时、2拍延时以及3拍延时。

图中所示为ren为RAM读使能,寄存器驱动,rdata为RAM读出的数据。

图1下图所示为读延时为1拍的RAM时序图,此图是没有延时信息的RTL仿真时序图,在读使能信号ren有效后下一个时钟触发沿rdata数据有效。图2所示为带延时的网表仿真时序图,读使能信号ren由寄存器驱动,是有tcq延时和路径延时的,并不是在rclk上升沿来的时候立即完成跳变。第2个rclk上升沿RAM采样读使能ren,经过一定的延时后rdata有效,并保持一个rclk周期。

2、RAM的读数据如何采样?

本文将讲解1拍读延时的RAM如何采样,ren由寄存器驱动,ren_d1是ren打一拍,在ren_d1为1的时候,使用rdata_d1对rdata进行寄存。Rdata_d1_vld是ren信号打2拍,表示rdata_d1有效。



always @ (posedge soc_clk or negedge soc_rst_n) begin
    if(!soc_rst_n)
	    ren  <=  1'b0  ;
	else
	    ren  <=  xxxxxxx;

always @ (posedge soc_clk or negedge soc_rst_n) begin
    if(!soc_rst_n) begin
	    ren_d1       <=  1'b0  ;
		rdata_d1     <=  64'b0 ;
		rdata_d1_vld <=  1'b0  ;
	end
	else begin
	    ren_d1       <=  ren;
		rdata_d1     <= ren_d1? rdata:64‘b0 ;
		rdata_d1_vld <=  ren_d1;
	end
		

1R1W_RAM_32X64 1R1W_RAM_32X64_U0
 (
.rclk                 ( soc_clk                     ),
.rst_n                ( soc_rst_n                   ),
.ren                  ( ren                         ), 
.raddr                ( raddr                       ),
.rdata                ( rdata                       ),  
.rclk                 ( sys_clk                     ),
.wen                  ( wen                         ),
.waddr                ( waddr                       ),
.wdata                ( wdata                       )
);

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值