Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: "Схемотехнические трюки для ПЛИСоводов"
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
Страницы: 1, 2, 3, 4, 5
des00
Добрый день уважаемые коллеги.

На этом форуме, за годы его существования, выложено много интересных схемотехнических и HDL решений (в том числе с сорцами). Есть предложение обобщить опыт и создать на форуме раздел вида "Схемотехнические трюки для ПЛИСоводов".

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

Формат изложение видится такой : Задача -> решение -> комментарии. Сие будет полезно всем, а особенно начинающим. Что бы не задавались вопросами типа таких или таких .

От администрации форума получено согласие на поддержку в реализации этого проекта. Но тянуть такое в одиночку нет времени, было бы интересно набрать небольшую команду. Если у кого то есть интерес, прошу назваться %)
Dima_G
Поддерживаю - идея хорошая. К сожалению помочь вряд ли смогу, так как сам в этих делах чайник. Но результат работы был бы очень интересен и полезен smile.gif
andrew_b
Цитата(des00 @ Sep 8 2010, 06:21) *
Есть предложение обобщить опыт и создать на форуме раздел вида "Схемотехнические трюки для ПЛИСоводов".

Формат изложение видится такой : Задача -> решение -> комментарии. Сие будет полезно всем, а особенно начинающим. Что бы не задавались вопросами типа таких или таких .
Вы пытаетесь переизобрести wiki. Wiki у нас уже есть, надо её наполнять. Раздел форума не нужен.
des00
Цитата(andrew_b @ Sep 7 2010, 23:49) *
Вы пытаетесь переизобрести wiki. Wiki у нас уже есть, надо её наполнять. Раздел форума не нужен.

Как это будет сделано технически дело к теме не относящиеся, вики подходит, только надо ее будет сделать не для всех. Смысл сей темы обозначить возможную команду тех, кто хочет участвовать в этом проекте.
XVR
Идею поддерживаю. Как то кидал сюда модуль реализующий произвольную перестановку битов на Benes и OmegaFlip Network (непроверенный, правда sad.gif )
Maverick
Цитата(des00 @ Sep 8 2010, 09:01) *
Как это будет сделано технически дело к теме не относящиеся, вики подходит, только надо ее будет сделать не для всех. Смысл сей темы обозначить возможную команду тех, кто хочет участвовать в этом проекте.

Я в принципе согласен smile.gif
ViKo
Идея хорошая. Потому, что найти что-то, промелькнувшее в форуме, потом трудно. Хоть листай страницы, хоть поиском... Что успел скопировать в свой файл, то имею.
Поэтому в новом разделе со временем будет то же самое - ни за что не найдешь того, что надо. Значит, нужна какая-то другая форма хранилища. Но тогда невозможно будет комментировать.
Вот des00 в своем блоге, например, мог бы выкладывать, сам же и оценивать качество. smile.gif Я думаю, не доверять гуру ни у кого причин нет.
Только смущает фраза "не для всех". А для кого?
des333
Я идею поддерживаю. У самого опыта пока мало, но может быть чем-нибудь помочь смог бы. smile.gif
Так что, если возьмете, буду рад участвовать. smile.gif

Если уважаемый des00 как автор темы не против, напомню о несколько другой, но близкой идеи, которую я когда-то уже предлагал:
ставится какая-нибудь несложная задача, а потом разными людьми предлагаются различные решения этой задачи и анализируются (примеры таких тем у нас на форуме бывали).

В контексте данной идеи это помогло бы тем, что предложенное кем-то решение не сразу заносилось в wiki или куда-то еще, а сначала анализировалось бы другими участниками, предлагались бы альтернативные варианты решения (которые могут оказаться лучше изначально предложенного).

Это, конечно, требует чуть большего времени и чуть большего усилия со стороны участников, но и качество отобранных решений тоже достаточно возрастет.
des00
Цитата(ViKo @ Sep 8 2010, 04:13) *
Вот des00 в своем блоге, например, мог бы выкладывать, сам же и оценивать качество. smile.gif

тогда я это буду делать очень долго, всё таки сказывается работа на 3-х фронтах %)
Цитата
Только смущает фраза "не для всех". А для кого?

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

