找回密码
 注册
关于网站域名变更的通知
查看: 183|回复: 3
打印 上一主题 下一主题

Verilog HDL硬件描述语言

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2022-8-30 09:53 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
第1章 简 介
5 n% p& a! C! t# a: h1 i本章介绍Verilog HDL语言的发展历史和它的主要能力。
8 ^. E1 k7 _5 e8 P1 t$ Q* e& P1.1 什么是Verilog HDL?7 o; D  a; H" O& |
Verilog HDL是一种硬件描述语言,用于从算法级、门级到开关级的多种抽象设计层次的数字系统建模。被建模的数字系统对象的复杂性可以介于简单的门和完整的电子数字系统之间。数字系统能够按层次描述,并可在相同描述中显式地进行时序建模。% S6 @+ V) m8 r* q) x, E. b
Verilog HDL 语言具有下述描述能力:设计的行为特性、设计的数据流特性、设计的结构组成以及包含响应监控和设计验证方面的时延和波形产生机制。所有这些都使用同一种建模语言。此外,Verilog HDL语言提供了编程语言接口,通过该接口可以在模拟、验证期间从设计外部访问设计,包括模拟的具体控制和运行。
$ O: }! V: u( O: y- j  ]. |Verilog HDL语言不仅定义了语法,而且对每个语法结构都定义了清晰的模拟、仿真语义。因此,用这种语言编写的模型能够使用Verilog仿真器进行验证。语言从C编程语言中继承了多种操作符和结构。 Verilog HDL提供了扩展的建模能力,其中许多扩展最初很难理解。但是,Verilog HDL语言的核心子集非常易于学习和使用,这对大多数建模应用来说已经足够。当然 ,完整的硬件描述语言足以对从最复杂的芯片到完整的电子系统进行描述。; q. ^  {' T: J8 P4 ?0 X

4 u) A; @& I5 y( m, c& F) m1.2 历史/ N$ T" E+ Z  R  b& `, o6 a; R. T
Verilog HDL语言最初是于1983年由Gateway Design Automation公司为其模拟器产品开发的硬件建模语言。那时它只是一种专用语言。由于他们的模拟、仿真器产品的广泛使用,Verilog HDL作为一种便于使用且实用的语言逐渐为众多设计者所接受。在一次努力增加语言普及性的活动中,Verilog HDL语言于1990年被推向公众领域。Open Verilog International(OVI)是促进Verilog发展的国际性组织。1992年,OVI决定致力于推广Verilog OVI标准成为IEEE标准。这一努力最后获得成功,Verilog语言于1995年成为IEEE标准,称为IEEEStd1364-1995。完整的标准在Verilog硬件描述语言参考手册中有详细描述。
4 _9 s( i  w. R# C  N6 M  E1 i: g- }0 s0 V% c
1.3 主要能力
/ r+ p  q2 R, o9 g6 I# r  K6 i/ V下面列出的是Verilog硬件描述语言的主要能力:
, {: v0 n8 t# }•基本逻辑门,例如and、or和NAND等都内置在语言中。
- _- Q; L' G' q+ Z( R- u0 V•用户定义原语(UDP)创建的灵活性。用户定义的原语既可以是组合逻辑原语,也可以是时序逻辑原语。7 V& J; c( n% N7 I  ^5 E, G
•开关级基本结构模型,例如pmos和nmos等也被内置在语言中。
9 L4 M$ O) Z" ^% M: V" I' D• 提供显式语言结构指定设计中的端口到端口的时延及路径时延和设计的时序检查。1 ]! o7 d1 `6 Q( F$ q' F
• 可采用三种不同方式或混合方式对设计建模。这些方式包括:行为描述方式—使用过
, Q4 u) N" u9 S6 \, i6 B程化结构建模;数据流方式—使用连续赋值语句方式建模;结构化方式—使用门和模块实例语句描述建模。: U2 B3 F* I% L5 ]9 |
• Verilog HDL中有两类数据类型:线网数据类型和寄存器数据类型。线网类型表示构件间的物理连线,而寄存器类型表示抽象的数据存储元件。
& Q' n, L8 T/ q8 I  o9 `1 |; B0 v• 能够描述层次设计,可使用模块实例结构描述任何层次。
' I9 [2 m4 a( w; |) V• 设计的规模可以是任意的;语言不对设计的规模(大小)施加任何限制。
1 g5 y& S( V+ D• Verilog HDL不再是某些公司的专有语言而是IEEE标准。8 Q( O3 \8 E; X+ `
• 人和机器都可阅读Verilog语言,因此它可作为EDA的工具和设计者之间的交互语言。4 o. ]$ u# \  O0 z0 Y
• Verilog HDL语言的描述能力能够通过使用编程语言接口(PLI)机制进一步扩展。PLI是允许外部函数访问Verilog 模块内信息、允许设计者与模拟器交互的例程集合。
" L; Q4 @5 m  v' F• 设计能够在多个层次上加以描述,从开关级、门级、寄存器传送级(RTL)到算法级,包括进程和队列级。% i( L9 R% ^7 \- ?# `
• 能够使用内置开关级原语在开关级对设计完整建模。
. Y- T; c8 M1 v& L; A: d• 同一语言可用于生成模拟激励和指定测试的验证约束条件,例如输入值的指定。
' ^2 o+ d! I# H3 M6 x6 z$ B• Verilog HDL能够监控模拟验证的执行,即模拟验证执行过程中设计的值能够被监控和显示。这些值也能够用于与期望值比较,在不匹配的情况下,打印报告消息。' s) P7 z, ~  h! B
• 在行为级描述中, Verilog HDL不仅能够在RTL级上进行设计描述,而且能够在体系结构级描述及其算法级行为上进行设计描述。
6 B  {; i$ j* w  A! T% `% A# f• 能够使用门和模块实例化语句在结构级进行结构描述。. e& M& q2 z. P
• 图1 - 1显示了Verilog HDL的混合方式建模能力,即在一个设计中每个模块均可以在不同设计层次上建模。3 y/ q: L  T3 a+ p( S2 X1 n

/ x8 F' b' X0 U8 Y2 p8 w; l• Verilog HDL还具有内置逻辑函数,例如&(按位与)和|(按位或)。! h/ p# d7 H- k( J5 r, a' T
• 对高级编程语言结构,例如条件语句、情况语句和循环语句,语言中都可以使用。% K* ~9 Y  v+ B, j
• 可以显式地对并发和定时进行建模。/ L" Q4 B$ Y% K; B& o
• 提供强有力的文件读写能力。
3 x$ L3 G) {8 J0 X• 语言在特定情况下是非确定性的,即在不同的模拟器上模型可以产生不同的结果;例如,事件队列上的事件顺序在标准中没有定义。/ D5 C  R8 `, G

( j3 _( Y1 `) b; z, N% g4 i- s第2章 HDL指南# L' o% x& ?) c% h" J7 H. G
本章提供H D L语言的速成指南。/ V( l$ w5 ]1 i  [, _% _1 }$ a
2.1 模块
: n2 {" B  F7 }0 {* M8 J模块是Verilog 的基本描述单位,用于描述某个设计的功能或结构及其与其他模块通信的外部端口。一个设计的结构可使用开关级原语、门级原语和用户定义的原语方式描述 ; 设计的数据流行为使用连续赋值语句进行描述 ; 时序行为使用过程结构描述。一个模块可以在另一个模块中使用。
/ W+ [8 e0 n. j一个模块的基本语法如下:
0 Z# T3 v. f0 I" u- [% E" d1 E1 n
2 M& Q" A) m5 g( M" @说明部分用于定义不同的项,例如模块描述中使用的寄存器和参数。语句定义设计的功能和结构。说明部分和语句可以散布在模块中的任何地方;但是变量、寄存器、线网和参数等的说明部分必须在使用前出现。为了使模块描述清晰和具有良好的可读性 , 最好将所有的说明部分放在语句前。本书中的所有实例都遵守这一规范。
, G9 r' }/ ]* G
2 ~: s7 V+ q% X7 ~1 \图2 - 1为建模一个半加器电路的模块的简单实例。( g: D, b4 R4 ^( N
module HalfAdder(A, B, Sum, Carry) ;$ `0 W6 {2 Z& @  c0 |
inputA,B;
4 g8 N/ A) }% Z" h; o$ F' e7 [output Sum, Carry;
: d5 O& j9 y0 ^' @* @assign#2 Sum=A^B;
# }% k) Y8 V% j4 @* s( z: j  ~2 q* vassign#5 Carry=A&B;
+ }, W3 s" d/ I; L  R, I+ Iendmodule1 K0 I2 x8 c- W2 H4 }, C
: t. Y1 b% K. v5 N
模块的名字是HalfAdder。 模块有4个端口: 两个输入端口A和B,两个输出端口Sum和Carry。由于没有定义端口的位数, 所有端口大小都为1位;同时, 由于没有各端口的数据类型说明, 这四个端口都是线网数据类型。模块包含两条描述半加器数据流行为的连续赋值; S. B2 L/ l/ ~
语句。从这种意义上讲,这些语句在模块中出现的顺序无关紧要,这些语句是并发的。每条语句的执行顺序依赖于发生在变量 A和B上的事件。3 _3 J) ]2 z* I7 ]. N( U5 {, C* v
在模块中,可用下述方式描述一个设计:
6 \$ t1 N/ Q* [1) 数据流方式;
) ]/ M2 ]8 k; D4 v! b" s2) 行为方式;8 E  q5 Y( e6 a& e; C4 ^5 ^! w
3) 结构方式;
" _) h& v( c+ ]) V9 t4) 上述描述方式的混合。. S/ F5 t* y6 L. G( V

Verilog HDL硬件描述语言.PDF

4.78 MB, 下载次数: 0, 下载积分: 威望 -5

该用户从未签到

2#
发表于 2022-8-30 10:28 | 只看该作者
一起互相交流学习,共同进步

该用户从未签到

3#
发表于 2022-8-30 11:13 | 只看该作者
提高同行之间的技术水平

该用户从未签到

4#
发表于 2022-8-30 14:42 | 只看该作者
好东西,谢谢分享,学习
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-10-6 11:11 , Processed in 0.125000 second(s), 26 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表