Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Пн авг 20, 2018 08:29

...
Google Search
Forth-FAQ Spy Grafic

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 49 ]  На страницу Пред.  1, 2, 3, 4  След.
Автор Сообщение
 Заголовок сообщения: Re: Xilinx Spartan KIT SP601
СообщениеДобавлено: Вт окт 26, 2010 08:03 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
WingLion_from_work писал(а):
Скину чуть позже, надо еще кусочек схемы доразвести.


Доразводку платки еще не довел до конца, сегодня вечером закончу.

Здесь обновленная схема.
Изменения:
1. Поправлена разводка разъема для подсоединения к киту
(приведена в соответствие с разъемом кита, чтобы соединительный шлейф один-в-один делать).
2. Добавлен импульсный преобразователь из 3.3В в 5.0В для питания клавиатуры.


Вложения:
Комментарий к файлу: Обновленная схема - добавлен DC-DC преобразователь для получения +5B из 3.3B
vga_ps2.png
vga_ps2.png [ 9.85 Кб | Просмотров: 5799 ]

_________________
С уважением, WingLion
Forth-CPU . RuF09WE
Мой Форт
Отсутствие бана это не заслуга юзера, а недоработка модератора (с)
Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Xilinx Spartan KIT SP601
СообщениеДобавлено: Вт окт 26, 2010 10:52 
УРРАА!!!

огонёчки на плате огонёчат!

Запустил сегодня с первой попытки без подглядывания в распечатку вчерашнего чата!

Хищнику респектище!


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Xilinx Spartan KIT SP601
СообщениеДобавлено: Вт окт 26, 2010 19:21 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 6375
Благодарил (а): 14 раз.
Поблагодарили: 99 раз.
WingLion_from_Work писал(а):
УРРАА!!!

огонёчки на плате огонёчат!

Урраа! Поголовье ПЛИСов выросло! :)
WingLion_from_Work писал(а):
Запустил сегодня с первой попытки без подглядывания в распечатку вчерашнего чата!

Хищнику респектище!

А я все равно делаю подсказку по ISE, сегодня-завтра выложу.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Xilinx Spartan KIT SP601
СообщениеДобавлено: Вт окт 26, 2010 19:25 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
Хищник писал(а):
А я все равно делаю подсказку по ISE, сегодня-завтра выложу.


Ee, наверно, лучше сразу pdf-ом оформить ;)

_________________
С уважением, WingLion
Forth-CPU . RuF09WE
Мой Форт
Отсутствие бана это не заслуга юзера, а недоработка модератора (с)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Xilinx Spartan KIT SP601
СообщениеДобавлено: Вт окт 26, 2010 19:29 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
WingLion_from_Work писал(а):
огонёчки на плате огонёчат!


Кроме огонечков, сегодня распаял разъемчик VGA-шный напрямую на тот 12-контактный разъем и сделал тестовую прошивку для вывода на VGA в режиме 800x600. Пока только разноцветные квадратюки ;)

И попробовал сделать ШИМ-модуляцию на выходах цвета.
ЖК-Монитор все это дело проглотил, в смысле изображение показал, синхронизацию поймал, но вместо градаций цвета - явная интерференционная картинка...

_________________
С уважением, WingLion
Forth-CPU . RuF09WE
Мой Форт
Отсутствие бана это не заслуга юзера, а недоработка модератора (с)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Xilinx Spartan KIT SP601
СообщениеДобавлено: Вт окт 26, 2010 20:17 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 6375
Благодарил (а): 14 раз.
Поблагодарили: 99 раз.
WingLion писал(а):
Кроме огонечков, сегодня распаял разъемчик VGA-шный напрямую на тот 12-контактный разъем и сделал тестовую прошивку для вывода на VGA в режиме 800x600. Пока только разноцветные квадратюки

Это хорошо! А я пока текстовый вывод делаю. Можно навыкладывать модулей в аппаратный раздел.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Xilinx Spartan KIT SP601
СообщениеДобавлено: Вт окт 26, 2010 20:25 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
Хищник писал(а):
Можно навыкладывать модулей в аппаратный раздел.


Угу, я сейчас флешку разгружу, и vhdl с VGA-шным контроллером своим выложу ;)

_________________
С уважением, WingLion
Forth-CPU . RuF09WE
Мой Форт
Отсутствие бана это не заслуга юзера, а недоработка модератора (с)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Xilinx Spartan KIT SP601
СообщениеДобавлено: Вт окт 26, 2010 20:49 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
VHDL код синхро-контроллера:

