Сохранить входы в регистре FIFO
Управление сигналами/буферы
dspbuff3
Блок Queue сохраняет последовательность входных выборок в регистре FIFO. Емкость регистра задается параметром Register size, а входами могут быть скаляры, векторы или матрицы.
Блок нажимает на вход на In порт в конце очереди при получении триггерного события в Push порт. Когда событие триггера получено в Pop , блок выводит первый элемент из очереди и удерживает Out порт с таким значением. Первый вход, который должен быть перемещен в очередь, всегда является первым, который должен быть выключен.

Событие триггера на необязательном этапе Rst порт очищает содержимое очереди. При выборе Clear output port on reset (Очистить выходной порт при сбросе) происходит событие триггера в Rst порт очищает очередь и устанавливает значение в Out порт в ноль. Этот параметр также применяется при повторном включении отключенной подсистемы, содержащей блок Queue; Out в этом случае значение порта сбрасывается на ноль только при выборе Clear output port on reset.
При установке флажка Разрешить прямой проход и одновременном запуске двух или более портов ввода управления операции выполняются в следующем порядке:
Rst
Push
Pop
При снятии флажка Разрешить прямой проход (Allow direct feedthrough) и одновременном запуске двух или более портов ввода управления операции выполняются в следующем порядке:
Rst
Pop
Push
Скорость триггерного сигнала должна совпадать со скоростью входного сигнала данных. Вы указываете инициирующее событие для Push, Pop, and Rst порты с помощью всплывающего меню Trigger type:
Rising edge - запускает выполнение блока, когда вход триггера выполняет одно из следующих действий:
Увеличивается от отрицательного значения до положительного значения или нуля
Поднимается от нуля до положительного значения, где подъем не является продолжением подъема от отрицательного значения до нуля; см. следующий рисунок

Falling edge - запускает выполнение блока, когда вход триггера выполняет одно из следующих действий:
Падает от положительного значения до отрицательного значения или нуля
Падает от нуля до отрицательного значения, где падение не является продолжением падения от положительного значения до нуля; см. следующий рисунок

