Свободно работающий или ограниченный счетчик оборудования
HDL-кодер/Источники
Блок HDL Counter моделирует свободно работающий, ограниченный количеством или по модулю аппаратный счетчик, который поддерживает подписанные и беззнаковые целочисленные и типы данных с фиксированной точкой. Счетчик излучает свое значение для текущего шага расчета. Во время симуляции этот блок не сообщает о предупреждениях или ошибках из-за переноса при переполнении. Чтобы сообщить об этих предупреждениях, см. Simulink.restoreDiagnostic
.
По умолчанию счетчик не имеет входных портов. Счетчик подсчитывает от начального значения до порогового значения на основе Counter type, Count to value и Word length. Тип выходных данных счетчика зависит от Counter output data, Word length и Fraction length.
rst
- Локальный порт сбросаЛокальный порт сброса для счетчика, который при высоком значении сбрасывает значение счетчика.
Чтобы включить этот порт, установите Local reset port.
Типы данных: Boolean
load
- Загрузочный портЗагрузите порт, который, когда высокий устанавливает счетчик на значение нагрузки, load_val
.
Чтобы включить этот порт, установите Load ports.
Типы данных: Boolean
load_val
- Загрузка значения портаЗначение данных для загрузки для установки значения счетчика, когда высокий вход передается в порт нагрузки.
Чтобы включить этот порт, установите Load ports.
Типы данных: Boolean
enb
- Счетчик включения портаВключите сигнал, который определяет, должен ли счетчик отсчитываться от предыдущего значения. Когда этот сигнал высок, счетчики счетчиков продолжаются вверх или вниз в зависимости от направления. Когда этот сигнал низок, счетчик удерживает предыдущее значение.
Чтобы включить этот порт, установите Count enable port.
Типы данных: Boolean
dir
- Счетчик направления портаНаправление отсчета, определяющее необходимость подсчета или отсчета. Этот порт взаимодействует с Step value, чтобы определить направление отсчета.
1
: Это значение является значением по умолчанию, которое приводит к повышению счетчика. Для вычисления следующего значения к текущему значению счетчика добавляется Step value.
0
: Это значение приводит к уменьшению счетчика. Для вычисления следующего значения из текущего значения счетчика вычитается Step value.
Чтобы включить этот порт, установите Count direction port.
Типы данных: Boolean
count
- Значение счетчикаЭто значение счетчика. По умолчанию, если вы не активируете входные порты, счетчик подсчитывает до значения, которое определяется на основе Counter type, Count to value и Word length.
Типы данных: 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 value до сброса.
Count limited
: Счетчик увеличивается или уменьшается на Step value, пока он не будет в точности равен Count to value. Если Step value значение таково, что значение счетчика не точно равняется Count to value, то оно может продолжить подсчет до порогового значения, которое определяется размером слова.
Modulo
: Счетчик увеличивается или уменьшается на Step value, пока не достигнет Count to value. Если значение Step value таково, что значение счетчика не точно равняется Count to value, то счетчик переносится к значению, которое определяется значением шага переноса.
Параметры блоков:
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, счетчик перезапускается в Initial value. Если значение счетчика превышает Count to value, счетчик продолжает подсчет до порогового значения, которое зависит от Word length. Значение по умолчанию является 25
.
Когда вы используете Modulo
счетчик, если счетчик достигает Count to value, счетчик перезапускается со значением, которое определяется значением шага переноса.
Чтобы включить этот параметр, установите 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 output port.
Параметры блоков:
CountDirPort |
Тип: Вектор символов |
Значение:
'off' | 'on' |
По умолчанию:
'off' |
Count hit output port
- Порт для предела счетчикаoff
(по умолчанию) | on
Выберите этот параметр, чтобы включить count_hit выходной порт.
Включение этого параметра очищает параметр Count direction port.
Параметры блоков:
CountHitOutputPort |
Тип: Вектор символов |
Значение:
'off' | 'on' |
По умолчанию:
'off' |
Counter output data is
- Сигнальность типа выходных данныхUnsigned
(по умолчанию) | Signed
Выходной тип данных signedness. Значение по умолчанию является Unsigned
.
Параметры блоков:
CountDataType |
Тип: Вектор символов |
Значение:
'Unsigned' | 'Signed' |
По умолчанию:
'off' |
Word length
- Длина встречного слова8
(по умолчанию)Ширина бита, включая бит знака, для целочисленного счетчика; размер слова для счетчика типа данных с фиксированной точкой. Минимальное значение, если Output data type Unsigned
является 1
, 2
если Signed
. Максимальное значение 125
. Значение по умолчанию является 8
.
Параметры блоков:
CountWordLen |
Тип: Вектор символов |
Значение: Целое число, больше или равное единице |
По умолчанию:
'8' |
Fraction length
- Длина дроби счетчика0
(по умолчанию)Длина дроби типа данных с фиксированной точкой. Значение по умолчанию является 0
.
Параметры блоков:
CountFracLen |
Тип: Вектор символов |
Значение: Целое число, больше или равное нулю |
По умолчанию:
'0' |
Sample time
- Время расчета счетчика1
(по умолчанию)Шаг расчета. Значение по умолчанию является 1
. Этот параметр недоступен, и блок наследует свой шаг расчета от портов входа, когда выбран любой из этих параметров:
Local reset port
Load ports
Count enable port
Count direction port
Параметры блоков:
CountSampTime |
Тип: Вектор символов |
Значение: Целое число, больше или равное единице |
По умолчанию:
'1' |
По умолчанию, когда вы не активируете порты управления, счетчик отсчитывает вверх с нуля в свободно работающем режиме. В этом режиме счетчик шагов по одному на каждом блоке шагу расчета пока не достигнет порога значения. Значение порога отсчета вычисляется как 2^(Word length) - 1
. Когда он достигает значения счетчика, счетчик сбрасывается до начального значения.
Поведение счетчика зависит от заданных портов управления. Эта таблица показывает приоритет управляющих сигналов и то, как значение счетчика обновляется относительно управляющих сигналов.
Локальный сброс, rst | Загрузка триггера, load | Счетчик enable, 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 length 4
. Это Initial value 2
, значение нагрузки 7
, и Step value 1
. Когда сигнал Enb высок, счетчик увеличивается на шаги одного. Когда Rst сигнал становится высоким, счетчик сбрасывается до начального значения, 2
. Когда порт Dir становится низким, счетчик уменьшается от 4
на 3
в временной шаг 11s
. Значение счетчика привязывается к значению нагрузки, когда порт Load становится высоким.
Можно использовать параметр Counter type, чтобы задать поведение счетчика. The Count limited
режим счетчика преобразует счетчик в начальное значение, когда счетчик точно достигает Count to value. Если счетчик точно не достигает Count to value, он может превысить это значение. Для счетчика вверх значение счетчика может достигнуть порогового значения, которое вычисляется как 2^(Word length) - 1
. Для счетчика вниз значение счетчика может достигнуть Initial value. Когда он достигает или точно соответствует этому порогу значению, счетчик сбрасывается к значению, которое определяется переносом значением шага.
The Modulo
режим счетчика переносит счетчик, когда он достигает или точно соответствует Count to value. Вместо перезапуска с начальным значением счетчик оборачивается назад к значению, которое определяется значением шага переноса. Для счетчика вверх значение шага переноса вычисляется как значение шага - (отсчет до значения + 1) + отсчет от значения. Для счетчика вниз значение шага переноса вычисляется как количество от значения - значение шага + (количество до значения + 1).
Этот рисунок иллюстрирует Count limited
и Modulo
режимы работы. В этом примере счетчик имеет Word length 4
, Initial value из 2
, Step value из 3
, и Count to value 12
.
В Count limited
mode, когда значение счетчика достигает 11
, он превышает Count to value и достигает 14
. Когда пороговое значение 15 (2^4-1)
счетчик сбрасывается на значение, которое определяется переносом значением шага. При отсчете счетчик превышает Initial value и может достигать нуля. Затем оно сбрасывается к значению, которое определяется переносом значением шага.
В Modulo
mode, когда значение счетчика достигает 11
счетчик сбрасывается на значение, которое определяется переносом значением шага. Значение шага переноса 3 - (12 + 1) + 2 = -8
. Поэтому счетчик сбрасывается на значение 3
(11 + (-8)
. При отсчете, когда значение счетчика достигает 4
счетчик сбрасывается на значение, которое определяется переносом значением шага. Значение шага переноса 2 - 3 + (12 + 1) = 12
. Поэтому счетчик сбрасывается на значение 12
.
HDL Coder™ предоставляет дополнительные опции строения, которые влияют на реализацию HDL и синтезированную логику.
Этот блок имеет одну архитектуру HDL по умолчанию.
Общая информация | |
---|---|
ConstrainedOutputPipeline | Количество регистров для размещения на выходах путем перемещения существующих задержек в рамках вашего проекта. Распределённая конвейеризация не перераспределяет эти регистры. Значение по умолчанию является |
InputPipeline | Количество входных этапов конвейера для вставки в сгенерированный код. Распределённая конвейеризация и ограниченная выходная конвейеризация могут перемещать эти регистры. Значение по умолчанию является |
OutputPipeline | Количество выходных этапов конвейера для вставки в сгенерированный код. Распределённая конвейеризация и ограниченная выходная конвейеризация могут перемещать эти регистры. Значение по умолчанию является |
Если битовая ширина входного сигнала в HDL Counter превышает предел типа данных, сгенерированный HDL-код может привести к неправильным результатам симуляции. Чтобы использовать большую ширину бита, используйте больший тип данных.
Блок не поддерживает векторы. Для входов и выходов скаляра поддерживаются только типы блока.
Значение нагрузки, используемое в Modulo
режим счетчика должен находиться в области значений Count from и Count to value, чтобы избежать несоответствий симуляции.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.