| Форум РадиоКот https://radiokot.ru/forum/ |
|
| Накопительный бегущий огонь https://radiokot.ru/forum/viewtopic.php?f=60&t=128484 |
Страница 1 из 1 |
| Автор: | ololoshka [ Чт мар 10, 2016 13:56:45 ] |
| Заголовок сообщения: | Накопительный бегущий огонь |
Здравствуйте! Было дано задание: создать бегущий огонек на базе ПЛИС Cyclone IV. Собственно, благодаря мануалам, удалось выполнить задание. Код такой: Код: module LED ( input CLK, output [7:0] LED_Out, input RST ); reg [8:0] count = 8'b1; reg [24:0] ctr = 24'b0; always @(posedge CLK ) begin if (RST == 0) begin ctr = 24'b0; end ctr = ctr + 1; if(ctr == 0) begin count[8:0] <= {count[0], count[8:1]}; end end assign LED_Out = count [7:0]; endmodule Вопрос в другом: как сделать бегущий огонь с накоплением? Нужно чтобы также бежал светодиод, доходил до последнего светодиода ленты и оставался гореть. Затем новый огонек. И повторяться это должно до момента, пока все огни не зажгутся. После этого все начинается заново. Как я понял, нужно оперировать с count, но так и не смог разобраться в том, как реализовать накопление. Прошу помощи. Спасибо! |
|
| Автор: | Meteor [ Чт мар 10, 2016 18:01:43 ] |
| Заголовок сообщения: | Re: Накопительный бегущий огонь |
Можно пойти "влоб". Подготовительные операции: 1) Выписываете все возможные состояния столбиком. 00000000 00000001 00000010 .... 11111110 11111111 2) Подсчитываете их количество, это число будет числом состояний счетчика. Собственно синтез 3) Описывается счетчик на полученное число состояний (максимальное значение будет на 1 меньше числа строк) 4) По показаниям счетчика формируется блок сравнения в условиях которого прописывается код включения светодиодов. 5) работа проверяется либо в железе, либо в симуляторе. |
|
| Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|