Either edge - Запускает выполнение блока, когда входным сигналом триггера является Rising edge или Falling edge (как описано выше).
Non-zero sample - Запускает выполнение блока в каждый момент времени выборки, когда входной сигнал триггера не равен нулю.
Примечание
Если модель содержит какие-либо ссылочные модели, в которых используется блок Queue с параметром Push to full register, равным Dynamic reallocationмоделирование модели верхнего уровня в режиме Simulink ® Accelerator невозможно.
Параметр Push on full register определяет поведение блока при получении триггера в Push порт, но регистр заполнен. Параметр Pop empty register определяет поведение блока при получении триггера в Pop порт, но регистр пуст. Для обоих случаев доступны следующие опции:
Ignore - игнорировать событие триггера и продолжить моделирование.
Warning - игнорирование события триггера, но отображение предупреждающего сообщения в окне команд MATLAB ®.
Error - Отображение диалогового окна ошибки и завершение моделирования.
Примечание
Параметры Push to full register и Pop empty register являются диагностическими параметрами. Как и все диагностические параметры в диалоговом окне Параметры конфигурации (Configuration Parameters), они имеют значение Ignore в коде, сгенерированном для этого блока программным обеспечением генерации кода Simulink Coder™.
Параметр Push on full register дополнительно предлагает опцию Dynamic reallocation, которая динамически изменяет размер регистра, принимая столько дополнительных входных данных, сколько позволяет память. Чтобы узнать, сколько элементов находится в очереди в данный момент времени, включите Num путем выбора параметра Show number of register entries port.
Примечание
Когда Dynamic reallocation выбран, параметр системного целевого файла на панели Создание кода (Code Generation) диалогового окна Параметры конфигурации модели (Model Configuration Parameters) должен иметь значение grt_malloc.tlc – Generic Real-Time Target with dynamic memory allocation.
В таблице ниже показана операция блока очереди для размера регистра 4, Тип триггера Either edgeи сброс выходного порта при включенном сбросе. Поскольку в этом примере блок запускается как на поднимающихся, так и на опускающихся краях, каждый переход от 1 кому 0 или 0 кому 1 в Push, Pop, и Rst столбцы ниже представляют отдельное событие триггера. A 1 в Empty столбец указывает пустую очередь, в то время как 1 в Full столбец указывает на полную очередь.
В | Продвинуться | Поп | Rst | Очередь | Из | Пустой | Полный | Цифра |
|---|---|---|---|---|---|---|---|---|
1 | 0 | 0 | 0 |
| 0 | 1 | 0 | 0 |
2 | 1 | 0 | 0 |
| 0 | 0 | 0 | 1 |
3 | 0 | 0 | 0 |
| 0 | 0 | 0 | 2 |
4 | 1 | 0 | 0 |
| 0 | 0 | 0 | 3 |
5 | 0 | 0 | 0 |
| 0 | 0 | 1 | 4 |
6 | 0 | 1 | 0 |
| 2 | 0 | 0 | 3 |
7 | 0 | 0 | 0 |
| 3 | 0 | 0 | 2 |
8 | 0 | 1 | 0 |
| 4 | 0 | 0 | 1 |
9 | 0 | 0 | 0 |
| 5 | 1 | 0 | 0 |
10 | 1 | 0 | 0 |
| 5 | 0 | 0 | 1 |
11 | 0 | 0 | 0 |
| 5 | 0 | 0 | 2 |
12 | 1 | 0 | 1 |
| 0 | 0 | 0 | 1 |
Обратите внимание, что на последнем показанном шаге Push и Rst порты запускаются одновременно. Rst триггер имеет приоритет, и очередь сначала очищается, а затем толкается.
dspqdemo В примере приведен другой пример работы блока Queue.
Количество записей, которые может хранить регистр FIFO.
Тип события, запускающего выполнение блока. Скорость триггерного сигнала должна совпадать со скоростью входного сигнала данных.
Ответ на триггер, полученный в Push порт, когда регистр заполнен. Входы в этот порт должны иметь тот же встроенный тип данных, что и входы в Pop и Rst входные порты.
Когда Dynamic reallocation выбран, параметр системного целевого файла на панели Создание кода (Code Generation) диалогового окна Параметры конфигурации модели (Model Configuration Parameters) должен иметь значение grt_malloc.tlc – Generic Real-Time Target with dynamic memory allocation.
Ответ на триггер, полученный в Pop порт, когда регистр пуст. Входы в этот порт должны иметь тот же встроенный тип данных, что и входы в Push и Rst входные порты.
Включить Empty порт вывода, высокий (1), когда очередь пуста и мала (0) в противном случае.
Включить Full порт вывода, высокий (1), когда очередь заполнена, и низкая (0) в противном случае. Full порт остается низким при выборе Dynamic reallocation из параметра Push to full register.
Включить Num порт вывода, который отслеживает количество записей, находящихся в настоящее время в очереди. При вводе в In port - значения двойной точности, выходы из Num порт - значения двойной точности. В противном случае выходные данные Num порт - это 32-разрядные целочисленные значения без знака.
Включить Rst входной порт, который очищает очередь при получении триггера, указанного типом Trigger. Входы в этот порт должны иметь тот же встроенный тип данных, что и входы в Push и Pop входные порты.
Сбросить Out port to zero, в дополнение к очистке очереди, когда триггер получен в Rst входной порт.
Если этот флажок установлен, входные данные будут доступны непосредственно на выходном порту блока. Можно отключить прямой канал и задержать входные данные на дополнительный кадр, сняв флажок Разрешить прямой канал.
| Порт | Поддерживаемые типы данных |
|---|---|
В |
|
Продвинуться |
|
Поп |
|
Rst |
|
Из |
|
Пустой |
|
Полный |
|
Цифра |
|
| Буфер | Инструментарий системы DSP |
| Линия задержки | Инструментарий системы DSP |
| Стек | Инструментарий системы DSP |