Цитата(des333 @ Sep 8 2010, 04:42) *
Я идею поддерживаю. У самого опыта пока мало, но может быть чем-нибудь помочь смог бы. smile.gif

нескромничайте biggrin.gif biggrin.gif
Цитата
ставится какая-нибудь несложная задача,
....

именно так и планируется построить работу, только вынести обсуждение решений в отдельные ветки. Но исходного материала, в виде обсуждений, на форуме много. На вскидку в моих запасниках лежит ~20-40 полезных примеров слитых с форума/залитых на форум %)

Всем кто хочет участвовать предлагаю перетрясти свои запасники, что бы иметь оценку объема работы до старта проекта.
des333
Цитата(des00 @ Sep 8 2010, 14:59) *
именно так и планируется построить работу...

Тогда вообще замечательно.  smile.gif

Цитата(des00 @ Sep 8 2010, 14:59) *
Всем кто хочет участвовать предлагаю перетрясти свои запасники, что бы иметь оценку объема работы до старта проекта.

Всем, у кого они есть.  biggrin.gif
Maverick
Цитата(des00 @ Sep 8 2010, 13:59) *
Всем кто хочет участвовать предлагаю перетрясти свои запасники, что бы иметь оценку объема работы до старта проекта.

Допустим потрясли и что-то нашли. Куда эту информацию девать или что с этой информацией делать или эту информацию высылать на какой-то электронный ящик?
В общем интересует общение - между собой. Каким образом будет происходить выкладывание информации. Может будет вначале кто-то все выкладываемое будет проверять, так сказать будет главным редактором, а потом уже будет происходить выкладывание информации. Ну и все сопутствующие вопросы...
des00
Цитата(Maverick @ Sep 8 2010, 06:40) *
Допустим потрясли и что-то нашли. Куда эту информацию девать или что с этой информацией делать или эту информацию высылать на какой-то электронный ящик?

До поры до времени держать при себе.

Цитата
В общем интересует общение - между собой. Каким образом будет происходить выкладывание информации. Может будет вначале кто-то все выкладываемое будет проверять, так сказать будет главным редактором, а потом уже будет происходить выкладывание информации. Ну и все сопутствующие вопросы...

Подожду до конца недели, чтобы с командой определится. Потом обращусь к администрации форума, чтобы выделили место для обсуждений и права для управления %)
Maverick
Цитата(des00 @ Sep 8 2010, 14:45) *
До поры до времени держать при себе.
Подожду до конца недели, чтобы с командой определится. Потом обращусь к администрации форума, чтобы выделили место для обсуждений и права для управления %)

Отлично! Ждем...
iosifk
Цитата(des00 @ Sep 8 2010, 15:45) *
Потом обращусь к администрации форума, чтобы выделили место для обсуждений и права для управления %)

Я предлагаю объединить это обсуждение с обсуждением видео-обучалок. По существу здесь нет никакой разницы.
И предлагаю делать выкладывание в два этапа.
Сначала на обсуждение. Потом автор правит, если есть замечания или дополнения.
Потом модераторы переносят материал к месту хранения.
one_man_show
Если нужно разделение работ по видео-обучалкам и вики, можно для вики сделать подраздел. Можно поступить и так, как предложил Иосиф, не разделять, тогда созданный раздел можно переименовать для общего понимания. Скажите, что считаете более приемелемым
des333
Я думаю лучше не объединять, а сделать новый раздел с названием типа "Оптимизация ..."
Ведь, по существу, все эти темы и вопросы и связаны с оптимизацией по площади, либо по времянкам, либо по потреблению.

Объединять с обучалками, я думаю, не стоит. Слишком различный смысл.
Насчет обсуждение в два этапа согласен. После того, как участники придут, так сказать, к "оптимальному" варианту, модератор переносит решение.

На роль модератора нового раздела, естественно, предлагаю des00. Он, с одной стороны, автор идеи, а с другой стороны, гуру. smile.gif
one_man_show
Цитата
На роль модератора нового раздела, естественно, предлагаю des00

Принято
Maverick
Цитата(des333 @ Sep 8 2010, 15:34) *
На роль модератора нового раздела, естественно, предлагаю des00. Он, с одной стороны, автор идеи, а с другой стороны, гуру. smile.gif