Код:
----------------------------------------------------------------------------------
-- VGA Sinc-controller 800x600 mode
-- Revision 0.01
----------------------------------------------------------------------------------
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
USE IEEE.std_logic_unsigned.all;
use IEEE.NUMERIC_STD.ALL;

entity vga800x600 is
   Port(
      
      clk200 : in std_logic; -- 200MHz
      --  выходной разъемчик
      HDRx : out std_logic_vector (7 downto 0)
   );

end vga800x600;

architecture Behavioral of vga800x600 is
   constant h_size : natural := 1041; -- полное число точек в строке
   constant v_size : natural := 640; -- полное число строк
   constant h_mode : natural := 800; -- число отображаемых точек в строк
   constant v_mode : natural := 600; -- число отображаемых строк в кадре
   constant hs_size : natural := (h_size - h_mode) / 4; -- размер гор.синхроимпульса
   constant vs_size : natural := (v_size - v_mode) / 4; -- размер верт.синхроимпульса
   signal h_count : std_logic_vector (11 downto 0);
   signal v_count : std_logic_vector (11 downto 0);
   signal zero : std_logic_vector (11 downto 0); -- вспомогательный нуль
   signal hs,vs   : std_logic;
   signal hsinc,vsinc   : std_logic;
   signal screen,border_line   : std_logic;
   -- сигналы выходов (по идее их надо как выход модуля описывать)
   signal H_SINC,V_SINC,R_test,G_test,B_test : std_logic;
   -- счетчики пикселей и строк
   signal CTH,CTV : std_logic_vector (11 downto 0);
   
   signal del : std_logic_vector (1 downto 0);
   signal clk50s : std_logic;
   -- тут пока двух-битные цвета
   signal R,G,B : std_logic_vector (1 downto 0);

begin
   zero <= (others => '0');
   process (clk200,hs) begin
                -- простой делитель на 4 для получения "пиксельной частоты"
      if clk200'event and clk200 ='1' then
         del <= del + 1;
         if conv_integer(del) = 0 then
            clk50s <= '1';
         else
            clk50s <= '0';
         end if;
         -- выходные цветовые ШИМ-ы
         case conv_integer(R) is
            when 1 => R_test <= del(1);
            when 2 => R_test <= del(1);
            when 3 => R_test <= '1';
            when others => R_test <= '0';
         end case;
         
         case conv_integer(G) is
            when 1 => G_test <= del(1);
            when 2 => G_test <= del(1);
            when 3 => G_test <= '1';
            when others => G_test <= '0';
         end case;         
         
         case conv_integer(B) is
            when 1 => B_test <= del(1);
            when 2 => B_test <= del(1);
            when 3 => B_test <= '1';
            when others => B_test <= '0';
         end case;         
                        -- другая реализация ШИМ-ов
--         if (del > R) then R_test <= '0'; else R_test <='1'; end if;
--         if (del > G) then G_test <= '0'; else G_test <='1'; end if;
--         if (del > B) then B_test <= '0'; else B_test <='1'; end if;
         
      end if;

      if clk200'event and clk200 ='1' and clk50s ='1' then
         -- горизонтальный счетчик
         if hs = '1' then
            h_count <= zero;
         else
            h_count <= h_count + 1;
         end if;
         if h_count = (h_size - 1) then
            hs <= '1';
         else
            hs <= '0';
         end if;
      end if;
      
      if clk200'event and clk200 ='1' and hs = '1' and clk50s ='1' then
         -- вертикальный счетчик
         if vs = '1' then
            v_count <= zero;
         else
            v_count <= v_count + 1;
         end if;
         if v_count = (v_size - 1) then
            vs <= '1';
         else
            vs <= '0';
         end if;
      end if;
   
      if clk200'event and clk200 ='1' and clk50s ='1' then
         -- строб области отображения
         if (h_count < h_mode) and (v_count < v_mode) then
            screen <= '1';
         else
            screen <= '1';
         end if;
         -- белая рамка по краю изображения -
                        -- надо для нормального автозахвата изображения монитором
         if (((h_count = 0) or (h_count = (h_mode-1))) or (v_count = 0) or (v_count = v_mode-1)) and (h_count < h_mode) and (v_count < v_mode) then
            border_line <= '1';
         else
            border_line <= '0';
         end if;
         -- генерация горизонтального синхроимпульса
         if (h_count > (h_mode + hs_size)) and (h_count < (h_size - hs_size)) then
            hsinc <= '1';
         else
            hsinc <= '0';
         end if;
                        -- генерация вертикального синхроимпульса
         if (v_count > (v_mode + vs_size)) and (v_count < (v_size - vs_size)) then
            vsinc <= '1';
         else
            vsinc <= '0';
         end if;
         -- кодирование выходов
         if border_line = '1' then
                                -- белая-белая рамка
            R <= (others => '1');
            G <= (others => '1');
            B <= (others => '1');
         else
         if screen = '1' then
            -- цветные квадратюки
            R <= h_count (5 downto 4);
            G <= h_count (7 downto 6);
            B <= v_count (7 downto 6);
         else
            -- черный цвет за пределами экрана
            R <= zero (5 downto 4);
            G <= zero (7 downto 6);
            B <= zero (7 downto 6);
         end if;
         end if;
       end if;
      
   end process;

   CTH <= h_count;
   CTV <= v_count;
   H_SINC <= hsinc;
   V_SINC <= vsinc;
