Сохраняет последовательность входа отсчетов в первом, первом (FIFO) регистре
HDL-кодер/HDL-оперативная память
Блок HDL FIFO сохраняет последовательность входа отсчетов в первом регистре (FIFO). Данные, записанные первыми в реестр FIFO, выходят первыми. Реализация блока напоминает модуль FIFO в аппаратных платформах по функциональности и поведению.
In
- Входной сигнал данныхscalar
Входной сигнал данных в блок FIFO. Когда вы записываете данные в FIFO, самые новые данные выталкиваются в конец реестра FIFO. Блок выталкивает последующие вводы данных ниже этой записи.
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| Boolean
| fixed point
Push
- Запись управляющего сигналаscalar
Когда этот порт получает значение 1
блок нажимает вход в In
порт в конец регистра FIFO.
Типы данных: Boolean
Pop
- Считайте управляющий сигналscalar
Когда этот порт получает значение 1
блок выводит первый элемент из реестра FIFO и удерживает Out
порт при этом значении.
Типы данных: Boolean
Примечание
Если два или более входных портов управления срабатывают в один и тот же временной шаг, сначала выполняется всплывающая операция, а затем операция push.
Out
- Выходной сигнал данныхscalar
Выходной сигнал данных от блока FIFO. Когда вы считываете данные из FIFO, данные, которые вы вначале записали в реестр FIFO, выходят из FIFO и удерживаются на выходе.
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| Boolean
| fixed point
Empty
- Выходной сигнал данныхscalar
Управляющий сигнал, выводимый из FIFO, который становится 1
когда регистр FIFO пуст и не содержит вводов данных.
Чтобы включить этот порт, Show empty register indicator port (Empty) должны быть выбраны.
Типы данных: Boolean
Full
- Выходной сигнал данныхscalar
Управляющий сигнал, выводимый из FIFO, который становится 1
когда регистр FIFO полон и не может взять больше вводов данных.
Чтобы включить этот порт, Show full register indicator port (Full) должны быть выбраны.
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| Boolean
| fixed point
Num
- Количество записейscalar
Количество вводов данных, которые в данный момент находятся в реестре FIFO. Num шагов по 1
для всех данных, которые вы записываете в FIFO. Num сокращения по 1
для всех данных, считанных из FIFO.
Чтобы включить этот порт, Show number of entries register port (Num) должны быть выбраны.
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| Boolean
| fixed point
Register size
- Количество записей10
(по умолчанию)Укажите количество записей, которые могут храниться в реестре FIFO. Значение по умолчанию для Register size является 10
. Минимальное значение для Register size 4
.
Параметры блоков:
fifo_size
|
Тип: Вектор символов |
Значение: Целое число, больше или равное четырем |
По умолчанию:
'10'
|
Mode
- Операция'Classic'
(по умолчанию) | 'FWFT'
Задайте режим операции для FIFO. По умолчанию для Mode задано значение Classic
. Вы видите, что значок блока отображается Classic FIFO
. Можно изменить Mode на FWFT
. При изменении Mode отображается значок блока FWFT FIFO
. При помощи FWFT
можно искать и видеть первое слово, записанное в реестр FIFO, не делая запроса на чтение. Режим FWFT особенно полезен, когда вы применяете противодавление с AXI4-Stream интерфейсами.
Параметры блоков:
mode
|
Тип: Вектор символов |
Значение:
'Classic' | 'FWFT' | |
По умолчанию:
'Classic'
|
The ratio of output sample time to input sample time
- Коэффициент частоты дискретизации1
(по умолчанию)Задайте отношение выхода шага расчета к входным шагам расчета. Коэффициент по умолчанию является 1
, что означает, что входы In
и Push
, и выходы Out
и Pop
, запускать с той же частотой дискретизации. Входы и выходы могут выполняться в разное шаги расчета. Используйте положительное целое или 1/N
, где N
является положительным целым числом. Для примера, если вы вводите 1/2
, выходной шаг расчета составляет половину входного шага расчета, или выходы выполняются быстрее. The Full
, Empty
, и Num
сигналы запускаются с более высокой скоростью.
Параметры блоков:
ratio
|
Тип: Вектор символов |
Значение: Целое число, больше или равное единице |
По умолчанию:
'1'
|
Push onto full register
- условие переполнения'Warning'
(по умолчанию) | 'Ignore'
| 'Error'
Укажите, как блок должен реагировать при записи в FIFO, который полон. Значение по умолчанию является Warning
.
Параметры блоков:
push_msg
|
Тип: Вектор символов |
Значение:
'Warning' | 'Ignore' | 'Error' |
По умолчанию:
'Warning'
|
Pop onto empty register
- условие нижнего потока'Warning'
(по умолчанию) | 'Ignore'
| 'Error'
Укажите, как блок должен реагировать, когда вы считываете из FIFO, который пуст. Значение по умолчанию является Warning
.
Параметры блоков:
pop_msg
|
Тип: Вектор символов |
Значение:
'Warning' | 'Ignore' | 'Error' |
По умолчанию:
'Warning'
|
Show empty register indicator port (Empty)
- Опциональный пустой портУкажите, включать ли Empty
выходной порт. Этот порт выводит 1
когда реестр FIFO пуст и 0
если FIFO содержит одни или несколько вводов данных.
Параметры блоков:
show_empty
|
Тип: Вектор символов |
Значение:
'on' | 'off' |
По умолчанию:
'on'
|
Show full register indicator port (Full)
- Опциональный полный портУкажите, включать ли Full
выходной порт. Этот порт выводит 1
когда реестр FIFO заполнен.
Параметры блоков:
show_full
|
Тип: Вектор символов |
Значение:
'on' | 'off' |
По умолчанию:
'on'
|
Show num register indicator port (Num)
- Опциональный num портУкажите, включать ли Num
выходной порт. Этот порт выводит количество вводов данных, которые в данный момент доступны в очереди FIFO.
Параметры блоков:
show_num
|
Тип: Вектор символов |
Значение:
'on' | 'off' |
По умолчанию:
'on'
|
Этот рисунок отображает операцию записи FIFO. Входной порт Push действует как разрешающий сигнал для операции записи. Этот сигнал обозначается сигналом write_en на рисунке.
Когда сигнал write_en 0
блок не записывает данные в FIFO и устанавливается флаг empty.
Когда write_en становится 1
блок толкает din сигнал во входном порту In к концу регистра FIFO на следующем временном шаге. Сигнал Num указывает количество вводов данных в регистре FIFO. Каждый раз, когда вы записываете данные в FIFO, сигнал Num увеличивается на 1
. Во временной шаг 12
, write_en есть 1
. В следующий временной шаг 13
, данные записываются в FIFO. Num шаги сигнала по 1
и флаг empty отменяется.
Этот FIFO использует размер регистра по умолчанию 10
. Когда сигнал Num становится равным Register size во временной шаг 49
, задан Full сигнал. После того, как сигнал Full станет 1
, если вы пытаетесь записать больше записей в FIFO, блок генерирует предупреждение.
Этот рисунок отображает операцию считывания FIFO. Входной порт Pop действует как разрешающий сигнал для операции считывания. Этот сигнал обозначается сигналом read_en на рисунке.
Когда сигнал read_en 0
выходной dout блока 0
. Когда сигнал read_en становится 1
в временной шаг 50
сигнал dout выводит самую старую запись в FIFO на следующем временном шаге 51
. Флаг Full отменяется, и сигнал Num уменьшается на 1
начиная с временного шага 51
при считывании данных из FIFO.
Когда сигнал Num становится равным 0
, задан Empty сигнал. После того, как сигнал Empty станет 0
, если вы пытаетесь прочитать больше записей из FIFO, блок генерирует предупреждение.
Этот рисунок отображает операцию считывания FIFO. Входной порт Pop действует как разрешающий сигнал для операции считывания. Этот сигнал обозначается сигналом read_en на рисунке.
По умолчанию HDL FIFO работает в Classic
режим. Можно также использовать первый режим FWFT для FIFO. В диалоговом окне Параметров блоков задайте Mode следующим образом FWFT
.
В FWFT
mode, операция записи работает так же, как и Classic
режим. The FWFT
режим отличается от Classic
режим при выполнении операции чтения. В Classic
mode, после размещения запроса на чтение или ввода 1
для порта Pop данные становятся доступными на выходе FIFO в следующем такте. В FWFT
режим, первое слово, которое вы записываете в FIFO, переходит к выходу и доступно в Out выходного сигнала.
На рисунке, хотя read-en становится 1
в временной шаг 50
FIFO считывает первое слово, dout на временном шаге 15
. Вы можете использовать эту возможность, чтобы посмотреть вперед и увидеть первое слово, которое было написано в FIFO.
HDL Coder™ предоставляет дополнительные опции строения, которые влияют на реализацию HDL и синтезированную логику.
Этот блок имеет одну архитектуру HDL по умолчанию.
Общая информация | |
---|---|
ConstrainedOutputPipeline | Количество регистров для размещения на выходах путем перемещения существующих задержек в рамках вашего проекта. Распределённая конвейеризация не перераспределяет эти регистры. Значение по умолчанию является |
InputPipeline | Количество входных этапов конвейера для вставки в сгенерированный код. Распределённая конвейеризация и ограниченная выходная конвейеризация могут перемещать эти регистры. Значение по умолчанию является |
OutputPipeline | Количество выходных этапов конвейера для вставки в сгенерированный код. Распределённая конвейеризация и ограниченная выходная конвейеризация могут перемещать эти регистры. Значение по умолчанию является |
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.