版权声明:转载请引出转载地址 https://blog.csdn.net/feiliantong/article/details/86286197
- 模块实例化还有一个好处就是在调用的时候还可以传递/改变参数。如下图,我们设计了一个uart模块,他的数据位宽只有8位,但是如果我们需要一个16为看的uart模块,这时候我们可以通过参数实例化来减少重新编写模块的工作量。
- 我们定义数据位宽为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 )
);