Полностью согласен
Aprox
Цитата(Maverick @ Sep 8 2010, 17:14) *
Полностью согласен
А я не согласен. Он AHDL на дух не переносит. А у меня все наработки на этом языке. Причем, все работает на ура.

Maverick
Цитата(Aprox @ Sep 8 2010, 20:38) *
А я не согласен. Он AHDL на дух не переносит. А у меня все наработки на этом языке. Причем, все работает на ура.

Это Ваше мнение. Я тоже AHDL на дух не переношу, des00 - пишет на Verilog/SystemVerilog, а я на VHDL но это не мешает ему давать дельные замечания и предложения по решению возникшей проблемы. Это мое мнение.
one_man_show
Aprox, когда серьезные люди начинают делать серьезные вещи, мелочи не имеют значения. Язык в такой ситуации малозначим, даже тот, на котором общаются эти серьезные люди, так как со временем члены команды начинают понимать друг друга с полуслова smile.gif Проверено многократно.
sazh
Цитата(Aprox @ Sep 8 2010, 20:38) *
А я не согласен. Он AHDL на дух не переносит. А у меня все наработки на этом языке. Причем, все работает на ура.


Покажите. В моделсиме.
CaPpuCcino
2 вопроса:
а) чем содержательно должен отличаться подразумеваемый раздел от 4-ого раздела по ПЛИС "Системы на ПЛИС - System on Programmable Chip" (он открывался для обсуждения корок)? большей мелкозернистостью обсуждаемых модулей?
б) по какому принципу будет организовываться структура раздела? надеюсь каталогизация подразумевается?
des00
Цитата(iosifk @ Sep 8 2010, 06:53) *
Я предлагаю объединить это обсуждение с обсуждением видео-обучалок.

Ответил вам в вашей теме

Цитата(one_man_show @ Sep 8 2010, 06:57) *
Скажите, что считаете более приемелемым

Надо немножко подумать

Цитата(des333 @ Sep 8 2010, 07:34) *
Я думаю лучше не объединять, а сделать новый раздел с названием типа "Оптимизация ..."

Не хотелось бы останавливаться только на оптимизации. У меня накоплен небольшой багаж по и HDLным трюкам. Т.е. как более красиво описать то или иное. Например CaPpuCcino помнит про решение задачи создании шаблона функций в SV %) Помимо этого есть небольшой багаж по тупости синтезаторов. Например оптимальное в ква описание массива счетчиков, была года два назад и такая тема. Всё это представляет собой обобщенный класс "трюков", который и хотелось бы донести.

Цитата(Aprox @ Sep 8 2010, 12:38) *
А я не согласен. Он AHDL на дух не переносит.

Как уже говорил я работал на языках AHDL/VHDL/V/SV и совершенно ровно отношусь к ним ко всем. Но, как вы правильно заметили, я на дух не переношу голословных, не подтвержденных делом утверждений. Говоря простым языком "Нужно отвечать за базар" %) Но это уже офтоп.

Цитата(CaPpuCcino @ Sep 8 2010, 15:57) *
а) чем содержательно должен отличаться подразумеваемый раздел от 4-ого раздела по ПЛИС "Системы на ПЛИС - System on Programmable Chip" (он открывался для обсуждения корок)? большей мелкозернистостью обсуждаемых модулей?

Целью создания.
Например в свое время я сохранил несколько вариантов делителей опубликованных на форуме. Когда мне потребовалось поставить в свой проект делитель, мне стало интересно написать свою версию. Достал из запасника то что сохранил, раскрутил алгоритм и написал свои реализации. Т.е. использовал форум как справочный материал. Таких справок по форуму лежит много : переход доменов, подсчет КРК, единиц, математика, сортировка и т.д. и т.п. Почему бы их все не объединить в одну справочную базу, снабженную комментариями опытных разработчиков.

Помимо этого все мы используем в своей работе какие то наброски, наработки, описания, которые по нашему мнению идеально подходят и представляют собой что-то вроде собственной "черной магии". Выводились же все эти "трюки"/"хаки" не в слепую, а используя определенные предпосылки и логические заключения (те же шаблоны функций в SV). Было бы интересно всё это собрать под одной темой показав логическую сущность и(или) нестандартность нелинейность мышления HDL дизайнера. %)

