zynq-sandbox

old FPGA projects for ZYNQ
git clone http://frotz.net/git/zynq-sandbox.git
Log | Files | Refs | README

mmcm_1in_3out.sv (1675B)


      1 `timescale 1ps/1ps
      2 
      3 // F(CLKIN) = 1 / CLKIN_PERIOD
      4 // F(VCO) = F(CLKIN) * ( VCOMUL / VCODIV )
      5 // F(CLKn) = F(VCO) / OUTnDIV
      6 
      7 module mmcm_1in_3out(
      8 	input i_clk,
      9 	output o_clk0,
     10 	output o_clk1,
     11 	output o_clk2
     12 	);
     13 
     14 parameter CLKIN_PERIOD = 10.0;
     15 parameter VCO_MUL = 10.000;
     16 parameter VCO_DIV = 2;
     17 parameter OUT0_DIV = 2.000;
     18 parameter OUT1_DIV = 2;
     19 parameter OUT2_DIV = 2;
     20 
     21 wire clkfb, clkfb_i, clk0, clk1, clk2;
     22 
     23 BUFG bufg_fb(.I(clkfb_i), .O(clkfb));
     24 BUFG bufg_clk0(.I(clk0), .O(o_clk0));
     25 BUFG bufg_clk1(.I(clk1), .O(o_clk1));
     26 BUFG bufg_clk2(.I(clk2), .O(o_clk2));
     27 
     28 MMCME2_ADV #(
     29 	.BANDWIDTH("OPTIMIZED"),
     30 	.CLKOUT4_CASCADE("FALSE"),
     31 	.COMPENSATION("ZHOLD"),
     32 	.STARTUP_WAIT("FALSE"),
     33 	.DIVCLK_DIVIDE(VCO_DIV),
     34 	.CLKFBOUT_MULT_F(VCO_MUL),
     35 	.CLKFBOUT_PHASE(0.000),
     36 	.CLKFBOUT_USE_FINE_PS("FALSE"),
     37 	.CLKOUT0_DIVIDE_F(OUT0_DIV),
     38 	.CLKOUT0_PHASE(0.000),
     39 	.CLKOUT0_DUTY_CYCLE(0.500),
     40 	.CLKOUT0_USE_FINE_PS("FALSE"),
     41 	.CLKOUT1_DIVIDE(OUT1_DIV),
     42 	.CLKOUT1_PHASE(0.000),
     43 	.CLKOUT1_DUTY_CYCLE(0.500),
     44 	.CLKOUT1_USE_FINE_PS("FALSE"),
     45 	.CLKOUT2_DIVIDE(OUT2_DIV),
     46 	.CLKOUT2_PHASE(0.000),
     47 	.CLKOUT2_DUTY_CYCLE(0.500),
     48 	.CLKOUT2_USE_FINE_PS("FALSE"),
     49 	.CLKIN1_PERIOD(CLKIN_PERIOD),
     50 	.REF_JITTER1(0.010)
     51 	) mmcm_adv_inst (
     52 	.CLKFBOUT(clkfb_i),
     53 	.CLKFBOUTB(),
     54 	.CLKOUT0(clk0),
     55 	.CLKOUT0B(),
     56 	.CLKOUT1(clk1),
     57 	.CLKOUT1B(),
     58 	.CLKOUT2(clk2),
     59 	.CLKOUT2B(),
     60 	.CLKOUT3(),
     61 	.CLKOUT3B(),
     62 	.CLKOUT4(),
     63 	.CLKOUT5(),
     64 	.CLKOUT6(),
     65 
     66 	.CLKFBIN(clkfb),
     67 	.CLKIN1(i_clk),
     68 	.CLKIN2(0),
     69 
     70 	.CLKINSEL(1),
     71 
     72 	.DADDR(0),
     73 	.DCLK(0),
     74 	.DEN(0),
     75 	.DI(0),
     76 	.DO(),
     77 	.DRDY(),
     78 	.DWE(0),
     79 
     80 	.PSCLK(0),
     81 	.PSEN(0),
     82 	.PSINCDEC(0),
     83 	.PSDONE(),
     84 
     85 	.LOCKED(),
     86 	.CLKINSTOPPED(),
     87 	.CLKFBSTOPPED(),
     88 	.PWRDWN(0),
     89 	.RST(0)
     90 	);
     91 
     92 endmodule