The Basys3 (a Digilent FPGA) manual says that the VGA analog outputs can drive between 0 and 0.7 volts.

Does anyone know if, from a purely analog perspective, this can drive “component video”, or video in YPbPr, by using the outputs normally used for RGB for YPbPr? Obviously I would have to play with the Y to implement “sync on Y”

 In the end, I would connect a simple VGA to component cable and connect to a component screen

  • \$\begingroup\$ If I understand this article and the wiki, then the Y channel will see normal composite video driving voltage with Pb and Pr seeing the difference in color spacing. No experience with the subject, but it seems you should be ok if you can get everything else right. Hopefully someone can better explain it. \$\endgroup\$ – Phil C May 29 '18 at 5:10

VGA output on the Basys3 board uses binary-weighted R-2R-4R-8R hand-made resistor network to make a simple 4-bit DAC out of digital logic-level outputs from FPGA.

enter image description here

The coding of "VGA_XX" logic signals can be anything, YPbPr, or whatever. The 4-bit converter will produce the same ~0.7 V output when delivered to the standard 75-Ohm analog interface.

If you don't like the resulting levels, you can change the resistors to suit your needs.

EDIT: As follows from the very useful appnote from Rohde&Schwarz (Testing of Analog Video Component Signals) linked by user below, both R-G-B and YPbPr signals have a peak-to-peak amplitude of 700 mV. However, both signals have a sync pulse with negative (350 mV) amplitude, and YPbPr goes from -350 to +350. As it is designed into Basys3 board, the primitive DAC can't generate negative levels, so the signal, even for RGB format, will be sub-standard. It might show something on a VGA display, but image might be unstable. The YPbPr signal will be even less resembling the standard, so you can forget about accurate color reproduction on component monitors.

In summary, the Basys3 board doesn't have proper means to generate standard RGB nor YPbPr signals.

  • \$\begingroup\$ I don't think that's a R-2R resistor network... also, shouldn't 1/(1/510+1/1000+1/2000+1/4000)=75 Ω since the VGA standard require 75 Ω termination at both ends? Or perhaps the crude 4bit DAC is being buffered nearby. \$\endgroup\$ – Harry Svensson May 28 '18 at 21:06
  • 1
    \$\begingroup\$ @HarrySvensson, you are right, this is not the network called "R-2R". Corrected. It is called "binary-weighted network" \$\endgroup\$ – Ale..chenski May 28 '18 at 23:32
  • \$\begingroup\$ My question is less about the Basys3 and more about component. Can I drive a component screen with 0-0.7v? \$\endgroup\$ – David May 29 '18 at 2:54
  • \$\begingroup\$ @AliChen, please see my answer below and tell me what you think. \$\endgroup\$ – David May 29 '18 at 5:43
  • \$\begingroup\$ Also, I have used the Basys3 VGA output for RGB, and it seems to work just fine, albeit with only 4096 possible colors \$\endgroup\$ – David May 29 '18 at 5:45

There is a crossover between VGA and RGB video, but depending on the vga source, there is not always a guarantee there is sync on the green vga signal line. There are cables out there, but people don't always have success with them because some vga cards don't output sync on the green signal. There is VGA to YPrPb cable outline that I found when searching google at https://blurts.me/vga-wiring-diagram.html/vga-to-component-wiring-diagram-fitfathers-me-beautiful/

enter image description here

you should be able to but you might need to set it to EGA mode manually so it can support 15Khz displays.

Also, if you don't have sync on the green, then you'll have to add it with some sort of signal mixer. I've used one like this below :


simulate this circuit – Schematic created using CircuitLab

  • \$\begingroup\$ This is an FPGA we are talking about, and I have counters controlling the screen. I can hypothetically drive sync on green/Y. But from an analog perspective, I don’t have enough range \$\endgroup\$ – David May 29 '18 at 12:14
  • \$\begingroup\$ amplitude shouldn't be an issue though. a 0.7 should be sufficient for most televisions. They also have gain controls too (brightness) as well as an AGC circuit. Also, have you've measured the signal, or just looking at docs. Because it might say can they can drive a .7V video signal and they are not including sync; and when you measure the green, its near a 1V signal with sync. \$\endgroup\$ – drtechno May 29 '18 at 14:30
  • \$\begingroup\$ I have not actually tried it, I don't even own such a cable yet... but now I will go buy one because I am interested (its like $3 from aliexpress). But I do slightly doubt that the green can drive 1V... The schematic would mention that... but I will buy the cable and update when I try it. (I also have to find a SDTV display...) \$\endgroup\$ – David May 30 '18 at 3:59

I did a bit more research with the book Video Demystified, fourth edition.

On page 75, under SDTV YPbPr Interface, it says that the recievers should be AC-coupled.

Here is a pic from page 76enter image description here

The numbers on the left are the voltage levels. So as Ali Chen mentioned, the PbPr signal is indeed 700mv pk-pk, but here it listed as 0.3-1v, and the Y is 700mv for the luma, and another 300mv for sync.

Now, I would guess that, since the the receiver is AC coupled, The PbPr can pass as 0-0.7v from the transmitter, because it is riding on DC, which will filter out to +-350 mv. For the Y, I have to shave off 300mv from one of the ends, and I can't shave off the sync, so it looks like I would have to sacrifice some brightness.

I have not tested this out yet, so I have no hard results. This is all in my head.

I would love to hear what others have to say about my understanding...

enter image description here

  • \$\begingroup\$ Since the sync is digital and the rest of the Y signal is within 0.7 volts p-p, just do the necessary level-shifting to 0.3-1.0 volts and then add a transistor to pull the signal to ground when you need sync, controlled by a fourth pin on the FPGA. \$\endgroup\$ – pipe May 29 '18 at 5:52
  • \$\begingroup\$ @pipe Not sure I would call the sync digital. There is nothing digital about YPbPr. These are all voltage levels. But your solution is interesting. \$\endgroup\$ – David May 29 '18 at 7:14
  • \$\begingroup\$ Well, the sync is just on or off, that's what I meant by "digital". You can control it with a single digital I/O pin, there are no "0.15 volt sync levels" etc. \$\endgroup\$ – pipe May 29 '18 at 8:47
  • \$\begingroup\$ Its not digital @pipe, just a composite signal made from a 0-4mhz video signal, keyed at a square pulse interval. \$\endgroup\$ – drtechno May 29 '18 at 14:49
  • \$\begingroup\$ I also want to note to everyone that the drawing of the video signal is very primitive and not precise. \$\endgroup\$ – drtechno May 29 '18 at 14:52

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.