Цитата
б) по какому принципу будет организовываться структура раздела? надеюсь каталогизация подразумевается?

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

ЗЫ. В свое время на телесистемах существовал FAQ по ПЛИС, содержащий базовую информацию. Когда я 10 лет назад начинал работать, мне он сильно помог, не смотря на то, что количество вопросов там было мало.
andrew_b
Продолжаю не постигать, зачем такие сложности? Зачем раздел форума? Есть wiki. Технология wiki изначально задумывалась как коллективный агрегатор информации. У каждой записи в wiki есть страница обсуждения. Зачем нужно ограничивать кого-то в редактировании wiki? Боитесь вандализма? У каждой записи в wiki есть история. Всегда неправильную правку можно откатить. Особенно настойчивых вандалов можно просто банить на всём ресурсе, ибо нефиг.
one_man_show
Андрей, если я правильно понял Дениса, в результате работы в разделе в том числе будет происходить наполнение полученных результатов в Wiki. Раздел для того, чтобы набрать команду, согласовать действия, найти темы, найти решения задач, совместно разработать, поделиться, покритиковать. Все это в направлении действия конкретной команды с конкретными результатами на выходе.
andrew_b
Ну ладно, поживём -- увидим.
sazh
Цитата(andrew_b @ Sep 9 2010, 10:10) *
Ну ладно, поживём -- увидим.


Что такое wiki/ Если типа этого http://allfpga.com/wiki/ModelSim,
то это явно не дотягивает до желаемого
andrew_b
Цитата(sazh @ Sep 9 2010, 11:12) *
Что такое wiki/
Не понял вопроса. Если имеется в виду, что такое вики в принципе, то Википедию вы, наверняка, видели. Если имеется в виду, что такое вики на Электрониксе, то ссылка вверху страницы: http://electronix.ru/mkportal/modules/mediawiki/index.php.
Цитата
явно не дотягивает до желаемого
Не совсем понятна претензия. Отчасти оттого, что я так и не понял, в чём это желаемое состоит. По ссылке используется обычный вики-движок. Ну а что структура наполнения не развита, так это зависит от наполняющих.
sazh
Цитата(andrew_b @ Sep 9 2010, 11:18) *
Если имеется в виду, что такое вики на Электрониксе, то ссылка вверху страницы:
Не совсем понятна претензия. Отчасти оттого, что я так и не понял, в чём это желаемое состоит. По ссылке используется обычный вики-движок. Ну а что структура наполнения не развита, так это зависит от наполняющих.


Спасибо за ссылку. Теперь буду знать, что на электрониксе есть wiki. ( Видимо я сюда редко заглядываю).
А претензий нет.
Пусть будет и то и другое. Но с идентификацией написавшего.
des333
Цитата(des00 @ Sep 9 2010, 06:36) *
Не хотелось бы останавливаться только на оптимизации. У меня накоплен небольшой багаж по и HDLным трюкам. Т.е. как более красиво описать то или иное. Например CaPpuCcino помнит про решение задачи создании шаблона функций в SV %) Помимо этого есть небольшой багаж по тупости синтезаторов. Например оптимальное в ква описание массива счетчиков, была года два назад и такая тема. Всё это представляет собой обобщенный класс "трюков", который и хотелось бы донести.


Согласен, на оптимизации действительно останавливаться не стоит.


Но, лично я, слово "трюки" в названии раздела употреблять бы не стал. Хотя это уже мелочи.  smile.gif

CaPpuCcino
Цитата(sazh @ Sep 9 2010, 11:53) *
Спасибо за ссылку. Теперь буду знать, что на электрониксе есть wiki. ( Видимо я сюда редко заглядываю).

вот я тоже только вчера нашёл, что на электрониксе есть какое-то вики, но, думал, я один такой невнимательный.
хочется попросить малиновые штаны (раз представитель оных здесь на удачу уже присутствует), чтобы население форума более активно информировалось по ключевым событиям в жизни форума (например почтовой рассылкой). глядишь так и wiki будет активнее наполнятся
Maverick
Цитата(CaPpuCcino @ Sep 9 2010, 14:24) *
вот я тоже только вчера нашёл, что на электрониксе есть какое-то вики, но, думал, я один такой невнимательный.
хочется попросить малиновые штаны (раз представитель оных здесь на удачу уже присутствует), чтобы население форума более активно информировалось по ключевым событиям в жизни форума (например почтовой рассылкой). глядишь так и wiki будет активнее наполнятся

