4_verilog_hdl语法讲解.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文档。上传文档
查看更多
通用定义 module module_name port_list ; (模块名称(端口列表)) port declarations; (端口声明:输入,输出) … variable declaration; (变量声明) … description of behavior (逻辑功能描述) endmodule 空白符包括:空格(\b)、制表符tab(\t)、换行和换页。除了字符串中的空白符,Verilog中的空白符仅仅用于分隔标识符,在编译阶段被忽略。空白符主要使代码错落有致,阅读起来更方便。 // 单行注释 /* 单行注释的另外一种方式 */ /* 多行注释 */ 例子:// 我是老师(√) /*我是老师*/( √ ) /*我是老师, 你们是学生*/ ( √ ) /*这是//合法的注释*/ ( √ ) /*这是/*不合法的*/注释*/(×) ◆ 整数 ◆ 实数 ◆ 字符串 整数按如下方式书写: +/- 即 +/- size 为对应二进制数的宽度;base为进制;value是基于进制的数字序列。 进制有如下4种表示形式: ◆ 二进制(b或B) ◆ 十进制(d或D或缺省) ◆ 十六进制(h或H) ◆ 八进制(o或O) 字符串是双引号内的字符序列。 字符串不能分成多行书写。例如: INTERNAL ERROR“ “This is an example for Verilog HDL” 字符串的作用主要是用于仿真时,显示一些相关的信息,或者指定显示的格式。 字符串变量属于reg型变量,其宽度为字符串中字符的个数乘以8,比如: reg[8*12:1] stringvar; initial begin stringvar “Hell0 world” ; end Verilog有下面四种基本的逻辑状态。 ◆ 0:低电平、逻辑0或逻辑非 ◆ 1:高电平、逻辑1或“真” ◆ x或X:不确定或未知的逻辑状态 ◆ z或Z:高阻态 Verilog中的所有数据类型都在上述4类逻辑状态中取值,其中x和z都不区分大小写,也就是说,值0x1z与值0X1Z是等同的。 Nets(网络连线): 由模块或门驱动的连线。 驱动端信号的改变会立刻 传递到输出的连线上。 例如:右图上,selb的改 变,会自动地立刻影响或 门的输出。 算术操作符有: +(一元加和二元加) -(一元减和二元减) *(乘) /(除) %(取模) 注意工程上常数乘/除法、变量乘/除法的一些处理方式。 逻辑操作符有: 逻辑与 || 逻辑或 ! 逻辑非 这些操作符在逻辑值0或1上操作。逻辑操作的结构为0或1。 例如, 假定: Crd b0; //0为假 Dgs b1; //1为真 那么: Crd Dgs 结果为0 假 Crd || Dgs 结果为1 真 ! Dgs 结果为0 假 对于向量操作, 非0向量作为1处理。例如,假定: A _ B u s b0110; B _ B u s b0100; 那么: A _ B u s || B _ B u s 结果为1 A _ B u s B _ B u s 结果为1 并且: ! A _ B u s 与! B _ B u s的结果相同。结果为0。 按位操作符有: ~(一元非) (二元与) |(二元或) ^(二元异或) ~^, ^~(二元异或非) 例如,假定, A b0110; B b0100; 那么: A | B 结果为0 1 1 0 A B 结果为0 1 0 0 关系操作符有: (大于) (小于) (不小于) (不大于) 关系操作符的结果为真( 1)或假( 0) 相等关系操作符有: (逻辑相等) ! (逻辑不等) (全等) ! (非全等) 如果比较结果为假,则结果为0;否则结果为1。在全等比较中,值x和z严格按位比较。也就是说,不进行解释,并且结果一定可知。 移位操作符有: 左移 右移 移位操作符左侧 操作数移动 右侧操作数表示的次数,它是一个逻辑移位。空闲位添0补位 与 ~ 与非 | 或 ~| 或非 ^ 异或 ^~,~^ 同或 ?: 三目运算符,其定义方式如下: signal condition?true_expression:false_expression; 即:信号 条件?表达式1:表达式2; 当条件成立时,信号取表达式1的值,反之取表达式2的值。 格式: reg [n-1:0] 存储器名[m-1:0]; 或 reg [n-1:0] 存储器名[m:1]; reg [n-1:0] :定义了存储器中每一个存储单元的大小。 [m-1:0]:定义了该存储器

文档评论(0)

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

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

1亿VIP精品文档

相关文档