meidoufu

导航

`define宏定义

宏定义的作用:提供用一个相对简单的文字来表示一大段真正有意义的文字作用。换句话说,就是综合软件见到定义的宏,就用这个宏代表的文字替代这个宏的位置,这就是一个文字替代的工作。之后,综合软件再按照替代之后的代码来综合出电路;不会使代码优化,但会使得代码的规模变小。

宏定义的一般格式

点击查看代码
`define macro_name(formal_argu_list) macro_text
* `define 是宏定义语法的标志,注意符号 ` * macro_name 是给这个宏定义起的名字,需符合verilog的起名规则 * macro_text 是宏定义被综合软件重新替代的内容 * formal_argu_list是宏定义可能的输入参数,里面可以有多个输入。这些变量可以取代macro_text里对应的内容,当不需要参数时,则可以省略这一项

宏被调用的格式

点击查看代码
`macro_name(formal_argu_list)
举例: 用宏定义仿真时延
点击查看代码
'define DELAY(delay_time) #(delay_time)
  ……
 assign 'DELAY(10) a=b; //#(10) a= b

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

点击查看代码
`ifdef CONDITION

    EXPRESSION

`endif

如果在文件的开头没有define CONDITION这句话,那么上面的EXPRESSION就不会执行。如果加了那么,EXPRESSION就可以执行。 ifdef就是条件判断关键词,其用法有三种形式,如下:

点击查看代码
`ifdef CONDITION

    EXPRESSION

`endif
点击查看代码
`ifdef CONDITION

    EXPRESSION1

`else

   EXPRESSION2

`endif
点击查看代码
`ifdef CONDITION

    EXPRESSION1

`elsif CONDITION2

   EXPRESSION2

`esle

   EXPRESSION3

`endif

posted on 2025-02-20 11:09  霉豆腐  阅读(28)  评论(0)    收藏  举报