VGA · HDMI · TV — pixel clock, porches, sync — VHDL / Verilog / C output for FPGA & embedded
This calculator derives full horizontal and vertical video timing — pixel clock, front porch, sync pulse width, back porch and sync polarity — either from a target resolution, refresh rate and interlace flag using GTF/CVT-RB formulas, or from a selected CEA-861/VESA standard preset (VGA, 480p/576p, 720p, 1080i/p and others). Results include a visual timing-bar/waveform breakdown of each line and frame.
For FPGA and embedded video generator projects, the calculator also emits ready-to-use VHDL, Verilog and C constants for the computed timing, plus reference tables of analog RGB and CVBS signal levels and PAL subcarrier/burst constants for composite video output.
Enter resolution and refresh rate, then click Calculate.
Or select a standard preset from the dropdown above.
| Standard | Mode | Pixel clock | H total | H FP | H sync | H BP | V total | V FP | V sync | V BP | H pol | V pol | Scan |
|---|
| Level | Voltage | IRE |
|---|---|---|
| White (100%) | +0.700 V | 100 IRE |
| Mid-grey (50%) | +0.350 V | 50 IRE |
| Black / Blanking | 0.000 V | 0 IRE |
| State | Voltage | TTL level |
|---|---|---|
| Idle (inactive) | 3.3 V / 5.0 V | Logic HIGH |
| Sync pulse (active) | 0.0 V | Logic LOW |
| Monitor threshold LOW | < 0.8 V | guaranteed LOW |
| Monitor threshold HIGH | > 2.0 V | guaranteed HIGH |
| Level | Voltage | IRE | Notes |
|---|---|---|---|
| White | +0.700 V | +100 | both PAL & NTSC |
| Black (PAL) | 0.000 V | 0 | no pedestal |
| Black (NTSC) | +0.054 V | +7.5 | setup / pedestal |
| Blanking | 0.000 V | 0 | FP, BP, guard bands |
| Sync tip | −0.300 V | −40 | below black, into negative |
| Total swing | 1.000 Vp-p | 140 | sync tip to white |
| Colour burst (PAL) | ±0.150 V | ±21 | 4.433 MHz on back porch |
| Colour burst (NTSC) | ±0.143 V | ±20 | 3.579 MHz on back porch |
| White | +0.700 V |
| Black | 0.000 V |
| Sync tip | −0.300 V |
| 1.0 Vp-p total, 75 Ω | |
| Max positive | +0.350 V |
| Centre (zero) | 0.000 V |
| Max negative | −0.350 V |
| 0.7 Vp-p (±350 mV), 75 Ω | |
| Max positive | +0.350 V |
| Centre (zero) | 0.000 V |
| Max negative | −0.350 V |
| 0.7 Vp-p (±350 mV), 75 Ω | |
| Parameter | Value |
|---|---|
| Signalling | Differential (TMDS) |
| Differential swing | 200 – 600 mVp-p |
| Common mode voltage | 2.8 – 3.1 V |
| Termination | 100 Ω differential |
| Channels | 3× data + 1× clock |
| HDMI 1.4 max rate | 3.4 Gbps / channel |
| HDMI 2.0 max rate | 6.0 Gbps / channel |
| HDMI 2.1 max rate | 12.0 Gbps / channel (FRL) |
| Encoding | TMDS 8b/10b (≤2.0), FRL (2.1) |
| Standard | CTA-861, HDMI spec 1.4/2.0/2.1 |
| Interface | Swing | Notes |
|---|---|---|
| DisplayPort 1.4 | 0.4 / 0.6 / 0.8 V | selectable, diff, 100 Ω |
| DP 1.4 max rate | 8.1 Gbps / lane | HBR3, 4 lanes |
| LVDS (FPD-Link) | 250 – 450 mVp-p | diff, 100 Ω, ≤ 135 MHz |
| LVDS common mode | ~1.2 V | TIA/EIA-644 |
| eDP (embedded DP) | 0.4 / 0.6 / 0.8 V | laptop panels, diff |
| MIPI DSI | 100 – 300 mVp-p | mobile/embedded LCD |
| Signal level | CVBS std. | DAC out | DAC count |
|---|
DAC = round((V_cvbs + 0.3) / V_ref × (2ⁿ − 1))| Pixel clock | Samples / burst cycle | Burst samples / line | Suitability |
|---|---|---|---|
| 8.867 MHz | 2.00 | ~18 | Nyquist minimum — poor quality |
| 13.500 MHz | 3.05 | ~27 | ITU-R BT.601 standard — usable |
| 17.734 MHz | 4.00 | ~54 | 4× subcarrier — integer ratio, ideal |
| 27.000 MHz | 6.09 | ~54 | 2× BT.601 — recommended, easy filter |
| 35.469 MHz | 8.00 | ~108 | 8× subcarrier — high quality |
| Subcarrier frequency | 4.43361875 MHz |
| Exact value | 283.75 × fH + 25 Hz |
| Burst amplitude | ±0.150 V (±21 IRE) |
| Burst position | Back porch, ~9 cycles |
| Burst start (after sync) | ~5.6 µs after H-sync leading edge |
| PAL phase alternation | V component flips ±90° each line |
| NTSC burst freq. | 3.57954545 MHz |
/* PAL CVBS DAC constants — 0-1V output, +0.3V offset, AC coupled */ /* Formula: DAC = round((V_cvbs + 0.3) / 1.0 * (MAXVAL)) */ /* 8-bit DAC (0–255) */ #define PAL_8_SYNC_TIP 0 /* -0.300 V */ #define PAL_8_BURST_LO 38 /* -0.150 V (burst trough) */ #define PAL_8_BLACK 77 /* 0.000 V */ #define PAL_8_BURST_HI 115 /* +0.150 V (burst peak) */ #define PAL_8_WHITE 255 /* +0.700 V */ /* 10-bit DAC (0–1023) */ #define PAL_10_SYNC_TIP 0 #define PAL_10_BURST_LO 153 #define PAL_10_BLACK 307 #define PAL_10_BURST_HI 460 #define PAL_10_WHITE 1023 /* 12-bit DAC (0–4095) */ #define PAL_12_SYNC_TIP 0 #define PAL_12_BURST_LO 614 #define PAL_12_BLACK 1229 #define PAL_12_BURST_HI 1843 #define PAL_12_WHITE 4095 /* PAL subcarrier */ #define PAL_SUBCARRIER_HZ 4433618UL /* 4.43361875 MHz */ #define PAL_BURST_CYCLES 9 /* cycles per line */
-- PAL CVBS DAC constants — 0-1V output, +0.3V offset, AC coupled -- Formula: DAC = round((V_cvbs + 0.3) / 1.0 * (2^N - 1)) package pal_cvbs is -- 8-bit DAC (0–255) constant PAL_8_SYNC_TIP : integer := 0; -- -0.300 V constant PAL_8_BURST_LO : integer := 38; -- -0.150 V burst trough constant PAL_8_BLACK : integer := 77; -- 0.000 V constant PAL_8_BURST_HI : integer := 115; -- +0.150 V burst peak constant PAL_8_WHITE : integer := 255; -- +0.700 V -- 10-bit DAC (0–1023) constant PAL_10_SYNC_TIP : integer := 0; constant PAL_10_BURST_LO : integer := 153; constant PAL_10_BLACK : integer := 307; constant PAL_10_BURST_HI : integer := 460; constant PAL_10_WHITE : integer := 1023; -- 12-bit DAC (0–4095) constant PAL_12_SYNC_TIP : integer := 0; constant PAL_12_BURST_LO : integer := 614; constant PAL_12_BLACK : integer := 1229; constant PAL_12_BURST_HI : integer := 1843; constant PAL_12_WHITE : integer := 4095; -- PAL subcarrier constant PAL_SUBCARRIER_HZ : integer := 4_433_618; -- 4.43361875 MHz constant PAL_BURST_CYCLES : integer := 9; end package pal_cvbs;
// PAL CVBS DAC constants — 0-1V output, +0.3V offset, AC coupled // Formula: DAC = round((V_cvbs + 0.3) / 1.0 * (2^N - 1)) // 8-bit DAC (0–255) parameter PAL_8_SYNC_TIP = 0; // -0.300 V parameter PAL_8_BURST_LO = 38; // -0.150 V burst trough parameter PAL_8_BLACK = 77; // 0.000 V parameter PAL_8_BURST_HI = 115; // +0.150 V burst peak parameter PAL_8_WHITE = 255; // +0.700 V // 10-bit DAC (0–1023) parameter PAL_10_SYNC_TIP = 0; parameter PAL_10_BURST_LO = 153; parameter PAL_10_BLACK = 307; parameter PAL_10_BURST_HI = 460; parameter PAL_10_WHITE = 1023; // 12-bit DAC (0–4095) parameter PAL_12_SYNC_TIP = 0; parameter PAL_12_BURST_LO = 614; parameter PAL_12_BLACK = 1229; parameter PAL_12_BURST_HI = 1843; parameter PAL_12_WHITE = 4095; // PAL subcarrier parameter PAL_SUBCARRIER_HZ = 4_433_618; // 4.43361875 MHz parameter PAL_BURST_CYCLES = 10; // 10 × 225.5 ns = 2.255 µs (ITU-R BT.470 centre)