Счетчик оборудования с ограниченным количеством или свободным запуском
Кодер/источники ЛПВП


Блок HDL Counter моделирует свободно работающий, ограниченный по количеству или по модулю аппаратный счетчик, который поддерживает подписанные и неподписанные целочисленные и фиксированные типы данных. Счетчик выдает свое значение для текущего времени выборки. Во время моделирования этот блок не сообщает о предупреждениях или ошибках из-за переполнения. Чтобы сообщить об этих предупреждениях, см. раздел Simulink.restoreDiagnostic.
По умолчанию счетчик не имеет входных портов. Счетчик подсчитывается от начального значения до порогового значения на основе типа Counter, значения Count to и длины Word. Тип выходных данных счетчика зависит от выходных данных счетчика, длины слова и длины дроби.
rst - Порт локального сбросаЛокальный порт сброса для счетчика, который при высоком значении сбрасывает значение счетчика.
Чтобы включить этот порт, установите параметр Local reset port.
Типы данных: Boolean
load - Порт загрузкиПорт загрузки, который при высоком значении устанавливает значение счетчика, load_val.
Чтобы включить этот порт, установите параметр Load ports.
Типы данных: Boolean
load_val - Значение порта загрузкиЗначение данных для загрузки для установки значения счетчика, когда порт загрузки получает высокий входной сигнал.
Чтобы включить этот порт, установите параметр Load ports.
Типы данных: Boolean
enb - Порт включения счетчикаСигнал включения, указывающий, должен ли счетчик отсчитываться от предыдущего значения. Когда этот сигнал высокий, счетчики продолжают работать вверх или вниз в зависимости от направления. Если этот сигнал низкий, счетчик удерживает предыдущее значение.
Чтобы включить этот порт, установите параметр Count enable port.
Типы данных: Boolean
dir - Порт направления подсчетаНаправление подсчета, указывающее, следует ли выполнять подсчет вверх или вниз. Этот порт взаимодействует со значением Step для определения направления подсчета.
1: Это значение является значением по умолчанию, которое приводит к счетчику «вверх». Значение Step добавляется к текущему значению счетчика для вычисления следующего значения.
0: Это значение приводит к снижению счетчика. Значение Step вычитается из текущего значения счетчика для вычисления следующего значения.
Чтобы включить этот порт, установите значение Count direction port.
Типы данных: Boolean
count - Значение счетчикаЭто значение счетчика. По умолчанию, если входные порты не включены, счетчик подсчитывается до значения, определяемого на основе типа счетчика, значения счетчика и длины Word.
Типы данных: int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fixed point
count_hit - Индикатор лимита счетчикаИндикатор предела счетчика, возвращаемый как логический скаляр.
1: указывает, что счетчик достиг предельного значения.
0: указывает, что счетчик не достиг своего предела.
Чтобы включить этот порт, выберите параметр Count hit output port.
Типы данных: Boolean
Counter type - Поведение счетчикаFree running (по умолчанию) | Count limited | ModuloПоведение счетчика, определяющее, следует ли моделировать аппаратный счетчик свободного запуска, счетчика или модуля.
Free running (по умолчанию): счетчик продолжает увеличиваться или уменьшаться на значение Step до сброса.
Count limited: Счетчик увеличивает или уменьшает значение Step до тех пор, пока оно не будет точно равно значению Count to. Если значение Step является таким, что значение count не точно равно значению Count, то оно может продолжать считать пороговое значение, которое определяется длиной слова.
Modulo: Счетчик увеличивается или уменьшается на значение Step до тех пор, пока не достигнет значения Count to. Если значение Step является таким, что значение count не точно равно значению Count, то счетчик переходит к значению, которое определяется значением wrapping step.
Параметр блока:
CountType |
| Текст: символьный вектор |
Значение:
'Free running' | 'Count limited' | 'Modulo' |
По умолчанию:
'Free running' |
Initial value - Значение счетчика после сброса0 (по умолчанию)Значение, на которое сбрасывается счетчик. Значение по умолчанию: 0.
Параметр блока:
CountInit |
| Текст: символьный вектор |
| Значение: целое число, большее или равное нулю |
По умолчанию:
'0' |
Step value - Значение шага для подсчета1 (по умолчанию)Значение, добавляемое к счетчику в каждый момент времени выборки. Значение по умолчанию: 1.
Параметр блока:
CountStep |
| Текст: символьный вектор |
| Значение: целое число, большее или равное нулю |
По умолчанию:
'1' |
Count to value - Пороговое значение счетчика25 (по умолчанию)При использовании Count limited счетчик, если счетчик точно равен Count to value, счетчик перезапускается при начальном значении. Если значение счетчика превышает значение Count to, счетчик продолжает считать пороговое значение, зависящее от длины Word. Значение по умолчанию: 25.
При использовании Modulo счетчик, если счетчик достигает значения Count to, счетчик перезапускается со значением, которое определяется значением шага переноса.
Чтобы включить этот параметр, установите для параметра Counter type значение Count limited или Modulo.
Параметр блока:
CountMax |
| Текст: символьный вектор |
| Значение: целое число, большее или равное нулю |
По умолчанию:
'25' |
Count from - Критерии подсчета из значенияInitial value (по умолчанию) | SpecifyПараметр, задающий начальное значение после пролонгации при использовании Count limited или Free running счетчик. При использовании Modulo счетчик может переходить к значению шага переноса, отличному от значения для подсчета. Если установлено значение Specify, параметр Count from value является начальным значением после пролонгации. Значение по умолчанию: Initial value.
Параметр блока:
CountFromType |
| Текст: символьный вектор |
Значение:
'Initial value' | 'Specify' |
По умолчанию:
'Initial value' |
Count from value - Начальное значение для подсчета от0 (по умолчанию)Значение счетчика после пролонгации, если для параметра Count from установлено значение Specify. Значение по умолчанию - 0.
Параметр блока:
CountFrom |
| Текст: символьный вектор |
Значение:
'Initial value' | 'Specify' |
По умолчанию:
'Initial value' |
Local reset port - Локальный порт для сброса счетчикаoff (по умолчанию) | onПри выборе этого параметра создается локальный порт сброса. rst.
Параметр блока:
CountResetPort |
| Текст: символьный вектор |
Значение:
'off' | 'on' |
По умолчанию:
'off' |
Load ports - Порт для значения нагрузкиoff (по умолчанию) | onПри выборе этого параметра создается порт данных загрузки. load_valи загрузите порт триггера, load.
Параметр блока:
CountLoadPort |
| Текст: символьный вектор |
Значение:
'off' | 'on' |
По умолчанию:
'off' |
Count enable port - Порт для включения подсчетаoff (по умолчанию) | onПри выборе этого параметра создается порт включения счетчика, enb.
Параметр блока:
CountEnbPort |
| Текст: символьный вектор |
Значение:
'off' | 'on' |
По умолчанию:
'off' |
Count direction port - Порт для направления подсчетаoff (по умолчанию) | onПри выборе этого параметра создается порт направления подсчета, dir.
Включение этого параметра отключает параметр выходного порта Count hit.
Параметр блока:
CountDirPort |
| Текст: символьный вектор |
Значение:
'off' | 'on' |
По умолчанию:
'off' |
Count hit output port - Порт для ограничения количестваoff (по умолчанию) | onВыберите этот параметр для активизации порта вывода count_hit.
Включение этого параметра приводит к сбросу параметра Count direction port.
Параметр блока:
CountHitOutputPort |
| Текст: символьный вектор |
Значение:
'off' | 'on' |
По умолчанию:
'off' |
Counter output data is - Тип выходных данных signednessUnsigned (по умолчанию) | SignedТип выходных данных signedness. Значение по умолчанию: Unsigned.
Параметр блока:
CountDataType |
| Текст: символьный вектор |
Значение:
'Unsigned' | 'Signed' |
По умолчанию:
'off' |
Word length - Длина встречного слова8 (по умолчанию)Битовая ширина, включая знаковый бит, для целочисленного счетчика; длина слова для счетчика типа данных с фиксированной точкой. Минимальное значение, если тип выходных данных Unsigned является 1, 2 если Signed. Максимальное значение: 125. Значение по умолчанию: 8.
Параметр блока:
CountWordLen |
| Текст: символьный вектор |
| Значение: целое число, большее или равное единице |
По умолчанию:
'8' |
Fraction length - Длина встречной фракции0 (по умолчанию)Длина фракции типа данных с фиксированной точкой. Значение по умолчанию: 0.
Параметр блока:
CountFracLen |
| Текст: символьный вектор |
| Значение: целое число, большее или равное нулю |
По умолчанию:
'0' |
Sample time - Время выборки счетчика1 (по умолчанию)Время выборки. Значение по умолчанию: 1. Этот параметр недоступен, и блок наследует время выборки от входных портов, когда выбран любой из следующих параметров:
Порт локального сброса
Загрузка портов
Порт включения счетчика
Порт направления подсчета
Параметр блока:
CountSampTime |
| Текст: символьный вектор |
| Значение: целое число, большее или равное единице |
По умолчанию:
'1' |
По умолчанию, если порты управления не включены, счетчик отсчитывается от нуля в свободном режиме. В этом режиме счетчик постепенно увеличивается на единицу в каждом блоке времени выборки до тех пор, пока не достигнет порогового значения. Пороговое значение счетчика рассчитывается как 2^(Word length) - 1. При достижении значения счетчика счетчик сбрасывается в исходное значение.
Поведение счетчика зависит от указанных контрольных портов. Эта таблица показывает приоритет управляющих сигналов и то, как значение счетчика обновляется относительно управляющих сигналов.
Локальный сброс, rst | Триггер нагрузки, load | Подсчет включен, enb | Направление подсчета, dir | Следующее значение счетчика |
|---|---|---|---|---|
| 1 | – | – | – | Начальное значение |
| 0 | 1 | – | – | load_val стоимость |
| 0 | 0 | 0 | – | Текущее значение |
| 0 | 0 | 1 | 1 | Текущее значение + значение шага |
| 0 | 0 | 1 | 0 | Текущее значение - значение шага |
параметр Step value и дополнительный порт направления подсчета, dir, взаимодействие для определения фактического направления подсчета.
dir Значение сигнала | Знак значения шага | Направление фактического подсчета |
|---|---|---|
| 1 | + (положительный) | Вверх |
| 1 | - (отрицательно) | Вниз |
| 0 | + (положительный) | Вниз |
| 0 | - (отрицательно) | Вверх |
На этом рисунке показан режим работы в свободном режиме. В этом примере счетчик имеет длину Word, равную 4. Начальное значение: 2, значение нагрузки - 7, а значение Step равно 1. Когда сигнал Enb высок, счетчик увеличивается на один шаг. Когда сигнал Rst становится высоким, счетчик сбрасывается в исходное значение, 2. При снижении порта Dir счетчик уменьшается от 4 кому 3 на шаге времени 11s. Значение счетчика привязывается к значению нагрузки, когда порт загрузки становится высоким.

