Перейти к содержанию
    

Схемотехнические трюки для ПЛИСоводов

Спасибо за код. Любопытно будет посмотреть, особенно, когда потребуется для конкретной задачи. Одно маленькое замечание - в коде большие отступы, похоже, делались табуляцией по 8 символов. Понимаю, что у каждого свое понятие о красоте и целесообразности, но, может быть отступы в 2-3-4 пробела покажутся вам удобнее. Я лично пользуюсь отступами в 2 пробела.

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Так там натальные табуляции и стоят (что мне кажется правильным), в редакторе любимом можно поставить размер табуляции какой нужно, при желании и попросить конвертнуть под установленный размер.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Так там натальные табуляции и стоят (что мне кажется правильным), в редакторе любимом можно поставить размер табуляции какой нужно, при желании и попросить конвертнуть под установленный размер.

Я уже заменил (автоматически), пользуюсь EditPlus. В начале кода были пробелы. А по-нормальному табуляция - 8 пробелов.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я лично пользуюсь отступами в 2 пробела.

да я тоже пользуюсь 2-пробельной табуляцией. именно поэтому так широко размазано и получилось. но думаю это переживабельно.

 

очередь с рукопожатием на обоих портах. может быть сконфигурирована на использование block RAM так и на обычной логике (в зависимости от установленного атрибута).

для указателей на концы очереди использована тривиальная схема кодирования (бинарный код) так что не советую использовать в самолётах, спутниках и в районе экватора. можно только для поиграться.

есть две ноги для заглядывания в будущее (может быть полезны для поддержания непрерывного потока данных интерфейсных КА).

 

замеры не делал, потому как там мало управляющей логики.

 

Исправленный код выложен тут

 

описание:

parameterizable queue with a trivial pointer encodings

can be implementer eather with on-chip Block RAM or distributed memory, subject to synthesis attribute setting of the stack memory

when implemeted with a RAM block adopt the first-word-falls-through policy for zero latency immediate pop

provides forward read and write grant signals for smooth operation of FSMs controlling the data-flows on both ports of the channel(queue)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 'CaPpuCcino': Ну что, даёте добро на оформление этих схемотехнических приёмов в виде статей на wiki или нет? И если да, то на нашей вики выкладывать (будет выглядеть как моноширинный текст) или в Викиучебник (будет с подсветкой синтакиса и автоматической нумерацией строк)?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 'CaPpuCcino': Ну что, даёте добро на оформление этих схемотехнических приёмов в виде статей на wiki или нет? И если да, то на нашей вики выкладывать (будет выглядеть как моноширинный текст) или в Викиучебник (будет с подсветкой синтакиса и автоматической нумерацией строк)?

выложил в сеть, значит каждый может делать с этим что его душе угодно. тем что выложил в открытый доступ уже дал согласие на свободное использование.

но а разве в отстойнике эти коды не нужно подержать? так может кто покритикует, народ ошибки поищет, а то может быть там что неправильно, или какая у нас по этому направлению политика?

в принципе мне-то всё равно где это висеть будет. я в команду трюкачей не записывался и как вы положили сии дела вести не знаю.

ЗЫ: вот например FIFO как минимум могли бы обсудить, ведь разные схемы кодирования указателей существует. бинарный код не самый лучший вариант.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ЗЫ: вот например FIFO как минимум могли бы обсудить, ведь разные схемы кодирования указателей существует. бинарный код не самый лучший вариант.

для синхронного проекта по барабану %)

 

ЗЫ. Извиняйте коллеги, навесили на меня 2 проекта самостоятельных (со сроком готовности вчера) + проект со студентом 80/20 (со сроком готовности январь-декабрь), зашиваюсь по самые помидоры.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

для синхронного проекта по барабану %)

а для радиационной устойчивости? вот недавно в книжке по начипным сетям, чувак озабавивался даже вопросами кодирования протоколов от всякой физики. хотя в большинстве случаев проблема действительно надуманная, иначе бы вообще ничего не работало. однако это полностью её не снимает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

а для радиационной устойчивости
Тоже по барабану :)

Коды Грея применяют в разных FIFO исключительно из за того, что последовательные коды Грея можно безопасно передавать в другой клоковый домен, сделав независимую схему подавления метастабильности по каждому разряду отдельно. С бинарным кодом этот трюк не пройдет

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Тоже по барабану :)

Коды Грея применяют в разных FIFO исключительно из за того, что последовательные коды Грея можно безопасно передавать в другой клоковый домен, сделав независимую схему подавления метастабильности по каждому разряду отдельно. С бинарным кодом этот трюк не пройдет

чудненько. а может кто реализовывал очередь с 2 асинхронными портами в языковом описание? а то у меня руки не дошли - всю дорогу корками пользовался, а в коллекцию было бы недурственно разных очередей накидать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

чудненько. а может кто реализовывал очередь с 2 асинхронными портами в языковом описание? а то у меня руки не дошли - всю дорогу корками пользовался, а в коллекцию было бы недурственно разных очередей накидать.

фифо что ли ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

чудненько. а может кто реализовывал очередь с 2 асинхронными портами в языковом описание? а то у меня руки не дошли - всю дорогу корками пользовался
У Xilinx'а эта корка синтезируется с чистого VHDL'я. Единственно, что там было архитектурно зависимого - вызов внешней процедуры (через PLI из dll) для явного плейсмента BRAM модулей (видимо относительно друг друга)

Внутри выглядит жутковато - по количеству оберток напоминает капусту :(

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

оно.

я такое в свое время для себя делал, сейчас использую немного другие, но они не универсальные.

afifo.v

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У Xilinx'а эта корка синтезируется с чистого VHDL'я.

а можно увидеть это чисто VHDLное описание, из которого синтезируется кросс-доменная очередь? очень интересно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...