合理规划你的门级网表仿真(后仿)

科技   2024-12-23 12:57   中国香港  


(gate level simulation) GLS是什么?

“gate”一词指的是电路的门级网表,通常由逻辑综合产生。因此,RTL仿真是综合前,而GLS是综合后。门级网表是一个完整的连接列表,由逻辑门和IP模型组成,具有完整的功能和时序行为。

RTL仿真是一个零延迟环境,事件通常发生在有效时钟边沿。GLS也可以是零延迟,但更常用于unit delayfull timing mode。事件可能由时钟触发,但会根据每个cell的延迟进行传播。


网表的线负载模型可以通过综合工具估计,也可以从PR工具输出。这些延迟模型通常以SDF(standard delay format)文件的形式出现。

资源需求

现代逻辑仿真是基于事件的。这意味着仿真引擎仅在事件发生时更新DUT的状态,例如时钟边沿。在RTL仿真中,这通常是每个时钟周期一次,所以RTL仿真相对较快。


在GLS中,由于每个cell的复杂性更大,需要计算的事件更多,即使在zero或unit delay模式下,仿真的运行时间也比RTL长得多。当您从PR中添加实际延迟时,事件数量可能呈指数级增长。单个时钟边沿驱动十几个触发器可以在不同的时间点催生数百或数千个事件。在5分钟内完成RTL仿真的相同测试,在GLS中以full timing mode模式运行,可能很容易需要3小时或更长时间。内存需求也将大大增加。如果RTL job消耗了5GB的RAM,预计等效的GLS job至少会消耗40GB。

您需要规划计算资源,以适应这些更长的运行时间。可能需要保留一些服务器,专门用于GLS job。否则,您可能会遇到这样一种情况:向服务器提交太多job,而GLS job没有足够的可用RAM来完成,导致它在运行数小时或几天后退出。

人力需求呢?这在很大程度上取决于芯片的尺寸、GLS环境和工艺的成熟度以及工程师的经验。如果这是你团队的第一次GLS工作,您至少需要一个人致力于启动和运行环境并定义该过程。一旦稳定下来,在获得第一个用例结果之前,您至少需要一到两名额外的工程师来帮助运行和调试测试。如果流程和环境成熟,三到四个人可以处理具有大型设计的30-40个GLS测试用例。您的要求可能有所不同,但我建议至少两名专职工程师进行GLS工作。

修改您的仿真脚本

您的GLS仿真环境将与您的RTL环境有一些不小的差异。您可能需要调用不同的内存和IP模型,并可能调用不同版本的std cell库。您需要定义GLS特定的仿真参数plusargs。您需要一种方法来反标延迟,并选择要仿真的corner。所有这些都需要添加到您的仿真脚本中。应该计划花很多时间在前面来让这个工作。

准备测试平台

为了运行GLS,您需要对任何预先存在的RTL测试平台进行重大更改。例如,GLS对不定态(X)和初始条件非常敏感,您可能需要更改初始化序列,只是为了让芯片正确初始化。设计中的任何和所有分层引用都必须有RTL版本和GLS版本。要使这项工作发挥作用,您必须在测试台中添加plusargs,并可能为GLS特定结构添加“ifdef”。

启动流程

你怎么知道你的环境是否为GLS做好了准备?你需要一个基本的测试用例。它应该是最短的测试,初始化芯片,然后执行一个可验证的基本操作。例如:从复位中出来,启动处理器,让处理器将一个值写入寄存器或内存,然后将其读回。这是你m你的sanity测试。每次添加功能、更改环境或获取新的网表或延迟文件时都会运行它,因为如果它失败,其他任何东西也不会起作用。

对于具有完整timing反标的PR网表,应检查日志文件是否有任何未反标的SDF error或warning。例如,由于IP模型上未使用的端口,通常有很多SDF warning是微不足道的。确保它们都经过review。

创建测试计划

数字芯片实验室
前瞻性的眼光,和持之以恒的学习。
 最新文章