Очередь

Сохраните входные параметры в регистре 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, и два или больше из входных портов управления инициированы одновременно шаг, операции выполняются в следующем порядке:

  1. Rst

  2. Push

  3. Pop

Когда вы снимаете флажок Allow direct feedthrough, и два или больше из входных портов управления инициированы одновременно шаг, операции выполняются в следующем порядке:

  1. Rst

  2. Pop

  3. 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.

Примеры

Пример 1

Приведенная ниже таблица иллюстрирует операцию блока 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 более приоритетен, и очередь сначала очищена и затем продвинута.

Пример 2

Пример dspqdemo обеспечивает другой пример операции блока Queue.

Параметры

Register size

Количество записей, которые может содержать регистр FIFO.

Trigger type

Тип события, которое инициировало выполнение блока. Уровень триггерного сигнала должен совпасть с уровнем входа сигнала данных.

Push onto full register

Ответ на триггер получил в порте 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 empty register

Ответ на триггер получил в порте Pop, когда регистр пуст. Входные параметры к этому порту должны иметь тот же встроенный тип данных как входные параметры к входным портам Rst и Push.

Show empty register indicator port

Включите выходной порт Empty, который высок (1), когда очередь является пустой, и низкой (0) в противном случае.

Show full register indicator port

Включите выходной порт Full, который высок (1), когда очередь является полной, и низкой (0) в противном случае. Порт Full остается низким, когда вы выбираете Dynamic reallocation из параметра Push onto full register.

Show number of register entries port

Включите выходной порт Num, который отслеживает количество записей в настоящее время на очереди. Когда входные параметры к порту In являются значениями с двойной точностью, выходные параметры от порта Num являются значениями с двойной точностью. В противном случае выходные параметры от порта Num являются 32-битными значениями беззнаковых целых чисел.

Show reset port to clear internal stack buffer

Включите входной порт Rst, который освобождает очередь, когда триггер, заданный Trigger type, получен. Входные параметры к этому порту должны иметь тот же встроенный тип данных как входные параметры к входным портам Pop и Push.

Clear output port on reset

Сбросьте порт Out, чтобы обнулить, в дополнение к очистке очереди, когда триггер будет получен во входном порту Rst.

Allow direct feedthrough

Когда вы устанавливаете этот флажок, входные данные сразу доступно в выходном порту блока. Можно выключить прямое сквозное соединение и задержать входные данные дополнительным кадром путем снятия флажка Allow direct feedthrough.

Поддерживаемые типы данных

ПортПоддерживаемые типы данных

\in

  • Плавающая точка двойной точности

  • Плавающая точка с одинарной точностью

  • Фиксированная точка (подписанный и без знака)

  • Булевская переменная

  • 8-, 16-, и 32-битные целые числа со знаком

  • 8-, 16-, и 32-битное беззнаковое целое

Продвинуть

  • Плавающая точка двойной точности

  • Плавающая точка с одинарной точностью

  • Булевская переменная

  • 8-, 16-, и 32-битные целые числа со знаком

  • 8-, 16-, и 32-битное беззнаковое целое

    Входные параметры к этому порту должны иметь тот же встроенный тип данных как входные параметры к входным портам Pop и Rst

Поп

  • Плавающая точка двойной точности

  • Плавающая точка с одинарной точностью

  • Булевская переменная

  • 8-, 16-, и 32-битные целые числа со знаком

  • 8-, 16-, и 32-битное беззнаковое целое

    Входные параметры к этому порту должны иметь тот же встроенный тип данных как входные параметры к входным портам Push и Rst.

Rst

  • Плавающая точка двойной точности

  • Плавающая точка с одинарной точностью

  • Булевская переменная

  • 8-, 16-, и 32-битные целые числа со знаком

  • 8-, 16-, и 32-битное беззнаковое целое

    Входные параметры к этому порту должны иметь тот же встроенный тип данных как входные параметры к входным портам Нажатия и Попа.

  • Плавающая точка двойной точности

  • Плавающая точка с одинарной точностью

  • Фиксированная точка (подписался только),

  • Булевская переменная

  • 8-, 16-, и 32-битные целые числа со знаком

  • 8-, 16-, и 32-битное беззнаковое целое

Пустой

  • Плавающая точка двойной точности

  • Булевская переменная

Полный

  • Плавающая точка двойной точности

  • Булевская переменная

Цифра

  • Плавающая точка двойной точности

    Блок выводит значение с плавающей точкой с двойной точностью в этом порте, когда тип данных порта In является двойной точностью, с плавающей точкой.

  • 32-битное беззнаковое целое

    Блок выводит 32-битное значение беззнаковых целых чисел в этом порте, когда тип данных порта In - что-либо кроме с двойной точностью, с плавающей точкой.

Смотрите также

БуферDSP System Toolbox
Задержите строкуDSP System Toolbox
СтекDSP System Toolbox

Расширенные возможности

Преобразование фиксированной точки
Преобразуйте алгоритмы с плавающей точкой в фиксированную точку с помощью Fixed-Point Designer™.

Представлено до R2006a