Принцип fifo что это
Принципы обработки товаров на складе
Cклад Сток-трейдинг работает с использованием системы управления EME.WMS, которая регулирует распределение груза на всех этапах взаимодействия с ним, от приема до отгрузки.
WMS позволяет использовать три основных принципа обработки товара — FIFO, FEFO и LIFO. Каждый из этих обозначает порядок взаимодействий с грузом.
Чаще всего используется комплектация FIFO — отгружаем наиболее давно прибывший товар, или FEFO — для продуктов с определенным сроком годности.
Условия хранения на складе
Наш склад относится к сухому типу, температура поддерживается в пределах 16-25 С°.
Мы работаем с:
При этом используем такую настройку WMS, которая позволяет оптимально использовать объемы хранения. Например, товар одного вида хранится в двух ячейках — 5 единиц в одной и 2 единицы в другой. При поступлении заказа на 3 единицы WMS подберет комплектацию так, что 2 единицы буду взяты из второй ячейки, чтобы освободить ее, и 1 единица из первой ячейки.
Благодаря особенностям нашей WMS, все работы на нашем складе осуществляются с помощью Wi-Fi терминалов. Все сотрудники работают в едином информационном пространстве — сотрудники транспортного отдела Сток-трейдинг, сотрудники департамента логистики нашего клиента, транспортные компании, получатели товара (розничные магазины клиента). Для обеспечения бесперебойной работы склада мы имеем резервное электропитание и запасной канал связи.
Оборудование для обработки и манипулирования грузами
Для размещения грузов и формирования заказов на отгрузку имеется вся необходимая техника:
Как принцип FIFO работает в инвестициях
Конец года и начало следующего – время, когда все подводят итоги. Не отступают от этой традиции и инвесторы. Во-первых, вскоре нужно будет уплатить налоги. Во-вторых, это хороший повод оценить доходность портфеля. Сегодня предмет моего обзора – так называемый принцип FIFO и его применение на фондовом рынке. Это правило лежит в основе расчетов налоговой базы, поэтому его нужно знать каждому инвестору.
Что такое принцип FIFO
Я регулярно получаю много вопросов и специально для читателей я разработал Курс ленивого инвестора, в котором пошагово показал, как наладить порядок в личных финансах и эффективно инвестировать в различные активы. Рекомендую пройти, как минимум, бесплатную неделю обучения.
Если вам интересна практика и какие инвестрешения в моменте принимаю лично я, то вступайте в Клуб Ленивого инвестора.
FIFO — это аббревиатура от английского выражения First In First Out, в переводе означающего «первый вошел, первый вышел». Первоначально он нашёл применение в складской логистике. В инвестировании это принцип, по которому определяется, какие из ценных бумаг будут списаны со счета, если он захочет не полностью закрыть позицию, а лишь уменьшить ее.
Это не зависит от желания брокера или клиента. Принцип FIFO установлен законодательно и является единственно возможным способом расчета налогооблагаемой базы инвестора.
Рассмотрим самый простой пример работы принципа FIFO. Возьмем следующие условия:
В этом случае депозитарий спишет с его счета 100 акций, купленных первоначально, и только 50 из тех, что были приобретены позднее. В результате брокер рассчитает налоговую базу по первой формуле, приведенной на рисунке. Если бы работал обратный принцип, то он воспользовался бы второй.
Из приведенных расчетов хорошо видно, что от того, какие ценные бумаги будут списаны со счета, зависит размер налогооблагаемой базы. В приведенном примере за счет принципа FIFO возникают обязательства по уплате налога. Если бы действовал принцип LIFO (Last In First Out — последним пришёл, первым ушёл), который был отменен, инвестор не имел бы обязательств перед ФНС.
Телефонные мошенники: как инвестору их распознать
Телефонные мошенники предлагают инвестировать
Особенности применения принципа FIFO
Принцип FIFO кажется простым и логичным, но на самом деле у него есть ряд тонкостей. Первая из них в том, что у брокера все субсчета инвестора учитываются совместно. Поэтому, если вы хотите вести несколько портфелей с разными стратегиями или использовать их для накопления на разные цели, лучше обращаться в разные компании.
Например, инвестор купил 10 акций эмитента А на своем основном счете, а спустя неделю еще столько же на субсчете. Через месяц решил сменить стратегию на субсчете и продал недавно купленные бумаги. В результате в торговом терминале он будет видеть портфель, где учтены акции компании А на основном счету, а на субсчете их нет. Но при этом брокер рассчитает налоговую базу, исходя из стоимости акций в момент первой покупки, сделанной на основном счете.
Исключением в вышеописанной ситуации будет ИИС. Согласно нормам законодательства, это выделенный счет. Находящиеся на нем активы должны учитываться отдельно от остальных бумаг инвестора. Еще один пример:
Формула для расчета налоговой базы будет иметь вид, приведенный ниже:
Акции, учтенные на ИИС, не будут списаны, хотя это произошло бы, если б они учитывались на спецсчете. Еще одна особенность применения принципа FIFO в том, что учет ценных бумаг ведется не с момента их покупки, а с той даты, когда они были приняты на баланс. Это надо учитывать, если у вас есть счета у разных брокеров, и вы захотите объединить их, перенеся свои активы в одну компанию. При этом вы должны будете предоставить брокеру данные о дате покупки ценных бумаг и уплаченной за них сумме. Но эти сведения будут учитываться только при расчете налоговой базы, а при продаже акций первыми уйдут те, что были зарегистрированы брокером раньше, даже если фактически они были куплены позже.
Зачем нужны компании SPAC
Компании SPAC или как попасть на биржу через чёрный ход
Зачем инвестору помнить про принцип FIFO
Если вы инвестируете через российскую компанию, то все налоги считает брокер. Вам не нужно самому вычислять налоговую базу. Но я пишу об этом, потому что считаю, что важно понимать, как она формируется. Это даст вам возможность эффективно управлять своими налогами. Приведу пример:
В США популярны услуги финансовых консультантов, которые ищут подобные способы сэкономить на налогах и одновременно оптимизировать портфель.
Кроме того, принцип FIFO нужно учитывать не только при расчетах с ФНС. Он напрямую влияет на вашу среднюю цену покупки актива. А значит, и на вашу личную дивидендную доходность, если речь идет об акциях. Этот метод хорошо использовать, если вы активно докупали на просадке. Если цена вернулась к значениям, на которых вы только открывали позицию и нет оснований ожидать, что рост продолжится, может быть целесообразно продать акции, купленные по высокой цене. Это увеличит рентабельность вложений и поможет освободить деньги для более перспективных идей.
Графики котировок: ликбез для новичка
Как читать графики котировок правильно
Подводим итоги
Разумеется, нет необходимости досконально проверять за брокером правильность расчета налогов. Но инвестор, который полностью понимает все тонкости этого процесса, может не только проверять брокера, но и оптимизировать свой портфель с точки зрения налогообложения.
Расскажите в комментариях, доводилось ли вам использовать принцип FIFO для снижения средней цены позиции, уменьшения налоговой базы или еще с какой-либо целью.
Принципы FIFO, FEFO, LIFO, FPFO, BBD и чем их различие
В зависимости от требований и конкурентной среды, применяются виды обработки товара, которые будут оптимальны, удобны и эффективны. Как мы настроим бизнес-процессы, в том числе в логистике, будет зависеть наша оперативность и точность. Принцип FiFo, что это такое? Чем отличается от FeFo, LiFo и других видов обработки товара или информации?
Сегодня просто и доступно разберем все эти вопросы. Исходя из этого Вам будет гораздо проще подобрать оптимальный вариант. Итак, начнем.
Принцип FeFo — что это такое в логистике
Аббревиатура FEFO — first expire, first out. Дословно с Английского, — что первым заканчивается, то первым и выходит. Классический принцип FeFo применяют для товара, который имеет ограниченный срок годности. То есть, товар, имеющий наименьший срок годности отгружается, продается в первую очередь. Под принцип FeFO попадают продукты питания или иные товары с небольшим сроком годности.
Мы наблюдаем в супермаркетах, что на полки, ближе всего к покупателю, выставляют товар, сроки годности по которым, имеют меньший срок, чем товары, которые располагаются в глубине полок. Как понимаем, если срок годности не вышел, здесь нет криминала. Менеджеры и мерчендайзеры продовольственных магазинов грамотно используют принцип FeFo.
Этот же принцип FeFo может являться основным на продовольственных складах или складах медицинского назначения, где этот метод также может быть уместен по ряду товаров.
На складе, визуально за такими товарами не уследить. Здесь нужна хорошая автоматизированная система учета.
Еще при приемке на склад, кладовщик заводит в WMS ( складскую программу) не только общие характеристики товара, но и обязательно, данные со сроками годности. При задаче на отгрузку, WMS склада, по заданному алгоритму, подтягивает те товары, которые по срокам годности имеют приоритет.
Исходя из этого, топология склада должна строиться таким образом, что бы доступ к товарам был свободным. Часто используется стеллажное хранение. Или, если это позволяет условия хранения товара, возможен вариант с наклонными ячейками, набивными стеллажами, где закладка товара идет с одной и более высокой стороны, а его выемка, с другой стороны.
наклонный стеллаж хранения и подбора товара
Принцип FiFo — что это такое в логистике
FiFo — first-in-first-out. Дословно с Английского, что первым зашло, то первым вышло. Здесь уже определяется не по срокам годности, а по срокам прибытия. Что первым пришло, то и первым должно уйти, отрузиться. Принцип FiFo, тот же принцип живой очереди. Какой клиент пришел первым, тот первым должен быть обслужен.
Принцип FiFo является основным методом обработки товара, как сборного груза, у транспортно-логистических компаний. Таким компаниям важно, что бы их клиенты получали товары в разных концах страны в заявленные ими сроки.
Например, идет сборка разных грузов клиентов с одной точки для доставки по разным направлениям. Процессы склада должны быть пространственно и на уровне складской программы настроены так, что бы товары клиентов не терялись в плане приоритетов отгрузки. Все, что для перемещения в точку «А» пришло сегодня, должно быть отгружено в одно время.
Но никак груз пришедший через 10 минут или завтра, не должен попасть в документ отгрузки раньше предыдущего груза.
При быстрой оборачиваемости товара или условий доставки требующей быстрой обработки, используют метод напольного хранения. Пришедший груз, тут же перемещают в противоположный участок склада, с ворот приемки, к воротам отгрузки, в зону накопления.
зона накопления на складе
Если товар не требует быстрой отгрузки, то уместно хранить на стеллажах с системой адресного хранения, где также к товару будут привязаны сроки поступления на склад.
Принцип LiFo — что это такое в логистике
LiFo — last-in-first-out. С Английского, что пришло последним, — отгружено первым. Принцип LiFo прямо противоположен принципу FiFo.
Принцип LiFo иногда называют бюрократическим методом, поскольку те документы, что легли сверху, первыми и рассматриваются. На самом деле, в логистике принцип LiFo широко используются, когда груз почти не ограничен сроками годности, и не связан приоритетами отгрузок по FiFo. Например, это могут быть какие-то заготовки, блоки из камня.
укладка заготовок по методу Lifo
Также склад может иметь только одни ворота на вход и отгрузку, или ограничен в пространстве. В этом случае, что вошло на склад последним, отгружается первым.
Принцип Lifo в бухгалтерии
В бухгалтерии также используется принцип Lifo. Например:
Согласно методу LiFo, статьи запаса закупленными последними, будут проданы первыми. Соответственно, статьи, остающиеся в запасе в конце периода, были раньше всего приобретены или произведены.
Списание в производство материалов по последней цене их приобретения, позволяет устранить инфляционное занижение расчетной себестоимости готовой продукции. Тем самым, избежать преждевременной уплаты части налога на прибыль.
Метод FpFo
FpFo — First Product First Out. Что означает, — первым произведено, первым и выходит. FpFo используют на производственных предприятиях. Произведенный товар имеет партии, и должен быть отгружен с учетом самой ранней партии производства.
Можно задать вопрос, в чем тогда разница между FiFo и FpFo. Вроде принцип один и тот же. По сути да, но сделано разделение между продуктом, который родился в стенах производства (FpFo) и тем продуктом, который, в готовом виде зашел в стены производства, склада, магазина (FiFo).
Метод BBD
BBD — Best Before Day. Первым исходит рекомендуемый срок, первым и выходит, подлежит отгрузке.
Такая продукция ротируется в соответствие с минимально остаточным рекомендуемыми сроками. Для понимания, хорошим примером будет винная продукция, где используется рекомендуемая дата употребления продукта. Как мы понимаем, такая продукция вовсе не несет рисков для здоровья, а имеет свою специфику приготовления и использования.
Аналогичным примером может послужить, приготовление сыров. Некоторые его сорта, также имеют специфику с рекомендуемой датой его полной готовности и употребления.
Принцип FiFo, FeFo, LiFo. Резюме.
В самом начале, мы говорили о том, что при построении модели бизнеса, бизнес-процессов компании, нам нужно иметь ясное понимание, каким методом будет обрабатываться товар, груз, информация. Нам необходимо взглянуть достаточно широко, ведь нам нужно еще отталкиваться от требований рынка, конкуренции, наших клиентов.
И например, принцип FiFo на складе может стать не единственным видом обработки. На этом же складе может потребоваться два или три вида обработки, что существенно усложнит его работу. Сможет ли выполнять один склад? Я работал на складе, где использовалось сразу 3 принципа обработки товара. Здесь должно все работать, как единый, слаженный механизм.
После выбранной модели или моделей, необходима топология склада с учетом максимальной нагрузки на каждый участок и пропускной нагрузки на ворота склада. Из своего опыта расчетов по топологии склада, скажу, что это очень важная работа, поскольку для бизнеса сразу определяет оптимальную и максимальную нагрузку на склад.
Крайне важно заранее понимать самое узкое место склада.
Могу рекомендовать книгу Гэвин Ричардса — «Управление современным складом». Обычно, я стараюсь дать ссылку на бесплатный материал, но здесь ничего не нашел. Поэтому, только ссылка на покупку этой книги в интернете. https://book24.ru/product/upravlenie-sovremennym-skladom-1650401/
Надеюсь, статья, принцип FiFo, FeFo, LiFo, была полезной. Мы разобрали основную классику; принцип FiFo — что это такое в логистике, принцип FeFo — что это такое в логистике и принцип LiFo — что это такое в логистике. Пишите в комментариях, задавайте вопросы. Будьте здоровы и счастливы!
Метод ФИФО (FIFO) в торговле и складском учете
Метод FIFO, основная информация
При использовании обычного метода, бухгалтером не производятся допущения, а лишь учитываются объемы 1-ых, 2-ых, 3-их и так далее поступлений, которые израсходовали в процессе производственной деятельности. Итог: сложности в расчете и остатки за прошедший месячный, либо другой период отчета из 1-ой партии с одной стоимостью и из 2-ой с отличающейся ценой.
Преимущества принципа ФИФО
У данного метода имеются свои положительные свойства или плюсы:
Недостатки принципа ФИФО
Кроме положительных свойств, метод обладает также и минусами, к ним можно отнести:
ФИФО обязательно учитывают в процессе финансового планирования и разработки ведения политики предприятия на последующие периоды.
Способы расчета себестоимости по принципу FIFO
FIFO является самым часто встречаемым способом рассчитывания стоимости, за основу берется принцип очередности. Как говорилось выше, в начале списывают материалы, поставленные первыми, отсюда и строится аббревиатура. Исключительными считают случаи, именуемые допущением, при которых важнее сроки годности, а не более раннее время проставления товаров. Таким образом, стоимость ресурсов, проданных в первую очередь высчитывается по показателям цен оставшихся продуктов из наиболее ранней поставки. При количественном исчерпывании происходит списывание ТМЦ по другой стоимости – следующая поставка и далее также.
Подробнее механизм расчета себестоимости по FIFO можно рассмотреть на следующем примере:
Магазин музыкальных инструментов ведет продажу гитар. Имеется 20 гитар по 10 000 рублей и последующие поставки в две партии по 30 гитар – первая за 9500 рублей, вторая за 9000 рублей. Продано 70 гитар по 15000 рублей. Расчет прибыли.
В начале списываются 20 гитар по 10000 рублей = 200000 рублей. Затем – 30 гитар по 9500 рублей = 285000 рублей. Осталось 20 гитар по 9000 рублей = 180000 рублей.
60 Х 15000 – (200000+285000+180000) = 235000 (рублей).
Этот показатель обычно меньше показателя средней стоимости, поэтому и сумма налога на прибыль значительно ниже.
Метод списания по принципу FIFO
Согласно законодательству, можно производить списывание денежных средств на затраты в процессе их выбывания несколькими способами. Давайте рассмотрим все для лучшего понимания. По «Учету материально-производственных запасов» (ПБУ 5/01) бухучет может использовать несколько методик:
Методику ФИФО часто именуют конвейерным способом, то есть выбывает тот товар, что поступил первоначально.
Списание по ФИФО производится по прежней схеме, а именно, выбывание однородных запасов производится последовательно, в очередности их поступления на склады. Поэтому, товары из следующих поступлений не выводят, пока в полной мере не израсходуют ранее поступившие.
Метод ФИФО предполагает списывание на хознужды или для производства по стоимости МПЗ по факту, которые поступили 1-ми по очередности. Следовательно, себестоимость товаров из запаса, которые поступили позднее и не израсходовались, включают в цену остаточных товаров при конечном периоде.
Автоматизация складской логистики в 1С
Метод ФИФО в 1С УТ
При этом размеры и цены на остаток продуктов выстраивают в очередность: от крайней партии, потому что, следуя логике ФИФО, первоначально поступившие товары уже списали.
Далее определяют объемы выбывших товаров со склада в течение месяца. Определяют цену поступивших товаров, учитывая цену начальных товаров из остатка, потом из этого показателя вычитают цену остаточных товаров в конце месяца, которую вычислили по принципу FIFO. Этот показатель является стоимостью списания месячной продукции.
Также используются следующие формулы:
Метод ФИФО в WMS системе
Система-WMS помогает решать задачи по управлению складских помещений и производит автоматизацию операций по складам.
Основные функции WMS:
Одним из методов, которым пользуется рассматриваемая система, является ФИФО.
Согласно этому методу, сначала отгружается товар из первой партии, затем последующие, таким образом, открытие доступа к первым категориям из списка происходит после анализа всех последующих товаров. Этот принцип работает и касательно клиентов, то есть обслуживают клиента, подошедшего ранее других.
Как работает FIFO
FIFO это один из ключевых элементов цифровой техники. Это память типа «первым вошёл-первым ушёл» (first input – first output). Меня как разработчика ПЛИС FIFO окружают повсюду. Собственно я только и делаю что беру данные из одного FIFO и перекладываю в другое. Но как оно работает? В современных САПР конечно уже есть готовые элементы, у Altera есть замечательные мегафункции. У Xilinx есть Core Generator. Но что делать если что-то не устраивает в стандартных решениях? Ответ один – разобраться и написать самому.
В интернете существует большое количество статей про FIFO, и когда то мне попалась очень хорошая и толковая статья. К сожалению, сейчас я её не нашёл. Далее – мой личный опыт по созданию и применению компонента FIFO. Готовый элемент находится на Github в проекте fpga_components. Свой компонент потребовался по нескольким причинам:
Одно из главных применений FIFO это перевод данных с одной тактовой частоты на другую. Этим определяется такая схема. При одной тактовой частоте на запись и чтение автоматы можно упростить.
Давайте рассмотрим внешние порты компонента FIFO:
Флаги FIFO передаются типом bl_fifo_flag; Определение типа:
Обратите внимание, используется отрицательная логика. Узнали? Да, я ещё из тех динозавров кто работал с TTL на сериях 155, 533, 1533 и отдельными микросхемами FIFO. Так что эти флаги мне привычны, они были сделаны много лет назад и до сих пор используются.
Флаг ef – сигнализирует что FIFO пустое. Если ef=1, то из FIFO можно прочитать одно слово.
Флаг pae – сигнализирует, что FIFO почти пустое. На сколько почти определяет параметр FIFO_PAE. Если pae=1, то из FIFO можно прочитать не более чем FIFO_PAE слов.
Флаг hf – сигнализирует что FIFO заполнено наполовину.
Флаг paf – сигнализирует, что FIFO почти полное. На сколько почти определяет параметр FIFO_PAF. Если paf=1, то в FIFO можно записать не более чем FIFO_PAF слов
Флаг ff – FIFO полное. Если ff=0, то в FIFO записывать нельзя.
Флаг ovr – переполнение. Если ovr=1, то это значит что произошла запись в полное FIFO
Флаг und – underflow. Если und=1, то это значит что произошло чтение из пустого FIFO.
Вполне очевидно, что при записи в FIFO мы должны записать слово в двухпортовую память и увеличить счётчик записи. Или сначала увеличить, а потом записать. А при операции чтения надо зафиксировать данные на выходе и увеличить счётчик чтения. А вот дальше требуется решить следующие вопросы:
Надо ясно понимать, что узел перетактирования (в проекте это компонент ctrl_retack_counter_m12) передаёт данные с задержкой на несколько тактов. Поэтому состояния FIFO также изменяются с задержкой. Например, если FIFO пустое и него записано одно слово, то флаг ef=1 появится с некоторой задержкой. Это же относится к выходам количества слов в FIFO. Например, если в пустое FIFO будет записано 16 слов, то в процессе записи выход cnt_wr будет принимать значения 0,1,2,3, … 16 (это если не производится чтение из FIFO), а вот выход cnt_rd будет принимать значения например такие: 0, 5, 8, 12, 16. Точный порядок будет зависеть от соотношения частот и не может быть предсказан. Это принципиальное свойство FIFO которое работает на разных частотах. Хотя в зависимости от схемы синхронизации могут быть различные нюансы.
Определение пустого и полного FIFO производится на анализе счётчиков адресов. Причём у меня есть два адреса для записи (текущий и следующий) и два адреса для чтения, также текущий и следующий. В компоненте cl_fifo_control_m12 это сигналы w_adr, w_next_adr и r_adr, r_next_adr; Соотношение адресов в различных состояниях представлено на рисунках ниже.
В исходном состоянии w_adr=0, r_adr=0, w_next_adr=1, r_next_adr=1. Если w_adr=r_adr, то FIFO пустое.
При записи слово данных записывается по адресу w_adr и адрес записи увеличивается.
Через несколько таков значение w_adr будет передано в w_adr_to_rd (перейдёт в тактовый домен clk_rd) и по факту не совпадения r_adr и w_adr_to_rd будет установлен флаг ef=1, т.е. из FIFO можно будет считать слово данных. Однако одно слово это мало, для получения высокой скорости передачи надо работать с блоком данных. И здесь требуется использовать флаг PAE. Когда в FIFO будет записано FIFO_PAE слов, будет установлен флаг pae=1 и можно будет прочитать сразу блок данных. Это основной режим работы с DMA каналом.
Если скорость записи больше чем скорость чтения, то адрес записи догонит адрес чтения:
В этом случае w_next_adr будет равен r_adr, а точнее r_adr_to_wr (мы можем сравнивать только значения на своём тактовом домене). Это означает, что FIFO полное и записывать дальше нельзя, что бы не испортить уже записанные данные. Надо отметить, что для подключения АЦП это обычная ситуация. У нас такой режим называется однократный сбор через FIFO. В этом режиме АЦП записывает данные на большой скорости в FIFO, а медленный процессор эти данные считывает. При этом мы знаем, что действительными будет только блок данных который соответствует размеру FIFO. Обычно на этот размер как раз и программируется канал DMA. После чтения данных FIFO сбрасывается и всё повторяется снова. Вот в этом режиме принципиально важно, что бы запись в полное FIFO не портила предыдущие данные.
Если требуется записывать данные блоками, то надо использовать флаг PAF. Если paf=1, то в FIFO можно записать FIFO_PAF слов.
Значения флагов PAE и PAF надо выбирать из требований DMA контроллера к которому подключено FIFO. Например, для PCI Express у нас используется блок данных размером 4 кБ. Это 256 слов по 128 разрядов. Размер флага PAE я устанавливаю в 272. Т.е. чуть больше чем 256. Это я делаю намеренно, что бы не допускать опустошения FIFO. Ну не доверяю я схемам формирования флагов.
А как производится определение количества слов в FIFO? Всё достаточно просто – из адреса записи надо вычесть адрес чтения. Адрес кратен степени 2, поэтому вычитание будет идти по модулю 2^N; Поскольку у нас есть две пары адресов, то у нас получится и два значения количества слов в одном FIFO (может это как то связано с квантовой механикой?).
Значения флагов PAE и HF (по чтению) формируются из r_cnt. Значения PAF и HF(по записи) формируются из w_cnt.
Основной причиной, по которой пришлось разрабатывать свой компонент FIFO, является потребность в реализации циклического режима для работы на ЦАП. В этом режиме производится запись блока данных, он может быть любого размера, разумеется не превышая размера FIFO. А затем начинается чтение, причём после выдачи последнего записанного слова сразу происходит переход на первое слово. Это позволяет подключить медленный процессор к быстрому ЦАП. Компонент FIFO имеет два входа для циклического режима. rt_mode=1 означает, что после выдачи последнего записанного слова надо перейти на нулевой адрес.
А вот вход rt нужен немного для другого. Наличие rt=1 позволяет перевести FIFO на нулевой адрес в произвольный момент времени. Иногда это у нас тоже используется.
В проекте fpga_components представлены два FIFO:
Это конструкция будет синтезирована в двухпортовую память. Идея красивая и в результате доработки cl_fifo_x64_v7 получилось FIFO cl_fifo_m12.
Недостаточно написать FIFO, надо ещё проверить его работу. Для проверки используется подход принятый при разработке PROTEQ, о котором можно прочитать в моей предыдущей статье.
Существует компонент tb_00 который имеет настраиваемые параметры.
Он позволяет проверить прохождение потока данных через FIFO при различных соотношениях тактовых частот и уровнях срабатывания флагов PAE и PAF. Также существуют компоненты тестовых случаев:
Конечно, для каждого теста сохраняется и свой отчёт.
При необходимости тесты будут дополняться. Хочу обратить внимание, что для вывода текста в консоль я использую пакет PCK_FIO. Он резко упрощает вывод текста.
Например, вывод результатов выглядит так:
В итоге я считаю что получился элегантный компонент, достаточно удобный для практической работы.