Для задания поведения счетчика можно использовать параметр Тип счетчика. Count limited режим счетчика переводит счетчик в исходное значение, когда счетчик точно достигает значения Count to. Если счетчик не достигает значения Count to, оно может превысить это значение. Для счетчика «вверх» значение счетчика может достигать порогового значения, которое вычисляется как 2^(Word length) - 1. Для счетчика с понижением значение счетчика может достигать начального значения. Когда он достигает или точно соответствует этому пороговому значению, счетчик сбрасывает значение, которое определяется значением шага переноса.
Modulo режим счетчика переносит счетчик, когда он достигает или точно соответствует значению Count. Вместо перезапуска при начальном значении счетчик возвращается к значению, которое определяется значением шага переноса. Для счетчика вверх значение шага переноса вычисляется как значение шага - (count to value + 1) + count from value. Для счетчика с понижением значение шага обтекания вычисляется как число от значения - значение шага + (число до значения + 1).
Этот рисунок иллюстрирует Count limited и Modulo режимы работы. В этом примере счетчик имеет длину Word, равную 4, Начальное значение 2, Значение шага 3и Count to value of, 12.

В Count limited режим, по мере достижения значения счетчика 11, он превышает значение Count to и достигает 14. Поскольку пороговое значение равно 15 (2^4-1)счетчик сбрасывает значение, которое определяется значением шага обертывания. При подсчете счетчик превышает начальное значение и может достигать нуля. Затем он сбрасывается до значения, которое определяется значением шага упаковки.
В Modulo режим, по мере достижения значения счетчика 11счетчик сбрасывает значение, которое определяется значением шага обертывания. Значение шага обертки: 3 - (12 + 1) + 2 = -8. Поэтому счетчик сбрасывает значение 3 (11 + (-8). При подсчете вниз, по мере достижения значения подсчета 4счетчик сбрасывает значение, которое определяется значением шага обертывания. Значение шага обертки: 2 - 3 + (12 + 1) = 12. Поэтому счетчик сбрасывает значение 12.
HDL Coder™ предоставляет дополнительные опции конфигурации, которые влияют на реализацию HDL и синтезированную логику.
Этот блок имеет единую архитектуру HDL по умолчанию.
| Общая информация | |
|---|---|
| ConstrainedOutputPipeline | Количество регистров для размещения на выходах путем перемещения существующих задержек в рамках проекта. Распределенная конвейерная обработка не перераспределяет эти регистры. Значение по умолчанию: |
| InputPipeline | Количество входных ступеней трубопровода для вставки в сформированный код. Распределенная конвейерная обработка и конвейерная обработка с ограниченным выходом могут перемещать эти регистры. Значение по умолчанию: |
| OutputPipeline | Количество выходных ступеней трубопровода для вставки в сформированный код. Распределенная конвейерная обработка и конвейерная обработка с ограниченным выходом могут перемещать эти регистры. Значение по умолчанию: |
Если битовая ширина входного сигнала для счетчика HDL превышает предел типа данных, генерируемый код HDL может привести к неправильным результатам моделирования. Для обеспечения большей ширины битов используйте больший тип данных.
Блок не поддерживает векторы. Для входов и выходов блоков поддерживаются только скалярные типы.
Значение нагрузки, используемое в Modulo режим счетчика должен находиться в диапазоне значений Count from и Count, чтобы избежать несоответствий моделирования.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.