Jump to content

    

Синтаксис vhdl

https://github.com/MadLittleMods/FP-V-GA-Text/blob/master/vgaText/vgaText_top.vhd

(справочник по vhdl есть)

помогите , растолкуйте что значит точка в drawElementArray(i).pixelOn 

что оно вообще такое , как работает

(если это важно разрабатываю vga контролер для древней spartan3e kit , гитхаб не мой , пытаюсь разобраться с выводом текста)

 

-- Text Draw Stack
-----------------
for i in drawElementArray'range loop
	if drawElementArray(i).pixelOn then
		rgbDrawColor := drawElementArray(i).rgb;
	end if;
end loop;

Share this post


Link to post
Share on other sites
1 час назад, grafng сказал:

https://github.com/MadLittleMods/FP-V-GA-Text/blob/master/vgaText/vgaText_top.vhd

(справочник по vhdl есть)

помогите , растолкуйте что значит точка в drawElementArray(i).pixelOn 

что оно вообще такое , как работает

(если это важно разрабатываю vga контролер для древней spartan3e kit , гитхаб не мой , пытаюсь разобраться с выводом текста)

 


-- Text Draw Stack
-----------------
for i in drawElementArray'range loop
	if drawElementArray(i).pixelOn then
		rgbDrawColor := drawElementArray(i).rgb;
	end if;
end loop;

Вроде должно быть так:

-- Text Draw Stack
-----------------
for i in drawElementArray'range loop             -- от 0 и до конца массива drawElementArray (просматриваем весь массив)
	if drawElementArray(i).pixelOn then          -- Если значение pixelOn в просматириваемом массиве равно единичке
		rgbDrawColor := drawElementArray(i).rgb; -- То будем рисовать цветом из масива, который имеет набольший старший бит.
	end if;
end loop;



 -- Иными словами у нас есть какой-то тип  Record который выглядит как-то так
  type my_type is record
    pixelOn   : std_logic;                     -- бит(признак) включенного цвета
    rgb       : std_logic_vector(7 downto 0);  -- Хранимый цвет
  end record;  
  
  -- Зтаем из этого типа мы создаем массив
  type drawElementArray is array (0 to 3) of my_type;
  
  -- условием  for i in drawElementArray'range loop   мы просматриваем весь наш массива
  -- Условием if drawElementArray(i).pixelOn then  мы смотрим конкретно на бит pixelOn.
  -- Каждый раз как pixelOn = 1 мы переменной rgbDrawColor присваиваем то значение, которыое записано в rgb в индексе данного масива.
  -- Иными словами у нас в переменную rgbDrawColor запишется значение из массива с максимальным индексом, где pixelOn = 1

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this