--   R_test <= border_line or (h_count(5) and screen);
--   G_test <= border_line or (h_count(6) and screen);
--   B_test <= border_line or (h_count(7) and screen);
   -- коммутация сигналов на выход разъема
        -- (пришлось подбирать методом тыка, потому что в документации
        -- на кит это дело оказалось непрозрачно)
   HDRx <= (4 => G_test, 0 => R_test, 1 => B_test, 5 => H_SINC, 2 => V_SINC, others =>'0' );
   
--   LEDG <= (others => '0');

end Behavioral;


и уксочек UCF-а:


Код:
##------- Pin Constraints -------
## Clock inputs
NET "clk200" LOC = "K15" |SLEW=SLOW |IOSTANDARD=LVCMOS25;
#
NET "HDRx<0>" LOC = "N17" | SLEW=SLOW |IOSTANDARD=LVCMOS25;
NET "HDRx<1>" LOC = "M18" | SLEW=SLOW |IOSTANDARD=LVCMOS25;
NET "HDRx<2>" LOC = "A3" | SLEW=SLOW |IOSTANDARD=LVCMOS25;
NET "HDRx<3>" LOC = "L15" | SLEW=SLOW |IOSTANDARD=LVCMOS25;
NET "HDRx<4>" LOC = "F15" | SLEW=SLOW |IOSTANDARD=LVCMOS25;
NET "HDRx<5>" LOC = "B4" | SLEW=SLOW |IOSTANDARD=LVCMOS25;
NET "HDRx<6>" LOC = "F13" | SLEW=SLOW |IOSTANDARD=LVCMOS25;
NET "HDRx<7>" LOC = "P12" | SLEW=SLOW |IOSTANDARD=LVCMOS25;
#


С разъемчика KITa - 1,2,3 - контакты -> R,G,B входы монитора,
4 -> H_SINC вход монитора,
5 -> V_SINC вход монитора.
9,10 -> GND - общий.
Распайка VGA-разъема монитора - чуть выше в опубликованных тут схемах

_________________
С уважением, WingLion
Forth-CPU . RuF09WE
Мой Форт
Отсутствие бана это не заслуга юзера, а недоработка модератора (с)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Xilinx Spartan KIT SP601
СообщениеДобавлено: Ср окт 27, 2010 02:55 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 6375
Благодарил (а): 14 раз.
Поблагодарили: 99 раз.
http://www.msyst.ru/ISE_quickstart.pdf


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Xilinx Spartan KIT SP601
СообщениеДобавлено: Ср окт 27, 2010 04:30 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
Хищник писал(а):
http://www.msyst.ru/ISE_quickstart.pdf


Замечательно! ;)

Tеперь, сюда же стоит добавить материал о подключении таких вещей, как встроенные блоки PLL, RAM, а так же об их настройке.
Например, для VGA-режима 1280x1024 нужно из 200MHz получить 135MHz (или 270).

После чего описанный выше модуль vga800x600 легко переделается в vga1280x1024 и любой другой. Надо будет только константы подправить и не забыть, что в некоторых старых режимах некоторые сигналы синхронизации надо инвертировать.

А теперь табличка с данными, за которыми в свое время мне пришлось здорово побегать:

табличка с ошибкой удалена - более правильная табличка несколько постов ниже

_________________
С уважением, WingLion
Forth-CPU . RuF09WE
Мой Форт
Отсутствие бана это не заслуга юзера, а недоработка модератора (с)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Xilinx Spartan KIT SP601
СообщениеДобавлено: Ср окт 27, 2010 05:11 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
Та же табличка (исправленная), но в PDF


Вложения:
(s)VGA timing data.pdf [58.17 Кб]
Скачиваний: 300

