在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 22777|回复: 25

[求助] 怎样进入IC验证这一领域

[复制链接]
发表于 2011-6-26 19:38:59 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
本帖最后由 snowman3852 于 2011-6-26 19:41 编辑

大家好,我参加工作1年了,工作是FPGA的设计,当然入职1年只是接触了简单的模块设计,在设计过程中我发现验证是很重要的。以下是我的一些体会:


1.我们的设计往往只是经过设计人员简单的仿真,就下载到FPGA中进行调试,调试初期会发现许多本应该仿真能够仿出的问题,我觉得在设计和上板调试之间有个很重要的环节被忽视了,就是验证(公司领导也知道,但是目前没有这样合格的验证组人员,尤其是缺乏一个优秀的验证leader,验证方面的资金人员投入不足)。我们只做FPGA还比较好混过去,就是加探针找问题,但是这种做法往往会倒是比较严重的问题,前期设计时间看似短了,可是后期查找问题很麻烦。


2.我今年做的项目,要频繁的与软件驱动打交道,我们FPGA设计人员的仿真没有办法模拟软件驱动(要想达到这种仿真效果,那么所做的工作量,相当于用Verilog代码把驱动软件重新做一遍,这显然是巨大的工作量,搭建这样一个环境所付出的是该项目FPGA设计的2倍工作量),所以我们更习惯于直接将设计下载到FPGA中,然后与软件人员一起联合调试。


3.我觉得我们的设计完全没有进行充分的验证,尽管能够和软件跑起来,但是有好多问题,不会被测试到,这为今后的应用买下了隐患,而一个“好的”验证能够达到一个比较满意的功能和代码覆盖率。


基于以上这些点,我觉得验证是非常重要的环节,而我所在的部门恰恰缺少这一环节,这是很危险,而且是一块木桶中的短板。


请问大家:

1.如果我想转为验证工程师,需要从哪个方面入手?譬如我现在这个项目所遇到的问题,有没有可能,使用一种可行的方法去模拟软件驱动,从而进行仿真验证?是不是有专门的一个模拟平台(包含CPU模拟、内存模拟等等)能够实现。


2.请推荐一些好的书籍。


3.关于工具选择,语言工具和软件工具,就像我遇到的问题,不是真让我用Verilog去翻译驱动软件吧?!我想应该有比较简单的方法。能不能搭建好一个验证平台后,能用这个平台验证多个设计,只需要进行简单的参数修改就可以了。(我读研究生时,在实习单位,我知道有一个工程师会搭建这种平台,他离职后,仍然在发挥作用)。


4.现在验证工程师太少了,我们国家在这方面做的不规范,我想这是我们没法与国外IC设计公司竞争的原因之一。


请大家给我一些建议,谢谢了,验证这块短板要是不能提高,其它都是白搭。

发表于 2011-6-26 21:28:20 | 显示全部楼层
楼主是一个善于思考的人,看完楼主的想法,觉得做一个合格的IC designer,要学的东西还很多,看来打好扎实的基础是相当重要的
发表于 2011-6-27 11:19:46 | 显示全部楼层
回复 1# snowman3852

楼主的问题提得很好,期待的大牛给予解答和指导啊!!!
发表于 2011-6-28 17:34:18 | 显示全部楼层
找一个大公司,不要计较报酬,好好学,然后...
发表于 2011-7-2 12:36:04 | 显示全部楼层
本帖最后由 kinglin 于 2011-7-2 12:39 编辑

1.从楼主的第一点介绍看,贵公司的设计流程不完善。

    RTL设计经过简单的仿真,就下载到FPGA进行调试。这样的FPGA设计流程缺少一个至关重要的环节:功能验证。上FPGA的前提是:第一、单个模块的功能经过充分的验证,可以认为RTL功能符合设计需求;第二、多个模块可以正常的协同工作(比如DMA可以在两个设备间正常搬运数据)。如果RTL设计没有经过充分的验证,直接上FPGA进行调试,发现问题、定位问题和解决问题都十分困难。问题可能是由于FPGA的电气特性、驱动的不完善和RTL设计功能缺陷造成的,很难定位问题的根源。所以没有经过验证的设计,没有办法完美运行。

功能验证包括:模块级和系统级。模块级验证时,设计人员需要提供可供仿真用的Verilog驱动代码;系统级验证或FPGA验证时,驱动工程师根据设计人员提供的programming guild或Verilog驱动代码并结合系统需要编写C语言的驱动代码。如果设计人员不提供编写驱动相关的文档(programming guild)和参考代码(verilog驱动代码),驱动工程师编写的驱动很难正常工作。

2. 从楼主的第二点介绍看,verilog驱动代码是必须的。

    RTL设计人员了解设计的工作流程,而且verilog驱动代码也相对简单,只要描述设计的工作流程即可,说白了就是如何配置寄存器(比如查询中断寄存器,根据中断类型配置相关的寄存器如DMA的源地址,目的地址,使能DMA等)。在系统级仿真中,如果需要配合软件驱动,设计才能正常工作的话,通过软件编译环境生成仿真工具可识别的代码,进行仿真也是必须的。一般驱动都涉及CPU,而CPU都是由第三方IP商提供的,它们会提供一套完善的软件编译环境,可以生成仿真需要的代码。或者根据FPGA的调试环境,自己动手生成一个可供服务器编译的软件环境。

3. FPGA的优点是运行速度快,一个测试程序,FPGA一分钟可以跑完;如果仿真的话可能需要花费4个小时,修改一下程序重新运行,又需要4个小时。FPGA的缺点是看不到设计的运行细节,一旦出现RTL设计问题,不容易发现和定位。而且没有经过充分验证RTL,基本都有问题。
发表于 2011-7-5 12:03:14 | 显示全部楼层
正在做验证工作,感觉验证确实重要
发表于 2011-7-8 16:26:10 | 显示全部楼层
先進一家公司學吧~
发表于 2011-7-16 17:19:16 | 显示全部楼层
小的公司应该没有很正规的验证部门
发表于 2011-8-1 20:31:03 | 显示全部楼层
要做专门的验证,必须去大公司,小公司的验证都是设计人员兼任。
发表于 2011-8-8 18:12:51 | 显示全部楼层
在学习验证的路过帮顶~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-23 06:11 , Processed in 0.022899 second(s), 9 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表