Verilog中条件编译`define,`ifdef,`else和`endif的使用

对于`define,`ifdef,`else和`endif首先要注意的是加在字母前面的是一个反向单引号。具体用法和matlab语法比较相似。他们的作用是条件编译。条件编译的意思就是,在编译工程中只编译满足条件的部分,不满足条件的,就意味没有用。

`define

这个关键词的作用是定义一些参数,比如:

`define TEST test_u.moulde_a

就把TEST定义为test_u.module_a了,注意TEST和test_u.moulde_a中间只有空格连接,后面没有任何字符。在引用TEST时,要加一个方向单引号,`TEST。

举个例子,我们在102行定义了ISP_TOP,在104行引用它时,要加反向单引号,如下:

`define还有一个作用是做定义,作为`ifdef的条件,比如

`ifdef CONDITION

    EXPRESSION

`endif

如果在文件的开头没有`define CONDITION这句话,那么上面的EXPRESSION就不会执行。如果加了那么,EXPRESSION就可以执行。

举个实际列子,我们用`ifdef 定义了是否要dump波形,如下:

如果在文件开头定义了DUMP_WAVE,

那么`ifdef中定义的语句就会被编译,即起作用,如果把上面的定义注释掉,那么`ifdef中定义的语句就不起作用。

`ifdef

`ifdef就是条件判断关键词,其用法有三种形式,如下:

(1)

`ifdef CONDITION

    EXPRESSION

`endif

(2)

`ifdef CONDITION

    EXPRESSION1

`else

   EXPRESSION2

`endif

(3)

`ifdef CONDITION

    EXPRESSION1

`elsif CONDITION2

   EXPRESSION2

`esle

   EXPRESSION3

`endif

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值