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

  • 相关阅读:
    css3学习笔记之效果
    css3学习笔记之2D转换
    css3学习笔记之文本效果
    css3学习笔记之渐变
    css3学习笔记之背景
    css3学习笔记之边框
    AngularJs 入门参考代码
    环形矩阵
    Qt编写串口通信程序全程图文讲解[转]
    Qt操作Sqlite数据库
  • 原文地址:https://www.cnblogs.com/bixiaopengblog/p/6675578.html
Copyright © 2020-2023  润新知