zoukankan      html  css  js  c++  java
  • verilog 条件编译命令`ifdef、`else、`endif 的应用

    【摘自夏宇闻《verilog设计教程》】一般情况下,Verilog HDL源程序中所有的行都将参加编译。但是有时希望对其中的一部分内容只有在满足条件才进行编译,也就是对一部分内容指定编译的条件,这就是“条件编译”。有时,希望当满足条件时对一组语句进行编译,而当条件不满足是则编译另一部分。 
     
            条件编译命令有以下几种形式: 
     
            1)   `ifdef 宏名 (标识符) 
                   程序段1 
                   `else 
                   程序段2 
                   `endif 
            它的作用是当宏名已经被定义过(用`define命令定义),则对程序段1进行编译,程序段2将被忽略;否则编译程序段2,程序段1被忽略。其中`else部分可以没有,即: 
     
            2)   `ifdef 宏名 (标识符)

                   程序段1
                  `endif 
            这里的 “宏名” 是一个Verilog HDL的标识符,“程序段”可以是Verilog HDL语句组,也可以是命令行。这些命令可以出现在源程序的任何地方。注意:被忽略掉不进行编译的程序段部分也要符合Verilog HDL程序的语法规则。 
            通常在Verilog HDL程序中用到`ifdef、`else、`endif编译命令的情况有以下几种: 
            •    选择一个模块的不同代表部分。 
            •    选择不同的时序或结构信息。 
            •    对不同的EDA工具,选择不同的激励。

            以下是实例:

            

            运行结果为:

            # wow is defined
            # nest_one is defined
            # nest_two is defined

            整个工程见附件。。。

            ifdef_test.rar

    转载自:http://www.eefocus.com/zhaochengshun/blog/13-12/300789_21a6e.html

  • 相关阅读:
    中值定理
    poj 3984 迷宫问题 bfs
    android 处理网络状态——无网,2g,3g,wifi,ethernet,other
    POJ 1273 || HDU 1532 Drainage Ditches (最大流模型)
    Android硬件加速
    Android的横竖屏切换
    滑雪_poj_1088(记忆化搜索).java
    Rank of Tetris(hdu1811拓扑排序+并查集)
    git在windows下clone、pull或者push内存溢出的解决办法
    数据库中DDL、DML、DCL和TCP概念
  • 原文地址:https://www.cnblogs.com/chengqi521/p/6704401.html
Copyright © 2011-2022 走看看