Сохраняет последовательность входных выборок в регистре FIFO
Кодер HDL/RAM 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. Количество приращений на 1 для всех данных, записанных в FIFO. Уменьшение числа на 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. Значением по умолчанию для параметра «Размер регистра» является 10. Минимальное значение размера регистра: 4.
Параметр блока:
fifo_size |
| Текст: символьный вектор |
| Значение: целое число, большее или равное четырем |
По умолчанию:
'10' |
Mode - Режим работы'Classic' (по умолчанию) | 'FWFT'Укажите режим работы FIFO. По умолчанию для параметра «Режим» установлено значение Classic. Отображается значок блока Classic FIFO. Можно изменить режим на FWFT. При изменении режима отображается значок блока 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время выходной выборки равно половине времени входной выборки, или выходные сигналы работают быстрее. 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, и устанавливается пустой флаг.
Когда write_en становится 1блок перемещает сигнал din на входной порт In в конец регистра FIFO на следующем шаге времени. Сигнал Num указывает количество записей данных в регистре FIFO. Каждый раз при записи данных в FIFO сигнал Num увеличивается на 1. На шаге времени 12, write_en является 1. На следующем шаге времени 13, данные записываются в FIFO. Количество приращений сигнала на 1 и пустой флаг отменяется.
Этот FIFO использует размер регистра по умолчанию 10. Когда сигнал Num становится равным размеру регистра на шаге времени 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 становится 0, при попытке прочесть дополнительные записи из FIFO блок генерирует предупреждение.
На этом рисунке показана операция чтения FIFO. Входной порт Pop действует как разрешающий сигнал для операции считывания. Этот сигнал обозначается read_en сигналом на рисунке.

По умолчанию HDL FIFO работает в Classic режим. Для FIFO можно также использовать режим first-word-fall-through (FWFT). В диалоговом окне «Параметры блока» задайте режим как FWFT.
В FWFT , операция записи работает так же, как и Classic режим. FWFT режим отличается от Classic режим при выполнении операции чтения. В Classic режим, после размещения запроса на чтение или ввода 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.