Verilog生成语句以及Xilinx原语的使用示例
时间:08-21 13:36 阅读:2441次
*温馨提示:点击图片可以放大观看高清大图
简介:最近做QDR II SRAM控制器,要用到xilinx的原语IDDR,我的数据输入输出是18位的,又用到Generate将一位输入输出IDDR扩成18位,以前没用过generate,也不太熟悉,现在已熟悉其应用场合及其用法。
不多解释,看如下代码实例,一目便了然:
module SRAM_IDDR_RD_DATA_18(Q1,Q2,C,CE,D );
output [17:0] Q1,Q2;
input C;
input CE;
input [17:0] D;
parameter NUM = 18;
wire R;
wire S;
assign R = 1'b0;
assign S = 1'b0;
genvar i;
generate
for(i = 0; i < NUM; i = i + 1)
begin: IDDR_18
IDDR #(
.DDR_CLK_EDGE("SAME_EDGE_PIPELINED"),
.INIT_Q1(1'b0),
.INIT_Q2(1'b0),
.SRTYPE("SYNC") )
IDDR_inst ( .Q1(Q1[i]),
.Q2(Q2[i]),
.C(C),
.CE(CE),
.D(D[i]),
.R(R),
.S(S));
end
endgenerate
endmodule