Apologies if the question doesn't make any sense. I'm self-taught and very new to Electrical Engineering.

I'm working on a little project with a DE1-SoC FPGA development board and found out that the video DAC (ADV7123) on the DE1-SoC has 3 10-bit colour channels. However, it seems like on the DE1-SoC board only 8 of the bits are connected to the FPGA itself and the two LSB of the colour information is tied to ground, as seen in this schematic:


If I understand this correctly, does this mean that it would be impossible to achieve full brightness on any of the colour channels, or is there some configuration specifically with the ADV7123 that allows it to achieve full brightness, even with two bits tied to ground?


In theory, using a 8-bit output interface to drive a 10-bit input will never reach the full maximum value.

The 10-bit maximum code is 1023 but the input will only reach a maximum code of 1020 with the 8 input bits.

However, the error is insignificant and this is common practice when converting between 8-bit and 10-bit interfaces.

The error for the maximum brightness is only 1020/1023 or about 0.3%.

Sure, it can be compensated by setting the reference current to be 0.3% higher, but it will not matter.

The DACs and the current references themselves are less accurate than the error of converting an 8-bit interface to 10-bit interface.

It would also require that the 75 ohm termination resistors at the DAC and at the receiving device use resistors with tolerance better than 1%, which is unlikely.

So don't worry, the DAC connection is good enough.

  • \$\begingroup\$ Thank you for the answer. I was just curious if this was a common practice. As a follow up question, what should I do when converting from a 8bit to a 16bit interface, where the error is not insignificant? \$\endgroup\$
    – EDToaster
    Jun 23 at 7:51
  • \$\begingroup\$ @EDToaster Is that a theoretical or practical question - I mean who would have a 16-bit video DAC? It also depends if it is about full scale computer graphics signals, or limited range video signals. You can do the same, i.e. multiply with 256 and have 0.4% of error in full scale white, but the steps are guaranteed to be equal, or you can multiply with 65535/255 to have uneven steps but have full scale white. \$\endgroup\$
    – Justme
    Jun 23 at 7:57
  • \$\begingroup\$ Mostly a theoretical question, though based on my own digging around in some verilog. I recently found a verilog-based VGA adapter, that converted a 4-bit channel into an 8-bit channel simply by concatenating it to itself. (4'b0110 --> 8'b01100110). I know any theoretical error would probably be minimal, but I was just curious to the different ways this problem could be approached. Googling didn't seem to uncover any answers. \$\endgroup\$
    – EDToaster
    Jun 23 at 8:05
  • \$\begingroup\$ That is just another way to do it. Concatenating 4 bit values like that to 8 bit values is same as multiplying by 17. So maximum value of 15 becomes 255. Simply multiplying by 16 means that white is 240 instead of 255, an error of 6%. \$\endgroup\$
    – Justme
    Jun 23 at 8:11

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.