реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Nios II + VGA проблема
Artur Nikolajev
сообщение Jun 4 2009, 08:21
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 28
Регистрация: 3-06-09
Пользователь №: 49 896



Добрый день! У меня такая проблемка:
Я составил самый простой процессор на Ниосе....



Попробивал запустить и откомпилировать. Всё работает! дальше...

Написал VGA модуль на VHDL:

CODE
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;



ENTITY vga_sync_gv IS
PORT
(
clk : IN STD_LOGIC;
v_sync : out STD_LOGIC;
h_sync : OUT STD_LOGIC;
h_out, v_out : INOUT INTEGER RANGE 0 TO 1023;
VGA_Blank, VGA_sync : INOUT STD_LOGIC;
blue, red, green : OUT STD_LOGIC_VECTOR(9 DOWNTO 0)

);
END vga_sync_gv;



ARCHITECTURE a OF vga_sync_gv IS
SIGNAL h, v: INTEGER RANGE 0 TO 1023;
BEGIN

PROCESS
VARIABLE video_on_h, video_on_v: STD_LOGIC;
BEGIN
WAIT UNTIL RISING_EDGE(clk);

IF h < 800 THEN --skaita 800 horizontâlos pixeïus (ieskaitot palîgpixeïus)!
h <= h + 1;
ELSE
h <= 0;
END IF;





IF ( h <= 755 ) AND (h >= 659 ) THEN
h_sync <= '0';
ELSE
h_sync <= '1';
END IF;


IF ( v >= 524 ) AND ( h >= 699 ) THEN
v <= 0;
ELSIF ( h = 699 ) THEN
v <= v + 1;
END IF;

------------------------------------------
IF ( v <= 494 ) AND ( v >= 493 ) THEN
v_sync <= '0';
ELSE
v_sync <= '1';
END IF;

IF ( h <= 639 ) THEN
video_on_h := '1';
h_out <= h;
ELSE
video_on_h := '0';
END IF;

IF ( v <= 479 ) THEN
video_on_v := '1';
v_out <= v;

ELSE
video_on_v := '0';
END IF;


VGA_Blank<= (video_on_h AND video_on_v);

END PROCESS;








PROCESS (VGA_Blank, v_out, h_out)
BEGIN
blue<= "0000000000";
red<= "0000000000";
green<= "0000000000";

IF (h_out > 100) AND (h_out<400) AND (v_out > 100) AND (v_out<300) THEN
green<= "0011100000";
blue<= "1001100000";
red<= "1111100000";
END IF;

END PROCESS;

END a;


Прикрепил его к Ниосу:


Получилось:




При компиляции выдаёт ошибку.....


Скажите пожалуйста что я делаю не так?

Сообщение отредактировал Omen_13 - Jun 8 2009, 15:16
Go to the top of the page
 
+Quote Post
Serhiy_UA
сообщение Jun 4 2009, 09:02
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 721
Регистрация: 23-10-08
Из: next to Odessa
Пользователь №: 41 112



Посмотрите в an333.pdf

Еще в http://electronix.ru/forum/index.php?showtopic=46550&hl=

Сообщение отредактировал Serhiy_UA - Jun 4 2009, 09:27
Go to the top of the page
 
+Quote Post
Kuzmi4
сообщение Jun 4 2009, 10:04
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 3 304
Регистрация: 13-02-07
Из: 55°55′5″ 37°52′16″
Пользователь №: 25 329



2 Artur Nikolajev - если в 2-х словах - в компонент эдиторе неправильно сигналы выставили biggrin.gif
Go to the top of the page
 
+Quote Post
Artur Nikolajev
сообщение Jun 4 2009, 10:38
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 28
Регистрация: 3-06-09
Пользователь №: 49 896



Цитата(Kuzmi4 @ Jun 4 2009, 13:04) *
2 Artur Nikolajev - если в 2-х словах - в компонент эдиторе неправильно сигналы выставили biggrin.gif


A mozno popodrobnej? smile.gif
Go to the top of the page
 
+Quote Post
torik
сообщение Jun 4 2009, 11:13
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 2 113
Регистрация: 1-11-05
Пользователь №: 10 359



Вы когда делали компонент для SOPC, обратили внимание на красненькие надписи? Это интерфейс Conduit... Надо руководствоваться описанием SOPC Builder и документами на которые там идет ссылка (описание шины авалон). Дабы избежать таких проблем желательно задавать имена сигналам в соответствии с правилами.

Кстати, ширина 1024 - это явно ошибка. 10 бит...


--------------------
Быть. torizin-liteha@yandex.ru
Go to the top of the page
 
+Quote Post
Artur Nikolajev
сообщение Jun 4 2009, 16:13
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 28
Регистрация: 3-06-09
Пользователь №: 49 896



Подскажите пожалуйста! как избавится от следующих варингов? и что они вообще значат? спаибо!

Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение Jun 4 2009, 23:02
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 2 291
Регистрация: 21-07-05
Пользователь №: 6 988



Цитата(Artur Nikolajev @ Jun 4 2009, 23:13) *
Подскажите пожалуйста! как избавится от следующих варингов? и что они вообще значат? спаибо!

первый видимо вызван тем, что на vga подается клок 27МГц, а проц работает на 100. надо бы переделать: регистры vga должны писаться/читаться по клоку процессора. когда переходите от одного клока к другому, принято ставить FIFO. а почему не используете это : http://www.altera.com/literature/hb/nios2/qts_qii55006.pdf ?
второй говорит, что у вас шина 10 бит, а у авалона 32. либо ставьте byteenable, либо сделайте 32 бита, а старшие можно игнорить внутри модуля.
Go to the top of the page
 
