【2017年整理】VerilogHDL基本语法.ppt

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

Verilog HDL 基本语法; 规定了文本布局、命名和注释的约定,以提高源代码的可读性和可维护性。 每个Verilog HDL源文件中只准编写一个顶层模块,也不能把一个顶层模块分成几部分写在几个源文件中。 源文件名字应与文件内容有关,最好与顶层模块同名!源文件名字的第一个字符必须是字母或下划线,不能是数字或$符号! 每行只写一个声明语句或说明。 源代码用层层缩进的格式来写。;定义变量名的大小写应自始至终保持一致(如变量名第一个字母均大写)。 变量名应该有意义,而且含有一定的有关信息。局部变量名(如循环变量)应简单扼要。 通过注释对源代码做必要的说明,尤其对接口(如模块参数、端口、任务、函数变量)做必要的注释很重要。;常量尽可能多地使用参数定义和宏定义,而不要在语句中直接使用字母、数字和字符串。 参数定义(用一个标识符来代表一个常量??的格式: parameter 参数名1=表达式,参数名2=表达式,……; 宏定义(用一个简单的宏名来代替一个复杂的表达式)的格式: ’define 标志符(即宏名)字符串(即宏内容);常量;常量;17 //位宽, 基数符号不写会采用default值 (32bit十进制) 8’d32 //8-bit十进制值为32 8’h1A 8’o37 8’b0001_1100 32’bx // ”x”表unknown 4’b0??? // ”?”表示高阻;常量;常量;变量;变量;wire型变量 它是最常用的nets型变量,常用来表示以assign语句赋值的组合逻辑信号。 模块中的输入/输出信号类型缺省为wire型。 可用做任何方程式的输入,或“assign”语句和实例元件的输出。;wire 数据名1,数据名2, ……,数据名n;;变量;变量;reg型变量 定义——在过程块中被赋值的信号,往往代表触发器,但不一定就是触发器(也可以是组合逻辑信号)!;reg[n-1:0] 数据名1,数据名2, ……,数据名m; 或 reg[n:1] 数据名1,数据名2, ……,数据名m;; 用reg型变量生成组合逻辑举例: module rw1( a, b, out1, out2 ) ; input a, b; output out1, out2; reg out1; wire out2; assign out2 = a ; always @(b) out1 = ~b; endmodule;用reg型变量生成触发器举例: module rw2( clk, d, out1, out2 ); input clk, d; output out1, out2; reg out1; wire out2; assign out2 = d ~out1 ; always @(posedge clk) begin out1 = d ; end endmodule ;变量;变量;变量;变量;关键字;关键词;关键词;特殊字符;标示符;标示符;标示符;运算符;进行整数除法运算时,结果值略去小数部分,只取整数部分! %称为求模(或求余)运算符,要求%两侧均为整型数据; 求模运算结果值的符号位取第一个操作数的符号位! [例] -11%3 结果为-2 进行算术运算时,若某操作数为不定值x,则整个结果也为x。 ;运算符;运算符;==;左移会扩充位数!;运算符;;语句;语句; 非阻塞赋值方式 always @(posedge clk) begin b = a ; c = b; end;阻塞赋值方式 always @(posedge clk) begin b = a ; c = b; end;非阻塞(non-blocking)赋值方式 ( b= a): b的值被赋成新值a的操作, 并不是立刻完成的,而是在块结束时才完成; 块内的多条赋值语句在块结束时同时赋值; 硬件有对应的电路。 阻塞(blocking)赋值方式 ( b = a): b的

文档评论(0)

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

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

1亿VIP精品文档

相关文档