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
    +关注

    关注

    30

    文章

    1370

    浏览量

    114144
  • 编程
    +关注

    关注

    90

    文章

    3708

    浏览量

    96765

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

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    为什么单片机还在用C语言编程

    说起单片机我们就会想到C语言,单片机为什么还在用C语言编程?现在有很多很好用的高级语言,如VC、PYTHON、PHP等等,为什么这些语言不能
    发表于 11-28 07:37

    C语言编程技巧

    设计,分层开发代码,便于理解和维护。 ‌8、避免使用GOTO语句‌:尽管GOTO语句在某些情况下仍然有用,但现代编程更倾向于使用函数和循环控制结构,以提高代码的可读性和维护性。 ‌9、利用C语言的灵活性
    发表于 11-27 06:46

    梯形图语言补充编程说明书

    电子发烧友网站提供《梯形图语言补充编程说明书.pdf》资料免费下载
    发表于 07-09 14:14 2次下载

    单片机c语言编程实例大全

    单片机c语言编程实例大全_18
    发表于 04-30 16:11 6次下载

    FPGA Verilog HDL语法之编译预处理

    Verilog HDL语言和C语言一样也提供了编译预处理的功能。“编译预处理”是Verilog HDL编译系统的一个组成部分。Verilog
    的头像 发表于 03-27 13:30 1088次阅读
    FPGA <b class='flag-5'>Verilog</b> HDL语法之编译预处理

    一文详解Verilog HDL

    Verilog HDL(Hardware Description Language)是一种硬件描述语言,用于从算法级、门级到开关级的多种抽象设计层次的数字系统建模。现实生活中多用于专用集成电路
    的头像 发表于 03-17 15:17 3780次阅读
    一文详解<b class='flag-5'>Verilog</b> HDL

    浅谈Verilog和VHDL的区别

    Verilog和VHDL是两种广泛使用的硬件描述语言(HDL),它们用于描述和模拟数字电路系统的行为和结构。这两种语言的主要作用是帮助工程师设计、仿真和验证集成电路(IC)和系统级芯片(SoC)中的硬件模块。
    的头像 发表于 02-17 14:20 2635次阅读
    浅谈<b class='flag-5'>Verilog</b>和VHDL的区别

    数字电路编程语言介绍

    数字电路编程语言是专门为描述和模拟数字电路而设计的编程语言。它们通常具有以下特点: 硬件描述语言(HDL) :大多数数字电路
    的头像 发表于 01-24 09:39 1392次阅读

    gitee 支持的编程语言有哪些

    Gitee(码云)是一个基于 Git 的代码托管和研发协作平台,类似于 GitHub 和 GitLab。它支持多种编程语言,允许开发者托管和管理代码,进行版本控制,以及协作开发。以下是一些
    的头像 发表于 01-06 09:50 1108次阅读

    三菱PLC编程语言解析

    三菱电机(Mitsubishi Electric)是全球知名的自动化和制造解决方案供应商,其PLC(可编程逻辑控制器)产品广泛应用于工业自动化领域。三菱PLC编程语言主要基于国际标准IEC
    的头像 发表于 12-26 17:36 2234次阅读

    Triton编译器支持的编程语言

    Triton编译器支持的编程语言主要包括以下几种: 一、主要编程语言 Python :Triton编译器通过Python接口提供了对Triton语言
    的头像 发表于 12-24 17:33 1469次阅读

    Verilog 电路仿真常见问题 Verilog 在芯片设计中的应用

    在现代电子设计自动化(EDA)领域,Verilog作为一种硬件描述语言,已经成为数字电路设计和验证的标准工具。它允许设计师以高级抽象的方式定义电路的行为和结构,从而简化了从概念到硅片的整个设计流程
    的头像 发表于 12-17 09:53 1604次阅读

    Verilog 与 ASIC 设计的关系 Verilog 代码优化技巧

    Verilog与ASIC设计的关系 Verilog作为一种硬件描述语言(HDL),在ASIC设计中扮演着至关重要的角色。ASIC(Application Specific Integrated
    的头像 发表于 12-17 09:52 1439次阅读

    Verilog 测试平台设计方法 Verilog FPGA开发指南

    Verilog测试平台设计方法是Verilog FPGA开发中的重要环节,它用于验证Verilog设计的正确性和性能。以下是一个详细的Verilog测试平台设计方法及
    的头像 发表于 12-17 09:50 1561次阅读

    Verilog与VHDL的比较 Verilog HDL编程技巧

    Verilog 与 VHDL 比较 1. 语法和风格 VerilogVerilog 的语法更接近于 C 语言,对于有 C 语言背景的工程
    的头像 发表于 12-17 09:44 2691次阅读