新闻资讯

新闻中心

当前位置: 首页 > 新闻中心 > 技术资讯

联系我们Contact Us

石家庄成瑶电子设备有限公司

电 话: 13189798958

网址:www.chengyaodianzi.com

邮 箱:530222948@qq.com

地 址:石家庄高新区兴安大街222号方亿科技园B区2号楼501室

电路软件开发​的RTL开发阶段

2021-10-23 08:18:15

电路软件开发的RTL开发阶段:


制定IP的SPEC, 这个阶段可能会要参考一些业界的标准,例如Ethernet MAC IP的开发一定会要去参考IEEE 802.3 standard。有时候基于客户或系统层面的应用需求,可能还会加入一些定制化的需求在里面。这就需要SPEC制定者与marketing, customer, system architecturer, SoC bus designer等等与当前IP相关的人员充分讨论,而不是单纯的闭门造车。

电路软件开发


SPEC制定后,设计工程师会开始做 RTL design。设计工程师一般用Verilog来实现RTL design, 也有用VHDL的,但就作者所接触的公司来看不是主流。近年来也有些公司在尝试用System Verilog来做RTL design, 其效果和EDA tool对其支持的完善程度还有待验证。


RTL coding完后,一般都由负责设计此RTL的设计工程师继续做一些RTL品质的检查,例如RTL代码风格检查,跨时钟域的检查等。这些检查目前主流的工具有Synopsys公司的 Spyglass. 为什么要做这些检查呢? 根本目的就是保证RTL设计的代码是可以被EDA工具综合(暂时理解为“翻译”)成物理电路世界的具体电路(例如AND/OR/NAND gate, Dflipflop等),并且这些电路的功能是吻合设计者的预期的。有些Verilog语法本身是无法被EDA tool翻译成具体的电路的,例如Integer类型的变量。


在设计工程师做上述事情的同时,验证工程师会同步开始他的验证工作。首先是根据自己对SPEC的理解编写验证规划。这个过程中遇到理解上的问题可以找SPEC制定者和设计工程师讨论,但是有个原则是不能什么都听他们的,你觉得有道理的可以采纳,你觉得没有道理的就要勇于和他们充分讨论。某些bug可能在前期的讨论中就会被发现。


验证规划里面要包含整个验证环境的框架和主要组成部分的介绍。还有SPEC中提到的所有的功能点也要列出来并说明怎么去测试这些功能点。

验证规划制定好后,要找SPEC制定者和设计工程师审核(review),确保没有理解上的偏差和验证漏洞。这个过程可能会有几个来回,对你的细心和耐心也是一种考验。

验证规划审核通过后,就可以开始搭建具体的验证环境,搭建方法一种是用Verilog语言来搭建,另一种是用UVM来搭建。前者相对简单些,验证者可以在较短的时间里就搭建好一个基本的环境。后者相对复杂,但搭建好后,能够更快地实现所有的测试项目。具体的差别我们可以在另一篇文章中来具体介绍。不管用什么方法都涉及到编译和仿真工具的选择。例如Synopsys公司的VCS或cadence的IRUN。

验证环境写好后,验证工程师就可以开始用它来测试设计工程师交付的RTL。绝大部分的设计缺陷都是在这个阶段的动态仿真中发现的。这期间除了分析打印在电脑屏幕上或log file中的debug信息(由建立验证环境和测试用例时由验证工程师所写的$display等打印函数打印出来的),你可能需要用到synopsys的Verdi来分析波形图以确定到底是RTL的设计缺陷还是验证环境的设计缺陷。

设计工程师的设计成果可以由验证工程师来把关,那验证工程师的工作成果的品质如何保证呢?一方面是靠相关工程师的人工审核(review),另一方面是靠代码覆盖率(code coverage)和功能覆盖率(function coverage)的客观结果。代码覆盖率就是RTL设计中的每一行代码,甚至每一个变量的变化都有被验证环境覆盖到。这个不论你的验证环境是Verilog写的还是UVM写的,都会被衡量。功能覆盖率是System Verilog 语言才有的一种方法,验证工程师通过它来保证所有从SPEC中抽取出的功能点都有被UVM环境覆盖到。具体的解释,将在别的文章中展开。


近期浏览:

相关产品

相关新闻

手机官网

服务电话:

13189798958

石家庄成瑶电子设备有限公司

服务热线    13189798958

网站地址    www.chengyaodianzi.com

公司地址    石家庄高新区兴安大街222号方亿科技园B区2号楼501室