网站大量收购独家精品文档,联系QQ:2885784924

第2讲VerilogHDL语言基础.pptVIP

  1. 1、本文档共55页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第2讲VerilogHDL语言基础

第 二讲 Verilog HDL语言基础 ;语言基本词法;标识符;合法和非法标识符;特别的标识符;四种基本逻辑值;常量;整数和实常数;字符串;主要数据类型;线网(Net)类型;线网类型信号的主要种类;标量和向量线网;寄存器类型的主要种类;reg寄存器类型;存储器类型;integer寄存器类型;time寄存器类型;real寄存器类型; 如何选择正确的数据类型? 输入口(input)可以由寄存器或网络连接驱动,但它本身只能驱动网络连接。 输出口 (output)可以由寄存器或网络连接驱动,但它本身只能驱动网络连接。 输入/输出口(inout)只可以由网络连接驱动,但它本身只能驱动网络连接。 如果信号变量是在过程块 (initial块 或 always块)中被赋值的,必须把它声明为寄存器类型变量 ;举例说明数据类型的选择 module top; wire y; reg a, b; DUT u1(y,a,b); initial begin a = 0; b = 0; #10 a =1; …. end endmodule ; 选择数据类型时常犯的错误 在过程块中对变量赋值时,忘了把它定义为寄存器 类型(reg)或已把它定义为连接类型了(wire) 把实例的输出连接出去时,把它定义为寄存器类型了 把模块的输入信号定义为寄存器类型了。 这是经常犯的三个错误!!!;参数(parameters);参数值的改写方法1;参数值的改写方法2;常用系统任务和函数;$display和$monitor;常用编译指令;`define 编译指令;`include 编译指令; `timescale编译指令;`uselib编译指令;条件编译命令`ifdef、`else、`endif? 一般情况下,Verilog HDL源程序中所有的行都将参加编译。但是有时希望对其中的一部分内容只有在满足条件才进行编译,也就是对一部分内容指定编译的条件,这就是“条件编译”。有时,希望当满足条件时对一组语句进行编译,而当条件不满足是则编译另一部分。 条件编译命令有以下几种形式:? 1)?????`ifdef 宏名 (标识符) 程序段1 `else 程序段2 `endif 它的作用是当宏名已经被定义过(用`define命令定义),则对程序段1进行编译,程序段2将被忽略;否则编译程序段2,程序段1被忽略。 ;其中`else部分可以没有,即: 2)??`ifdef 宏名 (标识符) 程序段1 `endif 这里的 “宏名” 是一个Verilog HDL的标识符,“程序段”可以是Verilog HDL语句组,也可以是命令行。这些命令可以出现在源程序的任何地方。 注意:被忽略掉不进行编译的程序段部分也要符合Verilog HDL程序的语法规则。 通常在Verilog HDL程序中用到`ifdef、`else、`endif编译命令的情况有以下几种: ·???????? 选择一个模块的不同代表部分。 ·???????? 选择不同的时序或结构信息。 ·???????? 对不同的EDA工具,选择不同的激励。 ;表达式与运算符;运算符;在Verilog HDL语言中运算符所带的操作数是不同的,按其所带操作数的个数运算符可分为三种: 1)?单目运算符(unary operator):可以带一个操作数,操作数放在运算符的右边。 2)??二目运算符(binary operator):可以带二个操作数,操作数放在运算符的两边。 3)?三目运算符(ternary operator):可以带三个操作,这三个操作数用三目运算符分隔开。见下例: clock = ~clock; // ~是一个单目取反运算符, clock是操作数。 c = a | b; // 是一个二目按位或运算符, a 和 b是操作数。 r = s ? t : u; // ?: 是一个三目条件运算符, s,t,u是操作数。;运算符优先级;算术运算符;位运算符;缩位(归约)运算符;逻辑运算符;关系运算符;相等与全等运算符;逻辑移位运算符;连接与复制运算符;条件运算符;在Verilog HDL中,所有的关键词是事先定义好的确认符,用来组织语言结构。关键词是用小写字母定义的,因此在编写原程序时要注意关键词的书写,以避免出错。下面是Verilog HDL中使用的关键词(请参阅附录:Verilog语言参考手册):;always, and, assign,begin,buf,bufif0,bufif1,case,casex,casez,cmos,deassign,default,defparam,di

文档评论(0)

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

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

1亿VIP精品文档

相关文档