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的。

  • 相关阅读:
    sqhhb
    12333
    12

    今日份
    12
    彻底理解 Cookie、Session、Token
    https原理
    12312
    uiower
  • 原文地址:https://www.cnblogs.com/bixiaopengblog/p/6675578.html
Copyright © 2011-2022 走看看