_________________
С уважением, WingLion
Forth-CPU . RuF09WE
Мой Форт
Отсутствие бана это не заслуга юзера, а недоработка модератора (с)
Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Xilinx Spartan KIT SP601
СообщениеДобавлено: Ср окт 27, 2010 17:30 
Не в сети
Аватара пользователя

Зарегистрирован: Пт дек 26, 2008 21:16
Сообщения: 407
Откуда: Великий Новгород
Благодарил (а): 9 раз.
Поблагодарили: 3 раз.
WingLion писал(а):
табличка с данными, за которыми в свое время мне пришлось здорово побегать:

ошибочка :!: в столбце 1024х768 указанно число видимых точек в строке 1280


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Xilinx Spartan KIT SP601
СообщениеДобавлено: Ср окт 27, 2010 18:57 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
_Harry писал(а):
ошибочка :!: в столбце 1024х768 указанно число видимых точек в строке 1280


Да, есть такое... Сам сегодня обнаружил, когда по этой табличке заполнял оператор case в универсальном VGA-синхрогенераторе.


Вложения:
Комментарий к файлу: исправленная табличка
most_sVGA_modes.PNG
most_sVGA_modes.PNG [ 34.69 Кб | Просмотров: 5762 ]

_________________
С уважением, WingLion
Forth-CPU . RuF09WE
Мой Форт
Отсутствие бана это не заслуга юзера, а недоработка модератора (с)
Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Xilinx Spartan KIT SP601
СообщениеДобавлено: Ср окт 27, 2010 19:10 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
VHDL код универсального синхрогенератора:
(универсального - в смысле - на несколько режимов от 640x400 до 1280x1024)

Код:
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
USE IEEE.std_logic_unsigned.all;
use IEEE.NUMERIC_STD.ALL;

entity VGA_all is
   Port(
      clk25MHz   : in std_logic;
      clk50MHz   : in std_logic;
      clk75MHz   : in std_logic;
      clk135MHz   : in std_logic;
      CLKo   : out std_logic;
      CLKi   : in std_logic;
      clk300 : in std_logic; -- 300MHz
      -- переключатель режима
      SW : in std_logic_vector (3 downto 0);
      -- сигналы синхронизации VGA
      H_SINC,V_SINC   : out std_logic;
      -- тестовые цветовые сигналы
      R_test,G_test,B_test    : out std_logic;
      -- счетчики пикселей в строке и строк в кадре
      CTH,CTV : out std_logic_vector (11 downto 0);
      -- для тестовой индикации
      LEDG : out std_logic_vector (3 downto 0)
   );

end VGA_all;

architecture Behavioral of VGA_all is
--   constant h_size : natural := 1041;
--   constant v_size : natural := 640;
--   constant h_mode : natural := 800;
--   constant v_mode : natural := 600;
--   constant hs_size : natural := (h_size - h_mode) / 4;
--   constant vs_size : natural := (v_size - v_mode) / 4;

   signal clk : std_logic;
   
   signal h_size : natural;
   signal v_size : natural ;
   signal h_mode : natural ;
   signal v_mode : natural ;
   signal hs_size : natural ; --:= (h_size - h_mode) / 4;
   signal vs_size : natural ; -- := (v_size - v_mode) / 4;
   
   signal h_count : std_logic_vector (11 downto 0);
   signal v_count : std_logic_vector (11 downto 0);
   signal zero : std_logic_vector (11 downto 0);
   signal hs,vs   : std_logic;
   signal hsinc,vsinc   : std_logic;
   signal screen,border_line   : std_logic;
   
   signal del : std_logic_vector (3 downto 0);
   signal del_num : natural;
   signal point : std_logic;
   signal invert_sh : std_logic;

