Например TDA7294

Форум РадиоКот • Просмотр темы - "бегущие огни" на VHDL
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Вс дек 14, 2025 17:53:42

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 10 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: "бегущие огни" на VHDL
СообщениеДобавлено: Чт май 30, 2013 10:47:12 
Родился

Зарегистрирован: Чт май 30, 2013 10:41:02
Сообщений: 8
Рейтинг сообщения: 0
есть плисина с частотой 8 Мгц и вот мне необходимо написать на VHDL схемку "бегущих огней" хотя бы просто - делитель и сдвиговый регистр чтобы бегали без всяких дополнительных примочек...может кто подсказать как это делать ?)


Вложения:
Комментарий к файлу: схемка выглядит вот так..
Безымянный.png [30.86 KiB]
Скачиваний: 1054
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: "бегущие огни" на VHDL
СообщениеДобавлено: Чт май 30, 2013 15:19:32 
Друг Кота
Аватар пользователя

Карма: 50
Рейтинг сообщений: 1398
Зарегистрирован: Пт авг 28, 2009 21:34:30
Сообщений: 7319
Откуда: 845-й км.
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Код:
signal divier : std_logic_vector ( dofiga downto 0) := (others => '0');
signal beguchka : std_logic_vector (eche_bolshe_dofiga downto 0) := (0=>'1', others =>'0');

process (clk)
   if event'clk and clk='1' then
       divider <= divider + 1;
       if divider = 0 then
            beguchka <= beguchka(0) & beguchka (eche_bolshe_dofiga downto 1);
       end if;
   end if;
end process;
p.s. очередной курсак :))


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: "бегущие огни" на VHDL
СообщениеДобавлено: Чт май 30, 2013 18:22:15 
Родился

Зарегистрирован: Чт май 30, 2013 10:41:02
Сообщений: 8
Рейтинг сообщения: 0
uldemir писал(а):
Код:
signal divier : std_logic_vector ( dofiga downto 0) := (others => '0');
signal beguchka : std_logic_vector (eche_bolshe_dofiga downto 0) := (0=>'1', others =>'0');

process (clk)
   if event'clk and clk='1' then
       divider <= divider + 1;
       if divider = 0 then
            beguchka <= beguchka(0) & beguchka (eche_bolshe_dofiga downto 1);
       end if;
   end if;
end process;
p.s. очередной курсак :))

не не курсак ) просто расчетка по предмету ))..это правда все ? )) этот маленький код заставит мои светодиоды бегать ?))


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: "бегущие огни" на VHDL
СообщениеДобавлено: Чт май 30, 2013 19:20:03 
Друг Кота
Аватар пользователя

Карма: 50
Рейтинг сообщений: 1398
Зарегистрирован: Пт авг 28, 2009 21:34:30
Сообщений: 7319
Откуда: 845-й км.
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Понятия не имею. Просто привел пример как пишется делитель и сдвиговый регистр. Огоньки бегать будут. Правда совершенно не понял, какое отношение к вопросу имеет приведённая вами, совершенно не читаемая схема - поэтому её я игнорировал.
Ну и, конечно, я опустил все заголовки и описания.


Вернуться наверх
 
Эиком - электронные компоненты и радиодетали
Не в сети
 Заголовок сообщения: Re: "бегущие огни" на VHDL
СообщениеДобавлено: Чт май 30, 2013 19:36:15 
Родился

Зарегистрирован: Чт май 30, 2013 10:41:02
Сообщений: 8
Рейтинг сообщения: 0
uldemir писал(а):
Понятия не имею. Просто привел пример как пишется делитель и сдвиговый регистр. Огоньки бегать будут. Правда совершенно не понял, какое отношение к вопросу имеет приведённая вами, совершенно не читаемая схема - поэтому её я игнорировал.
Ну и, конечно, я опустил все заголовки и описания.

не совсем понял эту строчку - beguchka <= beguchka(0) & beguchka (eche_bolshe_dofiga downto 1);
также не понял сколько же это дофига )) и что же писать в entity...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: "бегущие огни" на VHDL
СообщениеДобавлено: Чт май 30, 2013 19:43:53 
Родился

Зарегистрирован: Чт май 30, 2013 10:41:02
Сообщений: 8
Рейтинг сообщения: 0
uldemir писал(а):
Понятия не имею. Просто привел пример как пишется делитель и сдвиговый регистр. Огоньки бегать будут. Правда совершенно не понял, какое отношение к вопросу имеет приведённая вами, совершенно не читаемая схема - поэтому её я игнорировал.
Ну и, конечно, я опустил все заголовки и описания.

незнаю почему не удалось прочитать схему, преподу понравилась, и работает без сбоев)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: "бегущие огни" на VHDL
СообщениеДобавлено: Чт май 30, 2013 20:18:16 
Друг Кота
Аватар пользователя

