0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

DDR VIP模型的无缝快速初始化

星星科技指导员 来源:synopsys 作者:Nasib Naser 2023-05-29 09:10 次阅读

DDR 验证是任何 SoC 中最关键和最复杂的任务之一,因为它涉及位于 DUT 内部的控制器和位于板载 DUT 外部的外部 DDR 存储器。在这里,我们将讨论 DDR VIP 模型的快速初始化。

根据 JEDEC 标准 JESD79-4 第 3.3.1 节,RESET_n需要至少维护 200us。在interwetten与威廉的赔率体系 时间中,此值很长。此外,如果用户的测试平台违反此时间,Memory VIP 会将其标记为UVM_ERROR并失败模拟。即使此冲突被标记为错误,也不会影响 VIP 模型的行为。

pYYBAGRz_PuAQeEQAABW5boHlvg960.png

有许多方法可以绕过此违规行为。在本博客中,我们将讨论其中一种方式。

Synopsys Memory VIP 具有称为快速初始化的初始化功能,也称为按比例缩小初始化。此功能的目的是允许控制覆盖初始化参数以加快初始化过程。新值(无论是默认设置还是由用户自定义)都可以缩短初始化时间,而不会断言任何检查器冲突。此外,它不会影响模型的初始化行为。此功能仅适用于前门访问 - 与后门访问相比。我们将在后续的博客文章中讨论内存 VIP 访问的类型。

有两种方法可以缩小初始化参数。一个是使用默认值设置的,另一个是自定义设置的。

根据标准,以下是预期值:

min_cke_high_after_reset_deasserted_in_pu_and_res_init_time_ps = 500000000
min_reset_pulse_width_in_pu_ps = 200000000

使用默认方法,可以从配置对象的build_phase调用函数“set_scaled_initialization_timings()”。该函数调用会将计时参数缩小到下面分配的值,而不会触发检查器冲突:

min_cke_high_after_reset_deasserted_in_pu_and_res_init_time_ps = 500000
min_reset_pulse_width_in_pu_ps = 200000

要自定义值,用户可以设置自己的自定义值,然后设置标志“scaled_timing_flag”。VIP 将配置为用户提供的值。因此:

对于分立器件:

// cfg handle of the svt_ddr_configuration class
// Pass the cfg to the DDR Discrete Device component by using // the config_db mechanism.
cfg.timing_cfg.min_cke_high_after_reset_deasserted_in_pu_and_res_init_time_ps = 500000;
cfg.timing_cfg.min_reset_pulse_width_in_pu_ps = 200000;
cfg.timing_cfg. tPW_RESET_ps = 100000;
cfg.timing_cfg.scaled_timing_flag = 1;

对于内存型号:

// dimm_cfg is handle of svt_ddr_dimm_configuration
foreach(dimm_cfg.data_lane_cfg[i]) begin
foreach(dimm_cfg.data_lane_cfg[i].rank_cfg[j]) begin
dimm_cfg.data_lane_cfg[i].rank_cfg[j].timing_cfg.min_cke_high_after_reset_deasserted_in_pu_and_res_init_time_ps = 500000;
dimm_cfg.data_lane_cfg[i].rank_cfg[j].timing_cfg.min_reset_pulse_width_in_pu_ps = 200000;
dimm_cfg.data_lane_cfg[i].rank_cfg[j].timing_cfg.tPW_RESET_ps = 100000;
dimm_cfg.data_lane_cfg[i].rank_cfg[j].timing_cfg.scaled_timing_flag = 1;
end
end

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 控制器
    +关注

    关注

    112

    文章

    16383

    浏览量

    178334
  • 存储器
    +关注

    关注

    38

    文章

    7496

    浏览量

    163924
  • DDR
    DDR
    +关注

    关注

    11

    文章

    712

    浏览量

    65371
