-
Notifications
You must be signed in to change notification settings - Fork 71
PLL
Pepijn de Vos edited this page Nov 17, 2024
·
5 revisions
The PLL (Phase-Locked Loop) primitive in Arora FPGA products provides seven clock outputs, each supporting independent adjustment of clock frequency, phase, and duty cycle based on a given reference input clock. This allows for precise control over the timing signals within the design.
This device is not yet supported in Apicula
Port | Size | Direction |
---|---|---|
CLKFB | 1 | input |
CLKFBOUT | 1 | output |
CLKIN | 1 | input |
CLKOUT0 | 1 | output |
CLKOUT1 | 1 | output |
CLKOUT2 | 1 | output |
CLKOUT3 | 1 | output |
CLKOUT4 | 1 | output |
CLKOUT5 | 1 | output |
CLKOUT6 | 1 | output |
DT0 | 4 | input |
DT1 | 4 | input |
DT2 | 4 | input |
DT3 | 4 | input |
ENCLK0 | 1 | input |
ENCLK1 | 1 | input |
ENCLK2 | 1 | input |
ENCLK3 | 1 | input |
ENCLK4 | 1 | input |
ENCLK5 | 1 | input |
ENCLK6 | 1 | input |
FBDSEL | 6 | input |
ICPSEL | 6 | input |
IDSEL | 6 | input |
LOCK | 1 | output |
LPFCAP | 2 | input |
LPFRES | 3 | input |
MDSEL | 7 | input |
MDSEL_FRAC | 3 | input |
ODSEL0 | 7 | input |
ODSEL0_FRAC | 3 | input |
ODSEL1 | 7 | input |
ODSEL2 | 7 | input |
ODSEL3 | 7 | input |
ODSEL4 | 7 | input |
ODSEL5 | 7 | input |
ODSEL6 | 7 | input |
PLLPWD | 1 | input |
PSDIR | 1 | input |
PSPULSE | 1 | input |
PSSEL | 3 | input |
RESET | 1 | input |
RESET_I | 1 | input |
RESET_O | 1 | input |
SSCMDSEL | 7 | input |
SSCMDSEL_FRAC | 3 | input |
SSCON | 1 | input |
SSCPOL | 1 | input |
Parameter | Default Value |
---|---|
CLK0_IN_SEL | 0 (0b0) |
CLK0_OUT_SEL | 0 (0b0) |
CLK1_IN_SEL | 0 (0b0) |
CLK1_OUT_SEL | 0 (0b0) |
CLK2_IN_SEL | 0 (0b0) |
CLK2_OUT_SEL | 0 (0b0) |
CLK3_IN_SEL | 0 (0b0) |
CLK3_OUT_SEL | 0 (0b0) |
CLK4_IN_SEL | 0 (0b00) |
CLK4_OUT_SEL | 0 (0b0) |
CLK5_IN_SEL | 0 (0b0) |
CLK5_OUT_SEL | 0 (0b0) |
CLK6_IN_SEL | 0 (0b0) |
CLK6_OUT_SEL | 0 (0b0) |
CLKFB_SEL | INTERNAL |
CLKOUT0_DT_DIR | 1 (0b1) |
CLKOUT0_DT_STEP | 0 (0b00000000000000000000000000000000) |
CLKOUT0_EN | TRUE |
CLKOUT0_PE_COARSE | 0 (0b00000000000000000000000000000000) |
CLKOUT0_PE_FINE | 0 (0b00000000000000000000000000000000) |
CLKOUT1_DT_DIR | 1 (0b1) |
CLKOUT1_DT_STEP | 0 (0b00000000000000000000000000000000) |
CLKOUT1_EN | FALSE |
CLKOUT1_PE_COARSE | 0 (0b00000000000000000000000000000000) |
CLKOUT1_PE_FINE | 0 (0b00000000000000000000000000000000) |
CLKOUT2_DT_DIR | 1 (0b1) |
CLKOUT2_DT_STEP | 0 (0b00000000000000000000000000000000) |
CLKOUT2_EN | FALSE |
CLKOUT2_PE_COARSE | 0 (0b00000000000000000000000000000000) |
CLKOUT2_PE_FINE | 0 (0b00000000000000000000000000000000) |
CLKOUT3_DT_DIR | 1 (0b1) |
CLKOUT3_DT_STEP | 0 (0b00000000000000000000000000000000) |
CLKOUT3_EN | FALSE |
CLKOUT3_PE_COARSE | 0 (0b00000000000000000000000000000000) |
CLKOUT3_PE_FINE | 0 (0b00000000000000000000000000000000) |
CLKOUT4_EN | FALSE |
CLKOUT4_PE_COARSE | 0 (0b00000000000000000000000000000000) |
CLKOUT4_PE_FINE | 0 (0b00000000000000000000000000000000) |
CLKOUT5_EN | FALSE |
CLKOUT5_PE_COARSE | 0 (0b00000000000000000000000000000000) |
CLKOUT5_PE_FINE | 0 (0b00000000000000000000000000000000) |
CLKOUT6_EN | FALSE |
CLKOUT6_PE_COARSE | 0 (0b00000000000000000000000000000000) |
CLKOUT6_PE_FINE | 0 (0b00000000000000000000000000000000) |
DE0_EN | FALSE |
DE1_EN | FALSE |
DE2_EN | FALSE |
DE3_EN | FALSE |
DE4_EN | FALSE |
DE5_EN | FALSE |
DE6_EN | FALSE |
DYN_DPA_EN | FALSE |
DYN_DT0_SEL | FALSE |
DYN_DT1_SEL | FALSE |
DYN_DT2_SEL | FALSE |
DYN_DT3_SEL | FALSE |
DYN_FBDIV_SEL | FALSE |
DYN_ICP_SEL | FALSE |
DYN_IDIV_SEL | FALSE |
DYN_LPF_SEL | FALSE |
DYN_MDIV_SEL | FALSE |
DYN_ODIV0_SEL | FALSE |
DYN_ODIV1_SEL | FALSE |
DYN_ODIV2_SEL | FALSE |
DYN_ODIV3_SEL | FALSE |
DYN_ODIV4_SEL | FALSE |
DYN_ODIV5_SEL | FALSE |
DYN_ODIV6_SEL | FALSE |
DYN_PE0_SEL | FALSE |
DYN_PE1_SEL | FALSE |
DYN_PE2_SEL | FALSE |
DYN_PE3_SEL | FALSE |
DYN_PE4_SEL | FALSE |
DYN_PE5_SEL | FALSE |
DYN_PE6_SEL | FALSE |
FBDIV_SEL | 1 (0b00000000000000000000000000000001) |
FCLKIN | 100.0 |
ICP_SEL | xxxxxx |
IDIV_SEL | 1 (0b00000000000000000000000000000001) |
LPF_CAP | 0 (0b00) |
LPF_RES | xxx |
MDIV_FRAC_SEL | 0 (0b00000000000000000000000000000000) |
MDIV_SEL | 8 (0b00000000000000000000000000001000) |
ODIV0_FRAC_SEL | 0 (0b00000000000000000000000000000000) |
ODIV0_SEL | 8 (0b00000000000000000000000000001000) |
ODIV1_SEL | 8 (0b00000000000000000000000000001000) |
ODIV2_SEL | 8 (0b00000000000000000000000000001000) |
ODIV3_SEL | 8 (0b00000000000000000000000000001000) |
ODIV4_SEL | 8 (0b00000000000000000000000000001000) |
ODIV5_SEL | 8 (0b00000000000000000000000000001000) |
ODIV6_SEL | 8 (0b00000000000000000000000000001000) |
RESET_I_EN | FALSE |
RESET_O_EN | FALSE |
SSC_EN | FALSE |
PLL #(
.CLK0_IN_SEL(CLK0_IN_SEL),
.CLK0_OUT_SEL(CLK0_OUT_SEL),
.CLK1_IN_SEL(CLK1_IN_SEL),
.CLK1_OUT_SEL(CLK1_OUT_SEL),
.CLK2_IN_SEL(CLK2_IN_SEL),
.CLK2_OUT_SEL(CLK2_OUT_SEL),
.CLK3_IN_SEL(CLK3_IN_SEL),
.CLK3_OUT_SEL(CLK3_OUT_SEL),
.CLK4_IN_SEL(CLK4_IN_SEL),
.CLK4_OUT_SEL(CLK4_OUT_SEL),
.CLK5_IN_SEL(CLK5_IN_SEL),
.CLK5_OUT_SEL(CLK5_OUT_SEL),
.CLK6_IN_SEL(CLK6_IN_SEL),
.CLK6_OUT_SEL(CLK6_OUT_SEL),
.CLKFB_SEL(CLKFB_SEL),
.CLKOUT0_DT_DIR(CLKOUT0_DT_DIR),
.CLKOUT0_DT_STEP(CLKOUT0_DT_STEP),
.CLKOUT0_EN(CLKOUT0_EN),
.CLKOUT0_PE_COARSE(CLKOUT0_PE_COARSE),
.CLKOUT0_PE_FINE(CLKOUT0_PE_FINE),
.CLKOUT1_DT_DIR(CLKOUT1_DT_DIR),
.CLKOUT1_DT_STEP(CLKOUT1_DT_STEP),
.CLKOUT1_EN(CLKOUT1_EN),
.CLKOUT1_PE_COARSE(CLKOUT1_PE_COARSE),
.CLKOUT1_PE_FINE(CLKOUT1_PE_FINE),
.CLKOUT2_DT_DIR(CLKOUT2_DT_DIR),
.CLKOUT2_DT_STEP(CLKOUT2_DT_STEP),
.CLKOUT2_EN(CLKOUT2_EN),
.CLKOUT2_PE_COARSE(CLKOUT2_PE_COARSE),
.CLKOUT2_PE_FINE(CLKOUT2_PE_FINE),
.CLKOUT3_DT_DIR(CLKOUT3_DT_DIR),
.CLKOUT3_DT_STEP(CLKOUT3_DT_STEP),
.CLKOUT3_EN(CLKOUT3_EN),
.CLKOUT3_PE_COARSE(CLKOUT3_PE_COARSE),
.CLKOUT3_PE_FINE(CLKOUT3_PE_FINE),
.CLKOUT4_EN(CLKOUT4_EN),
.CLKOUT4_PE_COARSE(CLKOUT4_PE_COARSE),
.CLKOUT4_PE_FINE(CLKOUT4_PE_FINE),
.CLKOUT5_EN(CLKOUT5_EN),
.CLKOUT5_PE_COARSE(CLKOUT5_PE_COARSE),
.CLKOUT5_PE_FINE(CLKOUT5_PE_FINE),
.CLKOUT6_EN(CLKOUT6_EN),
.CLKOUT6_PE_COARSE(CLKOUT6_PE_COARSE),
.CLKOUT6_PE_FINE(CLKOUT6_PE_FINE),
.DE0_EN(DE0_EN),
.DE1_EN(DE1_EN),
.DE2_EN(DE2_EN),
.DE3_EN(DE3_EN),
.DE4_EN(DE4_EN),
.DE5_EN(DE5_EN),
.DE6_EN(DE6_EN),
.DYN_DPA_EN(DYN_DPA_EN),
.DYN_DT0_SEL(DYN_DT0_SEL),
.DYN_DT1_SEL(DYN_DT1_SEL),
.DYN_DT2_SEL(DYN_DT2_SEL),
.DYN_DT3_SEL(DYN_DT3_SEL),
.DYN_FBDIV_SEL(DYN_FBDIV_SEL),
.DYN_ICP_SEL(DYN_ICP_SEL),
.DYN_IDIV_SEL(DYN_IDIV_SEL),
.DYN_LPF_SEL(DYN_LPF_SEL),
.DYN_MDIV_SEL(DYN_MDIV_SEL),
.DYN_ODIV0_SEL(DYN_ODIV0_SEL),
.DYN_ODIV1_SEL(DYN_ODIV1_SEL),
.DYN_ODIV2_SEL(DYN_ODIV2_SEL),
.DYN_ODIV3_SEL(DYN_ODIV3_SEL),
.DYN_ODIV4_SEL(DYN_ODIV4_SEL),
.DYN_ODIV5_SEL(DYN_ODIV5_SEL),
.DYN_ODIV6_SEL(DYN_ODIV6_SEL),
.DYN_PE0_SEL(DYN_PE0_SEL),
.DYN_PE1_SEL(DYN_PE1_SEL),
.DYN_PE2_SEL(DYN_PE2_SEL),
.DYN_PE3_SEL(DYN_PE3_SEL),
.DYN_PE4_SEL(DYN_PE4_SEL),
.DYN_PE5_SEL(DYN_PE5_SEL),
.DYN_PE6_SEL(DYN_PE6_SEL),
.FBDIV_SEL(FBDIV_SEL),
.FCLKIN(FCLKIN),
.ICP_SEL(ICP_SEL),
.IDIV_SEL(IDIV_SEL),
.LPF_CAP(LPF_CAP),
.LPF_RES(LPF_RES),
.MDIV_FRAC_SEL(MDIV_FRAC_SEL),
.MDIV_SEL(MDIV_SEL),
.ODIV0_FRAC_SEL(ODIV0_FRAC_SEL),
.ODIV0_SEL(ODIV0_SEL),
.ODIV1_SEL(ODIV1_SEL),
.ODIV2_SEL(ODIV2_SEL),
.ODIV3_SEL(ODIV3_SEL),
.ODIV4_SEL(ODIV4_SEL),
.ODIV5_SEL(ODIV5_SEL),
.ODIV6_SEL(ODIV6_SEL),
.RESET_I_EN(RESET_I_EN),
.RESET_O_EN(RESET_O_EN),
.SSC_EN(SSC_EN)
) pll_inst (
.CLKFB(CLKFB),
.CLKFBOUT(CLKFBOUT),
.CLKIN(CLKIN),
.CLKOUT0(CLKOUT0),
.CLKOUT1(CLKOUT1),
.CLKOUT2(CLKOUT2),
.CLKOUT3(CLKOUT3),
.CLKOUT4(CLKOUT4),
.CLKOUT5(CLKOUT5),
.CLKOUT6(CLKOUT6),
.DT0(DT0),
.DT1(DT1),
.DT2(DT2),
.DT3(DT3),
.ENCLK0(ENCLK0),
.ENCLK1(ENCLK1),
.ENCLK2(ENCLK2),
.ENCLK3(ENCLK3),
.ENCLK4(ENCLK4),
.ENCLK5(ENCLK5),
.ENCLK6(ENCLK6),
.FBDSEL(FBDSEL),
.ICPSEL(ICPSEL),
.IDSEL(IDSEL),
.LOCK(LOCK),
.LPFCAP(LPFCAP),
.LPFRES(LPFRES),
.MDSEL(MDSEL),
.MDSEL_FRAC(MDSEL_FRAC),
.ODSEL0(ODSEL0),
.ODSEL0_FRAC(ODSEL0_FRAC),
.ODSEL1(ODSEL1),
.ODSEL2(ODSEL2),
.ODSEL3(ODSEL3),
.ODSEL4(ODSEL4),
.ODSEL5(ODSEL5),
.ODSEL6(ODSEL6),
.PLLPWD(PLLPWD),
.PSDIR(PSDIR),
.PSPULSE(PSPULSE),
.PSSEL(PSSEL),
.RESET(RESET),
.RESET_I(RESET_I),
.RESET_O(RESET_O),
.SSCMDSEL(SSCMDSEL),
.SSCMDSEL_FRAC(SSCMDSEL_FRAC),
.SSCON(SSCON),
.SSCPOL(SSCPOL)
);