это Вы метко подметили по поводу наполнения wiki. На мой взгляд - он вообще запущен и забыт.
Serhiy_UA
к des00
это как в книге "Исскуство схемотехники"?
или это копилка удачных решений...
или размышления о том, как лучше сделать...

Цитата(des00 @ Sep 9 2010, 05:36) *
...У меня накоплен небольшой багаж по и HDLным трюкам. Т.е. как более красиво описать то или иное...


Приведите для примера один-два трюка, что бы другие в таком же стиле выкладывали свои.

one_man_show
Цитата
хочется попросить малиновые штаны (раз представитель оных здесь на удачу уже присутствует)

Если это в мой огород, то из него же граблями отвечу smile.gif На Шараге.орг, как один из ее участников, готов использовать принятую там терминологию, здесь как-то хочется иного...я даже не про уважение...ну вы понимаете smile.gif

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

В теме у Иосифа по поводу видео-обучалок немного заоффтопил, здесь повторюсь, что и Статьи у нас в запустении. Пытаюсь "привлечь заинтересованных", чтобы в отдельной теме эти вопросы начать обсуждать, не мешая уже развивающимся проектам
CaPpuCcino
Цитата(one_man_show @ Sep 9 2010, 16:15) *
здесь как-то хочется иного...я даже не про уважение...ну вы понимаете smile.gif

приношу свои извинения - не думал, что это может задеть. хотел пошутить.
des00
Цитата(des333 @ Sep 9 2010, 04:59) *
Но, лично я, слово "трюки" в названии раздела употреблять бы не стал. Хотя это уже мелочи.  smile.gif

ничего другого, не сленгового, но описывающего в целом предмет, мне в голову не пришло %)

Цитата(Serhiy_UA @ Sep 9 2010, 06:57) *
это как в книге "Исскуство схемотехники"?
или это копилка удачных решений...
или размышления о том, как лучше сделать...

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

Цитата
Приведите для примера один-два трюка, что бы другие в таком же стиле выкладывали свои.

параметризация функций в SV
или
пример использования task в синтезируемом коде, который позволяет красиво описать нужную функциональность и получить легкую расширяемость модуля
CODE

//------------------------------------------------------------------------------------------------------
// Self synchronous scrambler
//------------------------------------------------------------------------------------------------------

module scrambler
#(
parameter int pTYPE = 23, // 5/6/7/8/9/10/11/15/16/17/18/20/21/22/23/33/43
parameter int pWIDTH = 1,
parameter bit pMSB_FIRST = 0 // 1/0 :: first scrambled bit is MSB/LSB
)
(
iclk ,
iena ,
ibyp ,
idat ,
odat ,
oena
);

//------------------------------------------------------------------------------------------------------
//
//------------------------------------------------------------------------------------------------------

input wire iclk;
input wire iena;
input wire ibyp; // bypass data or not
input wire [pWIDTH-1 : 0] idat;
output logic [pWIDTH-1 : 0] odat;
output logic oena;

//------------------------------------------------------------------------------------------------------
//
//------------------------------------------------------------------------------------------------------
typedef logic [pWIDTH-1 : 0] data_t;
typedef logic [pTYPE : 1] state_t;

