1,Verilog-2005标准篇:verilog前言

Verilog 硬件描述语言 (HDL:Hardware Description Language) 于1995年作为 IEEE Std 1364-1995 成为 IEEE 标准。其设计宗旨是简单、直观、有效,以标准文本格式进行多层次抽象,适用于各种设计工具,包括验证仿真、时序分析、测试分析和综合。正是由于这些丰富的功能,Verilog 成为了绝大多数集成电路 (IC) 设计人员的首选开发语言。

Verilog 包含丰富的内置基元(primitives),包括逻辑门(logic gates)、用户可定义基元(user-definable primitives)、开关(switches)和有线逻辑(wired logic),它还具有器件引脚间延迟和时序检查功能。

抽象层级的Verilog主要由两种数据类型的语义提供:网络(nets变量(variables。连续赋值提供了基本的结构构造,在连续赋值(continuous  assignments)中,变量variables和网络nets的表达式都可以将值连续驱动到网络nets上。过程赋值(procedural assignments)提供了基本的行为结构,其中涉及变量和网络值的计算结果可以存储到变量中。

基于Verilog语言的一个完整设计由一组模块(module)组成,每个模块都有一个输入/输出(I/O)接口,以及对其功能的描述,其功能可以是结构性的,也可以是行为性的,还可以是混合性的。这些模块组成一个层级化结构,并通过网络nets相互连接。

Verilog 语言还可通过编程语言接口 (PLI:programming language interface) 和 Verilog 程序接口 (VPI:Verilog procedural interface) 例程进行扩展。PLI/VPI 是一系列的例程,允许外来函数访问 Verilog HDL 设计描述中包含的信息,并促进与仿真的动态交互。

对 Verilog HDL 影响最大的语言是 HILO-2,它是英国Brunel大学根据一份为英国国防部生产测试生成系统的合同开发的。HILO-2 成功地将抽象的门级(gate transfer)和寄存器传输级(register transfer)结合起来,支持验证仿真、时序分析、故障仿真和测试生成。

到了1990 年,Cadence公司将 Verilog HDL 推广到公共领域,并成立了独立的开放式 Verilog 国际 (OVI:Open Verilog International),以管理和推广 Verilog HDL。1992 年,OVI 董事会开始努力将 Verilog HDL 确立为 IEEE 标准。1993 年,第一个 IEEE 工作组成立;经过 18 个月的集中努力,Verilog 成为 IEEE 标准,即 IEEE Std 1364-1995。

verilog标准化过程完成后,IEEE P1364 工作组开始寻求全球 IEEE 1364 用户的反馈意见,以便对verilog标准进行相应的改进和修改。经过五年的努力,IEEE 1364-2001 中的 Verilog 标准得到了极大的改进。

随着 IEEE Std 1364-2001 的完成,更广泛的 Verilog 合作组继续开展工作,以优化该语言的未决问题以及可能的改进。随着Accellera于2001年开始对SystemVerilog 进行标准化,合作组发现了更多可能导致 Verilog 1364 和 SystemVerilog 之间不兼容的问题。IEEE P1364 工作组作为 SystemVerilog P1800 工作组的一个小组委员会随即成立,以帮助确保解决此类不兼容问题。这项合作工作的成果就是 IEEE Std 1364-2005。

总的来说,如今我们使用的verilog标准经历3个版本,即最初的verilog-1995、改进后的verilog-2001以及为了兼容SystemVerilog而进一步修订后的verilog-2005。

看到这里,小伙伴们不禁要问博主小飞了,咋突然又冒出个SystemVerilog了?其实吧,2005年之后,verilog标准就不再更新了,而是进化为了SystemVerilog。2005年,IEEE发布SystemVerilog的标准IEEE1800-2005,极大的提高了verilog的验证能力和建模能力。到了2009年,IEEE又发布SystemVerilog的标准IEEE1800-2009,它把SystemVerilog和verilog合并到了一个标准中。2012年,IEEE接着发布SystemVerilog的标准IEEE1800-2012。2017年,IEEE又发布了目前最新版本的SystemVerilog标准IEEE1800-2017。

那么,小伙伴们的问题又来了,SystemVerilog和verilog啥区别呢?

硬件描述语言Verilog用于描述硬件行为,以便将其转换为由组合逻辑和时序逻辑构成的数字逻辑块。但是为了验证硬件描述语言 Verilog 中的硬件描述是否正确,需要专门有一种语言来支持复杂的测试和验证功能,这种语言通常被称为硬件验证语言(HVL:Hardware Verification Language),而Verilog 只适合验证小型、不太复杂且功能较少的设计功能。

SystemVerilog 则包含并增强了硬件描述语言和硬件验证语言的所有功能,允许工程师在仿真中使用复杂的测试平台结构和随机激励来验证我们的设计,因此它比 Verilog 优越得多。

博主猜有些小伙伴肯定又有疑问了,verilog已经足够设计芯片或开发FPGA用了,值得再花这么大力气升级成SystemVerilog吗?验证这么重要呢?

其实验证功能非常重要且复杂,是确保特定硬件设计按预期运行必不可少的过程。我们都知道,芯片设计是一个非常庞大和耗时的过程,制造成本可高达数百万美元。如果在设计流程的早期阶段就发现设计中的功能缺陷,将有助于节省成本。如果在设计流程的后期发现了缺陷,那么所有的设计步骤都必须重新进行,这将耗费更多的资源、资金和时间,很多的初创企业可能连一次试错机会都没有就濒临倒闭或破产。

诚如博主所说,verilog已经进化为SystemVerilog了,那我们可不可以跳过verilog,直接去学SystemVerilog呢?

其实verilog和SystemVerilog的关系就如同c语言和c++之间的关系,虽然c++很好,但c语言目前仍然被广泛使用。同样verilog还被广泛在设计中使用,大量的数字系统和IP核设计都是用verilog来完成的。当我们清楚的理解verilog的语言特性后,将来我们就可以更好的学习SystemVerilog了。

点赞加关注博主(ID:FPGA小飞)的博文,咱们一起系统学习verilog最终标准IEEE Std 1364-2005吧!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值