1HDL语言概述.ppt_第1页
1HDL语言概述.ppt_第2页
1HDL语言概述.ppt_第3页
1HDL语言概述.ppt_第4页
1HDL语言概述.ppt_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Verilog硬件描述语言 刘有耀Email lyyao2002 Tel 88166174QQ 253726768电子工程学院微电子学系 第一讲Verilog硬件描述语言概述 内容 数字系统概述硬件描述语言历史VHDL与VerilogHDL比较有关HDL的几个重要基本概念VerilogHDL的设计流程常用仿真和综合工具VerilogHDL入门 数字系统概述 常见数字系统 微处理机系统 数字信号处理系统 数字通信系统 数字编解码和加解密电路 数字多功能智能接口等 目前数字系统单片等效逻辑门总数达到几百甚至几千万门的已较常见 存储器 数字系统的组成 数字系统通常由输入电路 输出电路 控制电路 数字处理电路和存储器组成 控制电路 数字处理电路 输入电路 输出电路 数字系统实现方法 通用集成电路 如 74系列 4000系列等 电路体积大 重量大 功耗大 可靠性低 70 80年代主流 专用集成电路ASIC ApplicationSpecificIntegratedCircuits 如 Modem MP3decoder等 90年代盛行 现在大规模产品中继续使用 可编程逻辑阵列 ProgrammableLogicDevice 如 Xilinx的spartan系列 Altera的Cyclone系列 现在逐步蚕食ASIC的低端市场 并将成为一种主流方法 通用微处理器 DSP 如8051单片机 ARM32位MCU TMS320C5x系列DSP等 80年代 现在仍为一种主流方法 混合使用各种器件 发挥各自的优势 发展趋势 数字系统的自顶向下模块化设计 现代数字系统设计的综合 仿真与设计验证方法 硬件描述语言历史 VHDL于1980年开始在美国国防部的指导下开发 完成于1983年 并于1987年成为IEEE的标准 当初开发这种语言 是出于美国国防部采购电子设备的需要 通过VHDL 供应商要把自己生产的集成电路芯片的行为描述出来 如果有必要让其他厂商生产代用品 他们只需照着VHDL文档 设计出行为与其相同的芯片 VerilogHDL是由GatewayDesignAutomation公司大约在1983年左右开发的 其架构同VHDL相似 主要被用来进行硬件仿真 由于是由公司内工程师开发的 更注重实用性 Verilog要比VHDL简洁得多 VerilogHDL于1995年成为IEEE标准 称IEEEStd1364 1995 HDL不是硬件设计语言 VHDL和Verilog都不是为了设计硬件而开发的 当初制订HDL语言标准的时候 并没有考虑这些代码如何用硬件来实现 因此 有些代码写起来简单 实现起来却可能非常复杂 或者就不可能实现 HDL是HardwareDescriptionLanguage的缩写 正式中文名称是 硬件描述语言 也就是说 HDL并不是 硬件设计语言 HardwareDesignLanguage 明确VHDL和Veriglog并非是硬件设计语言 就理解不能随心所欲地写仅仅符合语法的HDL代码来设计硬件电路 设计硬件电路的HDL必须满足可综合条件 为什么要用硬件描述语言来设计 使用HDL语言设计具有如下优点 能形式化地抽象表示电路的结构和行为 便于人和计算机理解 支持逻辑设计中不同层次和领域的描述 可以借用类似计算机软件高级语言的方法简化电路的描述 具有电路仿真与验证机制以保证设计的正确性 支持电路描述由高层到低层的综合转换 硬件描述与实现工艺无关 便于文档管理 易于理解和设计重用 VHDL与VerilogHDL比较 相对VHDL VerilogHDL特点 较多的第三方工具的支持语法结构比VHDL简单学习起来比VHDL容易仿真工具使用简便测试激励模块容易编写 VerilogHDL与VHDL建模能力的比较 VerilogHDL特点1 VerilogHDL是一种用于数字逻辑电路描述的语言 主要用于逻辑电路的建模 仿真和设计 用VerilogHDL描述的电路设计就是该电路的VerilogHDL模型 VerilogHDL既是一种行为描述的语言也是一种结构描述的语言 既可以用电路的功能描述也可以用元器件和它们之间的连接来建立所设计电路的VerilogHDL模型 Verilog模型可以是实际电路的不同级别的抽象 这些抽象的级别和它们对应的模型类型共有以下五种 VerilogHDL特点2 系统级 system 用高级语言结构实现设计模块行为的模型 主要用于仿真 算法级 algorithmic 用高级语言结构实现设计算法行为的模型 部分可综合 RTL级 RegisterTransferLevel 描述数据在寄存器之间流动和处理这些数据行为的模型 可综合 门级 gate level 描述逻辑门以及逻辑门之间连接的模型 开关级 switch level 描述器件中三极管和存储器件以及它们之间连接的模型 Verilog语言的这种多抽象级别的描述能力 使我们可以在数字系统设计的各个阶段都使用同一种语言 VerilogHDL特点3 一个复杂电路的完整VerilogHDL模型是由若个VerilogHDL模块构成的 每个模块又由若干个子模块构成 便于模块化设计 VerilogHDL可以精确地建立信号的模型 这是因为在VerilogHDL中 提供了延迟和输出强度的原语来建立精确程度很高的信号模型 VerilogHDL作为一种高级的硬件描述编程语言 有着类似C语言的风格 其中有许多语句如 if语句 case语句等和C语言中的对应语句十分相似 提供了各种算术运算符 逻辑运算符 位运算符 如果读者已经掌握C语言编程的基础 那么学习VerilogHDL并不困难 我们只要对VerilogHDL某些语句的特殊方面着重理解 并加强上机练习就能很好地掌握它 有关VerilogHDL的几个重要基本概念 逻辑综合 将HDL模块的行为描述转换成门级电路 并优化电路结构 逻辑综合流程 仿真与验证 应用仿真工具验证HDL模块行为的过程 仿真流程 布局布线 把用综合器自动生成的门级网表 EDIF 通过运行一个自动操作的布局布线工具 使用某种FPGA或ASIC工艺库器件实现门级网表中电路 并加以连接的过程 VerilogHDL的设计流程 技术指标 用文字表示用算法表示用高级行为的Verilog模块表示RTL 功能级 用可综合的Verilog模块表示门级 结构级 用实例引用的Verilog模块表示版图布局 物理级 用几何形状来表示 功能 前 仿真 VerilogHDL的设计流程 系统仿真 验证系统功能和模块分割的合理性前仿真 即RTL级仿真 检查有关RTL级模块设计是否正确 逻辑综合 把RTL级模块转换成门级电路 门级仿真 对门级电路做验证 检查门的互连逻辑功能是否正确 布局布线 将门级电路在FPGA或ASIC上具体实现 布局布线后仿真 加上器件和互联线延时的仿真 与真实的电路最接近的验证 常用仿真和综合工具 常用的仿真工具 Verilog XL NC Verilog ModelSim VeriBest ViewLogic 常用的综合工具 Synplify Exemplar SynopsysExpress SynopsysDesigner VerilogHDL入门 目的 通过简单的例子了解Verilog模块的基本构成了解Verilog模块的组成要素了解Verilog模块的仿真测试 简单的VerilogHDL模块1 下面先介绍几个简单的VerilogHDL程序 然后从中分析VerilogHDL程序的特性 例 1 1 moduleadder count sum a b cin input 2 0 a b inputcin outputcount output 2 0 sum assign count sum a b cin endmodule这个例子描述了一个三位的加法器 从例子中可以看出整个VerilogHDL程序是嵌套在module和endmodule声明语句里的 模块名 简单的VerilogHDL模块2 例 1 2 modulecompare equal a b outputequal 声明输出信号equalinput 1 0 a b 声明输入信号a bassignequal a b 1 0 如果两个输入信号相等 输出为1 否则为0 endmodule这个程序描述了一个比较器 在这个程序中 和 表示注释部分 注释只是为了方便程序员理解程序 对编译是不起作用的 模块的输入输出端口名 逻辑功能的数据流描述 简单的VerilogHDL模块3 例 1 3 modulemux2 out a b sl inputa b sl outputout notu1 ns1 sl and 1u2 sela a nsl and 1u3 selb b sl or 2u4 out sela selb endmodule例中not and or是verilog内建逻辑门器件 逻辑功能的门级结构描述 简单的VerilogHDL模块4 例 2 1 4 moduletrist1 out in enable outputout inputin enable mytritri inst out in enable endmodulemodulemytri out in enable outputout regout inputin enable always inorenable if enable out in elseout 1 bz endmodule 子模块 通过这种结构性模块构造可构成大型模块 上层模块 三态门逻辑功能的行为描述 VerilogHDL简单模块小结 通过上面的例子可以看到 VerilogHDL程序是由模块构成的 模块是可以进行层次嵌套 每个模块要进行端口定义 并说明输入输出口 然后对模块的功能进行逻辑描述 逻辑描述方法有 门级结构描述 数据流描述 行为描述 VerilogHDL程序的书写格式自由 一行可以写几个语句 一个语句也可以分写多行 除了endmodule语句外 每个语句和数据定义的最后必须有分号 可以用 和 对VerilogHDL程序的任何部分作注释 一个好的 有使用价值的源程序都应当加上必要的注释 以增强程序的可读性和可维护性 模块的结构 Verilog的基本设计单元是 模块 block 每个模块包括五个主要部分 模块定义 端口说明 数据声明 电路功能描述和时序特性 modulemodule name port list 模块定义portdeclarations 端口说明datatypedeclarations 数据说明circuitfunctionality 电路功能描述timingspecifications 时序特性 仿真 endmodule 模块的组成要素 较完整的模块例子 乘法累加器电路框图 乘法累加器模块 模块的仿真测试 如何检查模块功能是否正确 需要有测试激励信号输入到被测模块 需要测试被测模块的各种输出信号 功能仿真 需要将功能和行为描述的Verilog模块转换为门级电路互连的电路结构 综合 需要对已经转换为门级电路结构的逻辑进行测试 门级电路仿真 需要对布局布线后的电路结构进行测试 布局布线后仿真 模块的仿真测试平台 testbench 仿真测试模块 测试模块常见的形式 moduletestbench 测试平台无输入输出端口reg 被测模块输入 输出变量类型定义wire initialbegin end 产生测试信号always delaybegin end Testedmdm in1 ina in2 inb out1 outa out2 outb 被测模块的实例引用initialbegin end 记录输出和响应endmodule 测试模块中常用的过程块 所有的过程块都在0时刻同时启动 它们是并行的 在模块中不分前后 initial块只执行一次 always块只要符合触发条件可以循环执行 如何描述激励信号 moduletestbench rega b sel wireout 引用多路器实例 作为被测模块mux2m out a b sel 加入激励信号 即产生输入a b selinitialbegina 0 b 1 sel 0 10b 0 10b 1 sel 1 10a 1 10 stop endendmodule 语句间延时 仿真暂停系统任务 如何观察被测模块的信号 在initial块中 用系统任务 time和 monitor观察模块响应 time返回当前的仿真时刻 monitor只要在其变量列表中有某一个或某几个变量值发生变化 便在仿真单位时间结束时显示其变量列表中所有变量的值 例 initialbegin monitor time out ba bb bsel b out a b sel end 输出 0out 0a 0b 1sel 010out 0a 0b 0sel 020out 1a 0b 1sel 130out 1a 1b 1sel 140out 1a 1b 1sel 1 如何将被测模块的信号记录到数据库中 标准的用于存储模块信号的文件是值变转储 VCD 文件 大多数的波形显示工具都能读取该格式文件 下面的Verilog代码段可以代替测试文件中的系统任务 monitor 将信号存储在VCD文件中 便于波形观测器使用 initialbegin dumpfile vlog dump dumpvars 0 testbench end 存储文件名 存储所

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论