0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

解析PCIe第50万行代码的风格

全栈芯片工程师 来源:全栈芯片工程师 2023-04-15 09:56 次阅读

来,看看S家的第509525行PCIe代码,一个寄存器在一个触发信号里面赋值两次,第一句所有bit直接全部赋值0,第二句部分低bit赋值,信号本身是9:0,第二句赋值那个是6:0的宽度。尊贵的ICer,您觉得这样可以吗?

249c9442-dadf-11ed-bfe3-dac502259ad0.png

作为当代IC designer,看到这种代码风格首先视觉冲击就很大,辣眼睛。估计就没有做lint,是不是很像多驱动的罪名?跑一下lint看看报错情况。

但必须说明的是,这是S家的老版本代码了,硬核功能OK的,仿真行为也正确。所以这种代码风格的设计意图是后一句覆盖前一句,前一句先把所有bit赋0,后一句再部分低位bit赋值,那么各家综合工具编译会理解错设计者意图吗?个人强烈不推荐这种写法,虽然SV语法也支持这种,各家综合工具编译结果可能有偏差,况且前面的高位赋0,综合工具直接优化掉0的部分,那写出来干嘛?为了接口位宽不变,只是里面用的部分按参数定义位宽吗?还不如直接参数定义总位宽即可,这个就具体问题具体分析,小编造一个简单实例:

实践出真知,写一个代码实践下:

24b6ac1a-dadf-11ed-bfe3-dac502259ad0.png

spyglass运行lint检查:

2516d3a6-dadf-11ed-bfe3-dac502259ad0.png

代码第45行报出来2个warning,我们来分别解析下两个warning:

(一)第一个warning:STARC05-2.2.3.3,用以发现initial value assignments to flip-flops in always constructs,我们知道,……下文请移步知识星球。

审核编辑:汤梓红

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

    关注

    31

    文章

    5332

    浏览量

    120191
  • PCIe
    +关注

    关注

    15

    文章

    1232

    浏览量

    82537
  • 代码
    +关注

    关注

    30

    文章

    4767

    浏览量

    68468
  • 编译
    +关注

    关注

    0

    文章

    655

    浏览量

    32836

原文标题:解析PCIe第50万行代码的风格

文章出处:【微信号:全栈芯片工程师,微信公众号:全栈芯片工程师】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    代码致敬,寻找你的83

    前几天,在阿里巴巴的一个小黑屋里,5名对代码有着极致追求的程序员参与了阿里代码领域最高荣誉“多隆奖”最终角逐(多隆作为淘宝的第一代程序员,也是很多威廉希尔官方网站 人心中的大神)。多隆Review83
    发表于 05-04 16:36

    代码致敬,寻找你的83

    4月18日在阿里巴巴内网发起了一场“向代码致敬,寻找你的83代码”活动,有几阿里人围观,近五百多位威廉希尔官方网站 极客纷纷晒
    发表于 05-07 17:32

    嵌入式C代码怎么实现?

    伴随着嵌入式系统的复杂性越来越高,系统的开发周期不断延长。但开发周期与系统的安全性、可靠性又有一定的冲突。目前,一台中高档汽车的软件控制代码就超过了500万行,F-35的控制软件更是高达1 500万行,一艘航母的控制
    发表于 03-18 06:29

    第一代码Android2版-郭霖

    第一代码Android2版-郭霖
    发表于 04-03 12:08

    800万行代码的鸿蒙系统,在世界上处于什么水平?

    “800万行代码量,让鸿蒙一跃成为人类有史以来4大代码量的移动操作系统。要知道当前2.0版本仅包含大屏、手表和车机系统,等到今年12 月手机系统发布后,鸿蒙系统的
    发表于 09-29 16:04

    【HarmonyOS】800万行代码的鸿蒙系统,在世界上处于什么水平?

    “800万行代码量,让鸿蒙一跃成为人类有史以来4大代码量的移动操作系统。要知道当前2.0版本仅包含大屏、手表和车机系统,等到今年12 月手机系统发布后,鸿蒙系统的
    发表于 10-27 10:25

    阿里巴巴推出每秒撰写2万行广告文案的AI新工具

    北京时间7月5日下午消息,中国电子商务巨头阿里巴巴发布一项人工智能工具,可以每秒写入2万行广告文案。
    的头像 发表于 07-07 10:48 3036次阅读

    微软发布了使用最多的应用程序之一——Windows 计算器的源代码

    与NSA(美国国家安全局)公布的120万行Ghidra逆向工程工具开源代码相比,Windows 计算器的3.5万行C++代码可能稍显逊色。虽然计算器是很小的一个部分,但自从1985年的
    的头像 发表于 03-11 15:09 5448次阅读

    涛思数据开源TDengine,10多万行C代码,登顶GitHub!

    7月12日,涛思数据宣布将TDengine开源,10多万行C代码,包括最核心的存储引擎和计算引擎都上传到了GitHub上。
    的头像 发表于 07-31 16:07 1.3w次阅读

    移植了20万行代码才发现树莓派Pico双核MCU竟是三无产品?是真香还是真不香?

    移植了20万行代码才发现树莓派Pico双核MCU竟是三无产品?是真香还是真不香?树莓派Pico双核MCU来了,要跟吗?参考下其他人移植代码后的经验树莓派Pico双核MCU发布有一段时间了,在尝试将
    发表于 10-29 09:36 13次下载
    移植了20<b class='flag-5'>万行</b><b class='flag-5'>代码</b>才发现树莓派Pico双核MCU竟是三无产品?是真香还是真不香?

    什么样的Verilog代码风格是好的风格

    代码是给别人和多年后的自己看的。 关于Verilog代码设计的一些风格和方法之前也写过一些Verilog有什么奇技淫巧?
    的头像 发表于 10-24 15:23 1514次阅读

    为什么 MySQL 单表不能超过 2000 万行

    ,因为数据量超大(5000 条左右),需要每天定时生成 3 张表,然后将数据取模分别存到这三张表里。 接下来是两人的对话: 面试后续暂且不论,不过,互联网江湖上的确流传着一个说法:单表数据量超过 500 万行时就要进行分表分库,已经超过 2000
    的头像 发表于 06-29 16:48 695次阅读
    为什么 MySQL 单表不能超过 2000 <b class='flag-5'>万行</b>?

    再创新高!深开鸿OpenHarmony社区代码贡献量超过200万行

    2023年10月10日,据OpenAtomOpenHarmony(以下简称“OpenHarmony”)官网显示,深开鸿在OpenHarmony社区主仓代码贡献量超过200万行,在华为以外的生态厂商中
    的头像 发表于 10-13 09:54 674次阅读
    再创新高!深开鸿OpenHarmony社区<b class='flag-5'>代码</b>贡献量超过200<b class='flag-5'>万行</b>!

    社区代码贡献企业启新篇,深开鸿代码贡献量超过200万行

    ,社区代码贡献企业取得新成绩,深开鸿成为华为之后,第二家社区代码贡献量超过百万行的生态企业、且总贡献量累计突破200万行,为培育和发展OpenHarmony社区注入源动力!截至目前,华
    的头像 发表于 10-18 16:15 723次阅读

    MySQL单表数据量限制:为何2000万行成为瓶颈?

    很多人认为:数据量超过500万行或2000万行时,引起B+tree的高度增加,延长了索引的搜索路径,进而导致了性能下降。事实果真如此吗?
    的头像 发表于 02-27 10:38 5984次阅读
    MySQL单表数据量限制:为何2000<b class='flag-5'>万行</b>成为瓶颈?