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

03Verilog_基本语法概论.ppt

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

Verilog的数据类型 Verilog HDL中共有19种数据类型; 数据类型是用来表示数字电路硬件中的数据存储和传送的元素。 reg、wire、integer、parameter large、medium、scalared、time、small、tri、tri0、tri1、triand、trior、trireg、vectored、wand、wor * Verilog采用的四值逻辑系统 ’0’, Low, False, Logic Low, Ground,VSS, Negative Assertion ‘1’, High, True, Logic High, Power, VDD, VCC, Positive Assertion ’X’ Unknown: Occurs at Logical Which Cannot be Resolved Conflict HiZ, High Impedance, Tri- Stated, Disabled Driver (Unknown) * 主要数据类型 Verilog主要有三类(class)数据类型: net (线网) : 表示器件之间的物理连接 register (寄存器) :表示抽象存储元件 parameters(参数) : 运行时的常数(run-time constants) * 常量(constant) 在模块工作过程中,保持不变的量(信号)称为常量,主要由数字和参数(parameter)组成。 * 数字的表示方法 整数包括: 二进制整数(b/B) 8’八进制整数(o/O) 3’o221 十进制整数(d/D) 10’d1000 十六进制整数(h/H) 16’hEB90 数字表示方式: 位宽’进制数字 ’进制数字 数字 * 不定态和高阻态 Verilog中不定态用x来表示,x根据不同的进制数,分别可以表示4bits/3bits/1bit。 Verilog中高阻态用z/?来表示,根据不同的进制数,分别可表示4bits/3bits/1bit。 12’dz、12’d?、8’h4x、4’b10x0 自己编写程序时要尽量避免不定态的出现。 高阻态一般用在双向总线接口中。 * 负数 Verilog中负数的表示方法是在位宽表达式前加一个减号即可。 减号必须写在数字表达式的最前面。 -8’d72 //正确表示方法 8’d-5 //错误表示方法 * 数字分隔符 下划线(_)可以用来分隔数的表达,以提高程序的可读性,但不可以用在位宽和进制处,只能用在具体的数字之间。 16’b1010_1101_1011_0000 //合法表示 8’b_1001_0010 //非法表示 * 参数型(parameter) parameter定义一个标识符来代表一个常量,称为符号常量,即标识符形式的常量。 parameter定义的常量可以提高程序的可读性和移植性。 格式: parameter 参数名1=表达式,参数名2=表达式,…,参数名n=表达式; 参数型常量通常用来定义延迟时间和信号位宽,在编写状态机时也用来作为状态的定义。 * 参数型常量 参数型常量举例: parameter addr_width=16; parameter data_size=8; parameter delay_unit=10; parameter IDLE=3’b000; parameter STATE1=3’b101; 编程习惯,通常parameter定义的常量用大写字母来表示,以示区别。 * 参数的改变 在模块或实体引用时,可以通过参数传递的方法来改变在被引用模块中已经定义的参数。 可在编写一些具有类似结构的模块时,定义适当的参数,而在不同需求的模块引用时通过参数改变模块的具体参数,而不必每种都编写具体的模块。 一些foundry(FPGA)提供的库采用了参数化的方法。 注意:某些综合器中是不支持这种方法的。 * 参数改变实例一 module decoder(A,F) parameter width=1,polarity=1; …… endmodule * 参数改变实例一 module top wire[3:0] A4; wire[4:0] A5; wire[15:0] F16; wire[31:0] F32; decoder #(4,0) U0(A4,F16); decoder #(5) U1(A5,F32); endmodule * 参数改变实例二 module top wire[3:0] A4; wire[15:0] F16; decoder U0(A4,F16); defparam U0.

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档