ImageVerifierCode 换一换
格式:PPT , 页数:42 ,大小:116.50KB ,
文档编号:4281171      下载积分:25 文币
快捷下载
登录下载
邮箱/手机:
温馨提示:
系统将以此处填写的邮箱或者手机号生成账号和密码,方便再次下载。 如填写123,账号和密码都是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

优惠套餐
 

温馨提示:若手机下载失败,请复制以下地址【https://www.163wenku.com/d-4281171.html】到电脑浏览器->登陆(账号密码均为手机号或邮箱;不要扫码登陆)->重新下载(不再收费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  
下载须知

1: 试题类文档的标题没说有答案,则无答案;主观题也可能无答案。PPT的音视频可能无法播放。 请谨慎下单,一旦售出,概不退换。
2: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
3: 本文为用户(晟晟文业)主动上传,所有收益归该用户。163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

1,本文(verilog语言及程序设计课件.ppt)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!

verilog语言及程序设计课件.ppt

1、Verilog语言及程序设计语言及程序设计四川华迪信息技术有限公司四川华迪信息技术有限公司Version1.1Version1.1阻塞语句在阻塞语句在verilog中的应用中的应用o 阻塞语句,顾名思义,即本条语句具有影响下一条语句的作用,如果该条语句没有执行完,那么下条语句不可能进入执行状态的o 阻塞语句最能体现verilog HDL和C语言之间的血缘关系,比如,在时钟沿触发的always进程里,若先执行b=c,再执行a=b,那么本质上,在一个时钟沿触发里面,a=c成立,即是说,不要b变量,直接在进程里赋值a=c,结果是一样的。这和c语言中b=c,a=b性质相同 非阻塞语句在非阻塞语句在ve

2、rilog中的应用中的应用o 非阻塞语句,顾名思义,本条语句不影响下一条语句的作用,更能体现硬件电路的特点。这正是非阻塞语句广泛应用于时序逻辑电路的原因。o 如果在一个时钟沿触发的always进程里面,b=c,a=b那么就不可能直接在进程里面赋值a=c.因为c的值要经过两个时钟延迟才传到a里面,如果c为1,b为0,a为1的话,那么在在非阻塞语句的进程里面,o 第一个时钟沿到来,a为0,第二个时钟沿到来,a为1o(注:在一次触发进程里,无论是阻塞和非阻塞语句,每条语句只能执行一次)阻塞语句与非阻塞语句使用注意事项o 阻塞语句是顺序执行的,而非阻塞语句是同时执行的o 大体原则:阻塞语句运用于组合逻

3、辑电路设计,非阻塞语句运用于时序逻辑电路设计o 不要在同一个always块里面混合使用“阻塞赋值”和“非阻塞赋值”Verilog的特点l Verilog易学易用(与C语言相似),功能强大,使用 广泛。l 可以在不同层次描述数字系统 开关级描述 寄存器传输级描述 门级描述l 基本设计单元是“模块模块”(blockblock)包括:接口描述 逻辑功能描述Verilog HDL程序基本结构o Verilog的基本设计单元是基本设计单元是“模块模块”(BLOCKBLOCK)o 模块由两部分组成:一部分描述接口,另一部分描述逻辑功能。o 按照模块接口的描述,一个模块可以在另一个模块中使用;逻辑功能的描述

4、可以使用连续赋值语句(描述数据流行为)、过程结构(时序行为)、开关级原语、门级原语和用户定义的原语等方式。模块的基本结构Module();端口说明(input,out,inout)参数定义 数据类型定义 连续赋值语句(assign)过程块(initial和always)行为描述语句 低层模块实例 任务和函数 延时说明块endmodule模块的基本结构说明o 是模块惟一的标识符是模块惟一的标识符;是由模块的输入、输出和双向端口组成的端口列表,这些列表用来与其他模块进行连接;o 数据类型定义部分用来指定模块内所用的数据对象为寄存器型、存储器型或连线型;o 过程块包括initial过程块和alway

