已阅读5页,还剩56页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于VerilogHDL的硬件描述语言简介,刘杰惠wljh2012年5月25日,目录,什么是VerilogHDLVerilogHDL语法设计描述层次组合逻辑和时序逻辑设计测试和验证可综合的设计设计注意事项,什么是VerilogHDL,VerilogHDL是一种硬件描述语言用于数字系统的设计各种级别的逻辑设计:算法级、结构级、门级到开关级的多种抽象设计层次的数字系统建模;被建模的数字系统对象的复杂性可以介于简单的门和完整的复杂电子数字系统之间(例如CPU),什么是VerilogHDL,进行数字逻辑系统的仿真验证、时序分析、逻辑综合特点:从C语言继承了多种操作符和结构应用广泛比VHDL更简洁、灵活语法类似C,但思想不同,着眼于电路,VerilogHDL的历史,1983年GatewayDesignAutomation公司在C语言的基础上,为其仿真器产品Verilog-XL开发了一种专用硬件描述语言VerilogHDL,硬件描述语言的设计优点,电路的逻辑功能容易理解;便于计算机对逻辑进行分析处理;把逻辑设计与具体电路的实现分成两个独立的阶段来操作;逻辑设计与实现的工艺无关;逻辑设计的资源积累可以重复利用;可以由多人共同更好更快地设计非常复杂的逻辑电路(几十万门以上的逻辑系统)。,硬件描述语言的设计优点,VerilogHDL较多的第三方工具的支持语法结构比VHDL简单学习起来比VHDL容易仿真工具比较好使测试激励模块容易编写,硬件描述语言的设计优点,VHDL比VerilogHDL早几年成为IEEE标准;语法/结构比较严格,因而编写出的模块风格比较清晰;比较适合由较多的设计人员合作完成的特大型项目(一百万门以上)。,VerilogHDL的结构,模块(Module)-可对应各种规模电路模块,VerilogHDL的结构,VerilogHDL的结构,VerilogHDL语法,模块数据类型及常量、变量运算符与表达式条件与循环语句结构说明语句,模块(module),Verilog基本设计单元:一个电路模块/一种逻辑功能基本元素:接口,逻辑功能命名:字母,数字,$,_,区分大小写第一个必须为:字母/_,模块(module),Verilog模块的结构由在module和endmodule关键词之间的四个主要部分组成:端口信息:moduleblock1(a,b,c,d);输入/输出说明:inputa,b,c;outputd;内部信号:wirex;功能定义:assignd=a|x;assignx=(bendmodule,模块(module),请在下面的空格中填入适当的符号使其成为右图的Verilog模块:moduleblock1(a,b,);input,;d,;assignd=a|(b_,模块(module),请在下面的空格中填入适当的符号使其成为右图的Verilog模块:moduleblock1(a,b,c,d,e);inputa,b,c;outputd,e;assignd=a|(bendmodule,模块(module),模块实例化模块名称实例化名称(.接口名称(信号名称),);若接口按顺序排列,可以省略接口名称,数据类型及其常量变量,VerilogHDL有下列四种基本的值:0:逻辑0或假1:逻辑1或真X:未知z:高阻x,z值不区分大小写z也可以用?表示,数据类型及其常量变量,VerilogHDL中有三类常量:整型:缺省十进制:1,-2基数表示:b/B,o/O,d/D,h/H4b0101,8h42,-8d5实数型:1.234,-56.78,3.6e4字符串型:双引号内,每个字母用8位的ASCII值表示。如“verilog!”看作9个8位无符号整数反斜杠()用于定义特殊转义字符,例如n,t。下划线(_)可以用来分隔数的表达式以提高易读性;但不能用于位宽和进制处。例如:32b0010_1101_1110_1111=32b0010110111101111,数据类型及其常量变量,VerilogHDL变量最主要的数据类型:线网类型(nettype):表示Verilog结构化元件间的物理连线。它的值由驱动元件的值决定,例如连续赋值或门的输出。如果没有驱动元件连接到线网,线网的缺省值为z。类型:wire,wor,wand,tri1,tri0,supply1,supply0寄存器类型(registertype)表示一个抽象的数据存储单元,它只能在always语句和initial语句中被赋值,并且它的值从一个赋值到另一个赋值过程中被保存下来。寄存器类型缺省值为x。类型:reg,integer,real,time,数据类型及其常量变量,wire型变量格式wiren-1:0name1,name2,namen;举例wirerdy,finish;/2个1位的连线wire3:0result;/1个4位的连线可用作任何方程式的输入,也可用作assign语句和元件的输出。例如:assignresult=a+b;,数据类型及其常量变量,reg型变量格式regn-1:0name1,name2,namen;举例regrdy,finish;/2个1位寄存器reg3:0result;/1个4位寄存器reg3:0mem63:0;/64个4位寄存器组,可表示存储器可取任意一位:result2表示4位寄存器的次高位;mem2表示一个4位寄存器;mem21:0表示一个4位寄存器中的低2位。,数据类型及其常量变量,需要注意的是:寄存器(reg)类型不一定是触发器,它只是在always块中赋值的信号。用寄存器(reg)类型变量生成组合逻辑举例:,modulerw1(a,b,out1,out2);Inputa,b;outputout1,out2;regout1;wireout2;assignout2=a;always(b)out1条件运算符:?:assignresult=exp?exp1:exp2;连接和复制操作符:assigncout,sum=a+b+cin;,运算符与表达式,表达式:操作数+运算符分类:单目运算符:带一个操作数如clock双目运算符:带两个操作数如aelseif(表达式)语句;else语句;多个语句须放在beginend间case语句:多分支选择语句case(表达式)case1,case2分支:语句;default:语句;endcase,条件与循环语句,forever连续执行,常用于产生时钟信号如:timescale1ns/100psforever#5clk=clk;/产生100MHz的时钟while执行语句,直到某个条件不满足While(表达式)begin语句;end若开始即不满足条件,则不执行repeat连续执行语句n次repeat(表达式)begin语句;end在此表达式通常为常量表达式,条件与循环语句,forfor(表达式1;表达式2;表达式3)语句;例:for(i=0;i4;i=i+1)ai=bi;执行过程:(1)求解表达式1;(2)求解表达式2,若为真,则执行语句,转到(3);若为假,结束循环,转到(5);(3)若表达式2为真,执行语句后,求解表达式3;(4)转回(2)继续;(5)执行for语句后面的语句。,结构说明语句,initial仿真开始时对各变量初始化生成激励波形作为电路测试信号只执行一次程序模块中可有多个,并行执行alwaysalways(触发条件)begin语句;end若触发条件满足,则被执行,满足一次执行一次可有多个always块,并行执行,结构说明语句,function返回一个用于表达式的值调用:将函数作为表达式中的操作数实现word=getbyte(a),getbyte(b);规则:不能包含时间控制语句,不能启动任务,至少有一个输入,必须存在给与函数名同名变量赋值语句。,结构说明语句,task支持多种目的,可计算多个结果值调用:my_task(v,w,x,y,z);特点:可定义自己的仿真时间单位可以启动其他task和function,阻塞赋值与非阻塞赋值,非阻塞赋值如:b,&,|,等运算符=,=,assign等赋值语句always块,可综合的设计,不可综合的语法举例initial块forever块for,while,repeat,force,release,task,enable,disable一般不可综合(某些特定情况下for,while等可能可以综合)系统函数如$display等除法,求模运算,实数运算等复杂算术运算一般不可综合(若综合器有库可以引用,则可综合)#延时赋值语句一般综合时会被忽略,可综合的设计,case语句一般对应多选器分支要完全,default分支的使用赋值为“x”为无关项,综合结果最简洁避免出现latch生成组合逻辑的always块中,赋值表达式右边出现的信号都必须在敏感列表中列出异步状态机不能综合综合器只支持同步系统的设计,设计注意事项,注意区分同步复位和异步复位异步复位同步复位,设计注意事项,避免对时钟进行逻辑操作后作为触发信号不建议使用门控时钟和组合逻辑时钟,易产生毛刺,发生误动作,建议使用触发器的使能端,不增加资源。,设计注意事项,慎重对计数器进行译码可能由于竞争冒险产生毛刺。如果后级采用了同步电路,我们完全可以对此不予理会。如果对毛刺要求较高,推荐采用Gray编码(PLD)或one-hot编码(FPGA)的计数器,一般不要采用二进
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 减灾工作制度
- 专病工作制度
- 5五项工作制度
- 分管理工作制度
- 三创建工作制度
- 六个五工作制度
- 先锋岗工作制度
- 县商会工作制度
- 2026 年中职港口与航运管理(港口航运基础)试题及答案
- 维修电工安全操作
- 常见四肢骨折病人的护理
- 四型干部建设方案
- 蕉岭县幅地质图说明书
- 2023年上海奉贤区高三二模作文解析(质疑比相信更难) 上海市高三语文二模作文【范文批注+能力提升】
- 2023年江西环境工程职业学院高职单招(语文)试题库含答案解析
- 湘教版(2019)高中地理必修二知识点汇编(全一册)
- GA/T 2000.156-2016公安信息代码第156部分:常用证件代码
- 10KV开关柜二次原理图详解讲解课件
- 北师大数学六年级下册第一单元《圆柱与圆锥》单元整体解读课件
- 考研考博-英语-中国美术学院考试押题卷含答案详解4
- DLT5210.4-2018热工施工质量验收表格
评论
0/150
提交评论