Queue

Сохраните входы в регистре FIFO

Библиотека

Управление сигналами/буферы

dspbuff3

  • Queue block

Описание

Блок 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, вы не можете симулировать модель верхнего уровня в Simulink® Режим Accelerator.

Параметр Push onto full register задает поведение блока, когда триггер получен в Push порт, но регистр полон. Параметр Pop empty register задает поведение блока, когда триггер получен в Pop порт, но регистр пуст. Для обоих случаев доступны следующие опции:

  • Ignore - Игнорируйте событие триггера и продолжите симуляцию.

  • Warning - Игнорируйте событие триггера, но отобразите предупреждающее сообщение в MATLAB® Командное окно.

  • Error - Отобразите диалоговое окно ошибки и завершите симуляцию.

Примечание

Параметры Push onto full register и Pop empty register являются параметрами диагностики. Как и все параметры диагностики в диалоговом окне Параметров конфигурации, они установлены в Ignore в коде, сгенерированном для этого блока программным обеспечением Simulink Coder™ генерации кода.

Параметр Push onto full register дополнительно предлагает опцию Dynamic reallocation, которая динамически изменяет размер регистра, чтобы принять столько дополнительных входов, сколько позволяет память. Чтобы узнать, сколько элементов находится в очереди в установленный момент времени, включите Num выходной порт путем выбора параметра Show number of register entries port.

Примечание

Когда Dynamic reallocation выбран, параметр System target file на панели Code Generation диалогового окна Model Параметры Конфигурации должен быть установлен в 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 столбцы ниже представляют отдельное событие триггера. 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 порты срабатывают одновременно. The Rst триггер имеет приоритет, и очередь сначала очищается, а затем выталкивается.

Пример 2

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

Параметры

Register size

Количество записей, которые могут храниться в реестре FIFO.

Trigger type

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

Push onto full register

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

Когда Dynamic reallocation выбран, параметр System target file на панели Code Generation диалогового окна Model Параметры Конфигурации должен быть установлен в grt_malloc.tlc – Generic Real-Time Target with dynamic memory allocation.

Pop empty register

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

Show empty register indicator port

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

Show full register indicator port

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

Show number of register entries port

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

Show reset port to clear internal stack buffer

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

Clear output port on reset

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

Allow direct feedthrough

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

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

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

В

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

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

  • Фиксированная точка (со знаком и без знака)

  • Булев

  • 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-битные беззнаковые целые числа

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

Из

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

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

  • Фиксированная точка (только со знаком)

  • Булев

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

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

Пустой

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

  • Булев

Полный

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

  • Булев

Цифра

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

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

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

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

См. также

БуферDSP System Toolbox
Линия задержкиDSP System Toolbox
СтекDSP System Toolbox

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

.

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

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