毕业论文:基于cpld序列检测器的设计与实现(编辑修改稿)内容摘要:
级别的逻辑设计,方便地进行数字逻辑系统的仿真验证、时序分析和逻辑集合。 Verilog HDL 用于从算法级、门级到开关级的多种抽象设计层次的数字系统建模。 被建模的数字系统对象的复杂性可以介于简单的门和完整的电子数字系统之间。 数字系统能够按层次描述,并且可以在相同描述中显式地进行时序建模。 Verilog HDL 硬件描述语言的主要描述能力可以概括为下述几点: 1) 、设计的行为特性; 2)、设计的数据流特性; 3)、设计的结构组成以及包含响应监控; 4)、设计验证方面的时延和波形产生机制。 所有这些 都使用的是同一种建模语言。 此外, Verilog HDL 语言还提供了编程语言接口,通过该接口可以在模拟、验证期间从设计的外部来访问设计,同时也包括模拟的具体控制和运行。 Verilog HDL 语言不仅定义了语法,而且对每个语法结构都定义了清晰的模拟、仿真语义。 因此,用这种编程语言编写的模型能够使用 Verilog 仿真器进行验证。 语言从 C编程语言中继承了 多种操作符和结构。 Verilog HDL 提供了扩展的建模能力,其中有许多扩展在最初的时候很难理解,但是 Verilog HDL 语言的核心子集非常易于学习和使用,这对我 们大多数建模应用来说已经足够了。 当然完整的硬件描述语言足以对从最复杂的芯片到完整的电子系统进行描述。 Verilog HDL 硬件描述语言也有许多优点:它是一种简洁清晰、功能强大、容易掌握、便于学习的硬件描述语言,只要有 C语言的编程基础,在了解了 verilog 的基本语法、建模方式等以后,再辅之上机操作,就能很快的掌握这一新的设计技术。 Verilog HDL 硬件描述语言的历史 Verilog HDL 硬件描述语言最初是在 1983 年由 GDA( Gateway Design Automation)公司的 Philip 创新而成。 它是为该公司的模拟器产品而开发出的一款硬件描述语言。 当时, Verilog HDL 语言只是一种专用语言,由于他们的模拟、仿真器产品的广泛使用, Verilog HDL 作为一种便捷且实用的语言逐渐的被众多设计者接受。 因而,在一次努力增加语言普及性的活动中, Verilog HDL 语言于 1990 年被推向了大众领域。 OVI( Open Verilog International )是促进 Verilog 发展的国际性组织。 在 1992 年的时候, OVI 决定致力于推广 Verilog OVI 标准成为 IEEE 标准。 这一努力最终获得了成功。 Verilog 语言于是在 1995 年成为了 IEEE 标准,称为: IEEE Std 13641995,从此 Verilog 语言成了一种极具竞争力的御用数字电路于系统设计的硬件描述语言。 于 20xx 年 10 月 1 日,我国正式实施了《集成电路 /计算机硬件描述语言 Verilog》(国家标准编号为 GB/T18349— 20xx)。 Verilog HDL 硬件描述语言的主要能力 Verilog HDL 硬件描述语言的主要能力有很多,下面将会具体给予介绍。 基本逻辑门,例如: and 、 or 、 nand 等都内置在语言中。 用户定义原语( UDP)创建的灵活性 —— 用户定义的原语既可以是组合逻辑原语,也可以是逻辑时序原语。 开关级基本结构模型,例如: pmos 、 nmos 等也均被内置于语言中。 提供显式语言结构指定设计中的端口到端口的时延及路径时延和设计的时序检查。 可以采用三种不同方式或混合方式对设计建模 —— 包括: 行为描述方式,即:使用过程化结构建模; 数据流方式,即:使用连续赋值语句方式建模; 结构化方式,即:使用门和模块实例语句描述建模。 13 Verilog HDL 中有两类数据类型 —— 线网数据类型和寄存 器数据类型。 线网类型表示构件间的物理连线,而寄存器类型表示抽象的数据存储元件。 能够描述层次设计,可使用模块实例结构描述任何层次。 设计的规模可以是任意的,语言不对设计的规模大小施加任何限制。 Verilog HDL 不再是某些公司的专用语言而是 IEEE 标准。 人和机器都可以阅读 Verilog 语言,因此它可作为 EDA的工具和设计者之间的交互语言。 Verilog HDL 语言的描述能力能够通过使用编程语言接口( PLI)机制进一步扩展。 PLI 是允许外部函数访问 Verilog 模块内信息、允许设计者与模拟器交互的例程 集合。 设计者能够在多个层次上加以描述,从开关级、门级、寄存器传送级( RTL)到算法级,包括进程和队列级。 能够使用内置开关级原语在开关级对设计完整建模。 同一语言可用于生产模拟激励和指定测试的验证约束条件,例如输入值的指定。 Verilog HDL 能够监控模拟验证的执行,即模拟验证执行过程中设计的值能够被监控和显示。 这些值也能够用于与期望值比较,在不匹配的情况下,打印报告消息。 在行为级描述中, Verilog HDL 不仅能够在 RTL 级上进行设计描述,而且能够在体系结构级描述及其算法级行为上进行设计描述。 能够使用门和模块实例化语句在结构级进行结构描述。 Verilog HDL 的混合方式建模能力 即在一个设计中每个模块均可以在不同 层次上进行建模,如右图所示。 Verilog HDL 还具有内置逻辑函数, 例如按位于( amp。 )和按位或(丨)。 可以显式地对并发和定时进行建模。 提供强有力的文件读写能力。 开关 算法 开关 门 RTL 门 14 对高级编程语言结构 —— 条件语句、情况语句、循环语句,语言中都可以使用。 语言在特定的情况下是非确定性的 —— 即,在不同的模拟器上模型可以产生不同的结果,例如事件队列上的事 件顺序在标准中没有定义。 Verilog HDL 语法及语句 Verilog HDL 语言基本要素 Verilog HDL 语言基本要素包括:标识符、注释、数值、编译程序指令、系统任务、系统函数。 标识符 标识符是模块、寄存器、端口、连线等元素的名字。 标识符的规定与 C语言类似。 在 Verilog HDL 语言中,每个胸函数的任务面前都有一个个特殊标识符 $加以确认。 在 Verilog HDL 中字符数不能多于 1024 个,大小写字母是不同的。 转义标识符(以反斜杠开始)中可包含任意的可打印字符,以空白结尾。 在 Verilog HDL 定义了一系列的保留字,这些保留字称之为关键词,它仅用于某些上下文中。 只有小写的关键词才是保留字。 例如,标识符 always(这是个关键词)与标识符 ALWAYS(非关键词 )是不同的。 另外,转义标识符与关键词并不完全相同。 标识符 \initial 与标识符 initial(这是个关键词)不同。 注释 在 Verilog HDL 语言中有两种形式的注释。 /*第一种形式:可以扩展至 多行 */ // 第二种形式:在本行结束。 格式 Verilog HDL 区分大小写。 也就是说大小写 不同的标识符是不同的。 此外, Verilog HDL 是自由格式的,即结构可以跨越多行编写,也可以在一行内编写。 白空(新行、制表符和空格)没有特殊意义。 例如: initial begin Top = 3`b001。 2 Top = 3`b011。 end 和下面指令一样: initial begin Top = 3`b001。 2 Top = 3`b011。 15 end 系统任务和函数 以 $字符开始的标识符表示系统任务或系统函数。 任务提供了一种封装行为的机制。 这种机制可在设计的不同部分被调用。 任务可以返回 0 个或 多个值。 函数除只能返回一个值以外与任务相同。 此外,函数在 0 时刻执行,即不允许延迟,而任务可以带有延迟。 编译指令 以 `(反引号)开始的某些标识符是编译器指令。 在 Verilog HDL 语言编译时,特定的编译器指令在整个编译过程中有效(编译过程可跨越多个文件),直到遇到其他的不同编译程序指令。 完整的标准编译器指令如下: `define, `undef `resetall `ifdef, `else, `endif `default_type `include `timescale `unconnected_drive, `nounconnected_drive `celldefine, `endcelldefine 值集合 Verilog HDL 有下列四种基本的值: 1)、 0:逻辑 0 或“假”; 2)、 1:逻辑 1 或“真 ; 3)、 x:未知; 4)、 z:高阻。 注意这四种值的解释都内置于语言中。 如一个为 z的值总是意味着高阻抗,一个为 0的值通常是指逻辑 0。 在门的输入或一个 表达式中的为“ z”的值通常解释成“ x”。 此外, x 值和 z值都是不分大小写的,也就是说,值 0x1z 与值 0X1Z 相同。 Verilog HDL 中的常量是由以上这四类基本值组成的。 Verilog HDL 中有三类常量: 1)、整型; 2)、实数型; 3)、字符串型。 下划线符号( _)可以随意用在整数或实数中,它们就数量本身没有意义。 它们能用来提高易读性;唯一的限制是下划线符号不能用作为首字符。 其中整数型可以按照两种方式书写: 1)、简单十进制格式; 2)、基数格式。 实数型也可按两种方式书写,其分别是: 1)、十进制计数法; 2)、科学计数法。 数据类型 Verilog HDL 的数据类型有两大类,分别为线网型和寄存器型。 其中线网型( type)它表示 Verilog 结构化元件间的物理连线,其值由驱动元件值决定,若无驱动元件接到线网,则线网缺省值为 z。 寄存器型( register type)它则表示的是一个抽象的数据存储单元,只能在 always 语句以及initial 语句中被赋值,且其值从一个赋值到另一个赋值均被保存下来,缺省值为 x。 线网型也包括了很多线网子类型,如: wire, tri, wor, trior, wand,triand, trireg, tril, trio, supply0, supply1。 同样,寄存器型也包含很多不同类型,有 5种,即: reg, integer, time, real, realtime。 参数 参数是一个常量,通常用于定义时延和变量的宽度。 其中,使用参数说明的参数其值只能被赋予一次。 同时参数的值也可以在编译的时候被改变,其方法可以通过使用参数定义语句通过在模块初始化语句中定义参数值。 Verilog HDL 标准操作符 Verilog HDL 的操作符数量有很多,下面我们将一一列举。 算术操作:加或正值(+) 、减或负值(- )、乘(*)、除(/)、取模(%); 赋值操作:赋值(=)、非阻塞赋值(<=); 关系操作:大于(>)、小于(<)、大于等于(>=)、小于等于(<=); 逻辑操作:逻辑与(&&)、逻辑或( ||)、逻辑取反(。 ); 条件操作:条件操作(。 :); 位 操 作:按位取反(~)、按位或( |)、按位异或(∧)、按位与(&)、按位异或非(∧~或~∧); 移位操作:左移(<<)、右移(>>); 等式操作:逻辑等(==)、逻辑不等(。 =)、 case 等(===)、 case不等(。 ===); 缩减操作:缩减与(&)、缩减与非( ~&)、缩减或(丨)、缩减或非(~丨)、缩减异或(∧)、缩减异或非(~∧或∧~); 拼接操作:拼接({,}); 这些操作符的优先级别为:单操作符 ——。 ,&, &,丨,~丨,∧,~∧,+,-,~级别最高,为1级;*,/,%为 2级;+,-为 3 级;<<,>>为 4 级;<,<=,>,>=为 5级;==,。 =,===,。 ==为 6级;&,~&,∧,~∧为 7级;丨,~丨为 8级;&&为 9级; ||为 10级;。 :为 11 级。 在表达式中它们的结合性是 —— 从左向右(。 :除外)。 Verilog HDL 语言的基本语句 Verilog HDL 语言的语句一共有四种重要语句,分别为:赋值语句、块语句、条件语句、循环语句。 下面将分别进行介绍: 赋值语句 赋值语句有。毕业论文:基于cpld序列检测器的设计与实现(编辑修改稿)
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。
用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。