Vectorization is a compiler optimization that replaces multiple operations on scalar values with a single operation on vector values. Although common in traditional compilers such as rustc, clang, and gcc, vectorization is not common in the Verilog ecosystem. This happens because, even though Verilog supports vector notation, the language provides no semantic guarantee that a vectorized signal behaves as a word-level entity: synthesis tools still resolve multiple individual assignments and a single vector assignment into the same set of parallel wire connections. However, vectorization brings important benefits in other domains. In particular, it reduces symbolic complexity even when the underlying hardware remains unchanged. Formal verification tools such as Cadence Jasper operates at the symbolic level: they reason about Boolean functions, state transitions, and equivalence classes, rather than about individual wires or gates. When these tools can treat a bus as a single symbolic entity, they scale more efficiently. This paper supports this observation by introducing a Verilog vectorizer. The vectorizer, built on top of the CIRCT compilation infrastructure, recognizes several vectorization patterns, including inverted assignments, assignments involving complex expressions, and inter-module assignments. It has been experimented with some Electronic design automation (EDA) tools, and for Jasper tool, it improves elaboration time by 28.12% and reduces memory consumption by 51.30% on 1,157 designs from the ChiBench collection.


翻译:向量化是一种编译器优化技术,它将多个标量值上的操作替换为单个向量值上的操作。尽管在rustc、clang和gcc等传统编译器中较为常见,但向量化在Verilog生态系统中并不普遍。这是因为即使Verilog支持向量表示法,该语言并未提供向量化信号作为字级实体行为的语义保证:综合工具仍将多个单独赋值与单个向量赋值解析为同一组并行线网连接。然而,向量化在其他领域具有重要优势。特别地,即使在底层硬件保持不变的情况下,它也能降低符号复杂性。Cadence Jasper等形式验证工具在符号层面运行:它们推理布尔函数、状态转移和等价类,而非单个线网或门电路。当这些工具能够将总线视为单个符号实体时,其扩展效率更高。本文通过引入Verilog向量化器支持这一观点。该向量化器基于CIRCT编译基础设施构建,能够识别多种向量化模式,包括反向赋值、涉及复杂表达式的赋值以及模块间赋值。通过对部分电子设计自动化(EDA)工具进行实验,在ChiBench集合的1,157个设计上,该技术使Jasper工具的精化时间缩短28.12%,内存消耗降低51.30%。

0
下载
关闭预览

相关内容

通过强化学习增强代码生成中的代码大语言模型:综述
专知会员服务
29+阅读 · 2025年1月1日
《图强化学习在组合优化中的应用》综述
专知会员服务
60+阅读 · 2024年4月10日
Transformer它就是个支持向量机
专知会员服务
38+阅读 · 2023年9月7日
专知会员服务
37+阅读 · 2021年9月12日
基于模型的强化学习综述
专知
42+阅读 · 2022年7月13日
强化学习《奖励函数设计: Reward Shaping》详细解读
深度强化学习实验室
20+阅读 · 2020年9月1日
知识点 | 全面理解支持向量机
机器学习算法与Python学习
10+阅读 · 2019年1月2日
【收藏】支持向量机原理详解+案例+代码!【点击阅读原文下载】
机器学习算法与Python学习
10+阅读 · 2018年9月13日
超全总结:神经网络加速之量化模型 | 附带代码
综述 | 知识图谱向量化表示
开放知识图谱
33+阅读 · 2017年10月26日
机器学习(19)之支持向量回归机
机器学习算法与Python学习
12+阅读 · 2017年10月3日
【强化学习】强化学习+深度学习=人工智能
产业智能官
55+阅读 · 2017年8月11日
国家自然科学基金
1+阅读 · 2017年12月31日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
2+阅读 · 2015年12月31日
国家自然科学基金
4+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
3+阅读 · 2015年12月31日
国家自然科学基金
1+阅读 · 2015年12月31日
国家自然科学基金
1+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
12+阅读 · 2008年12月31日
VIP会员
最新内容
无人机自主控制与人工智能:系统性综述
专知会员服务
2+阅读 · 57分钟前
巡飞弹与反无人机系统——现代战场的两大支柱
专知会员服务
1+阅读 · 今天6:54
《打造“黄金舰队”》57页报告
专知会员服务
1+阅读 · 今天6:52
《北约数字教官网络发展路径》128页报告
专知会员服务
1+阅读 · 今天6:33
ECCV 2026 | MIMFlow:MIM与归一化流统一图像生成
专知会员服务
6+阅读 · 6月25日
网状网络及其在军事领域的运用
专知会员服务
7+阅读 · 6月25日
无美国参与的欧洲战争方式(万字长文)
专知会员服务
8+阅读 · 6月25日
《国防领域敏感性分析白皮书》
专知会员服务
9+阅读 · 6月25日
综述 | 从问答到任务完成:Agent系统与Harness设计
Agentic RL:框架、实践与长程智能体训练
专知会员服务
10+阅读 · 6月24日
相关资讯
基于模型的强化学习综述
专知
42+阅读 · 2022年7月13日
强化学习《奖励函数设计: Reward Shaping》详细解读
深度强化学习实验室
20+阅读 · 2020年9月1日
知识点 | 全面理解支持向量机
机器学习算法与Python学习
10+阅读 · 2019年1月2日
【收藏】支持向量机原理详解+案例+代码!【点击阅读原文下载】
机器学习算法与Python学习
10+阅读 · 2018年9月13日
超全总结:神经网络加速之量化模型 | 附带代码
综述 | 知识图谱向量化表示
开放知识图谱
33+阅读 · 2017年10月26日
机器学习(19)之支持向量回归机
机器学习算法与Python学习
12+阅读 · 2017年10月3日
【强化学习】强化学习+深度学习=人工智能
产业智能官
55+阅读 · 2017年8月11日
相关基金
国家自然科学基金
1+阅读 · 2017年12月31日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
2+阅读 · 2015年12月31日
国家自然科学基金
4+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
3+阅读 · 2015年12月31日
国家自然科学基金
1+阅读 · 2015年12月31日
国家自然科学基金
1+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
12+阅读 · 2008年12月31日
Top
微信扫码咨询专知VIP会员