state_t state;
//------------------------------------------------------------------------------------------------------
//
//------------------------------------------------------------------------------------------------------
// synthesis translate_off
initial begin : ini
odat = '0;
oena = '0;
state = '0;
end
// synthesis translate_on
//------------------------------------------------------------------------------------------------------
//
//------------------------------------------------------------------------------------------------------
generate
if (
(pTYPE == 5) || (pTYPE == 6) || (pTYPE == 7) || (pTYPE == 8) || (pTYPE == 9) ||
(pTYPE == 10) || (pTYPE == 11) || (pTYPE == 15) || (pTYPE == 16) || (pTYPE == 17) || (pTYPE == 18) ||
(pTYPE == 20) || (pTYPE == 21) || (pTYPE == 22) || (pTYPE == 23) ||
(pTYPE == 33) || (pTYPE == 43)
) begin
always_ff @(posedge iclk) begin
if (iena) begin
if (ibyp)
{state, odat} <= {'0, idat};
else
ScramblerWord(idat, state, odat);
end
oena <= iena;
end
end
else begin
assign state[-1] = 1'bx; // incorrect scrambler type is set
end
endgenerate

//------------------------------------------------------------------------------------------------------
// 5bit : x^5 + x^3 + 1
// 6bit : x^6 + x^5 + 1
// 7bit : x^7 + x^6 + 1
// 8bit : x^8 + x^6 + x^5 + x^4 + 1
// 9bit : x^9 + x^5 + 1
// 10bit : x^10 + x^7 + 1
// 11bit : x^11 + x^9 + 1
// 15bit : x^15 + x^14 + 1
// 16bit : x^16 + x^15 + x^13 + x^4 + 1
// 17bit : x^17 + x^14 + 1
// 18bit : x^18 + x^11 + 1
// 20bit : x^20 + x^17 + 1
// 21bit : x^21 + x^19 + 1
// 22bit : x^22 + x^21 + 1
// 23bit : x^23 + x^18 + 1
// 33bit : x^33 + x^20 + 1
// 43bit : x^43 + x^41 + x^20 + x + 1
//------------------------------------------------------------------------------------------------------

task automatic ScramblerBit(input bit b, inout state_t state, output bit msb);
case (pTYPE)
5 : msb = state[5] ^ state[3] ^ b;
6 : msb = state[6] ^ state[5] ^ b;
7 : msb = state[7] ^ state[6] ^ b;
8 : msb = state[8] ^ state[6] ^ state[5] ^ state[4] ^ b;
9 : msb = state[9] ^ state[5] ^ b;
10 : msb = state[10] ^ state[7] ^ b;
11 : msb = state[11] ^ state[9] ^ b;
15 : msb = state[15] ^ state[14] ^ b;
16 : msb = state[16] ^ state[15] ^ state[13] ^ state[4] ^ b;
17 : msb = state[17] ^ state[14] ^ b;
18 : msb = state[18] ^ state[11] ^ b;
20 : msb = state[20] ^ state[17] ^ b;
21 : msb = state[21] ^ state[19] ^ b;
22 : msb = state[22] ^ state[21] ^ b;
23 : msb = state[23] ^ state[18] ^ b;
33 : msb = state[33] ^ state[20] ^ b;
43 : msb = state[43] ^ state[41] ^ state[20] ^ state[1] ^ b;
default : msb = 1'b0;
endcase
state = (state << 1) | msb;
endtask

//------------------------------------------------------------------------------------------------------
//
//------------------------------------------------------------------------------------------------------

task automatic ScramblerWord (input data_t b, inout state_t state, output data_t msb);
int i;
begin
if (pMSB_FIRST == 0) begin
for (i = 0; i < $size(cool.gif; i++) ScramblerBit (b[i], state, msb[i]);
end
else begin // pMSB_FIRST == 1
for (i = $high(cool.gif; i >= 0; i--) ScramblerBit (b[i], state, msb[i]);
end
end
endtask

endmodule

Как видите, для добавления нового полинома, нужно изменить всего две строки (если бы не дополнительная проверка, то одну). При этом ни каких варнингов при синтезе не будет %)
ViKo
Цитата(des00 @ Sep 10 2010, 05:19) *
ничего другого, не сленгового, но описывающего в целом предмет, мне в голову не пришло %)

"Хитрости". Еще логичнее - "Искусство схемотехники для ПЛИСоводов" - более популярная книга smile.gif
Maverick
Цитата(ViKo @ Sep 10 2010, 12:10) *
"Хитрости". Еще логичнее - "Искусство схемотехники для ПЛИСоводов" - более популярная книга smile.gif

Можно. Я предлагаю следующее:
Схемотехнические головоломки на ПЛИС и способы решения
des333
Цитата(Maverick @ Sep 10 2010, 14:00) *
Можно. Я предлагаю следующее:
Схемотехнические головоломки на ПЛИС и способы решения


Почему же сразу "головоломки"? Некоторые из обсуждаемых вопросов являются банальными "ежедневными" задачами ПЛИСоводов.  smile.gif



Кстати, насчет задач. Извиняюсь за кроспостинг, но укажу ссылку, чтобы читающие данную тему были в курсе.
Задача подсчета количества единичных бит до сих пор не получила своего оптимального решения. Отличие результатов анализа частоты, которые получали разные участники обсуждения оказались вызваны различием версий Квартуса. 

Подробности тут:
http://electronix.ru/forum/index.php?showt...80083&st=30
sazh
Цитата(des00 @ Sep 10 2010, 05:19) *
Мне импонирует стиль подачи материала как в в книге "Алгоритмические трюки для программистов", которую не однократно упоминал. В этой книге, на простых примерах, без привязки к целевой платформе даются красивые реализации простых вещей, которые обычно решаются в лоб. Можно назвать это копилкой удачных решений.


Наверно имеет смысл подавать это в связке с написанием testbench_ей.
Ибо систематизированных описаний красивых реализаций пока нет.
Решения в лоб привалируют. Сплошь и рядом откровения типа оказывается можно одной строчкой
Код
while(flag == 1'b0)        repeat (1) @(negedge clk);

Особенно это актуально для Альтеровцев, ибо классный язык и наличие качественного встроенного симулятора в Квартусе сыграли с разработчиками злую шутку.
Симулятора уже нет, на AlteraHDL многие подсели. (Поэтому смотрят на симулятор Альдека, графика)
А ip_core идут в связке с моделсимом.
А два симулятора - это уже перебор.
Думаю, наступила пора только текстового описания и того и другого.
des00
Цитата(sazh @ Sep 11 2010, 01:54) *
Наверно имеет смысл подавать это в связке с написанием testbench_ей.
Ибо систематизированных описаний красивых реализаций пока нет.

А это идея.
Цитата
Решения в лоб привалируют. Сплошь и рядом откровения типа оказывается можно одной строчкой

Можно и не такое в одну строчку %)

Извините за паузу, работы много. Итак, явное желание войти в команду выразили : XVR, Maverick, des333, на днях создам новую тему где выложу детали %)

