当前位置:首页 > 公众号精选 > 嵌入式微处理器
[导读]知乎上刷到一个问题,问性能最强的编程语言是什么?看到高赞回答到是Verilog,然后在评论区就引发了一场Verilog到底算不算编程语言的争论,我觉得比较有意思,所以就也打算唠唠这个事情。趁着最近奇葩说正播,本篇文章试着用辩论的形式来讨论一下这个问题。正反两方,正方:Verilo...



知乎上刷到一个问题,问性能最强的编程语言是什么?看到高赞回答到是Verilog,然后在评论区就引发了一场Verilog到底算不算编程语言的争论,我觉得比较有意思,所以就也打算唠唠这个事情。

趁着最近奇葩说正播,本篇文章试着用辩论的形式来讨论一下这个问题。正反两方,正方:Verilog当然算编程语言,反方:Verilog不能称为编程语言。接下来,有请双方立论。正方先开始。
正方
Verilog当然算是编程语言,首先我们来看看什么叫编程语言。根据维基百科,最早的编程语言是在电脑发明之前,当时是用来控制提花织布机及自动演奏钢琴的动作。
所以并不是说在计算机体系结构上跑的才能叫编程语言,你做一段可以自动弹棉花的动作,规定规则(语法)和含义(语义),这就可以称为一段编程语言。再来看Verilog,符合编程语言描述的语法和语义,然后通过综合(编译)生成bit流文件,下载到FPGA上,FPGA根据这个bit流文件,然后将内部的LUT、D触发器等基本单元任意组合实现组合电路和时序电路。
最终使FPGA能实现各种硬件功能。请问这样还不算编程语言算什么?这是我方的第一个论点。
再来,我准备了一页PPT,请看下面这张图,
网站链接在这里https://www.tiobe.com/tiobe-index/
这是TIOBE公司公布的1月全球最流行编程语言排行榜,可以看到Verilog还没有排到前50 ,但是没关系,Verilog上榜了,权威机构都说明了,所以Verilog作为编程语言,还有什么需要争论的。这是我方第二个论点。
再来,刚才我在前面提到了FPGA,FPGA的全称是什么,Field Programmable Gate Array,现场可编程逻辑门阵列,看到没有——可编程,那么它对应的编程语言是啥,就是Verilog。
我们很多理工科专业的朋友在学校或多或少都接触过FPGA。可以说在FPGA上你可以用Verilog写出任何数字电路,但是这个编程的过程也是非常漫长和枯燥的,因为你要从最小一个门,一个D触发器开始搭建,然后要进行漫长的仿真调试,才能实现最终一个硬件功能。
为什么设计起来这样累的语言还一直被我们使用,因为它是目前我们设计电路最主流、流程最完善、PPA权衡最好的语言,如果说有人问?目前性能最强的编程语言是什么,那么我一定回答是Verilog,因为没有哪个语言的运行速度能跑得快FPGA和ASIC。
反方
OK,别着急,我们慢慢来,都在射程范围之内,都在射程范围之内。
刚才,对方一直不断重复Verilog,Verilog,但是却没有说全Verilog的全称是什么,Verilog HDL,HDL是什么,不是Hardware Design Language硬件设计语言,是Hardware Description Language硬件描述语言。看到没有,Verilog在定义时在名称上就说的明明白白,它是硬件描述语言,而不是编程语言。
再来,对方第二个论点,举例了一个TIOBE的最流行编程语言排行榜,说上面有Verilog,觉得这就是权威,从而得出结论,说Verilog是编程语言。首先,我方相信这个排行榜的流行准确性,但是你要知道这个排行榜是否会真的去研究Verilog到底能不能归类到编程语言范畴的这个问题?
因为这个排行榜真正在意的重点是语言的受欢迎程度,而不是语言的准确分类。如果今天有一个排行榜,来公布的是最流行的硬件描述语言的话,我相信排在第一第二的肯定是VHDL和Verilog HDL。
所以我方认为对方的第二个论点不成立。
至于对方所提到的第三点,FPGA全称是现场可编程逻辑门阵列,但是这里的可编程应该理解为可更改的意思,而并不是Verilog对它进行编程。用Verilog描述的电路可以运行在FPGA上,意味着这个电路是可更改,可擦除的。
对方最后提到的Verilog是性能最强的编程语言,我认为这样和其他编程语言做比较,完全就是在作弊,因为编程语言都是最终被编译成二进制指令,运行在电路上的,Verilog就是电路本身。没有人能快过电路本身。
我们把编程语言写出来的代码叫程序,程序是什么?在计算机中程序就是控制计算机的指令。HDL写出来的代码叫什么?好像也不能直接叫程序,因为从某种意义上它只是电路的一种描述形式,它可以说就是计算机、就是电路。所以用Verilog写的代码只能叫代码,不能叫程序。这是Verilog和编程语言的本质区别。
最后,这道题目我们在讨论的是什么,我们在讨论的是编程语言吗?不是,这道题目我们最终要讨论的是,你在写Verilog的时候,是否心中有电路。我们在写Verilog时,是在做一个电路设计,Verilog只是作为一个工具,帮我们将脑海构思的设计、电路给实现出来。
况且你写代码的时候,不仅心中要有电路,而且还得写下来,画出来,然后照图施工。如果你真的清楚的知道自己是在做什么,而不是利用现有积累的语法规则和方法去实现一定的功能的时候,你就不会提出这个问题。因为你清楚,我这不是在编程,我这是在描述硬件,我是在设计电路。综上,我方认为Verilog不是编程语言,它是硬件描述语言。
最后
Verilog是一种硬件定义语言。编程语言通常被理解为用于告知现有硬件要做什么的语言,而不是直接用于描述硬件的语言,即使在维基百科和各大网站会把Verilog归类到编程语言当中,广义上来说编程语言的范畴甚至在计算机出现之前,硬要这么归类,也没问题。但是我认为我们学习、使用Verilog的朋友,必须要区分开软硬件的差异。用Verilog写代码不叫编程,那叫描述电路。
关于这个问题,你还有什么见解,欢迎评论区留言。
Reference维基百科——Verilog、FPGA、编程语言、编程语言列表