Карма: 50
Рейтинг сообщений: 1398
Зарегистрирован: Пт авг 28, 2009 21:34:30
Сообщений: 7319
Откуда: 845-й км.
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Diprais писал(а):
не совсем понял эту строчку - beguchka <= beguchka(0) & beguchka (eche_bolshe_dofiga downto 1);
Это и есть сдвиговый регистр. по фронту имульса (если дофига принять за 5) регистр из состояния 543210 перейдёт в 054321. Т.е. произойдёт сдвиг вправо. Надеюсь, догадаться как написать сдвиг влево особого труда не составит.
Diprais писал(а):
незнаю почему не удалось прочитать схему,
Она - мутная и глаза свои портить об неё не собираюсь. Могли бы потрудиться словами описать, что вы там хотите получить. А мой телепатический модуль отключен за не уплату абонентской платы, и догадаться что такое newreg никак не удаётся. И еще, я к этой теме сделал узелок VHDL. Можете почитать другие темы посвященные этому языку.
p.s. Гыыыыыы. обведённый кусок тоже преподу понравился?
Вложение:
Безымянный.png


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: "бегущие огни" на VHDL
СообщениеДобавлено: Пт май 31, 2013 09:41:48 
Родился

Зарегистрирован: Чт май 30, 2013 10:41:02
Сообщений: 8
Рейтинг сообщения: 0
uldemir писал(а):
Diprais писал(а):
не совсем понял эту строчку - beguchka <= beguchka(0) & beguchka (eche_bolshe_dofiga downto 1);
Это и есть сдвиговый регистр. по фронту имульса (если дофига принять за 5) регистр из состояния 543210 перейдёт в 054321. Т.е. произойдёт сдвиг вправо. Надеюсь, догадаться как написать сдвиг влево особого труда не составит.
Diprais писал(а):
незнаю почему не удалось прочитать схему,
Она - мутная и глаза свои портить об неё не собираюсь. Могли бы потрудиться словами описать, что вы там хотите получить. А мой телепатический модуль отключен за не уплату абонентской платы, и догадаться что такое newreg никак не удаётся. И еще, я к этой теме сделал узелок VHDL. Можете почитать другие темы посвященные этому языку.
p.s. Гыыыыыы. обведённый кусок тоже преподу понравился?
Вложение:
Безымянный.png



понятно все - это наша песочница и тебе тут не место. мог бы сразу послать и сказать что я тупой а не писать всякую непонятную ересь и доказывать тут всем какой ты умный, если прошу совета то наверное же не знаю как это сделать, не все так разбираются как ты... классный сайт - обосрали, поржали с моей работы дали непонятный "совет что делать" и все ..уходи..сиди и задроть в свой vhdl и дальше.. ноулайфер...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: "бегущие огни" на VHDL
СообщениеДобавлено: Пт май 31, 2013 10:04:23 
Друг Кота
Аватар пользователя

Карма: 50
Рейтинг сообщений: 1398
Зарегистрирован: Пт авг 28, 2009 21:34:30
Сообщений: 7319
Откуда: 845-й км.
Рейтинг сообщения: -1
Медали: 1
Получил миской по аватаре (1)
какие мы обидчивые... А какие еще обидные слова мы знаем?

Дам последний совет. Хороший ответ можно дать только на хороший вопрос. На Ваш вопрос, который был сформулирован для меня понятно, я дал. Но, я не телепат и не ССовец, чтобы догадаться или клещами под пытками добывать дополнительную информацию. В конце-концов это нужно Вам, а не мне. Так что если Вы не способны сформулировать свою проблему, то вы не достойны ответа.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: "бегущие огни" на VHDL
СообщениеДобавлено: Сб июн 01, 2013 08:25:04 
Друг Кота
Аватар пользователя

Карма: 9
Рейтинг сообщений: 96
Зарегистрирован: Пн июл 13, 2009 14:37:39
Сообщений: 3961
Откуда: Московская область, наукоград.....
Рейтинг сообщения: 0
uldemir в общем-то прав, опросы надо учиться задавать.
Предлагаю начать с хвоста.
Есть потребность иметь бегущие огни и реализовать их с применением ПЛИС.
О сдвиговом регистре уже написано - хотим 8 светодиодиков включать-выключать, значит в коде значение "дофига" будет равно 7 (т.к. счет идет до нуля).
В этот же регистр надо вписать начальное состояние.
Затем подумать, а как организовать кольцо?
Самый простой вариант - делать мультиплексирование, которое при самом "беге" будет подавать значение с конца в начало или наоборот.
Допустим всю эту махарайку выполнили. Тогда можно подумать "а как быстро должны бежать огоньки?"
Прикинули и вдруг решили, что меняться они должны 1 раз в секунду.
Следующим вопросом станет "а что надо сделать". Ответом станет делитель частоты.
Теперь начинается чистая арифметика. Допустим на ПЛИС подаётся частота 50 МГц, а смену кодов хотим с частотой 1Гц. Значит наш делитель должен поделить в 50 000 000 раз.
Быстренько хватаем калькулятор и набираем значение 50 е+6, затем жмём F5 и получаем код 2FAF080 (можно и F8-считать будет легче). Теперь видно, что нужен делитель в 26 разрядов. Значит параметр "еще больше чем дофига" будет равен 25. Вот теперь описывая синтез надо при достижении этих самых 50 млн, просто один раз сдвинуть регистр сдвига.

_________________
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 10 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

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


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

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y