VerilogHDL数字设计教程(贺敬凯)第2.ppt

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

  4. 下面定义了一个参数型乘法器模块,请使用两种方法修改参数,实现4位乘法器。   module mul_N( X, Y, mul);   parameter N=2;   input [N-1: 0] X, Y;   output [2*N-1: 0] mul;   assign mul = X * Y;   endmodule   5. 请根据以下两条语句,从选项中找出正确答案。   (1)? reg [7:0] A; ?   A=2hFF;    运行以上两句代码后A的值为:( )。   A) ?8b0000_0011 B)? 8h03 C) ?8b1111_1111 D) ?8  (2)? reg [7:0] B;     B=8 bZ0;   运行以上两句代码后B的值为:( )。   A) ?80000_00z0 B) ?8bzzzz_0000 C) ?8b0000_zzz0 D) ?8bzzzz_zzz0 人有了知识,就会具备各种分析能力, 明辨是非的能力。 所以我们要勤恳读书,广泛阅读, 古人说“书中自有黄金屋。 ”通过阅读科技书籍,我们能丰富知识, 培养逻辑思维能力; 通过阅读文学作品,我们能提高文学鉴赏水平, 培养文学情趣; 通过阅读报刊,我们能增长见识,扩大自己的知识面。 有许多书籍还能培养我们的道德情操, 给我们巨大的精神力量, 鼓舞我们前进。 *   5. 参数(parameter)型   在Verilog HDL中用parameter来定义常量,即用parameter定义一个标识符来代表一个常量,称为符号常量,即标识符形式的常量。采用标识符代表一个常量可提高程序的可读性和可维护性。   parameter型数据是一种常数型的数据,其说明格式如下:    parameter 参数名1=表达式,参数名2=表达式, …, 参数名n=表达式;       parameter是参数型数据的确认符,确认符后跟着一个用逗号分隔开的赋值语句表。在每一个赋值语句的右边必须是一个常数表达式。也就是说,该表达式只能包含数字或先前已定义过的参数。例如:    parameter msb=-3b1; //定义参数msb为常量7    parameter e=2_5; //定义常数参数e=25    parameter byte_size=8, byte_msb=byte_size--1; //用常数表达式赋值   参数型常数经常用于定义延迟时间和变量宽度。在模块或实例引用时可通过参数传递改变在被引用模块中已定义的参数。 【例2-7】 设计参数型N位加法器。 module add_N( X, Y, sum, co); parameter N=4; input [N-1: 0] X, Y; output [N-1: 0] sum; output co; assign { co, sum } = X + Y; endmodule //16位加法器只需要调用参数型N位加法器即可 module add_16(X, Y, s, c); input [15 : 0] X, Y; output [15 : 0] s; output c; add_N #(16) add16(X, Y, s, c); endmodule //8位加法器只需要调用参数型N位加法器即可 module add_8(X, Y, s, c); input [7 : 0] X, Y; output [7 : 0] s; output c; add_N add8(X, Y, s, c); defparam add8.N=8; endmodule   程序说明:   (1) 在调用add_N模块时,可用#(16)使参数N的值变为16,从而使模块功能变为16位加法器,具体实现语句为add_N #(16) add16(X, Y, s, c);。   (2) 也可以使用defparam来改变参数。用后缀改变引用模块的参数要用被引用模块的实例名作为参数的前缀,如add8.N=8,从而使被引用模块的功能变为8位加法器。具体实现语句为:add_N add8(X, Y, s, c); defparam add8.N=8;。   通过使用参数,用户可以更加灵活地对模块进行说明。用户不但可以根据参数来定义模块,还可以方便地通过参数值重定义来改变模块的行为。 2.4 编?译?预?处?理   Verilog HDL和C语言一样也提供了编译预处理的功能。“编译预处理”是Verilog HDL编译系统的一个组成部分。Verilog HDL允许在程序中使用几种特殊的命令,其编译系统通常先对这些特殊的命令

文档评论(0)

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

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

1亿VIP精品文档

相关文档