Последовательность хранилищ входных выборок в методе "первым пришел - первым вышел" (FIFO) регистр
HDL Coder / RAM HDL
Блок HDL FIFO хранит последовательность входных выборок в методе "первым пришел - первым вышел" (FIFO) регистр. Данные, записанные сначала в регистр FIFO, выходят сначала. Реализация блока напоминает модуль FIFO в аппаратных платформах в терминах функциональности и поведения.
Блок HDL FIFO использует блок Simple Dual Port RAM внутренне. Можно использовать блок HDL FIFO, чтобы сгенерировать HDL-код, который сопоставляет с RAM в большей части FPGAs.
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
Примечание
Если два или больше из входных портов управления инициированы в том же временном шаге, поп-операция выполняется сначала, сопровождаемый операцией нажатия.
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) должен быть выбран.
Типы данных: Boolean
Num
— Количество записейscalar
Количество элементов данных, которые являются в настоящее время в регистре FIFO. Num постепенно увеличивается 1
для каждых данных, которые вы пишете в FIFO. Num постепенно уменьшается 1
для каждых данных, которые вы считываете из FIFO.
Чтобы включить этот порт, Show number of entries register port (Num) должен быть выбран.
Типы данных: double
Register size
— Количество записей
(значение по умолчанию)Задайте количество записей, которые может содержать регистр 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-потоковыми интерфейсами.
Параметры блоков:
mode |
Ввод: символьный вектор |
Значение:
'Classic' | 'FWFT' | |
Значение по умолчанию:
'Classic' |
The ratio of output sample time to input sample time
— Отношение частоты дискретизации
(значение по умолчанию)Задайте отношение выходного шага расчета, чтобы ввести шаг расчета. Отношением по умолчанию является 1
, что означает что входные параметры In
и Push
, и выходные параметры Out
и Pop
, запуститесь на уровне той же частоты дискретизации. Вводы и выводы могут запуститься в различных шагах расчета. Используйте положительное целое число или 1/N
, где N
положительное целое число. Например, если вы вводите 1/2
, выходной шаг расчета является половиной входного шага расчета или выходных параметров, запущенных быстрее. Full
пустой
, и 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
выходной порт. Это выходы порта количество элементов данных, которые в настоящее время доступны в очереди 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 является de-asserted.
Этот 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 является de-asserted и декрементами сигнала Num 1
запуск с временного шага 51
когда вы считываете данные из FIFO.
Когда сигнал Num становится равным 0
, сигнал Empty утверждается. После того, как сигнал Empty становится 0
, при попытке считать больше записей из FIFO, блок генерирует предупреждение.
Этот рисунок отображает операцию чтения FIFO. Входной порт Pop действует как разрешать сигнал для операции чтения. Этот сигнал обозначается сигналом read_en на рисунке.
По умолчанию HDL FIFO работает в Classic
режим. Можно также использовать режим первого слова проваливается (FWFT) для FIFO. В диалоговом окне Block Parameters задайте Mode как 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.