verilog语言及程序设计.ppt

  1. 1、本文档共42页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

时序控制时延控制表示在语句执行前的“等待时延”。使用格式有两种:#时延值#(最小时延:典型时延:最大时延)例:#3c=a;hwadee**Verilog语言及程序设计四川华迪信息技术有限公司Version1.1阻塞语句在verilog中的应用阻塞语句,顾名思义,即本条语句具有影响下一条语句的作用,如果该条语句没有执行完,那么下条语句不可能进入执行状态的阻塞语句最能体现verilogHDL和C语言之间的血缘关系,比如,在时钟沿触发的always进程里,若先执行b=c,再执行a=b,那么本质上,在一个时钟沿触发里面,a=c成立,即是说,不要b变量,直接在进程里赋值a=c,结果是一样的。这和c语言中b=c,a=b性质相同非阻塞语句在verilog中的应用非阻塞语句,顾名思义,本条语句不影响下一条语句的作用,更能体现硬件电路的特点。这正是非阻塞语句广泛应用于时序逻辑电路的原因。如果在一个时钟沿触发的always进程里面,b=c,a=b那么就不可能直接在进程里面赋值a=c.因为c的值要经过两个时钟延迟才传到a里面,如果c为1,b为0,a为1的话,那么在在非阻塞语句的进程里面,第一个时钟沿到来,a为0,第二个时钟沿到来,a为1(注:在一次触发进程里,无论是阻塞和非阻塞语句,每条语句只能执行一次)

阻塞语句与非阻塞语句使用注意事项阻塞语句是顺序执行的,而非阻塞语句是同时执行的大体原则:阻塞语句运用于组合逻辑电路设计,非阻塞语句运用于时序逻辑电路设计不要在同一个always块里面混合使用“阻塞赋值”和“非阻塞赋值”Verilog的特点Verilog易学易用(与C语言相似),功能强大,使用广泛。可以在不同层次描述数字系统开关级描述寄存器传输级描述门级描述基本设计单元是“模块”(block)包括:接口描述逻辑功能描述VerilogHDL程序基本结构Verilog的基本设计单元是“模块”(BLOCK)模块由两部分组成:一部分描述接口,另一部分描述逻辑功能。按照模块接口的描述,一个模块可以在另一个模块中使用;逻辑功能的描述可以使用连续赋值语句(描述数据流行为)、过程结构(时序行为)、开关级原语、门级原语和用户定义的原语等方式。模块的基本结构Module模块名(端口列表);端口说明(input,out,inout)参数定义可选数据类型定义连续赋值语句(assign)过程块(initial和always)行为描述语句低层模块实例任务和函数延时说明块endmodule模块的基本结构说明模块名是模块惟一的标识符;端口列表是由模块的输入、输出和双向端口组成的端口列表,这些列表用来与其他模块进行连接;数据类型定义部分用来指定模块内所用的数据对象为寄存器型、存储器型或连线型;过程块包括initial过程块和always过程块两种,行为描述语句只能出现在这两种过程块中;延时说明块用来对模块各个输入和输出端口间的路径延时进行说明。模块调用调用模块实例的一般格式:模块名参数列表实例名(端口列表);VerilogHDL程序是由模块组成的,每个模块的内容都包含在“Module”和“endmodule”之间。每个模块都要进行端口定义,说明输入、输出端口。模块的描述方式VerilogHDL模块代表硬件上的逻辑实体,其范围可以从简单的门到整个电路系统.模块可以根据所采用的不同描述方式而分为行为描述和结构描述两类,也可采用两种方式的组合。Verilog语言要素标识符(identifier)用来表示各种变量、参数或构件的名称,可以是任意一组字母、数字、$符号和_(下划线)符号的组合,但第一个字符必须是字母或下划线,区分大小写转义标识符可以在一条标识符中包含任何可打印字符。转义标识符以“\”(反斜杠)符号开头,以空白结尾(空白可以是一个空格、一个制表符或换行符)Verilog语言要素关键字VerilogHDL定义了一系列保留字(关键字)。在编写VerilogHDL程序时,变量的定义不要与关键字冲突。注意只有小写的关键字才是保留字。注释在VerilogHDL里有两种形式的注释://是单行注释/**/是多行注释格式VerilogHDL区分大小写,即大小写的标识符是不同的。源程序书写格式自由,可跨越多

文档评论(0)

zhhg001hkdl + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档