VerilogHDL硬件描述-6.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Verilog HDL硬件描述语言 Hardware Description Language(HDL) `define 和`undef 宏定义 `define:用一个指定的标识符(即名字)来代表一个字符串,它的一般形式为: `define 标识符(宏名) 字符串(宏内容) 这种方法使用户能以一个简单的名字代替一个长的字符串,也可以用一个有含义的名字来代替没有含义的数字和符号,因此把这个标识符(名字)称为“宏名”,在编译预处理时将宏名替换成字符串的过程称为“宏展开”。 `define WORDSIZE 8 reg[1:`WORDSIZE] data; //这相当于定义 reg[1:8] data; 注意:宏定义不是Verilog HDL语句,不必在行末加分号。如果加了分号会连分号一起进行置换。 `define 和`undef `undef 指令取消前面定义的宏。 例如: `define WORD 16 //建立一个文本宏替代。 . . . wire [ `WORD : 1] Bus; . . . `undef WORD // 在`undef编译指令后, WORD的宏定义不再有效. 条件编译命令 `ifdef、`else 和`endif 一般情况下,Verilog HDL源程序中所有的行都将参加编译。但是有时希望对其中的一部分内容只有在满足条件才进行编译,也就是对一部分内容指定编译的条件,这就是“条件编译”。有时,希望当满足条件时对一组语句进行编译,而当条件不满足是则编译另一部分。 例如: `ifdef WINDOWS parameter WORD_SIZE = 16 `else parameter WORD_SIZE = 32 `endif 在编译过程中,如果已定义了名字为WINDOWS的文本宏,就选择第一种参数声明,否则选择第二种参数说明。 `else 程序指令对于`ifdef 指令是可选的。 “文件包含”处理`include “文件包含”处理是一个源文件可以将另外一个源文件的全部内容包含进来,即将另外的文件包含到本文件之中。一般形式为: `include “文件名” “文件包含”处理`include 共享任务和函数:在不同模块间共享任务和函数的方法是在文本文件中编写共享任务和函数的定义,然后使用`include编译指令在需要的模块中包含这些定义。 时间尺度 `timescale `timescale命令用来说明跟在该命令后的模块的时间单位和时间精度。 命令的格式如下: `timescale 时间单位/时间精度 时间单位参量用来定义模块中仿真时间和延迟时间的基准单位。 时间精度参量用来声明该模块的仿真时间的精确程度。 时间单位(time_unit) 和时间精度(time_precision) 由值1、10、和100以及单位s、ms、us、ns、ps和fs组成。 例如: `timescale 10ns/1ns 在这个命令之后,模块中所有的时间值都表示是10ns的整数倍。这是因为在`timescale命令中,定义了时间单位是10ns。模块中的延迟时间可表达为带一位小数的实型数,因为 `timescale命令定义时间精度为1ns. 时间尺度 `timescale 在模块test中,所有的时间值应为10ns的整数倍,且以1ns为时间精度。 仿真时刻值按照以下的步骤来计算: 根据时间精度,参数d值被从1.55取整为1.6。 因为时间单位是10ns,时间精度是1ns,所以延迟时间#d作为时间单位的整数倍为16ns。 EDA工具预定在仿真时刻为16ns的时候给寄存器set赋值0(即语句 #d set=0;执行时刻),在仿真时刻为32ns的时候给寄存器set赋值1(即语句 #d set=1;执行时刻)。 有限状态机是由寄存器组和组合逻辑构成的硬件时序电路。 有限状态机的状态可以在同一时钟跳变沿的情况下从一个状态转向另一个状态。 究竟转向哪一状态还是留在原状态不但取决于各个输入值,还取决于当前所在状态。 有限状态机分为Mealy型有限状态机,和Moore型有限状态机。 有限状态机状态编码state定义 定义STATE常量 状态较少情况下(比如4个一下),用onehot方式表示. 比如: STATE0, STATE1, STATE2, STATE3分别用 0001 , 0010 , 0

文档评论(0)

junjun37473 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档