Страница 1 из 2

Динамическая индикация на ПЛИС

Добавлено: Ср сен 02, 2009 06:25:41
nick17
Есть готовый проект у кого?

Re: Динамическая индикация на ПЛИС

Добавлено: Ср сен 02, 2009 08:47:21
Meteor
nick17 писал(а):Есть готовый проект у кого?
На чем (AHDL,VHDL,Verilog) и под какую (чью) ПЛИСину?
У меня где то валялся проект мультиплексного вывода под Альтеровские MAX7xxxS. Но там прием в параллельном коде и вывод с дешифратора с признаком включения разряда (тоже дешифратор)

Re: Динамическая индикация на ПЛИС

Добавлено: Ср сен 02, 2009 08:58:18
nick17
Meteor писал(а):
nick17 писал(а):Есть готовый проект у кого?
На чем (AHDL,VHDL,Verilog) и под какую (чью) ПЛИСину?
У меня где то валялся проект мультиплексного вывода под Альтеровские MAX7xxxS. Но там прием в параллельном коде и вывод с дешифратора с признаком включения разряда (тоже дешифратор)
VHDL или схематик, или вместе....Работаю с Xilinx.
на каком языке у тебя под альтеру?

Re: Динамическая индикация на ПЛИС

Добавлено: Ср сен 02, 2009 09:16:53
Meteor
nick17 писал(а):на каком языке у тебя под альтеру?
Делал "смесь" вначале на AHDL компоненты бил, затем в схемном их вставлял. Такты снаружи кошачил. Привык работать со схемами, а не с абстракциями.:) Пройдет наверное со временем...

Добавлено: Ср сен 02, 2009 09:35:44
nick17
:)) Щас описываю на VHDL определенную схему и создаю компонент по описанию.... :)

Добавлено: Ср сен 02, 2009 10:25:44
Meteor
nick17 писал(а)::)) Щас описываю на VHDL определенную схему и создаю компонент по описанию.... :)
90% идет именно этим путем. После того как проекты "расширяются", уровня схематики становится мало и.. происходит переход на абстракции:))
Так в чем загвоздка со своим проектом?

Re: Динамическая индикация на ПЛИС

Добавлено: Ср сен 02, 2009 10:44:56
SII
nick17 писал(а):Есть готовый проект у кого?
Динамическая индикация -- это в каком смысле? Что динамически индицировать и на чём?

Re: Динамическая индикация на ПЛИС

Добавлено: Ср сен 02, 2009 10:49:16
Meteor
SII писал(а):Что динамически индицировать и на чём?
Ага правильно, у меня были просто 4 разрядные семисегментники:)). С ЖК только на МК фурыкал...

Re: Динамическая индикация на ПЛИС

Добавлено: Ср сен 02, 2009 10:59:05
nick17
Meteor писал(а):
SII писал(а):Что динамически индицировать и на чём?
Ага правильно, у меня были просто 4 разрядные семисегментники:)). С ЖК только на МК фурыкал...

Вот вот!!! Именно это и нужно----просто 4 разрядные семисегментники
:))

Добавлено: Ср сен 02, 2009 11:04:19
SII
Мой модуль для управления 7-сегментными индикаторами вот:

Код: Выделить всё

----------------------------------------------------------------------------------
--
--  ИНДИКАТОР ШЕСТНАДЦАТЕРИЧНЫХ КОДОВ
-- 
--   По шине Hexs[15:0] поступают прямые коды четырёх шестнадцатеричных цифр, ко-
-- торые должны быть отображены на четырёхразрядном семисегментном индикаторе, а
-- по шине Points[3:0] - обратные сигналы зажигания точек, относящихся к этим циф-
-- рам (активный уровень низкий).
--   Выходными являются шины Segs[7:0] и Anodes[3:0], подаваемые на индикаторы
-- (активный уровень низкий). В каждый момент времени может быть активна только
-- одна из линий Anodes, поскольку используется мультиплексирование выходных
-- линий.
--   Сигнал Enable разрешает работу индикатора. Когда он равен нулю, индикатор бу-
-- дет погашен.
--   Сигнал Clock определяет частоту мультиплексирования. Для нормального отобра-
-- жения необходимо поддерживать её в пределах от 60 Гц до 1 кГц.
--
----------------------------------------------------------------------------------

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.NUMERIC_STD.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;


entity HexInd is
   port ( Hexs   : in  std_logic_vector (15 downto 0);
          Points : in  std_logic_vector (3 downto 0);
          Enable : in  std_logic;
          Clock  : in  std_logic;
          Segs   : out std_logic_vector (7 downto 0);
          Anodes : out std_logic_vector (3 downto 0));
end HexInd;


architecture Behavioral of HexInd is

   signal Counter : std_logic_vector (1 downto 0);
   signal Hex     : std_logic_vector (3 downto 0);
   signal Point   : std_logic;
   signal SegInt  : std_logic_vector (7 downto 0);
   signal AnInt   : std_logic_vector (3 downto 0);