收藏 人收藏

    评论

    相关推荐

    DDR3初始化问题

    成800MHz的时候DDR出现错误,我在程序和表格中都对频率做了修改。 对于DDR3的初始化和配置还是了解的不够,还望有人能够指教一下。
    发表于 06-21 12:48

    6657的DDR3初始化不成功

    最近我在调试自制6657板子的DDR3初始化,发现一个很奇怪的现象,百思不得其解,我分别用GEL和KEYSTONE DDR3 INIT 在6657EVM开发板上做DDR3
    发表于 01-08 10:19

    如何从.mem文件初始化加密的ddr4内存模型

    大家好,有谁知道如何从.mem文件初始化加密的ddr4内存模型?在参考fromxapp1180项目时,发现使用以下命令初始化ddr3内存:
    发表于 05-11 09:17

    初始化封装

    初始化封装您可以在 Mask Editor 的 Initialization 窗格中添加 MATLAB® 代码以初始化封装模块。Simulink® 将执行这些初始化命令以便在关键时刻(如模型
    发表于 08-27 07:17

    手机模块初始化向导

    手机模块初始化向导:为了刚好的对手机模块进行初始化,所以把最基本的向导写下来.本向导适用于本公司的西门子TC35I和华为GT9000模块。一、在初始化手机模块前,请先确定DT
    发表于 09-18 09:41 17次下载

    RDA1846S初始化设置

    RDA1846S初始化设置RDA1846S初始化设置RDA1846S初始化设置
    发表于 01-15 17:08 0次下载

    UCOS_III_配置与初始化

    UCOS_III_配置与初始化
    发表于 12-20 22:53 5次下载

    HX711初始化程序

    这是HX711的初始化程序
    发表于 02-08 01:51 90次下载

    ds1302时钟芯片初始化,自动决定DS1302是否需要初始化程序

    ds1302芯片时钟芯片大家都在问到底需要不需要初始化?这篇文章将会给大家一个程序,可以自动决定DS1302是否需要初始化
    发表于 10-19 19:19 8588次阅读

    如何让KeyStone DDR3接口初始化的详细资料概述

    只要遵循适当的步骤,对KeyStone DSPs的DDR3 DRAM控制器的初始化是直接的。然而,如果省略了某些步骤,或者如果以错误的顺序执行一些序列敏感的步骤,DDR3操作将是不可预测的。
    发表于 04-28 11:09 10次下载
    如何让KeyStone <b class='flag-5'>DDR</b>3接口<b class='flag-5'>初始化</b>的详细资料概述

    8253初始化程序分享_8253应用案例

    本文首先介绍了8253概念及8253各通道的工作方式,其次详细介绍了8253初始化要求及编程,最后用一个例子介绍了8253的初始化程序。
    发表于 05-23 15:52 2.2w次阅读
    8253<b class='flag-5'>初始化</b>程序分享_8253应用案例

    在51平台下初始化文件的引入导致全局变量无法初始化的问题如何解决

    本文档的主要内容详细介绍的是在51平台下初始化文件的引入导致全局变量无法初始化的问题如何解决。
    发表于 08-20 17:31 0次下载
    在51平台下<b class='flag-5'>初始化</b>文件的引入导致全局变量无法<b class='flag-5'>初始化</b>的问题如何解决

    C++之初始化列表学习的总结

    类中可以使用初始化列表对成员进行初始化
    的头像 发表于 12-24 17:39 860次阅读

    跳过DDR VIP模型初始化

    使用 Synopsys 内存 VIP 的 Skip 初始化功能可确保模型处于空闲状态,从而绕过重置过程的要求。在该状态下,VIP 已准备好接受 REF、MRS 和 ACT 等命令。允许
    的头像 发表于 05-26 18:02 1692次阅读
    跳过<b class='flag-5'>DDR</b> <b class='flag-5'>VIP</b><b class='flag-5'>模型</b>的<b class='flag-5'>初始化</b>

    DDR4-初始化、训练和校准

    上电与初始化是由一系列精心设计的步骤组成的序列(sequence)。一般来说,在系统上电之后,ASIC/FPGA/处理器中的 DDR 控制器会被从复位状态中释放,自动执行上电与初始化序列。下文中列举了一个超简化的控制器所做的工作
    的头像 发表于 07-03 11:48 7029次阅读
    <b class='flag-5'>DDR</b>4-<b class='flag-5'>初始化</b>、训练和校准