begin
   
   process (sw) begin
      case conv_integer(sw) is
         when 0 => CLKo <= CLK25MHz;
         when 1 => CLKo <= CLK25MHz;
         when 2 => CLKo <= CLK50MHz;
         when 3 => CLKo <= CLK75MHz;
         when 4 => CLKo <= CLK135MHz;
         when others => CLKo <= CLK25MHz;
      end case;
   end process;

   clk <= CLKi;
   zero <= (others => '0');

   process (sw,clk) begin
      if clk'event and clk='1' then
         case conv_integer(sw) is
            -- 640x480
            when 0 => h_size <= 800; v_size <= 525; h_mode <= 640; v_mode <= 480; hs_size <= 40; vs_size <= 10; invert_sh <= '1';-- 25mhz
            -- 640x400
            when 1 => h_size <= 800; v_size <= 449; h_mode <= 640; v_mode <= 400; hs_size <= 40; vs_size <= 10; invert_sh <= '0';-- 25mhz
            -- 800x600
            when 2 => h_size <= 1041; v_size <= 640; h_mode <= 800; v_mode <= 600; hs_size <= 60; vs_size <= 10; invert_sh <= '0';-- 50mhz
            -- 1024x768
            when 3 => h_size <= 1327; v_size <= 807; h_mode <= 1024; v_mode <= 768; hs_size <= 75; vs_size <= 10; invert_sh <= '0';-- 75mhz
            -- 1280x1024
            when 4 => h_size <= 1712; v_size <= 1065; h_mode <= 1280; v_mode <= 1024; hs_size <= 100; vs_size <= 10; invert_sh <= '0';-- 135mhz
            -- 640x480
            when others  => h_size <= 1041; v_size <= 640; h_mode <= 800; v_mode <= 600; hs_size <= 60; vs_size <= 10; invert_sh <= '1'; -- 25MHz
         end case;
      end if;
   end process;

   process (clk) begin
      -- делитель входной частоты (формально отключен)
       if clk'event and clk ='1' then
         point <= '1'; -- каждый такт - один пиксель
       end if;
      
       if clk'event and clk ='1' and point = '1' then
         -- счетчик пикселей в строке
         if hs = '1' then
            h_count <= zero;
         else
            h_count <= h_count + 1;
         end if;
         if h_count = (h_size - 1) then
            hs <= '1';
         else
            hs <= '0';
         end if;
      end if;
      
      if clk'event and clk ='1' and hs = '1' and point = '1'  then
         -- счетчик строк в кадре
         if vs = '1' then
            v_count <= zero;
         else
            v_count <= v_count + 1;
         end if;
         
         if v_count = (v_size - 1) then
            vs <= '1';
         else
            vs <= '0';
         end if;
      end if;
   
      if clk'event and clk ='1' and point = '1'  then
         -- строб для области просмотра
         if (h_count < h_mode) and (v_count < v_mode) then
            screen <= '1';
         else
            screen <= '1';
         end if;
         -- строб для белой линии по краю для гарантии автоматического захвата изображения монитором
         if (((h_count = 0) or (h_count = (h_mode-1))) or (v_count = 0) or (v_count = v_mode-1)) and (h_count < h_mode) and (v_count < v_mode) then
            border_line <= '1';
         else
            border_line <= '0';
         end if;
         -- строчный синхросигнал (инвертированный, если надо)
         if (h_count > (h_mode + hs_size)) and (h_count < (h_size - hs_size)) then
            hsinc <= not invert_sh;
         else
            hsinc <= invert_sh;
         end if;
         -- кадровый синхросигнал
         if (v_count > (v_mode + vs_size)) and (v_count < (v_size - vs_size)) then
            vsinc <= '1';
         else
            vsinc <= '0';
         end if;   
         -- тест вывода цветов
         if screen = '0' then
            -- черный за пределами экрана
            R_test <='0';
            G_test <='0';
            B_test <='0';
         elsif border_line = '1' then
            -- белая окантовка
             R_test <='1';
            G_test <='1';
            B_test <='1';
         else
            -- цветные квадратюки
            R_test <= h_count(6);
            G_test <= h_count(7);
            B_test <= v_count(6);
         end if;
         
       end if;
   end process;

   CTH <= h_count;
   CTV <= v_count;
   H_SINC <= hsinc;
   V_SINC <= vsinc;
--   R_test <= border_line;
--   G_test <= border_line;
--   B_test <= border_line;
   
   LEDG <= (others => '0');

end;


Тестировал его в квартусе и на альтеровком ките, потому что нa Xilinx еще не умею делать с помощью PLL нужные частоты.

На вход модуля подаются несколько "пиксельных" частот для разных режимов. Переключателем SW выбирается режим, он же подключает нужную частоту на выход CLKo, которая снаружи модуля должна податься на вход CLKi через глобальную разводку в ПЛИС. В альтере - это буфер GLOBAL, в Xilinx - пока еще не знаю.

_________________
С уважением, WingLion
Forth-CPU . RuF09WE
Мой Форт
Отсутствие бана это не заслуга юзера, а недоработка модератора (с)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Xilinx Spartan KIT SP601
СообщениеДобавлено: Чт окт 28, 2010 02:25 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 6375
Благодарил (а): 14 раз.
Поблагодарили: 99 раз.
http://www.msyst.ru/ISE_clkgen.pdf


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 49 ]  На страницу Пред.  1, 2, 3, 4  След.

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
phpBB сборка от FladeX // Русская поддержка phpBB