如何加速PCIe仿真

电子说

1.3w人已加入

描述

  我们在进行PCIe RTL仿真时,由于PCIe ltssm协商过程比较复杂,导致PCIe ltssm进入L0状态所花费的时间比较长(大概在20~60分钟,因代码复杂度、服务器性能、PCIe速率不同而所有差异),而如果进行网表级别的仿真一般需要1周以上的时间。此时加速PCIe仿真,提高效率是我们必须考虑的问题。常见的加速模式有如下三种。我们以VIP PCIe(Verification IP,一种PCIe验证虚拟IP)对接Endpoint的仿真环境进行说明。   代码       1、选择低速模式加速仿真   在测试某些与速率不相关的功能时,为了减少仿真时间,可以选择低速率模式,如选择gen1,gen2。特别是gen1(2.5Gbps)速率下,ltssm协商所需要的时间最短。适用于测试跟速率无关的功能,比如说用户逻辑功能的正确性。Gen3以及以上速率跟gen1/gen2比起来,多了均衡协商过程,此阶段耗时最多。   2、使用PIPE口仿真加速   在完整的PCIe协商过程中,PHY的link协商时间较长。如果对接VIP支持PIPE(phy-interface-pci-express)互连的话,可以bypass PHY,直接使用PIPE接口连接,即Endpoint PCIe PIPE口对接VIP PIPE,能够有效减少PCIe上电协商所需要的时间。侧重PCIe TL层功能点以及用户逻辑的测试用例,可以bypass PHY,使用PIPE口互连,测试PHY相关功能的用例不能使用此方法。   3、使用加速宏定义或者配置加速 

PCIe ctrl(TL层和DL层)和PHY在设计时为了方便用户测试,一般都添加了加速的手段,通常有2种手段:

1)代码顶层或者内部的部分的寄存器决定是否加速:

如果在顶层,可以通过配置寄存器 or 改变例化值的方式实现; 如果在内部,可以通过force的方式实现  

2)通过宏定义实现:

例如VCS仿真时加上+define+AUTO_FAST_SIMULIATION,具体宏定义名称由IP确定。

加速原理 A)大幅减少链路状态机在各状态下的timeout时间,相对于正常模式,仿真模式下timeout时间可以减少至正常模式的千分之一或百分之一; B)大幅度减少训练成功所需序列的数量,例如连续接收到1000个序列表示当前状态训练成功,加速模式下可以只需要10个序列就能训练成功

        审核编辑:彭菁

 

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

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分