des00
Цитата(des00 @ Sep 13 2010, 21:49) *
Извините за паузу, работы много. Итак, явное желание войти в команду выразили : XVR, Maverick, des333, на днях создам новую тему где выложу детали %)

еще раз извините, на меня свалились две срочных задачи, зашиваюсь %(
des333
Цитата(des00 @ Sep 20 2010, 10:05) *
еще раз извините, на меня свалились две срочных задачи, зашиваюсь %(

Ничего страшного. Бывает.  smile.gif
dsmv
Цитата(des00 @ Sep 14 2010, 06:49) *
Итак, явное желание войти в команду выразили : XVR, Maverick, des333, на днях создам новую тему где выложу детали %)


А может и меня в команду возьмёте ?
Intekus
Цитата(des00 @ Sep 14 2010, 06:49) *
Итак, явное желание войти в команду выразили : XVR, Maverick, des333, на днях создам новую тему где выложу детали %)

А меня если можно запишите пока в резервисты smile.gif
des00
Цитата(dsmv @ Sep 28 2010, 10:40) *
А может и меня в команду возьмёте ?

Цитата(Intekus @ Sep 28 2010, 12:53) *
А меня если можно запишите пока в резервисты smile.gif

договорились, почти разгребся с задачами, скоро время появится %)
lexus.mephi
Хочу на своем сайте такой раздел сделать с SV трюками. Если авторы разрешат, я с удовольствием буду выкладывать финальные версии схемотехнических решений.
Я в настоящее время занимаюсь ASICами, т.ч. если возьмете в команду - могу посинтезить получившиеся схемы в Design Compiler.
Shtirlits
Лично я за примеры, требующие минимальных знаний и подразумевающие минимум возможных интерпретаций.
Например, если скобки, то явно все, какие можно поставить и пусть человек не думает о приоритете операторов.
Для оценки с этой точки зрения наилучшим примером будет тот, который читается однозначно при минимуме знаний языка, архитектуры и особенностей инструмента. Деньги зарабатываеются на чем-то другом.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2024 Invision Power Services, Inc.