python verilog就业_Verilog会被淘汰吗?

Verilog暂时不会被淘汰,且不会被HLS完全取代。硬件设计的核心是设计而非实现,更换语言只是实现方式的变化。当前HLS无法完全覆盖Verilog的功能,但在FPGA的高性能计算中,HLS有其优势。未来Verilog可能更多用于单个IP设计,系统设计可能由HLS完成。
AI助手已提取文章相关产品:

题主是不是看到这个回答害怕了:以后hls是否会替代Verilog成为主流FPGA编程语言?​www.zhihu.com

这是我之前用小号的回答,也没想到会惹来这么大的争议... 别慌,这不是抢饭碗预警。先说结论:

Verilog 暂时不会被淘汰,而且也不会被 HLS 淘汰,但是我之前的答案依然成立。

对于题主的疑惑,我来澄清一下,总共三点,先说说硬件设计工作的要求,再谈谈 Verilog 会不会淘汰,然后再来和大家分享一下高层次综合(HLS)对于 Verilog 的意义。

硬件工程师的吃饭本领

从核心来说硬件设计的工作大部分是设计而不是实现。设计电路的工作,看得是工程师对电路原理的理解,比如如何设计状态机,定制内存结构,流水线和位宽优化。这些知识都是要从本科最基础的知识,电阻电容电感那些,开始积累的。在那之后,工程师才开始通过编程实现硬件结构。同理,之后仿真或者验证的工作,大多数时间和精力也是花在设计的地方。

假如有一天 Verilog 真的被淘汰了,但是硬件的设计原理是不会被淘汰的。工程师只需要再掌握一门取代它的语言就可以了,设计过程换汤不换药。就好比有一天 J 语言被淘汰了,大家都用 W 语言来写代码,对 J 语言的职业玩家来说也不算天塌下来了吧。只需要学习如何在 J 里做平时 W 里做的优化好了,优化原理是不会变的。所以很多时候学习 Verilog 其实还是在学习硬件优化,所以大家觉得难,如果对电路很熟悉,上手还是很快的。我玩了一年 VHDL 以后,学 Verilog, Chisel, HLS 的时候,电路设计的核心观念都是没有变的。芯片技术还是那个技术,底层电路都是不变的,只不过是写法变了。这一部分的重要性在量子计算到来前基本不会变。

注:本来想举例说 Python 取代 C 的,但是取代不了... 还是用简单的 J 和 W 吧。

Verilog 会被淘汰吗?

前面说了设计是硬件设计的核心,Verilog 则是实现硬件结构的手段。那么 Verilog 是否被淘汰,取决于它是否在硬件设计方面的有一个最优店。如果有一天 Verilog 在各方面都不占优,那么它就该被淘汰了。但是今天的 Verilog 没有被淘汰,说明目前还是没有语言在编写上比 Verilog 更方便,并且可以覆盖 Verilog 所有功能的。

那么 Verilog 会被淘汰吗?这要看如何定义淘汰吧,Verilog-95 不就被 Verilog 2001 淘汰了,然后 2001 被 2005 淘汰了,然后 SystemVerilog 出来了... 所幸区别不大,也被大家看成是同一种语言。【VHDL 爱好者这里还是要推一下 VHDL,最新的标准都更新到 2019 年了:VHDL-2019: The User's Standard】

据我所知,ARM 内部都是已经用 SystemVerilog 编写了(如果你觉得 SystemVerilog 不算 Verilog,那么 Verilog 已经逐渐被淘汰了),顾名思义,系统化编程,SystemVerilog 可以和验证端代码相结合,做仿真或者验证会比较方便。

未来 Verilog 能被其他非 Verilog 系的语言取代则需要两个条件:1)Verilog 标准长期不更新,功能不拓展;2)其他语言标准功能覆盖和追赶速度都超过 Verilog 本身。目前真的能说是对手的也只有 VHDL,但是还是有输有赢。

HLS 会不会是取代 Verilog 的编程语言?

高层次综合(high-level synthesis,简称 HLS)是一种可以把高级语言自动转化成底层硬件描述语言的综合手段。这里的高级语言,不单单是 C/C++,Python,也可以是其他语言,比如 Coq,Java。那么我们回到之前给出 Verilog 被淘汰的条件,目前大多数 HLS(据我所知是所有,但是我也不敢说)都不能完全覆盖 Verilog 的功能,暂时不会去威胁到 Verilog 的地位。

好了,接下来我来说明一下为何我之前的答案依旧成立。Verilog 主要是作为在设计硬件的工作上的编程语言,而硬件设计,则主要分为两个方面,可编程芯片,比如 FPGA, 和完全定制化硬件,比如 ASIC。我一直很看好用现在的 HLS 替代 Verilog 在 FPGA 上编程,但是认为现阶段的 HLS 在替代 Verilog 在 ASIC 设计上的地位还有很多路要走。

此处的 FPGA 不是用于 ASIC 的测试,而是用于在云上供软件工程师进行高性能计算,比如微软的 Catapult。在云计算这一块,因为开发时间极短的原因,可以使 HLS 和手写 Verilog 在性能上的差距被忽略不计。比如我就想跑一个高级语言写的大工程,运行个几次,我不可能造一块 ASIC 芯片;我会选择租个服务器跑,那么这个服务器里可能不是 GPU 而是 FPGA,那么 HLS 来写就很方便。

而在 ASIC 领域,因为粒度控制不足,所以芯片面积会相对来说比手写 Verilog 大一点,性能相差无几。如今的门电路成本在芯片制造行业相较于几年前还是比较廉价的,有些厂家也愿意牺牲这部分的成本来换取更短的开发时间。随着后期计算机结构的稳定,逐渐 IP 化,这部分的差距会逐渐缩小,目前还需要时间积淀。

很多朋友用 Chisel/Bluespec 打压 HLS,我在这里小提一下。相较于 HLS,这些定制语言(domain specific language,DSL)虽然不是很完善,在学术界确实也是比较热门的工具。不过我觉得还是不至于到说芯片必然成功,这一点也在今年的 PLDI2020 的一篇论文点到了,因此它们提出了 LLHD(有机会我会另外细说)。而且最重要的一点,它们需要电路原理之外的学习成本去掌握这项语言。所以它们替代 Verilog 也不是不可能,但是 DSL 和 HLS 的出发点不一样,是可以共同存在的。

近几年是 HLS 突飞猛进的风口。机器学习的推进造成了定制硬件结构(domain specific architecture)的重要性,Google 提出了 MLIR 框架来构建一个完整的生态。而这可能将对 HLS,以及一切高性能计算相关的编译器带来革命性的变化(当然,之后也是被可能打肿脸的)。

我对未来的展望是,Verilog 的从业者十年后会主要从事单个 IP 的设计,而整个系统设计,则会是用 HLS 来完成(编译器会自动实现替换 IP)。我看到有答案把 HLS 和 Verilog 比做是 Python 和 C,我是不同意的:HLS 想要实现硬件结构必须要先生成 HDL,运行 Python 需要必须要转换成 C 语言吗?

最后,时代总是在进步的,就像你不可能拥有一台永远不会被淘汰的电脑,习惯与时俱进就好了。更何况编程语言的迭代周期是很长的,如果真的担心未来发展太快,可以考虑直接去学最新的量子计算...

打得匆忙,有问题的话欢迎大家指正,谢谢。

您可能感兴趣的与本文相关内容

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值