Сохраните входные параметры в регистре 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.
Когда вы устанавливаете флажок Allow direct feedthrough, и два или больше из входных портов управления инициированы одновременно шаг, операции выполняются в следующем порядке:
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 onto full register к Dynamic reallocation
, вы не можете моделировать свою модель верхнего уровня в Режиме Accelerator Simulink®.
Параметр Push onto full register задает поведение блока, когда триггер получен в порте Push
, но регистр полон. Параметр Pop empty register задает поведение блока, когда триггер получен в порте Pop
, но регистр пуст. Следующие опции доступны для обоих случаев:
Ignore
— Проигнорируйте триггерное событие и продолжите симуляцию.
Предупреждение
Проигнорируйте триггерное событие, но отобразите предупреждающее сообщение в Командном окне MATLAB®.
Ошибка
Отобразите ошибочное диалоговое окно и отключите симуляцию.
Push onto full register и параметры Pop empty register являются диагностическими параметрами. Как все диагностические параметры на диалоговом окне Configuration Parameters, они установлены в Ignore
в коде, сгенерированном для этого блока программным обеспечением генерации кода Simulink Coder™.
Параметр Push onto full register дополнительно предлагает опцию Dynamic reallocation, которая динамически изменяет размер регистра, чтобы принять как многие дополнительные входные параметры как разрешения на память. Чтобы узнать, сколько элементов находится на очереди в установленный срок, включите выходной порт Num
путем выбора параметра Show number of register entries port.
Когда Dynamic reallocation
выбран, параметр System target file на панели Code Generation диалогового окна Model Configuration Parameters должен быть установлен на grt_malloc.tlc – Generic Real-Time Target with dynamic memory allocation
.
Приведенная ниже таблица иллюстрирует операцию блока Queue для Register size 4
, Trigger type Either edge
, и Clear output port on reset включил. Поскольку блок включает и возрастающие и падающие ребра в этом примере, каждом переходе от 1
до 0
или 0
к 1
в Push
, Pop
, и столбцы Rst
ниже представляют отличное триггерное событие. 1
в столбце Empty
указывает на пустую очередь, в то время как 1
в столбце Full
указывает на полную очередь.
\in | Продвинуть | Поп | 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
, когда регистр полон. Входные параметры к этому порту должны иметь тот же встроенный тип данных как входные параметры к входным портам Rst
и Pop
.
Когда Dynamic reallocation
выбран, параметр System target file на панели Code Generation диалогового окна Model Configuration Parameters должен быть установлен на grt_malloc.tlc – Generic Real-Time Target with dynamic memory allocation
.
Ответ на триггер получил в порте Pop
, когда регистр пуст. Входные параметры к этому порту должны иметь тот же встроенный тип данных как входные параметры к входным портам Rst
и Push
.
Включите выходной порт Empty
, который высок (1
), когда очередь является пустой, и низкой (0
) в противном случае.
Включите выходной порт Full
, который высок (1
), когда очередь является полной, и низкой (0
) в противном случае. Порт Full
остается низким, когда вы выбираете Dynamic reallocation
из параметра Push onto full register.
Включите выходной порт Num
, который отслеживает количество записей в настоящее время на очереди. Когда входные параметры к порту In
являются значениями с двойной точностью, выходные параметры от порта Num
являются значениями с двойной точностью. В противном случае выходные параметры от порта Num
являются 32-битными значениями беззнаковых целых чисел.
Включите входной порт Rst
, который освобождает очередь, когда триггер, заданный Trigger type, получен. Входные параметры к этому порту должны иметь тот же встроенный тип данных как входные параметры к входным портам Pop
и Push
.
Сбросьте порт Out
, чтобы обнулить, в дополнение к очистке очереди, когда триггер будет получен во входном порту Rst
.
Когда вы устанавливаете этот флажок, входные данные сразу доступно в выходном порту блока. Можно выключить прямое сквозное соединение и задержать входные данные дополнительным кадром путем снятия флажка Allow direct feedthrough.
Порт | Поддерживаемые типы данных |
---|---|
\in |
|
Продвинуть |
|
Поп |
|
Rst |
|
| |
Пустой |
|
Полный |
|
Цифра |
|
Буфер | DSP System Toolbox |
Задержите строку | DSP System Toolbox |
Стек | DSP System Toolbox |