zoukankan      html  css  js  c++  java
  • SystemVerilog的挑战和机遇

          面对着设计复杂性的日益增加、IC容量的扩大、成本的上升、风险的提高、工程产量的停滞甚至衰退,以及推向市场的速度的减慢,我们整个行业把希望寄托在高级的设计、验证调试语言上。这些语言是建立在过去的经验和教训上的,并结合了最近的成果,开启了一扇通往创新设计、验证和调试的门。

    SystemVerilog就 是这样的一种语言,它基于Verilog-2001而建造,吸收了只有在测试台语言,例如Vear 和 Temporal e中才有的上一代测试技术,并具备了来自当今OVA和PSL的断言响应监控能力,从而实现了技术上的飞跃。PSL本身主要来自Sugar,但是也结合了来 自ForSpec,Temporal e以及CBV的开发者的众多构思。

          SystemVerilog的潜力不仅在于其具备众多有利因素,也在于其统一连贯的框架对于全面设计、验证和调试方法学的好处。该语言添加了设计抽象、数据封装、机动性和复用、修改过的语言和语义以及众多优点,来实现产量的增加。在此我们概述SystemVerilog的几个关键要素,并集中在其设计和调试方面,以及面临的挑战和机遇。

          高级语言必将带来一个设计者产量和产品质量都有提高的时代。设计和调试技术的前景将是:现在的不足将被在将来被改进,但也将会有挑战和机遇。设计是一个创造性的但是系统性的过程;如果给予工程师们更多的结构和构思,将可以实现巨大的产量。

          在此文中,我们以SystemVerilog作为这样的高级语言的一个代表,它得益于过去的成果(数千的Verilog和VHDL设计,数年的来自卖主的行业支持),有记载的长时间的用户经验,以及相对较近的面向对象的验证结构。例如,SystemVerilog中的抽象建模和增强的数据类型给系统级别的动作设计打开了门户,因此也能允许基于HDL的设计从RTL执行领域转移到算法执行。

          数据集合构造(例如结构等)让调试更加有效。必须注意到的是,抽象的增加将转化成更高的产量,而我们能够看到的是,它对合成效率的负面影响却非常小甚至为零。调试还要求良好而严格的知识分析、处理和运用。

         增强的建模,例如交易级别的,不仅能够通过数据分组和组织而改进调试工具对于设计尺寸的可测量性,还能依照设计理解来获得改进,并带有更多的抽象显示和可视化。SystemVerilog同时还在处理模块里增加了很多架构,从而使得专注的推论更为准确;这对所有的设计工具来说都是个好的预兆,尤其是以通过自动化来降低设计师精神负担为己任的调试器。

    调试器也必须以漂亮而高效的方式来显示设计数据,不管是原始的还是来自其它地方的。众多的抽象使得数据组织、探测和显示对于调试用户来说更加合理。

    将行为从通讯中分离出来,是SystemVerilog领域的另一个卓越构思,它能够允许在现今的执行中依照设计复用,通过服务于不同市场需要的不同版本,并通过同样设计的下一代,来获得巨大的增益。我们在以“增强的设计和调试”为标题的部分讨论了这些核心的设计优化设备及其调试副本。

    SystemVerilog对目标的倾向增加了灵活性和复用。目标可以允许很轻易地在测试台中生成,并在设计中进行维护;但是,它们却给传统的以硬件为中心的调制提出了一个新的挑战。

    调器器必须通过新的途径得到加强,利用软件领域的概念,例如层级分类和目标序列图等,来同时跟踪设计的静态和动态特征。

    建模和同步特征,例如线程、信号量和邮箱等,增强了测试台生成和描述。但是这些也给当今的源驱动硬件调试器提出了特别的挑战,这些调试器不仅需要负责所有不同的线程(标识和时间标签),还必须开发创新型分析和可视化技术,来选定这一平行性的额外等级。

    设计产量的增加必须和调试方面实现平衡,否则产量瓶颈只会在系统开发过程中从设计生成阶段转移到分析和调试阶段。关于测试台设备及其调试,请参考名为“增强了的测试台”的部分。

    SystemVerilog断 言带来了组合和约束设计、合成和验证。断言改进了基于IP的设计,而且其效用对于高级别的调试来说也是很高的。断言不仅能用来驱动调试程序来定位误差征 兆,还可以协助对错误的设计行为的原因进行诊断。关于断言及其给设计和调试带来的好处,请参考名为“基于断言的设计和调试”的部分。
  • 相关阅读:
    2016年 IT 趋势大预测!
    怎样创建合适的告警处理流程?
    如何解决 Java 安全问题?
    程序员:如何成为一个全栈的工程师?
    安全防护:你是否正在追逐一个不可能实现的目标?
    如何使用 Python 创建一个 NBA 得分图?
    如何对 Android 库进行依赖管理?
    减少 WAF 漏报的 8 种方法 !
    第69节:Java中数据库的多表操作
    第69节:Java中数据库的多表操作
  • 原文地址:https://www.cnblogs.com/erizen/p/1491527.html
Copyright © 2011-2022 走看看