5、s过程块两种,行为描述语句只能出现在这两种过程块中;o 延时说明块用来对模块各个输入和输出端口间的路径延时进行说明。模块调用o 调用模块实例的一般格式调用模块实例的一般格式:();o Verilog HDL程序是由模块组成的,每个模块的内容都包含在“Module”和“endmodule”之间。o 每个模块都要进行端口定义,说明输入、输出端口。模块的描述方式o Verilog HDL模块代表硬件上的逻辑实体,其范围可以从简单的门到整个电路系统.o 模块可以根据所采用的不同描述方式而分为行为描述和结构描述两类,也可采用两种方式的组合。Verilog 语言要素o 标识符(identifier)用来表

6、示各种变量、参数或构件的名称,可以是任意一组字母、数字、$符号和_(下划线)符号的组合,但第一个字符必须是字母或下划线,区分大小写o 转义标识符 可以在一条标识符中包含任何可打印字符。转义标识符以“”(反斜杠)符号开头,以空白结尾(空白可以是一个空格、一个制表符或换行符)Verilog 语言要素o 关键字 Verilog HDL定义了一系列保留字(关键字)保留字(关键字)。在编写Verilog HDL程序时,变量的定义不要与变量的定义不要与关键字冲突。关键字冲突。注意只有小写的关键字才是保留字。o 注释 在 Verilog HDL里有两种形式的注释:/是单行注释/*/是多行注释格式o Veri

7、log HDL 区分大小写,即大小写的标识符是不同的。o 源程序书写格式自由,可跨越多行编写,也可在一行内编写。系统任务和函数o 以字符开始的标识符表示系统任务或系统函数。任务提供了一种封装行为的机制。这种机制$可以在设计的不同部分被调用。任务可以返回0个或多个值。函数除只能返回一个值以外与任务相同。o 函数在0时刻执行,即不允许延迟,而任务可以带有延迟。常见系统任务和函数o 显示任务$display,$write,$strobe,$monitor,$monitoron,$monitoroff o 模拟控制任务$finish,$stopo 模拟时间函数$time,$stime,$realtim

8、e 常用任务和函数o 概率分布函数$ramdom(seed)o 其它$setup,$hold,$setuphold,$width,$period,$skew,$recovery,$nochange,$rtoi,$itor,$realtobits,$bitstoreal,$printtimescale,$timeformat等 编译指令编译指令o 以以(反引号)开始的某些标识符是编译器反引号)开始的某些标识符是编译器指令指令。o 在Verilog 语言编译时,特定的编译器指令在整个编译过程中有效(编译过程可跨越多个文件),直到遇到其他不同的编译程序指令。一些编译指令一些编译指令 o define

9、,undef o ifdef,else,endif o default_nettype o include o resetallo timescale值集合o Verilog HDL有四种基本的值四种基本的值 0:逻辑0或“假”;1:逻辑1或“真”;x:未知;z:高阻。说明o 在门的输入或一个表达式中为“z”的值通常解释成“x”,此外x和z是不区分大小写的。o 下划线符号()可以随意用在整数或实数中,它们就数量本身没有意义,仅用以提高可读性。唯一的限制是下划线不能用做首字符。常量o 整型 十进制数格式,如100 基数表示法,如4b1101 o 实数型 十进制计数法 科学计数法o 字符串型 双引

10、号内的字符序列,不能分成多行书写 参数 参数是一个常量。经常用于定义时延和变量的宽度。使用参数说明的参数只被赋值一次。参数说明形式如下(见P233)参数值也可以在编译时被改变。改变参数值可以使用参数定义语句或通过在模块初始化语句中定义参数值。数据类型数据类型 o Verilog HDL有两大类数据类型o 线网表示结构化元件间的物理连线有wire,tri,wor,trior,wand,triand,trireg,tri1,tri0,supply0,supply1等类型。o 寄存器表示一个抽象的数据存储单元 有reg,integer,time,real,realtime 等类型。表达式中的运算符(

11、1)算术运算符(,/,%)(2)位运算符(,&,|,)(3)逻辑运算符(&,|,!,)(4)关系运算符(,=,=)(5)相等关系运算符(=,!=,=,!=)(6)移位运算符()(7)连接和复制运算(|)(8)归约运算符(&,|,&,|,)(9)条件运算符(?:)(10)优先级别(见P237表11.6)内置基本门内置基本门(1)多输入门and,nand,or,nor,xor,xnor(2)多输出门buf,not(3)三态门bufif0,bufif1,notif0,notif1(4)上拉、下拉电阻pullup,pulldown(5)MOS开关cmos,nmos,pmos,rcmos,rnmos,r

12、pmos(6)双向开关tran,tranif0,tranif1,rtran,rtranif0,rtranif1连续赋值语句o 连续赋值语句用于数据流行为建模数据流行为建模,适用于组合逻辑电路,主要用于对线网wire类型变量的赋值。o 语法格式 assign 驱动强度#时延值 线网标识符表达式 连续赋值语句o 连续赋值语句没有保持的概念,只要右端表达式中操作数的值发生变化,表达式即被重新计算;如果结果值有变化,新结果就赋给左边的线网。o 连续赋值语句之间是并发的,与书写的先后顺序无关 行为建模语句o 行为建模行为建模有以下内容:过程结构时序控制语句块过程性赋值 条件语句循环语句过程结构过程结构

13、o 以下两种语句是为一个设计的行为建模的主要机制initial语句always语句o 一个模块中可以包含任意多个initial或always语句o 所有的initial和always语句在0时刻开始并行执行时序控制时序控制 o 时延控制时延控制表示在语句执行前的“等待时延”。使用格式有两种:时延值(最小时延:典型时延:最大时延)例:3 c a;事件控制o 边沿触发事件控制主要有正边沿(posedge)和负边沿(negedge)两种例:always(posedge clk)count=count+1;o 电平敏感事件控制 进程语句或进程中的过程语句一直延迟到列出的控制信号有变化才执行例:alwa

14、ys(a or b)c=ab;语句块语句块 o 顺序语句块格式:begin 标识符 语句1;语句n;end 其中标识符是可选项语句块中的语句按给定次序顺序执行o 并行语句块 格式:fork 标识符语句1;语句n;join 其中标识符是可选项语句块中的语句并行执行过程性赋值过程性赋值 o 它是在initial语句或always语句内的赋值,只能对寄存器数据类型的变量赋值 o 阻塞性赋值()阻塞性赋值是指立即赋值 o 非阻塞性赋值()非阻塞性赋值是在语句块结束后,块内的非阻塞性赋值语句同时进行赋值 if条件语句条件语句 oif if条件语句条件语句 3种格式 if(表达式)语句;if(表达式)语句

15、1;else 语句2;if(表达式1)语句1;else if(表达式2)语句2;else if(表达式n)语句n;else 语句n1;Case条件语句o语法格式:case(控制表达式)分支表达式1:语句1;分支表达式2:语句2;分支表达式n:语句n;default:语句n1;Endcaseocase可以换为casex或casez,这三者使用形式上一样,但功能上有所差别。case、casez和casex的差别 case01xz0100010100 x0010z0001case、casez和casex的差别casez01xz0100110101x0011z1111case、casez和casex的

16、差别Casex01xz0101110111x1111z1111case、casez和casex的差别o 从表中可以看出三者差别如下:o case是将所有逻辑值进行比较;o casez则将高阻情况z情况忽略;o casex则进一步将高阻z和未定x均忽略不计。循环语句循环语句 o Forever 语法格式语法格式:forever 语句 功能:将语句永远执行下去,主要用于产生时钟变量等o Repeat 语法格式语法格式:repeat(循环次数表达式)语句 功能:执行指定循环次数循环语句循环语句oWhile语法格式语法格式:while (条件表达式)语句功能:执行过程赋值语句直到指定的条件为假 oFor语法格式语法格式:for(循环下标初值;循环条件;循环下标增量)过程语句 功能:按照指定的次数重复执行过程赋值语句若干次 华迪电子实训中心 2006.10 谢谢 谢!谢!

侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|