×

如何在HIGH LEVEL SYNTHESIS之前查找代码问题的资料说明

消耗积分:0 | 格式:rar | 大小:1.40 MB | 2019-05-21

分享资料个

为了显著加快验证速度,处理每天都会变化的复杂算法,很多公司转向采用 High-Level Synthesis (HLS) 方法。但是,要利用在更高抽象度开展设计带来的相关性能改进,采用 C++ 或 SystemC 编写的高层次模型不仅要求正确无误,还要进行面积和性能优化,这一点极其重要。C++ 仿真作为一种快速的非时序仿真,是验证高层次模型是否具备正确功能的理想选择。但是,此仿真仅在验证平台准备就绪后方可进行。此外,C++ 语言具有歧义性,在仿真过程中很难发现。即使代码编写正确,高层次模型的代码编写方式也可能不太理想,导致综合之后硬件达不到预期。问题可能在 C++ 仿真中出现,或者导致此仿真与 RTL 仿真之间的仿真不匹配。也可能完全无法检测出问题(图 1)。

  图 1:编码问题、达不到预期的硬件或未检测到的问题都有可能

  C++ 模型的这些缺陷中,一些可以被静态软件分析工具指出,但这些工具本身是通用型软件,不能理解模型的硬件意图。

  虽然对 C++ 源代码运行语法检查器等软件检查工具的想法很有诱惑力,但这些工具并不理解硬件。团队可运行这些工具获得结果,但这些结果并不准确,而且可能误导设计人员以为代码中没有任何问题,这将会给综合和 RTL 仿真造成不利的影响。或者相反,他们可能会看到成百上千条实际没有问题的违例项。软件检查工具存在的一些硬件感知的问题包括:

  ■ 仅适用于 C++ 代码,而不支持 SystemC

  ■ 不理解比特精确数据类型

  ■ 仅采用静态分析,可能生成许多误报

  ■ 不理解某些代码可能生成不太理想或错误的硬件

  ■ 不能生成反例验证平台

  设计和验证团队真正需要的是一种能够在综合至 RTL 之前,快速、轻松地找出编码错误和不太理想的代码的工具。团队还需要避免 C++ 和 RTL 仿真之间的仿真不匹配(图 2)。


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

评论(0)
发评论

下载排行榜

全部0条评论

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