最近在用FPGA调试DDR3控制器,看了一些DDR3的文章,发现里面提到Write leveling,但查了半天资料也没搞懂这是什么意思。
Fatal error: Uncaught TypeError: Cannot access offset of type string on string in /www/wwwroot/chipdebug.com/wp-content/themes/zibll/inc/functions/shop/widgets/widgets-product.php:652 Stack trace: #0 /www/wwwroot/chipdebug.com/wp-content/themes/zibll/inc/csf-framework/classes/widget-options.class.php(676): zib_shop_widget_ui_oneline_product_lists() #1 /www/wwwroot/chipdebug.com/wp-includes/class-wp-widget.php(394): CSF_Widget->widget() #2 /www/wwwroot/chipdebug.com/wp-includes/widgets.php(847): WP_Widget->display_callback() #3 /www/wwwroot/chipdebug.com/wp-content/themes/zibll/inc/functions/bbs/inc/template.php(42): dynamic_sidebar() #4 /www/wwwroot/chipdebug.com/wp-content/themes/zibll/inc/functions/bbs/page/posts.php(36): zib_bbs_page_template() #5 /www/wwwroot/chipdebug.com/wp-includes/template.php(880): require_once('...') #6 /www/wwwroot/chipdebug.com/wp-content/themes/zibll/inc/functions/bbs/inc/class.init.php(426): load_template() #7 /www/wwwroot/chipdebug.com/wp-includes/class-wp-hook.php(353): zib_bbs->template_redirect() #8 /www/wwwroot/chipdebug.com/wp-includes/class-wp-hook.php(377): WP_Hook->apply_filters() #9 /www/wwwroot/chipdebug.com/wp-includes/plugin.php(523): WP_Hook->do_action() #10 /www/wwwroot/chipdebug.com/wp-includes/template-loader.php(23): do_action() #11 /www/wwwroot/chipdebug.com/wp-blog-header.php(19): require_once('...') #12 /www/wwwroot/chipdebug.com/index.php(17): require('...') #13 {main} thrown in /www/wwwroot/chipdebug.com/wp-content/themes/zibll/inc/functions/shop/widgets/widgets-product.php on line 652


一般都是直接使用IP,没了解过这么深入,不过也是学习了哈,以前只知道DDR3带宽比SDRAM高。
DDR3 存储器是支持 fly-by 结构的,但是fly-by结构的一个问题就是从控制器到各个DDR3存储器芯片的延时有较大差异,导致DQS和CLK的边沿不能对齐,于是为了让控制器写数据时DDR3芯片能正确采样,因此需要调节DQS(控制器读数据时亦类似,不过叫Read Leveling,也有叫read training)。如果控制器支持write leveling那么控制器会对DQS进行一点点的移位,直到正确地采样到CLK的上升边沿,这个时候DQS和CLK就对齐了,整个Write leveling过程结束。
采用这种方式可以找到正确的DQS-DQS#延时可以确保tDQSS时序参数得以满足。
更多关于DDR3写入均衡(Write Leveling)和读取均衡(Read Leveling)的细节请参见《理解DDR3写入均衡(Write Leveling)和读取均衡(Read Leveling)》