《预编译处理功能》PPT课件

《预编译处理功能》PPT课件

ID:41358003

大小:247.56 KB

页数:32页

时间:2019-08-22

《预编译处理功能》PPT课件_第1页
《预编译处理功能》PPT课件_第2页
《预编译处理功能》PPT课件_第3页
《预编译处理功能》PPT课件_第4页
《预编译处理功能》PPT课件_第5页
资源描述:

《《预编译处理功能》PPT课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第七章 常用编译预处理语句编译预处理的功能“编译预处理”是VerilogHDL编译系统的一个组成部分。VerilogHDL语言允许在程序中使用几种特殊的命令。VerilogHDL编译系统通常先对这些特殊的命令进行“预处理”,然后将预处理的结果和源程序一起在进行通常的编译处理。在VerilogHDL语言中,预处理命令以符号“`”开头。有效作用范围为定义命令之后到本文件结束或到其它命令定义替代该命令之处。常用的`define、`include、`timescale1、宏定义`define用一个指定的标识符(即名字)来代表一个字符串,`define标识符(宏名)字符串(

2、宏内容)如:`definesignalstring这种方法使用户能以一个简单的名字代替一个长的字符串,也可以用一个有含义的名字来代替没有含义的数字和符号,因此把这个标识符(名字)称为“宏名”;在编译预处理时将宏名替换成字符串的过程称为“宏展开”。例:`defineWORDSIZE8modulereg[1:`WORDSIZE]data;//这相当于定义reg[1:8]data;关于宏定义的说明:1)宏名可用大写字母、小写字母表示。建议使用大写字母,以与变量名相区别。2)`define命令可以出现在模块定义里面,也可以出现在模块定义外面。宏名的有效范围为定义命令之后到原

3、文件结束。通常,`define命令写在模块定义的外面在此程序内有效。3)在引用已定义的宏名时,必须在宏名的前面加上符号“`”。4)使用宏名代替一个字符串,可以减少程序中重复书写某些字符串的工作量。5)宏定义不作语法检查。只有在编译已被宏展开后的源程序时才报错。6)宏定义不是VerilogHDL语句,不必在行末加分号。如果加了分号会连分号一起进行置换。例:moduletest;rega,b,c,d,e,out;`defineexpressiona+b+c+d;assignout=`expression+e;...endmodule经过宏展开以后,该语句为:assign

4、out=a+b+c+d;+e;7)在进行宏定义时,可以引用已定义的宏名,可以层层置换。例:moduletest;rega,b,c;wireout;`defineaaa+b`defineccc+`aaassignout=`cc;endmodule这样经过宏展开以后,assign语句为assignout=c+a+b;8)宏名和宏内容必须在同一行中进行声明。如果在宏内容中包含有注释行,注释行不会作为被置换的内容。例:module`definetyp_nandnand#5//defineanandwithtypicaldelay`typ_nandg121(q21,n10,n

5、11);………endmodule经过宏展开以后,该语句为:nand#5g121(q21,n10,n11);宏内容可以是空格,在这种情况下,宏内容被定义为空的。当引用这个宏名时,不会有内容被置换。2、文件包含”处理`include所谓“文件包含”处理是一个源文件可以将另外一个源文件的全部内容包含进来,即将另外的文件包含到本文件之中。VerilogHDL语言提供了`include命令用来实现“文件包含”的操作。其一般形式为:`include“文件名”例:(1)文件aaa.vmoduleaaa(a,b,out);inputa,b;outputout;wireout;ass

6、ignout=a^b;endmodule(2)文件bbb.v`include"aaa.v"modulebbb(c,d,e,out,out_a);inputc,d,e;outputout,out_a;wireout_a;wireout;aaaaaa(.a(c),.b(d),.out(out_a));assignout=e&out_a;endmodule关于“文件包含”处理的四点说明:1)一个`include命令只能指定一个被包含的文件,如果要包含n个文件,要用n个`include命令。注意下面的写法是非法的`include"aaa.v""bbb.v"2)`includ

7、e命令可以出现在VerilogHDL源程序的任何地方,被包含文件名可以是相对路径名,也可以是绝对路径名。'include"parts/count.v“3)可以将多个`include命令写在一行,在`include命令行,只可以出空格和注释行。'include"fileB"'include"fileC"//includingfileBandfileC4)如果文件1包含文件2,而文件2要用到文件3的内容,则可以在文件1用两个`include命令分别包含文件2和文件3,而且文件3应出现在文件2之前。在file1.v中定义:`include"file3.v"`inclu

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。