Verilog生成语句以及Xilinx原语的使用示例
          
            时间:08-21 13:36 阅读:2612次
*温馨提示:点击图片可以放大观看高清大图
                
         
        
		  
               简介:最近做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