PLLs and clocking

ECP5 EHXPLLL wrappers and PLL parameter calculators.

Core Repository Language License FPGA Used by
ecp5pll parametric PLL ★ emard__ulx3s-misc SystemVerilog, VHDL BSD (// (c)EMARD / License=BSD, file header) ECP5 92
blip nMigen ECP5 PLL wrapper bqqbarbhg__blipv1 Python (nMigen) none found ECP5 0
Glasgow ECP5 PLL parameter solver (Amaranth) glasgowembedded__glasgow Python (Amaranth) 0BSD OR Apache-2.0 ECP5 0
hdl4fpga ecp5_videodcm / ecp5_sdramdcm clock generators hdl4fpga__hdl4fpga VHDL MIT (LICENSE) ECP5 0

Cores

ecp5pll parametric PLL (best)

Computes EHXPLLL divider/phase parameters from requested in/out frequencies at elaboration time; up to 4 outputs with independent phase, actual achieved frequency reported in the trellis/Diamond build log. Copied into dozens of other repos in this collection.

   
Repository emard__ulx3s-misc: ULX3S misc/advanced examples: EMARD’s building-block library
Files examples/ecp5pll/hdl/sv/ecp5pll.sv, examples/ecp5pll/hdl/vhd/ecp5pll.vhd
Top module ecp5pll
Language SystemVerilog, VHDL
License BSD (// (c)EMARD / License=BSD, file header)
FPGA / primitives ECP5: EHXPLLL
Tests none found

On ULX3S: Drop-in on ULX3S: in_hz=25000000 (board oscillator); no other configuration needed.

Full review: emard__ulx3s-misc.

Used by 92 other catalogued repos (file copies or module instances found by scan_core_usage.py; heuristic):

blip nMigen ECP5 PLL wrapper

nMigen PLL wrapper (PllClock) with an ECP5-specific backend, built directly against nmigen_boards’ ULX3S_85F_Platform for the blip engine’s ULX3S target.

   
Repository bqqbarbhg__blipv1: nMigen/Amaranth DVI
Files blip/rtl/pll.py, blip/rtl/ecp5/pll.py
Top module n/a
Language Python (nMigen)
License none found
FPGA / primitives ECP5: EHXPLLL
Tests none found

On ULX3S: Requires the nMigen/Amaranth flow and nmigen-boards’ ULX3S platform definition rather than plain Verilog/VHDL.

Glasgow ECP5 PLL parameter solver (Amaranth)

Amaranth-based EHXPLLL parameter solver derived from Project Trellis’ PLL calculations, instantiating EHXPLLL plus an FD1S3AX loss-of-lock flop and reset-synchronizer flops; used by Glasgow revD which is itself an ECP5 25F board.

   
Repository glasgowembedded__glasgow: Glasgow Interface Explorer: multi-protocol USB debug/reverse-engineering tool - Amaranth-generated gateware…
Files software/glasgow/gateware/pll/ecp5.py
Top module n/a
Language Python (Amaranth)
License 0BSD OR Apache-2.0 (LICENSE-0BSD.txt, LICENSE-Apache-2.0.txt)
FPGA / primitives ECP5: EHXPLLL, FD1S3AX
Tests software/glasgow/gateware/pll/bench.py (benchmark/consistency script, not a synthesis test)

On ULX3S: Needs an Amaranth flow (not plain yosys/nextpnr from Verilog/VHDL sources); complements rather than replaces emard-ecp5pll for HDL-only designs.

hdl4fpga ecp5_videodcm / ecp5_sdramdcm clock generators

Two purpose-built EHXPLLL wrappers (video pixel-clock and SDRAM clock) that all three ULX3S hdl4fpga apps instantiate from a single 25 MHz clk_25mhz input, confirmed against the real ulx3s_v20.lpf pin name.

   
Repository hdl4fpga__hdl4fpga: hdl4fpga: portable VHDL library, ScopeIO oscilloscope, SDRAM graphics, eth/USB links
Files library/apps/ecp5_videodcm.vhd, library/apps/ecp5_sdramdcm.vhd
Top module ecp5_videodcm
Language VHDL
License MIT (LICENSE)
FPGA / primitives ECP5: EHXPLLL
Tests none found

On ULX3S: Ready-made for hdl4fpga-based designs; for a generic new design emard-ecp5pll is more self-contained (single generic module vs. two purpose-specific entities).

Full review: hdl4fpga__hdl4fpga.


Back to top

Generated from the JSON in data/ by the scripts in .claude/skills. Facts cite the upstream file at the reviewed commit; verify before reuse.

This site uses Just the Docs, a documentation theme for Jekyll.