به نام خدا
سلام
امروز و دیروز خیلی برای این مشکل کار کردم! دیروز نا امید شدم ولی امروز خدا رو کشر بعد از حدود 1 ساعت به نتیجه رسیدم (الحمدلله)
مشکلم این بود که میخواستم یه همچین کدی داشته باشم!

signal VGA_ADDR_RAM :STD_LOGIC_VECTOR(7 DOWNTO 0);
signal Counter_RAM :STD_LOGIC_VECTOR(2 DOWNTO 0);
--... more code
ColorOutput <= "00000000" when VGA_ADDR_RAM(Counter_RAM)) = '0' else
                "11111111";

یعنی یه سیگنال از نوع Std_Logic_Vector داریم که میخوایم بیت به بیت بخونیم و نیاز به یه کانتر داریم تا بتونیم بیت به بیت بخونیم ولی متاسفانه کد بالا اشتباه هست چون برنامه میگه VGA_ADDR_RAM(Counter_RAM) اشتباه هست و Counter_RAM نمیتونه اینجا باشه چون STD_LOGIC هست و باید integer باشه!
کافیه به این صورت بنویسیم:
  ColorOutput <= "00000000" when VGA_DATA_OUT_RAM(conv_integer(ScanlineX)) = '0' else
                 "11111111";
یعنی همه بحث ما به خاطر conv_integer بود!
امیدوارم مفید بوده باشه!
یا علی مدد...!