Verilog 在Xilinx原理图中实例化参数化单元

Verilog 在Xilinx原理图中实例化参数化单元,verilog,xilinx,Verilog,Xilinx,我有一个参数化单元——一个n位寄存器,定义为: module Register #(parameter n = 16)( output reg [n-1:0] OUTPUT, input [n-1:0] INPUT, input RST, EN, CLK); // bla bla bla endmodule 在Xilinx Verilog模块中我可以像这样引用这个n位寄存器: Register #(8) REG1 (OUT, IN, RST, EN, CLK); (如

我有一个参数化单元——一个n位寄存器,定义为:

module Register #(parameter n = 16)(
    output reg [n-1:0] OUTPUT,
    input [n-1:0] INPUT,
    input RST, EN, CLK);
// bla bla bla
endmodule
Xilinx Verilog模块中我可以像这样引用这个n位寄存器:

Register #(8) REG1 (OUT, IN, RST, EN, CLK);
(如图所示)

我如何在Xilinx原理图中使用8位输入/输出来实例化该寄存器?

不幸的是,在Xilinx原理图中,实例是固定的;因此,不能设置参数。最好的选择是创建一个新模块,可能名为
register8bit
,将
n
设置为模块中的参数。然后,可以单独命名单独大小的模块,但只需更改内部参数

module Register_8bit (
    parameter n = 8;
    output reg [n-1:0] OUTPUT,
    input [n-1:0] INPUT,
    input RST, EN, CLK);
// bla bla bla
endmodule
这允许最大程度地重用代码,同时仍然允许顶层图解视图的好处