Перейти к содержанию
    

Синтаксис 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;

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...