Verilog 模块参数实例化

版权声明:转载请引出转载地址 https://blog.csdn.net/feiliantong/article/details/86286197
  1. 模块实例化还有一个好处就是在调用的时候还可以传递/改变参数。如下图,我们设计了一个uart模块,他的数据位宽只有8位,但是如果我们需要一个16为看的uart模块,这时候我们可以通过参数实例化来减少重新编写模块的工作量。
  2. 我们定义数据位宽为DATA_W = 8
module uart(
	clk,
	rst_n,
	vld_in,
	data_in,
	uart_out,
	uart_in,
	vld_out,
	data_out,
	rdy_in
);

parameter DATA_W = 8;

3.在实例化的时候我们可以如下图,在模块名后面加上“#(.DATA_W(16))”,就可以将数据位宽定义为16为。

uart#(.DATA_W(16)) 	    u_uart(
	.clk			(clk_100m			  ),
	.rst_n		(sys_rst_n			  ),
	.vld_in		(bt_data_out_vld	  ),
	.data_in	(bt_data_out		  ),
	.uart_out	(uart_tx				  ),
	.uart_in	(uart_rx				  ),
	.vld_out	(uart_data_out_vld),
	.data_out	(uart_data_out		  ),
	.rdy_in		(uart_in_rdy			  )
);

猜你喜欢

转载自blog.csdn.net/feiliantong/article/details/86286197