2.2、 `else 与 `elsif 的使用 在2.1节为了实现3个模块的条件编译,使用了三个`ifdef···`endif 块,这使得代码看起来很臃肿。就像你通常会使用 else if 和 else 来搭配 if 语句使用一样,你也可以使用 `else 与 `elsif 来搭配 `ifdef 使用。 `else 与 `elsif 的使用方法: `ifdef <define_name> <stat...
`ifdef、`else、`elsif、`endif和`ifndef指令的标准语法结构如下: `ifdef、`else、`elsif、`endif指令以如下方式协同工作: - 当遇到`ifdef时,编译器会测试`ifdef文本宏标识符,看它是否被 Verilog HDL 源代码描述中的`define定义为文本宏名称。 - 如果定义了`ifdef文本宏标识符,则将`ifdef行组作为描述的一部分进...
一个`else指令最多可以匹配一个`ifdef或者`ifndef。一个`ifdef或者`ifndef可以匹配任意数量的`elsif命令。`ifdef或`ifndef总是用相应的`endif来结束。 Verilog文件中,条件编译标志可以用`define语句设置。如果没有设置条件编译标志,那么Verilog编译器会简单地跳过该部分。`ifdef语句中不允许使用布尔表带式,例如使用TEST ...
通常在Verilog HDL程序中用到`ifdef、`else、`endif编译命令的情况有以下几种: (1)选择一个模板的不同代表部分。 (2)选择不同的时许或结构信息。(3)对不同的EDA工具,选择不同的激励。 最常用的情况是:Verilog HDL代码中的一部分可能适用于某个编译环境,但不使用于另...
`endif 它的作用是当宏名已经被定义过(用`define命令定义),则对程序段1进行编译,程序段2将被忽略;否则编译程序段2,程序段1被忽略。其中`else部分可以没有,即: 2) `ifdef 宏名 (标识符) 程序段1 `endif 这里的 “宏名” 是一个Verilog HDL的标识符,“程序段”可以是Verilog HDL语句组,也可以是命令行。
通常在Verilog HDL程序中用到`ifdef、`else、`endif编译命令的情况有以下几种: (1)选择一个模板的不同代表部分。 (2)选择不同的时序或结构信息。 (3)对不同的EDA工具,选择不同的激励。 最常用的情况是:Verilog HDL代码中的一部分可能适用于某个编译环境,但不使用于另一个环境,如果设计者不想为两个环境创建...
登录后复制else登录后复制data_cal<= data_cal + 16'd200;登录后复制end登录后复制`endif登录后复制`ifdefMODE_ENABLE登录后复制`defineM 10登录后复制`elsifMODE_ENABLE2登录后复制`defineM 20登录后复制`endif登录后复制always@(posedgeclk or negedge rst_n) begin登录后复制if(!rst_n)登录后复制data_cal2<...
`ifdef INCLUDE_RSTN input rstn, `endif output reg q ); always @ (posedge clk) begin `ifdef INCLUDE_RSTN if (!rstn) begin q <= 0; end else `endif begin q <= d; end end endmodule 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ...
`ifdef 宏名 语句序列1 `else 语句序列2 `endif 2.6.6 行为语句的可综合性 前面几小节介绍了Verilog HDL中的多种行为语句。包含过程语句、赋值语句、条件语句、循环语句、编译指示语句。全部的语句都能在仿真中使用,可是有些语句是不可综合的。也就是说综合器无法将这些语句转变为相应的硬件电路。
’endif ①当遇到’ifndef时,测试’ifdef文本宏标识符,查看在Verilog HDL源文件描述中是否使用‘define作为一个文本宏名字;②如果’ifndef没有定义文本宏标识符,则对’ifndef所包含的行作为描述的一部分进行编译,如果还有’else或者’dsif编译器指令,则忽略这些编译器指令和相关的行组;③如果定义’ifiidef文本宏标识符...