系统与设计
的意见

为什么我看到C SCE-MI吗

硬件仿真指导非设计师

受欢迎程度

我最常听到的两个问题对SCE-MI事务建立仿真做演讲时,“我们可以有休息时间吗?”、“我们为什么需要一个C薄层两个SystemVerilog上衣”?

你可能在休息时间阅读本文,我们跳到第二个问题。它指的是这个图展示如何连接SystemVerilog testbench(通常UVM)与DUT SystemVerilog使用DPI办理人,SCE-MI基于函数定义的接口。

blog_img_scemi_01

有两个主要原因。首先,SCE-MI标准设计了一个假设,即testbench将使用C / c++建模SystemC等环境。第二,DPI (SystemVerilog直接编程接口)设计为跨通信机制基于函数调用,所以用户可以定义函数用一种语言(C或SV),叫它从另一个(SV或C),所以使用DPI SV testbench之间的接口和SV DUT有必要使用C薄层。

幸运的是如果你是过敏甚至C代码,这里有三个选项可以避免编写它。

1。SV-Connect
最新版本的标准,SCE-MI 2.3,介绍SV-Connect——一个小功能,是非常有用的,让你想知道为什么它不在那里。这只是这个C薄层的自动生成!所有用户必须做的是遵循命名约定:每个DPI函数在高密度脂蛋白方面应该对应等几个方面与“svc_”前缀(或任何指定的前缀)与定义配对函数调用。

blog_img_scemi_02

SCE-MI规范“鼓励EDA供应商生产C层实现对用户是透明的”。例如,通过使用SystemVerilog新品(Verilog程序接口)扫描用户的来源从SV来源收集所有必要的信息,自动生成C层。

blog_img_scemi_03

把戏,如果你需要更多一层薄薄的C和C代码有逻辑,你仍然可以使用SV-Connect生成模板来充满你的实现。

基于函数的(DPI)模型是理想的模型反应沟通(控制信号,小数据传输),和SV-Connect来节省编写C层的麻烦。

2。管道接口
有三个接口中定义SCE-MI规范:宏观、函数和Pipe-based,但是只有管道API的testbench SystemVerilog(除了C API),使他们在UVM环境中直接使用。事务管道单向传递数据渠道从结核病到DUT(输入管道)或从DUT结核病(输出管道)。消息传输使用函数调用(非阻塞操作)和任务(阻塞操作)。

blog_img_scemi_04

此外,管道为可变长messaging-meaning非常有用的功能,你不需要发送预定义的数据量,它可以在运行时改变。第一个特征是信息结束标记机制,一个标志表明这是数据包的结束。让我们来一个以太网办理人作为例子。最小的负载是46字节,最大1500字节(巨型帧或超过9000字节)。与SCE-MI管道不需要预定义消息并发送1500字节大小的每一帧,使用或不太为最小的负载是否足以让46字节而不是1500,只是标记字节# 46加工。

blog_img_scemi_05

另一个有用的特性是数据形成。管道可以作为喷嘴(想想SIPO-Serial输入并联输出)或漏斗(opposite-Parallel输入、串行输出)。如果以太网DUT输出32位的数据在每个时钟我们可以使用整个喷管和阅读有效载荷(不matter-46或1500字节)testbench。在视频应用,例如,我们可以产生一个整体的图片,甚至整个testbench相框,用漏斗管和阅读硬件像素,或其他方便。

blog_img_scemi_06

Pipes-based模型是适合批量沟通(流媒体大量数据)和附带好处的SV API(以及类似C API)。

3所示。OTS
或者你可以跳过的编码,继续阅读文章和喝咖啡,就用现成的交易人,也称为synthesizable VIP(验证IPs)。在这种情况下,您将需要一个营销推销你的经理…所以给你。

购买贵宾:

  • 确保独立实施VIP和ip——关键的质量验证。
  • 减少time-to-market-providing完成testsuite和加速测试过程。
  • 提供了更好的人力资源管理层可以专注于差异化的产品而不是编写低级测试。
  • 降低失败的风险(如衍生版本)。

结论:有办法使用SCE-MI无需编写一行C代码,在验证的领域,design-friendly SystemVerilog。啊哈,如果你wondered-I喝六咖啡写这篇文章。



留下一个回复


(注意:这个名字会显示公开)

Baidu