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。在模拟时间中,此值很长。此外,如果用户的测试平台违反此时间,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

    文章

    15223

    浏览量

    171192
  • 存储器
    +关注

    关注

    38

    文章

    7148

    浏览量

    161992
  • DDR
    DDR
    +关注

    关注

    9

    文章

    677

    浏览量

    64249
收藏 人收藏

    评论

    相关推荐

    请问CCS调试中GEL和uboot 谁的DDR初始化有效?GEL的初始化是不是长期有效,uboot到底执行初始化了吗?

    本帖最后由 一只耳朵怪 于 2018-5-25 14:51 编辑 我用CCS5调试uboot因为启动板子时加载了GEL之后才load了uboot原本以为DDR初始化用最近的uboot设置
    发表于 05-25 02:19

    请问为什么AM335X DDR内存无法初始化?怎么解决?

    ---||------------------------------------------------||| ----------------- ---------|DPLL_CORE| |DPLL_MPU|| DPLL_DDR| ----------------- ---------2.sdram_init
    发表于 06-21 02:48

    DDR3初始化问题

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

    C6678 boot过程中DDR3初始化问题

    通常调试时用gel文件进行初始化就够了,但如果想把代码放在DDR3中运行,这样的话,boot时就需要先对DDR3初始化代码才能正常运行,找了下boot talbe 中有关于SDRAM的
    发表于 06-21 06:38

    CCSv5,C66xx新建工程gel初始化DDR

    使用CCSv5.4,C6670,MCSDK,需要在debug load时初始化DDR,使用官方EVM板及自己的测试板,问题:1.使用EVM板,新建工程,工程中不建立sy***ios的 .cfg
    发表于 01-03 11:31

    6657的DDR3初始化不成功

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

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

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

    如何在simulink初始化电机参数

    如何在simulink初始化电机参数?最近有很多同学问,在模型里面为什么有Ld、Lq、Ts等参数,这些参数如何设置。这些参数在simulink里面是可以宏定义的,也就是可以初始化。1、初始化
    发表于 07-07 07:05

    端口初始化初始化中断

    目录PA9(TX),PA10(RX)1、端口初始化2、初始化外设3、初始化中断4、使能中断5、使能外设5、发送数据PA9(TX),PA10(RX)1、端口初始化1.开启PA时钟2.PA
    发表于 08-16 06:54

    初始化封装

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

    C6678使用GEL或库初始化DDR性能差别较大

    请问一下,我在使用C6678时,使用GEL或库初始化DDR性能差别较大,同样的代码,GEL初始化时快30ms左右,是正常的吗?
    发表于 06-13 10:53

    DDR初始化后的LX2160ARDB DDR内存访问总是失败怎么处理?

    通过 JTAG 手动初始化 DDR 控制器后,我试图访问 DDR 内存区域,但它总是失败据我了解,必须使用信任区地址空间控制器映射区域,因此我尝试执行 lsdk2012 中的 u-boot 所做
    发表于 03-29 07:58

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

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

    跳过DDR VIP模型初始化

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