自学内容网 自学内容网

Verilog中#的2种作用

       在Verilog中,#有2种作用。

       第一种作用是指定时间延时,如#10,表示延时10个时间单位;

       第二种作用在模块定义时指定常量型参数的默认值,在模块实例化时传递常量型参数的指定值。

module uart_tx
//采用#()形式定义常量型参数,为模块的默认值
#(
parameter CLK_FRE = 50,      //时钟频率
parameter BAUD_RATE = 115200 //波特率
)
(
input                        clk,              //clock input
input                        rst_n,            //asynchronous reset input, low active 
input[7:0]                   tx_data,          //data to send
output reg                   tx_data_ready,    //send ready
output                       tx_pin            //serial data output
);

localparam                       CYCLE = CLK_FRE * 1000000 / BAUD_RATE;
#10  //延时10ns

endmodule



uart_tx
//采用#()形式传递常量型参数,不传递时模块将采用默认值,传递则采用指定值
#
(
.CLK_FRE(50),
.BAUD_RATE(9600)
) uart_tx_inst
(
.clk                        (sys_clk                  ),
.rst_n                      (rst_n                    ),
.tx_data                    (tx_data                  ),
.tx_data_ready              (tx_data_ready            ),
.tx_pin                     (uart_tx                  )
);


原文地址:https://blog.csdn.net/duanzw102/article/details/137883959

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!