找回密码
 立即注册
搜索
查看: 665|回复: 16

个人推荐最应该看一看的验证书籍

[复制链接]

6

主题

109

回帖

345

积分

壮年

积分
345
发表于 2025-3-16 23:48:20 | 显示全部楼层 |阅读模式
书中没有用UVM, 但是把验证思路都写了出来, 很多思想都和我不谋而合, 比如验证就不要用设计的惯用写法去写.比如不要用简洁的代码去描述你的设计思路,而是要追求通用性等等

本帖子中包含更多资源

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

×

6

主题

109

回帖

345

积分

壮年

积分
345
 楼主| 发表于 2025-3-16 23:50:45 | 显示全部楼层
书中还涉及了很多验证模块的划分思路,非常引人入胜,不是死死的告诉你就应该这么做

1

主题

6

回帖

58

积分

管理员

积分
58
发表于 2025-3-17 09:46:42 | 显示全部楼层
哥们你是芯片行业的,我也是在芯片行业混战10余年,知道UVM的重要性
但是纵观历史几十年,FPGA行业真没人用UVM,一方面是synopsys的VCS Verdi的获取有一点门槛(其实license就是同一个),另一方面,验证方法学是一个系统学,FPGA暂时还没那么大,并且FPGA一般又是设计又是验证,但是在ASIC领域,验证是专业全职的人。
但是话又说回来,如果FPGA设计可以像芯片那样进行验证,那设计的可靠性可以提升一百倍

1

主题

6

回帖

58

积分

管理员

积分
58
发表于 2025-3-17 09:47:44 | 显示全部楼层
HAHA
看反了,你说没有用UMV
其实有验证方法学很重要,尤其是异常验证

6

主题

109

回帖

345

积分

壮年

积分
345
 楼主| 发表于 2025-3-17 09:55:49 | 显示全部楼层
admin 发表于 2025-3-17 09:46
哥们你是芯片行业的,我也是在芯片行业混战10余年,知道UVM的重要性
但是纵观历史几十年,FPGA行业真没人用 ...

因为FPGA可以迅速进行上板验证,所以费劲搭建UVM意图就不明显了,运行速度太慢了. 但是FPGA应该学习的是验证中的断言,首先语法简单,其次让人也好理解你代码运行关系,最重要的是你让验证给你写这个断言,不如自己写的代码知道的验证点多,而且迅速知道哪里错了

2

主题

10

回帖

100

积分

少年

积分
100
发表于 2025-3-17 10:39:18 | 显示全部楼层
FPGA 验证一直是一个问题,尤其项目开发中,UVM 过于庞大。由于定制化项目功能,项目间的验证环境很难集成复用(也有可能是我们做的不太好),进一步降低了uvm的价值。
而且FPGA 不需要流片,从开发上更接近于MCU,有问题改程序就好了。bug的损失也没有那么大,所以验证的重视程度也不够。
目前我们主要还用 TB 传统办法,看波形,断言正在加入。导致模块问题不多,系统级问题挺多,一直是困扰。

3

主题

24

回帖

115

积分

少年

积分
115
发表于 2025-3-17 10:50:40 | 显示全部楼层
谢谢分享

6

主题

109

回帖

345

积分

壮年

积分
345
 楼主| 发表于 2025-3-17 10:51:27 | 显示全部楼层
Shane.F 发表于 2025-3-17 10:39
FPGA 验证一直是一个问题,尤其项目开发中,UVM 过于庞大。由于定制化项目功能,项目间的验证环境很难集成 ...

系统级问题多,感觉是因为开始时候就没有做算法验证. 现在Xilinx FPGA开发都变成了,vitis先写着,都开发完了,没问题了,用人家库函数能自动生成调用自家IP,没用库还想加速部分用HLS自动生成,最后DMA也自动生成了.别的不能加速部分用CPU跑,也就是项目开始就已经验证项目C语言开发没问题,就是跑得慢,后面都是基于这个模型进行的加速. 我不知道你遇见的,是不是我说的这个问题

2

主题

10

回帖

100

积分

少年

积分
100
发表于 2025-3-17 12:15:07 | 显示全部楼层
xxppno1 发表于 2025-3-17 10:51
系统级问题多,感觉是因为开始时候就没有做算法验证. 现在Xilinx FPGA开发都变成了,vitis先写着,都开发完 ...

并不完全一致,比如用 rtl 语言写的 IP 单个IP 工能验证都ok,10个IP 进行流水使用,就会出各种问题。HLS 用的不多

6

主题

109

回帖

345

积分

壮年

积分
345
 楼主| 发表于 2025-3-17 12:43:31 | 显示全部楼层
Shane.F 发表于 2025-3-17 12:15
并不完全一致,比如用 rtl 语言写的 IP 单个IP 工能验证都ok,10个IP 进行流水使用,就会出各种问题。HLS ...

那就是部署问题,比如前期我用C语言解决了算法问题,部署时候接口没有定义好,比如共享的内存,定义成共享的寄存器变量,流接口没有定义好. 导致后面接口数据对不上. 其实原因都在于接口的以及对应方法定义出问题. 其实说实在话,在我眼里就是编码能力有问题,验证能力有问题. 我记得当时有个竞赛我没参加,但是看人家参加的,3天封闭不许用通信工具和网上查资料, 每个模块都感觉没问题,实际上我看了下那代码写的,有问题都改不了,都是瞎凑的逻辑,怎么可能没有问题,做的测试都是冒烟测试,没有正常人写代码的思路,就是写个计数器凑逻辑,最后没有什么时间,最后我让他们改成流接口,最后才勉强完成.
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|CrazyFPGA ( 粤ICP备2023025753号 )

GMT+8, 2025-5-2 12:47 , Processed in 0.050429 second(s), 20 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.