+Quote Post
Artur Nikolajev
сообщение Jun 5 2009, 04:42
Сообщение #8


Участник
*

Группа: Участник
Сообщений: 28
Регистрация: 3-06-09
Пользователь №: 49 896



Цитата(vadimuzzz @ Jun 5 2009, 03:02) *
первый видимо вызван тем, что на vga подается клок 27МГц, а проц работает на 100. надо бы переделать: регистры vga должны писаться/читаться по клоку процессора. когда переходите от одного клока к другому, принято ставить FIFO. а почему не используете это : http://www.altera.com/literature/hb/nios2/qts_qii55006.pdf ?
второй говорит, что у вас шина 10 бит, а у авалона 32. либо ставьте byteenable, либо сделайте 32 бита, а старшие можно игнорить внутри модуля.

А как правельно усановить byteenable?
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение Jun 5 2009, 05:44
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 2 291
Регистрация: 21-07-05
Пользователь №: 6 988



Цитата(Artur Nikolajev @ Jun 5 2009, 11:42) *
А как правельно усановить byteenable?

тут посмотрите http://www.altera.com/literature/manual/mnl_avalon_spec.pdf


еще примерчик
http://www.altera.com/support/examples/nio...celeration.html
Go to the top of the page
 
+Quote Post
Artur Nikolajev
сообщение Jun 7 2009, 14:53
Сообщение #10


Участник
*

Группа: Участник
Сообщений: 28
Регистрация: 3-06-09
Пользователь №: 49 896



Цитата(vadimuzzz @ Jun 5 2009, 02:02) *
первый видимо вызван тем, что на vga подается клок 27МГц, а проц работает на 100. надо бы переделать: регистры vga должны писаться/читаться по клоку процессора. когда переходите от одного клока к другому, принято ставить FIFO. а почему не используете это : http://www.altera.com/literature/hb/nios2/qts_qii55006.pdf ?
второй говорит, что у вас шина 10 бит, а у авалона 32. либо ставьте byteenable, либо сделайте 32 бита, а старшие можно игнорить внутри модуля.


Извините, может за глупий вопрос. А если устанавливать 32 бита, то это в каких сигналах нужно делать?
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение Jun 7 2009, 16:33
Сообщение #11


Гуру
******

Группа: Свой
Сообщений: 2 291
Регистрация: 21-07-05
Пользователь №: 6 988



Цитата(Artur Nikolajev @ Jun 7 2009, 21:53) *
Извините, может за глупий вопрос. А если устанавливать 32 бита, то это в каких сигналах нужно делать?

шина данных
Go to the top of the page
 
+Quote Post
Artur Nikolajev
сообщение Jun 7 2009, 16:54
Сообщение #12


Участник
*

Группа: Участник
Сообщений: 28
Регистрация: 3-06-09
Пользователь №: 49 896



Цитата(vadimuzzz @ Jun 7 2009, 19:33) *
шина данных

Шина данных Это там где avalon_slave интерфейс?
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение Jun 8 2009, 11:24
Сообщение #13


Гуру
******

Группа: Свой
Сообщений: 2 291
Регистрация: 21-07-05
Пользователь №: 6 988



Цитата(Artur Nikolajev @ Jun 7 2009, 23:54) *
Шина данных Это там где avalon_slave интерфейс?

да, туда проц пишет/читает, а у него мастер 32 бита.
Go to the top of the page
 
+Quote Post
Artur Nikolajev
сообщение Jun 9 2009, 07:59
Сообщение #14


Участник
*

Группа: Участник
Сообщений: 28
Регистрация: 3-06-09
Пользователь №: 49 896



Цитата(vadimuzzz @ Jun 8 2009, 14:24) *
да, туда проц пишет/читает, а у него мастер 32 бита.

Уменя с avalon_slave связано:
input address;
input cs;
input write;
input [7:0] fifo_data;
output fifo_not_full;
output lastpixel;
Как это правельно записать?
Так:
input [31:0] address;
input [31:0] cs;
input [31:0] write;
input [31:0] fifo_data;
output [31:0] fifo_not_full;
output [31:0] lastpixel;
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение Jun 9 2009, 13:54
Сообщение #15


Гуру
******

Группа: Свой
Сообщений: 2 291
Регистрация: 21-07-05
Пользователь №: 6 988



Цитата(Artur Nikolajev @ Jun 9 2009, 14:59) *
Уменя с avalon_slave связано:
input address;
input cs;
input write;
input [7:0] fifo_data;
output fifo_not_full;
output lastpixel;
Как это правельно записать?
Так:
input [31:0] address;
input [31:0] cs;
input [31:0] write;
input [31:0] fifo_data;
output [31:0] fifo_not_full;
output [31:0] lastpixel;

точно не так smile.gif какой хотите интерфейс? Avalon Memory Mapped? я выше пример приводил http://www.altera.com/support/examples/nio...celeration.html
для MM надо
адрес(сколько бит внутреннее адр. пространство модуля)
данные(запись, чтение) - для простоты 32 бита
clk,rst,cs,wr,rd по 1 бит
внешние сигналы - как вам надо.
всем сигналам сделать префиксы для авт. распознавания.

p.s. может задачку поконкретнее сформулируете?
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 10th June 2024 - 11:50
Рейтинг@Mail.ru


Страница сгенерированна за 0.0149 секунд с 7
ELECTRONIX ©2004-2016