版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、宁夏大学新华学院宁夏大学新华学院课程论文(设计课程论文(设计)论文题目: 序列检测器设计 姓 名: 于俞 专 业: 电子信息工程 指导教师: 马玉韬 提交日期: 2013 年 12 月 摘 要在当下时代,随着电子技术的蓬勃发展,特别是电子设计自动化(EDAEDA)技术和可编程逻辑器件进行通信系统设计的技术已经应用的越来越广泛。硬件描述语言的出现也使得我们在设计系统工程时越来越便利,解决了传统电路原理图设计系统工程的繁琐。此课题提出了一种基于复杂可编程逻辑器件(CPLDCPLD)通过 EDAEDA 技术设计、仿真、实现序列检测器。从而让大家熟悉 VerilogVerilog 硬件描述语言的运用,
2、详细了解在系统可编程器件的原理及其应用方法,掌握在系统可编程开发软件。关键词: EDA 技术;CPLD;Verilog 硬件描述语言;仿真目 录第一章 EDA 技术 .11.1 EDA 技术简介 .11.2 EDA 技术概念及特征 .31.3 EDA 技术应用及发展趋势 .6第二章 复杂可编程逻辑器件 CPLD .72.1 ISP 技术简介 .72.2 CPLD 器件原理及优点 .9第三章 Verilog HDL 硬件描述语言 .113.1 Verilog HDL简介.113.2 Verilog HDL 语法及语句 .133.3 Verilog 建模 .15第四章 序列检测器的设计与实现 .1
3、75.1序列检测器简介.19第五章 设计中遇到的问题总结及体会 .19参考文献. 20致 谢 .211第 1 章 EDA 技术 EDA 技术简介什么是 EDA 技术?EDA 即电子设计自动化(Electronic Design Automation)的缩写。它是以大规模可编程逻辑器件为设计载体、以硬件描述语言为系统逻辑描述的主要表达方式、以计算机及大规模可编程逻辑器件的开发软件以及实验开发系统为设计工具,通过有关的开发软件自动完成用软件的方式设计电子系统到硬件系统的一门技术,它也是一门正在高速发展的新型技术。EDA 技术就是把计算机作为设计工具,借助于 EDA 软件平台,用硬件描述语言 VHD
4、L 完成设计文件,它可以实现逻辑编译、逻辑化简、逻辑分割、逻辑综合及优化、逻辑布局布线以及逻辑仿真。它可以完成对特定的目标芯片的适配编译、逻辑映射、编程下载等工作,从而最终形成集成电子系统或专用集成芯片。通过使用 EDA 工具,设计者可以从概念、算法、协议等多方面着手设计电子系统,其中大量的工作都可以交给计算机来完成,并且可以在计算机上自动化处理完成电子产品的电路设计、性能分析以至 IC 版图或 PCB 版图的绘制。这所有的一切都极大的改变了传统的设计方法以及设计观念,促进了 EDA 技术的发展。目前对于 EDA 技术的概念或范畴应用的很广。不光在机械制造、电子通信、航空航天领域有应用,也同样
5、应用于化工、矿产、生物制药、军事等各个领域。目前许多大的公司、企事业单位以及科研部门都已经广泛的使用 EDA 技术。 EDA 设计方法EDA 技术的设计方法大致划分如下:1) 、前端设计、后端设计、系统建模;2) 、IP 复用;3) 、前端设计;4) 、系统描述即:建立系统的数学模型;功能描述即:描述系统的行为以及各个子模块之间的数据流图;5) 、逻辑设计即:将系统功能致以结构化,其通常表现形式为:文本、原理图、逻辑图、布尔表达式;6) 、仿真仿真的作用就是主要进行对系统功能的正确性和时序性的验证。仿真主要包括功能仿真和时序仿真。EDA 技术与传统技术的区别EDA 技术是基于传统技术设计出的一
6、种新型技术,那么它又和传统技术有什么区别呢?下面,通过表格来给大家进行描述。 传统的技术有很多缺点,例如:设计周期长,灵活性差,效率低;设计依赖于设计者的经验;到后期仿真不易实现;调试复杂容易出错;设计依赖于现有的市场通用元器件。芯片种类多,数量大,受市场的限制;体积大。然而相对于传统技术来说,EDA 技术却更加简便,有很多优点:设计效率高、周期短; 设计质量高、成本低; 特特 点点传统方法传统方法EDAEDA 方法方法采用器件采用器件通用型器件PLD设计对象设计对象电路板芯片设计方法设计方法自底向上自顶向下仿真时期仿真时期系统硬件设计后期系统硬件设计早期主要设计文件主要设计文件电路原理图HD
7、L 语言编写的程序3更能够充分发挥设计者的创造性;设计成果的重用大大的节省了劳动力。传统的数字系统设计只能在电路板上进行设计,是一种搭积木式的方式,使复杂电路的设计、调试十分困难;如果某一过程存在错误,查找和修改十分不便,对于集成电路而言,设计实现过程与具体生产工艺直接相关,因此可移植性差,只有在设计出样机或生产出芯片后才能进行实现,因而开发产品的周期长。而 EDA 技术则有很大不同,采用可编程器件,通过设计芯片来实现系统功能。采用硬件描述语言作为设计输入和库的引入,由设计者定义器件的内部逻辑和管脚,将原来由电路板设计完成的大部分工作改在芯片的设计中进行。由于管脚定义的灵活性,大大减轻了电路图
8、设计和电路板设计的工作量和难度,有效增强了设计的灵活性,提高了工作的效率。并且可以减少芯片的数量,缩小系统体积,降低能源消耗,提高了系统的性能和可靠性。能全方位地利用计算机自动设计、调试和仿真。EDA 技术的范畴EDA 技术从广义的角度上包含了:1、半导体工艺自动化;2、可编程设计自动化;3、电子系统设计自动化;4、印刷电路板设计自动化;5、仿真与测试、故障诊断自动化;6、形式验证自动化。其范畴可以归纳为四个方面,具体如下:PCB 设计;电路设计其中包括:模拟电路、数字电路、混合电路;PLD 设计其中包括:设计输入、逻辑综合、仿真、编程下载;IC 版设计。EDA 技术的概念及特征EDA 技术是
9、伴随着计算机、集成电路、电子系统的设计发展起来的,至今已经有三十多年的历程。其发展大致可以分为三个阶段: 第一代:CAD 即 Computer Aided Design(计算机辅助设计) ,约在 20世纪 70 年代时,出现了可编程技术以及相应的器件,人们开始利用计算机取代手工劳动,使用技术及器件来辅助进行集成电路版图的编辑、PCB 布局布线等工作。在当时 EDA 工具的供应商只有几家,其产品主要面向 PCB 布线设计,例如:Tango 软件等。 第二代:CAE 即 Computer Aided Engineering(计算机辅助工程) ,约在 20 世纪 80 年代时,CPLD(复杂可编程逻
10、辑器件)在人们的设计工作中开始应用,当时 Mentor 公司、Logic System 公司进入 EDA 市场,它们生产出提供带有电路图编辑工具和逻辑模拟工具的 EDA 软件,这些工具软件主要应用于电路设计没有完成之前的功能检验问题,一般是以数字电路的分析和测试工具为代表。在各种硬件描述语言的应用和标准化方面取得了重大的进步。 第三代:在 20 世纪 90 年代以后,通过时代科技的进步发展,人们的工艺水平已经达到深亚微米级,同时硬件描述语言的便准化也得到了进一步确立,这时的 EDA 工具种类齐全,能够提供人们在系统设计时全部的工具需求,兼容各种硬件实现方案,支持标准硬件描述语言,能完成逻辑综合
11、、设计优化、行为仿真、参数分析和测试工具等。从此,复杂电子系统的设计进入了 SOC和 SOPC 时代。 EDA 技术代表了当今电子设计技术的最新发展方向。利用 EDA 工具,电子设计师可以从概念、算法、协议等开始设计电子系统,大量的工作可以通过计算机来完成,并且可以将电子产品从电路设计、性能分析到设计出 IC 版图或者 PCB 版图的整个过程均在计算机上自动处理完成。设计者采用的设计方法是一种高层次的“自顶向下”的全新设计方法:这种设计方法首先从系统设计入手,在顶层进行功能方框图的划分和结构设计。在方框图一级进行仿真、纠错,并用硬件描述语言对高层次的系统行为进行描述,在系统一级进行驶证。然后用
12、综合优化工具生成具体门电路的网络表,其对应的物理实现级可以是印刷电路板或专用集成电路。设计者的工作仅限于利用软件的方式,即利用硬件描述语言和 EDA 软件来完成对系统硬件功能的实现。随着设计的主要仿真和调试过程是在高层次上完成的。这既有利于早期发现结构设计上的错误,从而避免设计工作的浪费,又减少了逻辑功能仿真的工作量,提高了设计的一次性成功率。随着现代电子产品的复杂度和集成度的日益提高,一般的中小规模集成电路组合已不能满足要求,电路设计逐步地从中小规模芯片转为大规模、超大规模芯片,具有高速度、高集成度、低功耗的可编程器件已蓬勃发展起来。“自顶向下自顶向下”及及“自底向上自底向上”设计方法介绍设
13、计方法介绍1、 “自顶向下”的设计方法是指从系统的总体要求出发,按照一定的标准将整个系统划分为若干个子系统,然后再将各个子系统划分成若干个功能模块然后针对各个功能模块进行逻辑、电路设计,最后完成系统硬件的整体设计。系 统子系统功 能 模 块逻辑、电路5“顶” ,即系统行为模型,也就是系统的顶层器件;“向下” ,即系统逐层分为子系统(元件和子元件) 。一、一、 “自顶向下自顶向下“的系统设计方法步骤可大致概括如下:的系统设计方法步骤可大致概括如下:1) 采用完全独立于目标芯片的物理结构的硬件描述语言(HDL)对其系统的功能以及行为进行定义和描述。2) 完成功能确认采用了多层次的仿真。3) 通过具
14、体目标芯片的网表文件进行功能描述。4) 逻辑映射,布线布局。5) 为确保系统的性能,利用仿真文件进行功能以及时序的验证。二、二、EDAEDA 技术主要采用技术主要采用“自顶向下自顶向下”设计方法,其方法的优点为:设计方法,其方法的优点为: 它是一种模块化的设计方法,其设计方式由上到下,由粗略到详细,比较符合人们的习惯的思维逻辑。 因为其高层的设计与器件无关,所以设计可以完全独立于目标器件的结构,使设计者设计时不受芯片结构的约束,可以着重在适应市场的方向设计产品,避免了传统设计方法中再设计的风险,缩短了产品上市的周期。 由于系统采用硬件描述语言进行设计,可以完全独立于目标器件的结构,因此方便了设
15、计在各种可编程器件或者集成电路工艺之间移植。 此设计适合多个设计者同时进行。随着科学技术的发展许多设计很难由一个设计者完成,必须通过多个设计者分工协作才能完成。因此,采用自顶向下的设计方法方便多个设计者设计同时进行,对设计的任务进行合理的分配,用系统工程的方法对设计进行管理。2、 “自底向上”的设计方法是指在整体划分的基础上,先进行单元的设计,然后再以单元设计为基础逐级向上完成功能模块以及子系统的设计,直到系统硬件的整体设计的最后完成。其框图如下:6系 统子 系 统功能模块逻 辑电 路此种设计方法,使用于“自顶向下”设计方法之前 10 年,它是一种传统的设计方法,此方法如同一砖一瓦建造金字塔一
16、般,不仅成本高、效率低而且容易出错,因此逐渐被代替。 EDA 技术应用及发展趋势随着科技的进步,EDA 技术发展迅猛,逐渐在教学、科研、产品设计与制造等各方面都发挥着巨大的作用。一、在教学方面:几乎所有的理工科类,尤其是电子信息类的高等学校均开设了有关 EDA 的课程。其目的主要是为了让学生了解 EDA 的基本原理以及基本的概念、掌握使用 VHDL 硬件描述语言描述系统逻辑的方法、使用 EDA 工具进行电子电路课程的模拟仿真实验。例如:实验教学、毕业设计、课程设计、设计竞赛等都可以借助 CPLD/FPGA 器件。使实验设备或设计出的电子系统具有高可靠性,又经济、快速、容易实现、便于修改,同时也
17、可以大大提高学生的实践、创新以及计算机应用的能力。二、在科研方面:设计者主要利用电路仿真工具进行电路设计与仿真,利用虚拟仪器进行产品调试。将 CPLD/FPGA 器件开发应用到仪器设备中,CPLD/FPGA 可直接应用于小批量的产品芯片或作为大批量产品的芯片前期开发。传统机电产品的升级换代和技术改造,CPLD/FPGA 的应用可以提高传统产品的性能,缩小传统产品体积,提高技术含量和产品附加值。作为高等院校有关专业的学生和广大电子工程师了解和掌握这一先进技术是势在必行,这不仅是提高设计效率的需要,更是时代发展的需求,只有掌握了 EDA 技术才有能力参与世界电子工业市场的竞争,才能生存发展。随着科
18、技的进步,电子产品的更新日新月异,EDA 技术作为电子产品开发研制的源动力,已经成为了现代电子设计的核心。所以发展 EDA 技术将是电子设计领域和电子产业界的一场重大的技术革命,同时也对电子类课程的教学和科研提出了更深更高的要求。三、在产品设计与制造方面;从高性能的微处理器、数字信号处理器一直到彩电、音响和电子玩具电路等,EDA 技术不单是应用于前期的计算机模拟仿真、产品调试,而且也在 PCB 的制作、电子设备的研制与生产、电路板的焊接、制造过程等有着重要作用。可以说 EDA 技术已经成为电子工业领域不可缺少的技术支持。在进入 21 世纪后,电子技术全方位纳入 EDA 领域,EDA 使得电子领
19、域各7学科的界限更加模糊,更加互为包容,突出表现为以下几个方面:、使电子设计成果以自主知识产权的方式得以明确表达和确认成为可能;、基于 EDA 工具的 ASIC 设计标准单元已涵盖大规模电子系统及 IP核模块;、软硬件 IP 核在电子行业的产业领域、技术领域或者设计应用领域得到进一步确认;、SOC 高效低成本设计技术的成熟。随着半导体技术、集成技术和计算机技术的迅猛发展,电子系统的设计方法和设计手段都发生了很大的变化。传统“固定功能集成块十连线”的设计方法正逐步地退出历史舞台,而基于芯片的设计方法正成为现代电子系统设计的主流。 复杂可编程逻辑器件 CPLD ISP 技术简介ISP 即 In-S
20、ystem Programming(在系统可编程) ,它是由 Lattice 公司首先对设计电路和系统这一问题提出来的一种最新的技术。Lattice 是 ISP(在线编程)技术的发明者,据说它最早是由我们中国人创办的,它的出现大大的促进了 PLD 产品的发展,为用户带来的巨大的时间效益和经济效益,是可编程技术的一个实质性的飞跃,是 PLD 设计技术的一次新的革命。ISP 在系统可编程,指电路板上的空白器件可以编程写入最终用户代码,而不需要从电路板上取下器件,已经编程的器件也可以通过使用 ISP 的方式擦除或者再编程。ISP 技术使我们在进行产品的设计与制造的过程中的每一个环节,以至销售后,对器
21、件、电路板或者整个电子系统的逻辑和模拟功能可以随时的进行组态或者重组。换句话来说,ISP 技术能够让我们拥有在自己设计的开发系统或者电路板上重新构建电路与系统并对可编程器件进行编程或者反复改写的能力。1 1、ISPISP 工作原理工作原理ISP 的实现相对要简单一些,一般通用做法是内部的存储器可以由上位机的软件通过串口来进行改写。对于单片机来讲可以通过 SPI 或其它的串行接口接收上位机传来的数据并写入存储器中。所以即使我们将芯片焊接在电路板上,只要留出和上位机接口的这个串口,就可以实现芯片内部存储器的改写,而无须再取下芯片。2 2、ISPISP 技术的优点技术的优点ISP 技术的优势是不需要
22、编程器就可以进行单片机的实验和开发,单片机芯片可以直接焊接到电路板上,调试结束即成成品,免去了调试时由于频繁地插入取出芯片对芯片和电路板带来的不便。ISP 技术不但非常适用于逻辑电路和系统的设计,同样也适用于模拟电路的和系统的设计。它的优点可以归纳为以下五点:1 1、ISPISP 技术有利于设计技术有利于设计不需要改变组件或印刷板的布局;2 2、ISPISP 技术有利于制造技术有利于制造使用 ISP 器件可以实现多功能硬件的设计,从而可以很大的减少系统部件的使用量,从而也降低了制造的成本。此外 ISP 技术也对测试提供重组态的能力,这样也就提高了系统的质量,降低成本;3 3、ISPISP 技术
23、采用了先进的技术采用了先进的 E E CMOSCMOS 工艺工艺工艺领先;4 4、应用前景广阔应用前景广阔ISP 器件包括可编程逻辑器件、可编程模拟器件、可编程数字开关及互联器件等,它具有种类多、系列全、选择余地大的特点。这些器件不光是它们的性能还有它们所具有的特性都处于领先的地位,能够让使用者快速、高效滴设计出新一代的电路与系统的产品;5 5、ISPISP 的未来的未来使硬件设计软件化,这样硬件设计将不再是“固定不变”的。ISP 器件的采用将使硬件设计更具有适用性的组态。3 3、ISPISP 的实现方式的实现方式ISP 的实现方式有以下几种:1、基于电可擦除存储单元的 EEPROM 或 Fl
24、ash 技术(譬如 CPLD),特点是,掉电数据不丢失,但编程次数有限,编程速度慢;2、基于 SRAM 查找表的编程单元(譬如 FPGA),特点是,配置次数无限,加电可随时更改逻辑,但掉电后数据即丢失,下次上电需要重新配置;3、基于反熔丝编程单元(譬如 Actel 的 FPGA);4、JTAG 方式;四、四、ISPISP 器件介绍器件介绍目前,由 Lattice 公司作为商品生产的 ISP 产品大致可分9为三大类:1、ispPACispPAC 在系统可编程模拟器件,有四个品种:ispPAC10ispPAC10、ispPAC20ispPAC20、ispPAC30ispPAC30、ispPAC80
25、/81ispPAC80/81;2、ispGDXispGDX &ispGDS&ispGDS在系统可编程接口与互联器件,有三个系列:ispGDSispGDS 系列系列、ispGDXispGDX 系列系列、ispGDXVispGDXV 系列系列;3、ispMACHispMACH&ispLSI&ispLSI 在系统可编程逻辑器件,有八个系列:基本型高密度系列(1K1K 系列系列) 、高速系列(2K2K 系列系列) 、高密度与高性能系列(3K3K 系列系列) 、超高密度超高集成度系列(5K5K 系系列列) 、带有存储器和寄存器/计数器的模块化系列(6K6K 系列系列) 、
26、超高密度系列(8K8K 系列系列) 、高级灵活系列(ispMACHispMACH 系列系列) 、低密度系列(ispGAL/PALispGAL/PAL 系列系列) 。CPLD 器件原理及优点CPLD 概念及使用CPLD 即 Complex Programmable Logic Device,复杂可编程逻辑器件,它是从 PAL 和 GAL 中发展延伸出来的一种相对而言结构复杂、规模大的器件,属于大规模集成电路的范围。它是一种用户根据各自需要而自行构造逻辑功能的数字集成电路。当我们设计 CPLD 的时候基本的方法就是借助于集成开发软件平台,通过原理图或者硬件描述语言等方法,生成相应的目标文件,通过下
27、载电缆/“在系统”编程将代码传送到目标芯片中,从而实现设计的数字系统。CPLD 主要是由可编程逻辑宏单元(MC,Macro Cell)围绕中心的可编程互连矩阵单元组成。其中 MC 结构比较复杂,并且具有复杂的 I/O 单元互连结构,可由用户根据需要生产特定的电路结构,完成一定的功能。由于 CPLD 内部采用固定长度的金属线进行各逻辑块的互连,所以设计的逻辑电路具有时间可预测性,避免了分段式互连结构时序不完全预测的缺点。与 CPLD 类似的还有 FPGA(FieldProgrammable Gate Array) ,即现场可编程门阵列 。它是在 PAL、GAL、CPLD 等可编程器件的基础上进一
28、步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。经过几十年的发展,许多公司都开发出了 CPLD 可编程逻辑器件。比较典型的就是 Altera、Lattice、Xilinx 世界三大权威公司的产品,这里给出常用芯片: Altera EPM7128S (PLCC84)、Lattice LC4128V (TQFP100)、Xilinx XC95108 (PLCC84) 。那么 CPLD 与 FPGA 有什么区别呢?CPLD 与 FPGA 的区别可以概括为以下方面:CPLD 逻辑门的密度在几千到几万个逻辑单
29、元之间,而 FPGA 通常是在几万到几百万。CPLD 和 FPGA 的主要区别是他们的系统结构。CPLD 是一个有点限制性的结构。这个结构由一个或者多个可编辑的结果之和的逻辑组列和一些相对少量的锁定的寄存器。这样的结果是缺乏编辑灵活性,但是却有可以预计的延迟时间和逻辑单元对连接单元高比率的优点。而 FPGA 却是有很多的连接单元,这样虽然让它可以更加灵活的编辑,但是结构却复杂的多。 FPGA 为非连续式布线,而 CPLD 为连续式布线;FPGA 为细粒度结构,而 CPLD 为粗粒度结构,CPLD 利用率较 FPGA 器件低。CPLD 器件的特点CPLD 器件的特点具体可以归纳为以下几点:CPL
30、DCPLDFPGAFPGA内部结构内部结构Product-termLook-up Table程序存储程序存储内部 EEPROMSRAM,外挂 EEPROM资源类型资源类型组合电路资源丰富触发器资源丰富集成度集成度低高使用场合使用场合完成控制逻辑能完成比较复杂的算法速度速度慢快其他资源其他资源EAB,锁相环保密性保密性可加密一般不能保密111、编程灵活; 2、集成度高; 3、设计开发周期短;4、适用范围宽; 5、开发工具先进; 6、设计制造成本低;7、对设计者的硬件经验要求低; 8、标准产品无需测试,精准高;9、保密性强、价格大众化。CPLD 具有以上这么多的特点,也致使它能够实现较大规模的电路
31、设计,从而广泛的被人们应用于产品原型设计和产品生产(一般在 10,000 件以下)中。几乎所有应用中小规模通用数字集成电路的场合都可以应用 CPLD 器件。如今,随着 CPLD 的应用,科技的发展,CPLD 器件已经成为电子产品不可或缺的组成部分,它的设计和应用已经成为电子工程师必备的一种技能。 Verilog HDL 硬件描述语言本章主要介绍 Verilog HDL 硬件描述语言的发展历史以及它的主要能力。Verilog HDL 简介Verilog HDL 的概念Verilog 是又一种用于数字电子系统设计的硬件描述语言。使用它,用户可以灵活地进行各种级别的逻辑设计,方便地进行数字逻辑系统的
32、仿真验证、时序分析和逻辑集合。Verilog HDL 用于从算法级、门级到开关级的多种抽象设计层次的数字系统建模。被建模的数字系统对象的复杂性可以介于简单的门和完整的电子数字系统之间。数字系统能够按层次描述,并且可以在相同描述中显式地进行时序建模。Verilog HDL 硬件描述语言的主要描述能力可以概括为下述几点:1) 、设计的行为特性; 2) 、设计的数据流特性; 3) 、设计的结构组成以及包含响应监控; 4) 、设计验证方面的时延和波形产生机制。所有这些都使用的是同一种建模语言。此外,Verilog HDL 语言还提供了编程语言接口,通过该接口可以在模拟、验证期间从设计的外部来访问设计,
33、同时也包括模拟的具体控制和运行。Verilog HDL 语言不仅定义了语法,而且对每个语法结构都定义了清晰的模拟、仿真语义。因此,用这种编程语言编写的模型能够使用 Verilog 仿真器进行验证。语言从 C 编程语言中继承了多种操作符和结构。Verilog HDL 提供了扩展的建模能力,其中有许多扩展在最初的时候很难理解,但是 Verilog HDL 语言的核心子集非常易于学习和使用,这对我们大多数建模应用来说已经足够了。当然完整的硬件描述语言足以对从最复杂的芯片到完整的电子系统进行描述。Verilog HDL 硬件描述语言也有许多优点:它是一种简洁清晰、功能强大、容易掌握、便于学习的硬件描述
34、语言,只要有 C 语言的编程基础,在了解了 verilog 的基本语法、建模方式等以后,再辅之上机操作,就能很快的掌握这一新的设计技术。Verilog HDL 硬件描述语言的历史Verilog HDL 硬件描述语言最初是在 1983 年由 GDA(Gateway Design Automation)公司的 Philip R.Moorby 创新而成。它是为该公司的模拟器产品而开发出的一款硬件描述语言。当时,Verilog HDL 语言只是一种专用语言,由于他们的模拟、仿真器产品的广泛使用,Verilog HDL 作为一种便捷且实用的语言逐渐的被众多设计者接受。因而,在一次努力增加语言普及性的活动
35、中,Verilog HDL 语言于 1990 年被推向了大众领域。OVI( Open Verilog International )是促进 Verilog 发展的国际性组织。在1992 年的时候,OVI 决定致力于推广 Verilog OVI 标准成为 IEEE 标准。这一努力最终获得了成功。Verilog 语言于是在 1995 年成为了 IEEE 标准,称为:IEEE Std 1364-1995,从此 Verilog 语言成了一种极具竞争力的御用数字电路于系统设计的硬件描述语言。于 2001 年 10 月 1 日,我国正式实施了集成电路/计算机硬件描述语言 Verilog (国家标准编号为
36、GB/T183492001) 。Verilog HDL 硬件描述语言的主要能力Verilog HDL 硬件描述语言的主要能力有很多,下面将会具体给予介绍。基本逻辑门,例如:and 、or 、nand 等都内置在语言中。用户定义原语(UDP)创建的灵活性用户定义的原语既可以是组合逻辑原语,也可以是逻辑时序原语。开关级基本结构模型,例如:pmos 、nmos 等也均被内置于语言中。提供显式语言结构指定设计中的端口到端口的时延及路径时延和设计的时序检查。可以采用三种不同方式或混合方式对设计建模包括:1、行为描述方式,即:使用过程化结构建模;2、数据流方式,即:使用连续赋值语句方式建模;3、结构化方式
37、,即:使用门和模块实例语句描述建模。13Verilog HDL 中有两类数据类型线网数据类型和寄存器数据类型。线网类型表示构件间的物理连线,而寄存器类型表示抽象的数据存储元件。能够描述层次设计,可使用模块实例结构描述任何层次。设计的规模可以是任意的,语言不对设计的规模大小施加任何限制。Verilog HDL 不再是某些公司的专用语言而是 IEEE 标准。人和机器都可以阅读 Verilog 语言,因此它可作为 EDA 的工具和设计者之间的交互语言。Verilog HDL 语言的描述能力能够通过使用编程语言接口(PLI)机制进一步扩展。PLI 是允许外部函数访问 Verilog 模块内信息、允许设
38、计者与模拟器交互的例程集合。设计者能够在多个层次上加以描述,从开关级、门级、寄存器传送级(RTL)到算法级,包括进程和队列级。能够使用内置开关级原语在开关级对设计完整建模。同一语言可用于生产模拟激励和指定测试的验证约束条件,例如输入值的指定。Verilog HDL 能够监控模拟验证的执行,即模拟验证执行过程中设计的值能够被监控和显示。这些值也能够用于与期望值比较,在不匹配的情况下,打印报告消息。在行为级描述中,Verilog HDL 不仅能够在 RTL 级上进行设计描述,而且能够在体系结构级描述及其算法级行为上进行设计描述。能够使用门和模块实例化语句在结构级进行结构描述。Verilog HDL
39、 的混合方式建模能力即在一个设计中每个模块均可以在不同层次上进行建模,如右图所示。Verilog HDL 还具有内置逻辑函数,例如按位于(&)和按位或(丨) 。可以显式地对并发和定时进行建模。提供强有力的文件读写能力。开关算法开关门RTL门14对高级编程语言结构条件语句、情况语句、循环语句,语言中都可以使用。语言在特定的情况下是非确定性的即,在不同的模拟器上模型可以产生不同的结果,例如事件队列上的事件顺序在标准中没有定义。Verilog HDL 语法及语句Verilog HDL 语言基本要素Verilog HDL 语言基本要素包括:标识符、注释、数值、编译程序指令、系统任务、系统函数。
40、1 1、标识符标识符标识符是模块、寄存器、端口、连线等元素的名字。标识符的规定与C 语言类似。在 Verilog HDL 语言中,每个胸函数的任务面前都有一个个特殊标识符$加以确认。在 Verilog HDL 中字符数不能多于 1024 个,大小写字母是不同的。转义标识符(以反斜杠开始)中可包含任意的可打印字符,以空白结尾。在 Verilog HDL 定义了一系列的保留字,这些保留字称之为关键词,它仅用于某些上下文中。只有小写的关键词才是保留字。例如,标识符always(这是个关键词)与标识符 ALWAYS(非关键词)是不同的。另外,转义标识符与关键词并不完全相同。标识符initial 与标识
41、符 initial(这是个关键词)不同。2 2、注释注释在 Verilog HDL 语言中有两种形式的注释。/*第一种形式:可以扩展至 多行*/ 第二种形式:在本行结束 。3 3、格式、格式Verilog HDL 区分大小写。也就是说大小写不同的标识符是不同的。此外,Verilog HDL 是自由格式的,即结构可以跨越多行编写,也可以在一行内编写。白空(新行、制表符和空格)没有特殊意义。例如:initial begin Top = 3b001;#2 Top = 3b011; end和下面指令一样:initial beginTop = 3b001;#2 Top = 3b011;15end4 4、
42、系统任务和函数系统任务和函数以$字符开始的标识符表示系统任务或系统函数。任务提供了一种封装行为的机制。这种机制可在设计的不同部分被调用。任务可以返回 0 个或多个值。函数除只能返回一个值以外与任务相同。此外,函数在 0 时刻执行,即不允许延迟,而任务可以带有延迟。5 5、编译指令编译指令以(反引号)开始的某些标识符是编译器指令。在 Verilog HDL 语言编译时,特定的编译器指令在整个编译过程中有效(编译过程可跨越多个文件) ,直到遇到其他的不同编译程序指令。完整的标准编译器指令如下:define,undef resetallifdef,else,endif default_nettype
43、include timescaleunconnected_drive,nounconnected_drive celldefine,endcelldefine6 6、值集合值集合Verilog HDL 有下列四种基本的值:1)、0:逻辑 0 或“假” ;2) 、1:逻辑 1 或“真;3) 、x:未知;4) 、z:高阻。注意这四种值的解释都内置于语言中。如一个为 z 的值总是意味着高阻抗,一个为 0 的值通常是指逻辑 0。在门的输入或一个表达式中的为“z”的值通常解释成“x” 。此外,x 值和 z 值都是不分大小写的,也就是说,值 0 x1z 与值 0X1Z 相同。Verilog HDL 中的常
44、量是由以上这四类基本值组成的。Verilog HDL 中有三类常量:1) 、整型; 2)、实数型; 3) 、字符串型。下划线符号(_)可以随意用在整数或实数中,它们就数量本身没有意义。它们能用来提高易读性;唯一的限制是下划线符号不能用作为首字符。其中整数型可以按照两种方式书写:1) 、简单十进制格式;2) 、基数格式。实数型也可按两种方式书写,其分别是:1) 、十进制计数法;2) 、科学计数法。7 7、数据类型数据类型Verilog HDL 的数据类型有两大类,分别为线网型和寄存器型。其中线网型(net type)它表示 Verilog 结构化元件间的物理连线,其值由驱动元件值决定,若无驱动元
45、件接到线网,则线网缺省值为 z。寄存器型(register type)它则表示的是一个抽象的数据存储单元,只能在 always语句以及 initial 语句中被赋值,且其值从一个赋值到另一个赋值均被保存下来,缺省值为 x。线网型也包括了很多线网子类型,如:wire,tri,wor,trior,wand,triand,trireg,tril,trio,supply0,supply1。同样,寄存器型也包含很多不同类型,有 5 种,即:reg,integer,time,real,realtime。8 8、参数参数参数是一个常量,通常用于定义时延和变量的宽度。其中,使用参数说明的参数其值只能被赋予一次
46、。同时参数的值也可以在编译的时候被改变,其方法可以通过使用参数定义语句通过在模块初始化语句中定义参数值。9 9、VerilogVerilog HDLHDL 标准操作符标准操作符Verilog HDL 的操作符数量有很多,下面我们将一一列举。算术操作:加或正值() 、减或负值() 、乘() 、除() 、取模() ;赋值操作:赋值() 、非阻塞赋值() ;关系操作:大于() 、小于() 、大于等于() 、小于等于() ;逻辑操作:逻辑与() 、逻辑或(|) 、逻辑取反(!) ;条件操作:条件操作(?:) ;位 操 作:按位取反() 、按位或(|) 、按位异或() 、按位与() 、按位异或非(或)
47、;移位操作:左移() 、右移() ;等式操作:逻辑等() 、逻辑不等(!) 、case 等() 、case 不等(!) ;缩减操作:缩减与() 、缩减与非() 、缩减或(丨) 、缩减或非(丨) 、缩减异或() 、缩减异或非(或) ;拼接操作:拼接(, ) ;这些操作符的优先级别为:单操作符!,-,丨,丨,级别最高,为级;,为 2 级;,为3 级;,为 4 级;,为 5 级;,!,!为 6 级;,为 7 级;丨,丨为 8 级;为 9 级;|为 10 级;?:为 11 级。在表达式中它们的结合性是从左向右(?:除外) 。Verilog HDL 语言的基本语句Verilog HDL 语言的语句一共有
48、四种重要语句,分别为:赋值语句、块语句、条件语句、循环语句。下面将分别进行介绍:1 1、赋值语句赋值语句赋值语句有两种赋值方式,即:非阻塞赋值()和阻塞赋值() 。非阻塞赋值,例如 a,描述在块中的语句“a;”的 a 值并不是立即就改变的,而是块结束后才会完成赋值操作。在数字电路与系统设计中,非阻塞赋值模拟了当所有触发器由相同时钟边沿控制这一行为。阻塞赋值,例如 a,描述在块中的语句“;”的值在赋值语句执行结束后就会立刻改变;在赋值语句执行完,块才会结束。2 2、块语句块语句块语句分为两种:一种是顺序块,用 begin_end 语句标识;另一种是并行块,用 fork_join 语句标识。块语句
49、的功能主要是用来将两条或者多条语句组合在一起,从而使得它们在格式上更像一条语句。17其中,顺序块的格式为:begin 或 begin :块名 语句 1; 块内声明语句; 语句 2; 语句 1; 语句 2; 语句 n; end 语句 n; end 其中块名,即是用标识符给该块取的一个名字;块内声明语句的类型可以划分为:参数型、reg 型、integer 型以及 real 型。其次,块内声明语句均是按照顺序执行的。并行块的格式为:fork 或 fork :块名 语句 1; 块内声明语句; 语句 2; 语句 1; 语句 2; 语句 n; jion 语句 n; join 其中块名,如同顺序块格式一样,
50、也是用标识符给块取的一个名字。块内声明语句的类型相比顺序块语句又额外多了两种类型:time 型、event 型。不同于顺序块格式的是其块内语句是同时执行的。另外,凡是块均会有一个起始时间和结束时间。对于顺序块来说,其起始时间就是第一条语句开始执行的时间,结束时间就是最后一条语句执行结束的时间。然而,于顺序块不同的是,在并行块中,其块内所有语句的起始时间都是一样的,而其结束时间则是按照时间排序排在最后的语句执行结束的时间。3 3、条件语句条件语句条件语句可以分为:if_else 语句和 case 语句。在 Verilog 语言中 if语句有三种形式,分别为:1) 、if(表达式)语句; 2) 、
51、if(表达式)语句 1; else 语句 2; 3) 、if(表达式 1)语句 1; else if(表达式 2)语句 2; else if(表达式 3)语句 3; else if(表达式 n-1)语句 n-1; else 语句 n;在以上三种形式的 if 语句中, “表达式”是指操作数通过操作符连接起来的式子,这里通常为逻辑表达式或者关系表达式,若表达式的值为 0、x、z,则为“假” ;若表达式的值为 1,则为“真” 。另外需要注意的一点就是,当 if 与else 多次17连用的时候,其配对关系为:else 总是跟它上面离最近的 if 配对。在 Verilog语言中,通常能够使用到 case
52、 语句的情况就是当硬件描述中需要多分支选择的时候。case 语句的一般格式也可分为三种:1) 、case(表达式)case 分支项endcase2) 、casez(表达式)case 分支项endcase3) 、casex(表达式)case 分支项endcase ; 其中分支项的格式为: 分支表达式:语句 default(缺省):语句 在 case 语句中,其表达式叫做控制表达式,所有表达式值的位宽必须相等。语句的执行情况为:当控制表达式与分支表达式的值相等时,就执行分支表达式后面的语句,否则的话,就执行default 后面的语句。4 4、循环语句循环语句循环语句的作用是用来控制执行语句的执行次
53、数,其形式可以分为四种:1) 、forever连续执行语句;2) 、repeat连续执行一条语句 n次;3) 、while执行一条语句知道某个条件被满足的时候为止,若此语句一开始时就为假,那么这条语句则一次也不执行。4) 、for其情况与C 语言中的 for 语句类似。forever 语句的格式为:forever 语句;或 forever begin 多条语句 end ; repeat 语句格式为:repeat(表达式)语句; 或repeat(表达式)begin 多条语句 end ; while 语句格式为: while(表达式)语句 或 while(表达式)begin 多条语句 end ;f
54、or 语句的格式为: for(表达式 1,表达式 2,表达式 3)语句,其最简单的应用形式为: for(循环变量赋初值,循环结束条件,循环变量增值)执行语句。 除以上四种重要语句外,Verilog HDL 语言中还有一种语句结构说明语句。在 Verilog 语言中,进程模块的的说明可以通过四种形式的说明语句,分别为:initial 说明语句、always 说明语句、task 说明语句、function 说明语句。 Verilog 建模Verilog 的建模就是一种抽象过程,这种抽象过程是 Verilog 模型实际硬件电路在不同级别上的抽象。这里所说的级别可以分为 5 个级别,它们分别为:1) 、系统级System-Level;2) 、算法级Algorithem-Level;3) 、RTL 级Register Transfer Level;4) 、门级Gate-Level;5) 、开关级Switch-Level。一般一个比较复杂的硬件电路的完整的 Verilog 硬件描述语言模型是由若干个模块组成的,其中,每一个模块又可以是由若干个子模块集合而成。Verilog 允许在同一个模块中存在多个级别的描述。然而之所以能完成极其复杂的大型电路与系统的设计就是利用
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 奶茶鸭子营销方案
- 六枝特区网球场施工方案
- 《拉普华兹地质博物馆》讲解词英汉口译实践报告
- 活动备用策划方案模板
- 冬至暖冬活动策划方案
- 农产品管理咨询方案模板
- 民间哀悼活动策划方案
- 品质活动策划方案范文
- 太赫兹功率合成与组件集成关键技术研究
- 建筑工程样板引路专项实施方案范本
- 生猪屠宰兽医卫生检疫人员考试题库答案
- 安全技术与管理专业实践报告
- 乡村治理课件教学课件
- 危险性化合物的微生物降解-中国石油大学环境生物工程
- 肺栓塞的应急预案演练脚本
- SOR-04-014-00 药品受托生产企业审计评估报告模板
- 2023年10月自考00159高级财务会计试题及答案含解析
- 2024-2030年中国兽用抗生素行业市场深度发展趋势与前景展望战略分析报告
- 2024至2030年中国蓝领零工行业发展监测及投资战略研究报告
- 02-输电线路各阶段设计深度要求
- 中国带状疱疹诊疗专家共识(2022版)
评论
0/150
提交评论