begin

   -- Обработка сигнала разрешения индикации
   Segs <= SegInt when Enable = '1' else "11111111";
   Anodes <= AnInt when Enable = '1' else "1111";

   -- Счётчик мультиплексирования
   process(Clock) is
   begin
      if rising_edge(Clock) then
         Counter <= Counter + 1;
      end if;
   end process;

   -- Мультиплексор
   with Counter select
      Hex <= Hexs(3 downto 0) when "00",
             Hexs(7 downto 4) when "01",
             Hexs(11 downto 8) when "10",
             Hexs(15 downto 12) when others;

   with Counter select
      SegInt(7) <= Points(0) when "00",
                   Points(1) when "01",
                   Points(2) when "10",
                   Points(3) when others;

   with Counter select
      AnInt <= "1110" when "00",
               "1101" when "01",
               "1011" when "10",
               "0111" when others;

   -- Преобразователь кода цифры в код индикатора
   with Hex select
      SegInt(6 downto 0 ) <= "1000000" when "0000",
                             "1111001" when "0001",
                             "0100100" when "0010",
                             "0110000" when "0011",
                             "0011001" when "0100",
                             "0010010" when "0101",
                             "0000010" when "0110",
                             "1111000" when "0111",
                             "0000000" when "1000",
                             "0010000" when "1001",
                             "0001000" when "1010",
                             "0000011" when "1011",
                             "1000110" when "1100",
                             "0100001" when "1101",
                             "0000110" when "1110",
                             "0001110" when others;

end Behavioral;
К нему осталось прикрутить источник информации и источник синхронизации. Ну и, естественно, связать сигналы с соответствующими ногами ПЛИС (связь описывается в ucf-файле и зависит от платы и модели ПЛИС).

Добавлено: Ср сен 02, 2009 11:29:56
nick17
SII, спасибо огромное сегодня буду пробовать :) это из апноута какого то? и где ты это находишь?! :))

Re: Динамическая индикация на ПЛИС

Добавлено: Ср сен 02, 2009 11:38:58
uldemir
nick17 писал(а):Есть готовый проект у кого?
Есть для работы с ЖКИ без мультиплексирования.http://haos.homeip.net/LCDdriver/index.html. Загрузка данных последовательная.
Есть (был) для ВЛИ (годится и для светодиодов), но это мой самый первый проект, и нигде не опубликован. И неуверен, что сохранился, потому как был сделан в XILINX Foundation (сейчас использую ISE WebPack).

Добавлено: Ср сен 02, 2009 11:43:41
SII
nick17 писал(а):SII, спасибо огромное сегодня буду пробовать :) это из апноута какого то? и где ты это находишь?! :))
Нет, это моя разработка. Правда, не совсем с нуля: я почитываю одну книжку в электронном виде (на буржуйском, есно), разбираю тамошние примеры, а потом пытаюсь слепить своё. Недавно вот клавиатуру PS/2 сделал, правда, один непонятный глюк пока остался, но в общем работает. Следующим на очереди VGA будет, но пока опять нет времени из-за работы :(

Добавлено: Ср сен 02, 2009 11:57:12
uldemir
SII писал(а):Мой модуль для управления 7-сегментными индикаторами вот:
Красиво. Можно еще добавить сюда еще память и будет законченный модуль. Я такую штуку в схематике наваял. 6х4 защелки в которые пишется по 4х-разрядной шине данных выбираемые 3х-разрядной шиной адреса. Планировалось под XC9572, но достать тогда ее не смог, и пришлось урезать аппетит, чтобы упаковать в 9536. получилось 4 с половиной разряда.
Схема была очень трудночитаемая. А твой вариант на VHDL - просто и изящно.

Добавлено: Ср сен 02, 2009 12:02:54
SII
Ну, я сначала пробовал по старинке -- в схемном виде, но быстро убедился, что это неудобно, и начал VHDL осваивать.

Добавлено: Ср сен 02, 2009 12:16:29
nick17
а что за книга буржуйская?
есть возможность мне прислать? :)

Добавлено: Ср сен 02, 2009 12:41:36
Meteor
nick17 писал(а):а что за книга буржуйская?
есть возможность мне прислать? :)
Думаю лучше ссылочку или архивчик (если небольшой), много нас таких ща наберется:)))

Добавлено: Ср сен 02, 2009 12:45:23
SII
FPGA Prototyping by VHDL examples, автор Pong P. Chu. У меня она разбита на главы -- всего 21 pdf-файл суммарным объёмом чуть больше 21 мегабайта. Прислать могу, но сейчас я задал вопрос о возможности её размещения на одном сайте. Получится -- там и выложим, не получится -- бум высылать.

Добавлено: Ср сен 02, 2009 13:17:13
nick17

Добавлено: Ср сен 02, 2009 13:31:14
SII
Она самая. Изложение ведётся с ориентацией на Стартер Кит от Хилинха; у меня другая плата, но разница заключается почти исключительно в правке ucf-файла.