zoukankan      html  css  js  c++  java
  • `define、parameter、localparam三者的区别(转)

    `define:

    可以跨模块的定义,写在模块名称上面,在整个设计工程都有效。一旦‘define指令被编译,其在整个编译过程中都有效。例如,通过另一个文件中的`define指令,定义的常量可以被其他文件中被调用。直到遇到 ‘undef;

    `define data 8’d14

    使用时则为

    `data


    parameter:

    本module内有效的定义,可用于参数传递;

    在模块内部定义时无法进行参数传递,

    若在模块名后照下面这样写则可以进行传递

    module rxtx
    #(parameter baud = 9600,
                mhz = 25
      )
     (
       clk,
       rst,
       rx

       );

    调用此模块的时候可以像端口信号传递一样进行参数传递

     rxtx
    #( .baud ( 9600 ),
       .mhz  ( 50   )
     )
    u_uart (
     .clk(clk_50m),
     .rst(~HRST_N),
     .rx(rx)

     );


    localparam:

    本module内有效的定义,不可用于参数传递;localparamcannot be used within the module port parameter list.

    一般情况下,状态机的参数都是用localparam的。


    reference:https://www.cnblogs.com/bixiaopengblog/p/6675578.html

  • 相关阅读:
    java编程规范
    Servlet生命周期
    BBS
    Hibernate主键自增策略
    MyBatis举例以及连接数据库过程
    myBatis框架的配置部分
    持续集成
    2017-02-23 .NET Core Tools转向使用MSBuild项目格式
    记录表TABLE中 INDEX BY BINARY_INTEGER 的作用
    什么是 BIND 变量?
  • 原文地址:https://www.cnblogs.com/limanjihe/p/9816704.html
Copyright © 2011-2022 走看看