verilog hdl语法基础

verilog hdl语法基础

ID:9886474

大小:640.01 KB

页数:51页

时间:2018-05-12

verilog hdl语法基础_第1页
verilog hdl语法基础_第2页
verilog hdl语法基础_第3页
verilog hdl语法基础_第4页
verilog hdl语法基础_第5页
资源描述:

《verilog hdl语法基础》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、VerilogHDL语法基础本章主要内容VerilogHDL语言的特点VerilogHDL语言的描述方式模块与端口注释常量,变量与逻辑值操作符操作数参数编译指令系统任务和函数程序实例3.1VerilogHDL的特点并行性:所谓的并行性就是说可以同时做几件事情。Verilog语言不会顾及代码顺序问题,几个代码块可以同时执行;而软件语言必须按顺序执行,上一句执行不成功,就不能执行下一句。时序性:Verilog语言可以用来描述过去的时间和相应发生的事件;而软件语言则做不到。互连:互连是硬件系统中的一个基本概念,Verilog语言中的wire变量可以很好地表达这样

2、的功能;而软件语言并没有这样的描述。3.2VerilogHDL的描述方式VerilogHDL采用三种描述方式来进行设计:数据流描述:采用assign语句,连续赋值,数据实时变化,赋值对象一般定义为wire型。行为级描述:使用always或者initial语句,过程赋值,赋值对象一般定义为reg型,不一定会形成寄存器。结构化模型:通过实例化已有的功能模块来建模。在一个设计中我们往往会混合使用这三种描述方式。VerilogHDL是对大小写敏感的语言,同样的词汇,大写和小写是不同的符号。图3–1典型的Verilog设计描述示意图3.3模块和端口模块是Verilo

3、g的基本描述单元,可大可小,大到一个复杂的系统,小到一些基本的逻辑门单元,主要用来描述某个设计的功能或结构及其与其他功能模块通信的外部端口。对于模块而言,需要有一个模块名称来标示模块,在端口列表的括号后面一定要以“;”结束。模块一般都有端口列表,端口与端口之间用“,”隔开。但是仿真语言没有端口列表,因为仿真是一个封闭的系统,端口已经实例化在内部。端口声明部分需要声明端口的方向和位宽。module模块名称(端口列表);//端口定义声明;input,output,inout//内部变量及参数声明wire,reg,functioion,task,paramete

4、r,define,etc//模块功能实现数据流描述:assign行为级描述:initial,always结构化描述:module例化其他用户原语endmodule例3–1端口声明//PortDeclarationinput[4:0]a;//信号名为a的5输入信号inoutb;//双向信号boutput[6:0]c;//信号名为c的7输出总线信号有些设计会把端口的声明部分和端口列表写在一起,在端口中可以对每个信号进行注释。例3–2VerilogHDL2001端口声明modulecounter(inputclk,//全局时钟信号inputreset_l,//全

5、局复位信号output[7:0]cnt//八位数据总线);模块内部变量声明中,wire型的线网是不具备数据存取功能的,一般而言,input的缺省定义就是wire型,output信号可以是wire型,也可以reg型。定义为wire型的线网是不能够在always语句中被赋值的,只能被连续赋值。而reg型的则可以存取最后一次赋给它的值,定义为reg型的线网只能在always和initial语句中被赋值,不能被连续赋值。注意:所有的关键字都必须小写。定义为reg型的线网不一定会生成寄存器。尽管信号和内部变量定义声明只要出现在被调用的语句之前就行,可是代码风格一般要

6、求在执行语句之前就定义好,这样可以提高代码的可读性。在声明后,便是功能执行语句,功能执行语句包括always语句、initial语句、assign语句、task、function、模块例化等等。可以混合描述,没有先后顺序,但是要注意的是initial语句只能用于仿真程序中,不能生成实际的电路。任何一个模块都要以“endmodule”结束。3.4注释VerilogHDL提供了两种注释的方式:一种以“//”开始,注释的是一行中的余下部分。例3–3以“//”开始的注释assigna=b?c:d;//输出为a的两输入的选择器例3–4以/*……*/表示的注释assi

7、gna=b?c:d;//注释下面的功能语句/*always@(*)beginif(b)a=c;elsea=d;end*/3.5常量、变量与逻辑值常量就是不变的数值,比如说4’d8,表示的是一个4位宽的十进制整数8。在Verilog中,有三种不同类型的常量:整数型、实数型以及字符串型。整数型常量可以直接使用十进制的数字表示。基数表示法的格式如下:长度’+数制简写+数字当设定的位宽比实际数字的位宽少,则自动截去左边超出的位数,反之则在左边不够的位置补足0。如果长度不显示,那么数字的位宽则取决于本身的长度。如果遇到的是x或者z时,如4’hx,位宽大于实际数字的位

8、宽,这个时候在左边不是补0,而是补x变量分为线网型和寄存器型两种。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。