QDR SRAM接口FPGA详细Verilog代码分享.doc
《QDR SRAM接口FPGA详细Verilog代码分享.doc》由会员分享,可在线阅读,更多相关《QDR SRAM接口FPGA详细Verilog代码分享.doc(7页珍藏版)》请在三一文库上搜索。
1、QDR SRAM接口FPGA详细Verilog代码分享QDR SRAM介绍QDR 具有独立的读、写数据通路,均使用DDR,在每个时钟周期内会传输四个总线宽度的数据 (两个读和两个写),这就是QDR四倍数据速率的由来。这里用到的是典型2字突发的QDR,对于4字突发的QDR操作类似,稍作改动就行。针对每个读或写请求,2 字突发器件传输两个字。DDR 地址总线用于在前半个时钟周期允许读请求,在后半个时钟周期允许写请求。首先看接口的时序图时序图,表明了 2 字突发 QDR II 存储器接口上的并发读 / 写操作。时钟有三组差分时钟,其中C时钟是发送寄存器的发送时钟,K时钟是目的寄存器用的采样时钟,CQ
2、时钟是经过QDR器件延时,跟输出Q同步的时钟。在K时钟的前半个周期,DDR 地址总线允许读地址传输给存储器;在时钟的后半个周期,DDR 地址总线允许写地址出现其中。因此,低有效的读控制 (/R) 和写控制 (/W) 控制可在同一时钟周期内有效。设计目标就是要把QDR接口封装简化,把DDR接口都转化为FPGA内部可用的SDR,这样对用户侧而言,读写控制分离,读写地址分离,操作起来更简便。接口的原理图如下时钟关系可用看出两组发送给QDR的时钟,同频,满足C时钟相位为0和K时钟相位为270的关系。写数据通路从QDR SRAM的时序图中可以看出,写数据和地址的时序要求一样,因此处理起来也一样。多根数据
3、总线用generate for生成,代码如下。地址通道做相同的处理generategenvar var1;for(var1=0;var118;var1=var1+1)begin:gen_QDR_DODDR #(.DDR_CLK_EDGE(“SAME_EDGE”), / “OPPOSITE_EDGE” or “SAME_EDGE”.INIT (1b0 ), / Initial value of Q: 1b0 or 1b1.SRTYPE (“SYNC” ) / Set/Reset type: “SYNC” or “ASYNC”) O_QDR_D_inst (.Q (O_QDR_Dvar1 ), /
4、 1-bit DDR output.C (I_user_clk0 ), / 1-bit clock input.CE(1b1 ), / 1-bit clock enable input.D1(I_user_wr_data1var1), / 1-bit data input (positive edge).D2(I_user_wr_data2var1), / 1-bit data input (negative edge).R (1b0 ), / 1-bit reset.S (1b0 ) / 1-bit set);endendgenerate时钟通路由于数据要经过DDR输出,为了保证时钟和数据具
5、有相同的延时,构造相同的时钟通路,对CLK0和CLK270都进行如下处理参考代码如下,这里只是一个差分时钟CLK270的处理,对另一个差分时钟CLK0做相同处理。ODDR #(.DDR_CLK_EDGE(“OPPOSITE_EDGE”), / “OPPOSITE_EDGE” or “SAME_EDGE”.INIT (1b0 ), / Initial value of Q: 1b0 or 1b1.SRTYPE (“SYNC” ) / Set/Reset type: “SYNC” or “ASYNC”) O_QDR_K_p_inst (.Q (O_QDR_K_p), / 1-bit DDR out
6、put.C (I_user_clk270), / 1-bit clock input.CE(1b1), / 1-bit clock enable input.D1(1b0), / 1-bit data input (positive edge).D2(1b1), / 1-bit data input (negative edge).R (1b0), / 1-bit reset.S (1b0) / 1-bit set);ODDR #(.DDR_CLK_EDGE(“OPPOSITE_EDGE”), / “OPPOSITE_EDGE” or “SAME_EDGE”.INIT (1b0 ), / In
7、itial value of Q: 1b0 or 1b1.SRTYPE (“SYNC” ) / Set/Reset type: “SYNC” or “ASYNC”) O_QDR_K_n_inst (.Q (O_QDR_K_n), / 1-bit DDR output.C (I_user_clk270), / 1-bit clock input.CE(1b1), / 1-bit clock enable input.D1(1b1), / 1-bit data input (positive edge).D2(1b0), / 1-bit data input (negative edge).R (
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- QDR SRAM接口FPGA详细Verilog代码分享 SRAM 接口 FPGA 详细 Verilog 代码 分享
链接地址:https://www.31doc.com/p-3272024.html