当前位置: 首页 > article >正文

Verilog概述一:Verilog HDL和 VHDL详细对比

当前比较流行的硬件设计语言有两种,即 VHDL 与 Verilog HDL,两者各有优劣,也各有相当多的拥护者。

VerilogHDL和VHDL都是完备的HDL设计和验证语言,具有完整的设计方法和设计规范。

何为HDL

HDL(hardware description language) 硬件描述语言
具有特殊功能结构能够对硬件逻辑电路的功能进行描述的一种高级编程语言,这种特殊的结构能够:
描述电路的连接
描述电路的功能
在不同抽象级上描述电路
描述电路的时序
表达具有并行性

HDL 主要特征

HDL语言既包含一些高级程序设计语言的结构形式,同时也兼顾描述硬件线路连接的具体结构

HDL语言是并发的,即具有在同一时刻执行多个命令的能力,一般来讲,编程语言是非并行的,但在实际硬件中许多操作都是在同一时刻发生的,所以HDL语言具有并发的特征;

HDL语言有时序的概念,一般来讲编程语言的没有时序概念的,但在硬件电路中从输入到输出总是有延迟存在的,为描述这些特征,HDL需要建立时序的概念。因此使用除了可以描述硬件电路的功能外还可以描述其时序要求。

HDL的用途

ASIC和FPGA工程师编写可综合的RTL代码
高抽象级系统仿真进行系统结构开发
测试工程师用于编写各种层次的测试程序

VHDL

VHDL 的 英 文 全 名 是 Very-High-Speed Integrated Circuit Hardware DescriptionLanguage,诞生于 1982 年。

VHDL 和 Verilog HDL 作为 IEEE 的工业标准硬件描述语言,在电子工程领域已成为事实上的通用硬件描述语言。

VHDL 的特点

VHDL 主要用于描述数字系统的结构、行为、功能和接口。除了含有许多具有硬件特征的语句外,VHDL 在语言形式、描述风格和句法上与一般的计算机高级语言十分相似。

VHDL 的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件、一个电路模块或一个系统)分成外部和内部两部分。

外部也可称为可视部分,它描述了此模块的端口,而内部可称为不可视部分,它涉及到实体的功能实现和算法完成。在对一个设计实体定义了外部端口后,一旦其内部开发完成,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是VHDL 系统设计的基本点。

应用 VHDL 进行工程设计有以下的优点:

1.行为描述
与其他的硬件描述语言相比,VHDL 具有更强的行为描述能力,强大的行为描述能力是避开具体的器件结构,从逻辑行为上描述和设计大规模电子系统的重要保证。

2.仿真模拟
VHDL 丰富的仿真语句和库函数,使得在任何系统的设计早期就能查验设计系统的功能可行性,随时可对设计进行仿真模拟。

3.大规模设计
一些大型的 FPGA 设计项目必须有多人甚至多个开发组共同并行工作才能实现。VHDL 语句的行为描述能力和程序结构决定了它具有支持大规模设计的分解和已有设计的再利用功能。

4.门级网表
对于用 VHDL 完成的一个确定的设计,可以利用 EDA 工具进行逻辑综合和优化,并自动把VHDL 描述设计转变成门级网表。

5.独立性
VHDL 对设计的描述具有相对独立性,设计者可以不懂硬件的结构,也不必对最终设计实现的目标器件有很深入地了解。

Verilog HDL vs VHDL

HDL和VHDL都是用于逻辑设计的硬件描述语言并且都已成为IEEE标准,VHDL是在1987年成为IEEE标准,而HDL是在1995年才成为标准.

Verilog HDL 和VHDL共同的特点:
能形式化的抽象表示电路的行为和结构
支持逻辑设计中层次和范围的描述,可借用高级语言的精巧结构来简化电路行为的描述
具有电路仿真和验证机制以保证设计的正确性
支持电路描述从高级到低级的综合转换
硬件描述与实现工艺无关,有关工艺参数可通过语言提供的属性包括进去便于文档管理易于理解和设计重用。

Verilog HDL 和VHDL也各有特点:
VHDL侧重于系统级描述,从而更多的为系统级设计人员所采用
Verilog 侧重于电路描述,从而更多的为电路级设计人员所采用
HDL 拥有更广泛的设计群体,乘成熟的资源也远比VHDL丰富
HDL 在系统级抽象方面比VHDL略差一些而在门级开关电路描述方面比VHDL强得多。

在这里插入图片描述

由于篇幅限制,就不一一更新Verilog基本语法的所有笔记了,以上都可以分享大家。可按需领~

这里放一个口:Verilog笔记全文


http://www.kler.cn/news/18294.html

相关文章:

  • JavaWeb综合案例1-2
  • OpenCV实战——根据立体图像计算深度信息
  • JavaScript:二叉树(前序遍历,中序遍历,后序遍历,递归法,统一迭代法)
  • Databend 开源周报第 92 期
  • C关键字解读——volatile, extern, struct, union, enum
  • Unity 向量
  • Linux上安装Elasticsearch
  • 4。计算机组成原理(2)存储系统
  • 理解FPGA的基础知识——逻辑电路
  • 一次业务系统无法使用对应的oracle数据库性能分析过程
  • React条件渲染、列表渲染和组件传值
  • 增强型语言模型——走向通用智能的道路?!?
  • 11 KVM虚拟机配置-配置虚拟设备(存储)
  • PostgreSQL数据库自带的命令行工具--psql
  • Lumerical------S 参数文件格式
  • Qt 制作小程序登录系统(超详细)
  • 浅谈 LRU
  • Web2与Web3开发的不同之处
  • python正则表达式
  • 第二章 Vim编辑器与Shell命令脚本
  • 双线性插值(Bilinear interpolation)原理推导
  • PyQGIS中一次性加载多个shp文件
  • 探索语音识别技术:从自动翻译到智能客服
  • electron打包运行白屏、Can not find modules ‘xxx‘,Dynamic Linking Error
  • JavaWeb ( 六 ) JSP
  • C# 判断文件/目录是否存在
  • AWS VPC 配置指南:快速创建和设置你的虚拟私有云
  • 【C++】map和set的介绍+使用
  • EC6110-Hi3798MV310-当贝纯净桌面-卡刷强刷固件包
  • 在 node.js 里面写 MySQL 增删改查语句