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

две очереди

СообщениеДобавлено: Пт май 30, 2008 5:03 am
Alexander756
Есть две очереди из чисел 0 и 1. Если на выходе первой очереди 1 и на входе второй очереди тоже 1 то вторая очередь должна задержаться пока на выходе первой очереди не появится 0

Re: две очереди

СообщениеДобавлено: Пт май 30, 2008 3:43 pm
IvanLis
Alexander756 писал(а):Есть две очереди из чисел 0 и 1. Если на выходе первой очереди 1 и на входе второй очереди тоже 1 то вторая очередь должна задержаться пока на выходе первой очереди не появится 0


А длина очередей фиксированная или бесконечная?

Если фиксированная, то можно сделать задержку через регистр, запустить сигнал по кругу и когда нужно удалять из каждой очереди 1-й элемент, пока длина массива не станет =0.

СообщениеДобавлено: Пт май 30, 2008 8:12 pm
Alexander756
Длинна очереди фиксированная, она сразу заполняется 0, а потом уже случайным образом 0 или 1 в очередь все время добавляется один элемент и один удаляется. Получется бегущая дорожка если вывести индикатор на панель, так вот если в первой дорожке горит последний элемент то во второй дорожке первый елемент загораться не должен, а только тогда когда в первой дорожке последний элемент погаснет. Теряться во второй дорожке елемент не должен. Ситуация отображенная на рисунке не должна появляться. Синий светодиод должен загореться когда погаснет красный

СообщениеДобавлено: Пт май 30, 2008 10:26 pm
егра
Наверное это массив а не очередь...

СообщениеДобавлено: Пт май 30, 2008 11:42 pm
Alexander756
Массив для отображения на экране бегущей дорожки. Может я неправильно делаю, может это все можно запихнуть в один массив. Примерно надо чтобы одна половина дорожки была из красных светодиодов а вторая из красных и синих.

СообщениеДобавлено: Сб май 31, 2008 1:57 am
егра
Я имею ввиду имеешь ли ты ввиду на самом деле очередь или всё таки массив. Может выложишь скрин блок диаграммы.

Очередь это Queue или FIFO, а массив это Array.

Понимаешь, от этого зависит ответ на твой вопрос.

СообщениеДобавлено: Сб май 31, 2008 2:49 am
Alexander756
Вот фрагмент блок диаграммы. Case Structure одинаковые, я на одной отобразил True на другой False

СообщениеДобавлено: Сб май 31, 2008 6:03 pm
егра
Да уж, намутил конечно. Я думаю много лишнего и всё сильно запутано. А откуда поступают входные сигналы?
Должно хватить одной очереди из двух входных сигналов (кластер из двух Bool-элементов) для синхронизированного получения входных сигналов из параллельного потока и два массива со сдвиговыми регистрами.

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

Но массивы конечно нужны и причём обязательно в сдвиговых регистрах (или как у тебя Feedback Node, то же самое).

СообщениеДобавлено: Сб май 31, 2008 7:24 pm
Alexander756
Я не спорю, может и намутил, только начал изучать :)
Сигналы поступают, можно сказать, генерируются случайным образом.
объясню немного подругому :D см рис.
Надо чтобы на выходе их можно было разделить, первый элемент удалился а второй пошел дальше или наоборот (смотря какой выход первый)