我正在尝试使用Spartan 6板显示颜色渐变。由于我目前使用的Spartan 6板只支持VGA的8位,我无法在没有硬边界的情况下显示RGB颜色。我已经通过像这样的编码显示了带有硬边界的RGB颜色
if x>0 and x<50 then
rgb <= RED;
elsif x>= 50 and x<100 then
rgb <= GREEN;
elsif x>= 100 and x<150 then
rgb <= BLUE;
elsif x>= 150 and x<200 then
rgb <= WHITE;
elsif x>= 250 and x<300 then
rgb <= RED;
elsif x>=350 and x<400 then
rgb <= GREEN;
elsif x>= 400 and x<450 then
rgb <= BLUE;
elsif x>= 450 and x<500 then
rgb <= WHITE;
end if;
但现在我必须显示一个没有硬边界的颜色渐变。我目前使用的屏幕分辨率为640x480。我正在考虑使用LUT通过给出索引来给出所有可能的组合。我需要一些关于如何在VHDL中实现这一点的建议,或者有没有其他方法可以在不显式编码所有有条件的组合的情况下实现这一目标?
如何使用这些颜色渐变来实现移动的颜色渐变图案?
有人能帮我吗?非常感谢。
是每个组件8位(24位RGB(还是每个颜色8位(8位RGB(?在第二种情况下,您将很难显示渐变。并非不可能,但要困难得多。
假设您有一个24位的案例。如果步长为50,则需要一些中重度逻辑,或者一个大的选择向量。但如果你把它设置为64,它会变得简单得多。
外观:
R(7 downto 2) <= X(5 downto 0) when X(11 downto 6) = "000000" else
31-X(5 downto 0) when X(11 downto 6) = "000001" else
"000000"
将在屏幕左侧为128像素宽的黑色到红色到黑色渐变。
您可以将它与其他两种颜色组合以获得所需的效果。