| |
为了简化对V6 DDR3控制器的使用,需要对Xilinx提供的DDR3控制器源码做少量修改。DDR3控制器源码中, app_wdf_rdy信号在用户接口侧指示数据是否成功写入,由wdf_rdy_ns延迟一拍产生。wdf_rdy_ns在DDR3控制器内部用于判断数据是否写入有效。wdf_rdy_ns是由一个FIFO写入侧counter计算出来的,counter的值则取决于FIFO的读写状态。如果Counter的值大于设定的将满阈值15,则wdf_rdy_ns为0,写入的数据无效。
为了使app_wdf_rdy信号具有将满指示效果,即把app_wdf_rdy用作反压信号时,每个写入的数据都是写入有效的,必须使app_wdf_rdy信号比wdf_rdy_ns更早的为0。wdf_rdy_ns是在counter值等于15时为0,而app_wdf_rdy应该在counter值等于15以前就为0。保险起见,可以在counter为12将app_wdf_rdy置为0。
以下是在ui_wr_data.v文件中的修改:
将:
always @(posedge clk) app_wdf_rdy_r <= #TCQ wdf_rdy_ns; assign app_wdf_rdy = app_wdf_rdy_r; |
修改为:
wire wdf_ready; reg App_ready; assign wdf_ready = !(rst || ~ram_init_done_r || occ_cnt[12]); always @(posedge clk) App_ready <= #TCQ wdf_ready; assign app_wdf_rdy = App_ready; |
------------------------------------------------------------------------------------------------------------------------------------------
欢迎大家光临我的主博客,或有惊喜,多谢支持:
http://blog.163.com/fpga_ip/