来,看看s家的第509525行pcie代码,一个寄存器在一个触发信号里面赋值两次,第一句所有bit直接全部赋值0,第二句部分低bit赋值,信号本身是9:0,第二句赋值那个是6:0的宽度。尊贵的icer,您觉得这样可以吗?
作为当代ic designer,看到这种代码风格首先视觉冲击就很大,辣眼睛。估计就没有做lint,是不是很像多驱动的罪名?跑一下lint看看报错情况。
但必须说明的是,这是s家的老版本代码了,硬核功能ok的,仿真行为也正确。所以这种代码风格的设计意图是后一句覆盖前一句,前一句先把所有bit赋0,后一句再部分低位bit赋值,那么各家综合工具编译会理解错设计者意图吗?个人强烈不推荐这种写法,虽然sv语法也支持这种,各家综合工具编译结果可能有偏差,况且前面的高位赋0,综合工具直接优化掉0的部分,那写出来干嘛?为了接口位宽不变,只是里面用的部分按参数定义位宽吗?还不如直接参数定义总位宽即可,这个就具体问题具体分析,小编造一个简单实例:
实践出真知,写一个代码实践下:
spyglass运行lint检查:
代码第45行报出来2个warning,我们来分别解析下两个warning:
(一)第一个warning:starc05-2.2.3.3,用以发现initial value assignments to flip-flops in always constructs,我们知道,……下文请移步知识星球。
俄罗斯积极研发新型雷射系统来击落无人机
VR City与Sport Relief合作_为疟疾制作沉浸式360度宣传片
仪器自动化时代来临 软件是关键
人工智能在教育行业的应用,1+1的效果会大于2吗
单片机系统中半导体存储器的分类介绍
解析PCIe第50万行代码的风格
防爆机器人的选用需要注意什么
工业4.0项目失败的原因有哪些
虚拟电厂管理运维平台打造智慧电网新形态
这个 10 周年纪念版iPhone概念设计可以有
华为将不再是小米的竞争对手?
中国移动发布了2020年PC服务器集中采购招标公告
丰巢受邀参展第三届数字中国建设峰会,展现数字化成果
光电传感器厂家的选择注意事项
一位30岁嵌入式工程师的深度总结
ads1230驱动程序
鉴别铜缆跳线好坏就看这四方面就行
24C02的秘密
开关稳压器怎样来设计pcb布局
风冷控制器的原理以及故障处理方式