Jump to content

    
Sign in to follow this  
grafng

Синтаксис vhdl

Recommended Posts

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

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this