Сохраните входные параметры в регистре 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
— Проигнорируйте триггерное событие и продолжите симуляцию.
Warning
— Проигнорируйте триггерное событие, но отобразите предупреждающее сообщение в Командном окне MATLAB®.
Error
— Отобразите ошибочное диалоговое окно и отключите симуляцию.
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
порт, когда регистр полон. Входные параметры к этому порту должны иметь тот же встроенный тип данных как входные параметры к Pop
и Rst
входные порты.
Когда Dynamic reallocation
выбран, параметр System target file на панели 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 onto full register.
Включите Num
выходной порт, который отслеживает количество записей в настоящее время на очереди. Когда входные параметры к In
порт является значениями с двойной точностью, выходными параметрами от Num
порт является значениями с двойной точностью. В противном случае, выходные параметры от Num
порт является 32-битными значениями беззнаковых целых чисел.
Включите Rst
входной порт, который опорожняет очередь, когда триггер, заданный Trigger type, получен. Входные параметры к этому порту должны иметь тот же встроенный тип данных как входные параметры к Push
и Pop
входные порты.
Сбросьте Out
порт, чтобы обнулить, в дополнение к очистке очереди, когда триггер получен в Rst
входной порт.
Когда вы устанавливаете этот флажок, входные данные сразу доступно в выходном порту блока. Можно выключить прямое сквозное соединение и задержать входные данные дополнительной системой координат путем снятия флажка Allow direct feedthrough.
Порт | Поддерживаемые типы данных |
---|---|
\in |
|
Продвинуть |
|
Поп |
|
Rst |
|
| |
Пустой |
|
Полный |
|
Цифра |
|
Буфер | DSP System Toolbox |
Задержите линию | DSP System Toolbox |
Стек | DSP System Toolbox |