3
FPGA 디자인을위한 Verilog 모듈을 작성 중입니다. 나는 인터넷에서 모듈을 가장 잘 모방하는 방법을 찾아 보았다. 두 가지 방법이 자주 발생하는 것을 볼 수 있습니다. 여기에는 두 가지 방법론에 대한 예가 포함되어 있습니다. 모듈을 매개 변수화하는 가장 좋은 방법은? 차이점은 무엇입니까? 벤더 종속적입니까 (Altera vs Xilinx)?Verilog 모듈에 파라미터 전달하기
제있어서 모듈 정의 :
module busSlave #(parameter DATA_WIDTH = 1) (
input [DATA_WIDTH-1:0] bus_data,
input bus_wr,
...
);
endmodule
모듈 인스턴스 :
module top;
//DATA_WIDTH is 32 in this instance
busSlave #(.DATA_WIDTH(32)) slave32(
.bus_data(data_0),
.bus_wr(wr_0),
...
);
//DATA_WIDTH is 64 in this instance
busSlave #(.DATA_WIDTH(64)) slave64(
.bus_data(data_1),
.bus_wr(wr_1),
...
);
endmodule
번째 방법 모듈 정의 :
module busSlave(
parameter DATA_WIDTH = 1;
input [DATA_WIDTH-1:0] bus_data,
input bus_wr,
...
);
endmodule
모듈 인스턴스 :
사전에 17,451,515,module top;
//DATA_WIDTH is 32 in this instance
busSlave slave32(
.bus_data(data_0),
.bus_wr(wr_0),
...
);
defparam slave32.DATA_WIDTH = 32;
//DATA_WIDTH is 64 in this instance
busSlave slave64(
.bus_data(data_1),
.bus_wr(wr_1),
...
);
defparam slave32.DATA_WIDTH = 64;
endmodule
감사
편집 : 예제 defparam
문이 중단 될 예정이다