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

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

3天内不再提示

Verilog是编程语言吗

奈因PCB电路板设计 来源:硅农 作者:硅农 2021-08-23 14:30 次阅读

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

趁着最近奇葩说正播,本篇文章试着用辩论的形式来讨论一下这个问题。正反两方,正方:Verilog当然算编程语言,反方:Verilog不能称为编程语言。接下来,有请双方立论。正方先开始。

正方

Verilog当然算是编程语言,首先我们来看看什么叫编程语言。根据维基百科,最早的编程语言是在电脑发明之前,当时是用来控制提花织布机及自动演奏钢琴的动作。

所以并不是说在计算机体系结构上跑的才能叫编程语言,你做一段可以自动弹棉花的动作,规定规则(语法)和含义(语义),这就可以称为一段编程语言。再来看Verilog,符合编程语言描述的语法和语义,然后通过综合(编译)生成bit流文件,下载FPGA上,FPGA根据这个bit流文件,然后将内部的LUT、D触发器等基本单元任意组合实现组合电路和时序电路。

最终使FPGA能实现各种硬件功能。请问这样还不算编程语言算什么?这是我方的第一个论点。

再来,我准备了一页PPT

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写代码不叫编程,那叫描述电路。

关于这个问题,你还有什么见解,欢迎评论区留言。责任编辑:haq

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

    关注

    28

    文章

    1324

    浏览量

    109276
  • 编程
    +关注

    关注

    88

    文章

    3438

    浏览量

    92316

原文标题:灵魂发问:Verilog到底能不能算是编程语言?这位技术老兵是这样说的……

文章出处:【微信号:pcbgood,微信公众号:奈因PCB电路板设计】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    fpga是用c语言还是verilog

    FPGA(现场可编程逻辑门阵列)开发主要使用的编程语言是硬件描述语言(HDL),其中Verilog是最常用的
    的头像 发表于 03-27 14:38 250次阅读

    fpga通用语言是什么

    FPGA(现场可编程门阵列)的通用语言主要是指用于描述FPGA内部逻辑结构和行为的硬件描述语言。目前,Verilog HDL和VHDL是两种最为广泛使用的FPGA
    的头像 发表于 03-15 14:36 153次阅读

    fpga三种编程语言

    FPGA(现场可编程门阵列)的编程涉及到三种主要的硬件描述语言(HDL):VHDL(VHSIC Hardware Description Language)、Verilog以及Syst
    的头像 发表于 03-15 14:36 291次阅读

    fpga用什么语言编程

    FPGA(现场可编程门阵列)的编程主要使用硬件描述语言(HDL),其中最常用的是Verilog HDL和VHDL。
    的头像 发表于 03-14 18:17 688次阅读

    fpga用的是什么编程语言 fpga用什么语言开发

    fpga用的是什么编程语言 FPGA(现场可编程逻辑门阵列)主要使用的编程语言是硬件描述语言(H
    的头像 发表于 03-14 17:09 728次阅读

    fpga芯片用什么编程语言

    FPGA芯片主要使用的编程语言包括Verilog HDL和VHDL。这两种语言都是硬件描述语言,用于描述数字系统的结构和行为。
    的头像 发表于 03-14 16:07 360次阅读

    verilog与其他编程语言的接口机制

    Verilog是一种硬件描述语言,用于描述数字电路的行为和结构。与其他编程语言相比,Verilog具有与硬件紧密结合的特点,因此其接口机制也
    的头像 发表于 02-23 10:22 186次阅读

    plc编程语言与c语言的联系 c语言和PLC有什么区别

    PLC编程语言与C语言的联系 PLC(可编程逻辑控制器)是一种针对自动化控制系统的特殊计算机。PLC编程
    的头像 发表于 02-05 14:21 908次阅读

    数字电路设计中的一款强大工具—Verilog编程语言介绍

    Verilog是一种硬件描述语言,用于描述数字电路的结构和行为。与传统的编程语言不同,Verilog更加注重电路的行为和时序特性。
    发表于 08-01 09:00 1965次阅读
    数字电路设计中的一款强大工具—<b class='flag-5'>Verilog</b><b class='flag-5'>编程</b><b class='flag-5'>语言</b>介绍

    基于PASCAL的高级编程语言——SCL编程语言

    根据该标准,可对用于可编程逻辑控制器的编程语言进行标准化。SCL 编程语言实现了该标准中定义的 ST
    发表于 06-20 10:20 1029次阅读
    基于PASCAL的高级<b class='flag-5'>编程</b><b class='flag-5'>语言</b>——SCL<b class='flag-5'>编程</b><b class='flag-5'>语言</b>

    从仿真器的角度理解Verilog语言2

    要想深入理解Verilog就必须正视Verilog语言同时具备硬件特性和软件特性。在当下的教学过程中,教师和教材都过于强调Verilog语言
    的头像 发表于 05-25 15:10 616次阅读
    从仿真器的角度理解<b class='flag-5'>Verilog</b><b class='flag-5'>语言</b>2

    从仿真器的角度理解Verilog语言1

    要想深入理解Verilog就必须正视Verilog语言同时具备硬件特性和软件特性。在当下的教学过程中,教师和教材都过于强调Verilog语言
    的头像 发表于 05-25 15:10 669次阅读
    从仿真器的角度理解<b class='flag-5'>Verilog</b><b class='flag-5'>语言</b>1

    浅谈System Verilog的DPI机制

    System Verilog(SV)把其他编程语言统一成为外语,Foreign Programming Language(FPL)。
    的头像 发表于 05-23 15:39 1123次阅读
    浅谈System <b class='flag-5'>Verilog</b>的DPI机制

    FPGA编程语言verilog语法2

    Verilog HDL是一种用于数字系统设计的语言。用Verilog HDL描述的电路设计就是该电路的Verilog HDL模型也称为模块。Veri
    的头像 发表于 05-22 15:53 559次阅读
    FPGA<b class='flag-5'>编程</b><b class='flag-5'>语言</b>之<b class='flag-5'>verilog</b>语法2

    FPGA编程语言verilog语法1

    Verilog HDL是一种用于数字系统设计的语言。用Verilog HDL描述的电路设计就是该电路的Verilog HDL模型也称为模块。Veri
    的头像 发表于 05-22 15:52 586次阅读
    FPGA<b class='flag-5'>编程</b><b class='flag-5'>语言</b>之<b class='flag-5'>verilog</b>语法1