END
来源:硅农,作者:硅农版权归原作者所有,如有侵权,请联系删除。
嵌入式ARM

扫描二维码,关注更多精彩内容

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

业内消息,英伟达(NVIDIA)在提交的年度代理文件中披露,在截至今年1月份的2024财年里,英伟达CEO黄仁勋的总薪酬为3420万美元(当前约合人民币2.5亿),较前一年的2140万美元(当前约合人民币1.5亿)大涨6...

关键字: 英伟达 黄仁勋

昨天海外多家媒体报道,由于销量下滑,本田汽车正在缩减其在中国的全职生产人员,目前已有约1700名工人同意离职,约占其生产员工总数的14%。与此同时,本田可能还将减少工厂6月份的运营天数。

关键字: 本田 裁员

5月15日,字节跳动正式对外发布豆包大模型。火山引擎是字节跳动旗下云服务平台,豆包大模型原名“云雀”,是国内首批通过算法备案的大模型之一。目前豆包大模型日均处理1200亿Tokens文本,生成3000万张图片。

关键字: 字节跳动 豆包大模型

最新消息,多位内部人士昨天透露:微软总部下发邮件,通知中国区负责 AI 研究的多个团队整体从中国搬离,涉及员工或达数百人。

关键字: 微软 AI

彭博社最新消息,在纳斯达克上市的中国自动驾驶汽车供应商禾赛科技近日向联邦法院起诉了美国国防部!

关键字: 自动驾驶 禾赛科技

业内消息,近日日本软件银行集团(SoftBank Group)旗下安谋国际科技公司(Arm)计划研发人工智能(AI)芯片,先成立一个AI芯片部门,目标是明年春季建立AI芯片原型产品,然后将量产工作交由代工厂制造,预估20...

关键字: ARM AI芯片

援引彭博社消息,近日新当选的熊本县知事木村隆(Takashi Kimura)表示,他已准备好确保获得广泛的支持,以吸引台积电在当地建立第三家日本芯片工厂。

关键字: 日本 台积电 芯片工厂

5 月 13 日消息,从“上海临港”微信公众号获悉,特斯拉上海储能超级工厂建设项目已完成施工许可证核发。这是特斯拉在美国本土以外的首个储能超级工厂项目,工厂计划于今年 5 月开工,明年一季度实现量产。

关键字: 特斯拉 储能

据消息源 jasonwill101 透露,高通公司目前正在重新设计骁龙 8 Gen 4 处理器,新的目标频率为 4.26GHz,这一变化主要是为了应对苹果 M4 / A18 / Pro 处理器。

关键字: 高通 骁龙 8 Gen 4 芯片
关闭
关闭