exponenta event banner

Очередь

Сохранить входы в регистре 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.

При установке флажка Разрешить прямой проход и одновременном запуске двух или более портов ввода управления операции выполняются в следующем порядке:

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

Примеры

Пример 1

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

Пример 2

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 входной порт.

Разрешить прямой проход

Если этот флажок установлен, входные данные будут доступны непосредственно на выходном порту блока. Можно отключить прямой канал и задержать входные данные на дополнительный кадр, сняв флажок Разрешить прямой канал.

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

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

В

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

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

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

  • Булев

  • 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
Линия задержкиИнструментарий системы DSP
СтекИнструментарий системы DSP

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

.

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

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