Des333 0 9 сентября, 2010 Опубликовано 9 сентября, 2010 · Жалоба Не хотелось бы останавливаться только на оптимизации. У меня накоплен небольшой багаж по и HDLным трюкам. Т.е. как более красиво описать то или иное. Например CaPpuCcino помнит про решение задачи создании шаблона функций в SV %) Помимо этого есть небольшой багаж по тупости синтезаторов. Например оптимальное в ква описание массива счетчиков, была года два назад и такая тема. Всё это представляет собой обобщенный класс "трюков", который и хотелось бы донести. Согласен, на оптимизации действительно останавливаться не стоит. Но, лично я, слово "трюки" в названии раздела употреблять бы не стал. Хотя это уже мелочи. :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
CaPpuCcino 0 9 сентября, 2010 Опубликовано 9 сентября, 2010 · Жалоба Спасибо за ссылку. Теперь буду знать, что на электрониксе есть wiki. ( Видимо я сюда редко заглядываю). вот я тоже только вчера нашёл, что на электрониксе есть какое-то вики, но, думал, я один такой невнимательный. хочется попросить малиновые штаны (раз представитель оных здесь на удачу уже присутствует), чтобы население форума более активно информировалось по ключевым событиям в жизни форума (например почтовой рассылкой). глядишь так и wiki будет активнее наполнятся Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Maverick_ 15 9 сентября, 2010 Опубликовано 9 сентября, 2010 · Жалоба вот я тоже только вчера нашёл, что на электрониксе есть какое-то вики, но, думал, я один такой невнимательный. хочется попросить малиновые штаны (раз представитель оных здесь на удачу уже присутствует), чтобы население форума более активно информировалось по ключевым событиям в жизни форума (например почтовой рассылкой). глядишь так и wiki будет активнее наполнятся это Вы метко подметили по поводу наполнения wiki. На мой взгляд - он вообще запущен и забыт. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Serhiy_UA 1 9 сентября, 2010 Опубликовано 9 сентября, 2010 · Жалоба к des00 это как в книге "Исскуство схемотехники"? или это копилка удачных решений... или размышления о том, как лучше сделать... ...У меня накоплен небольшой багаж по и HDLным трюкам. Т.е. как более красиво описать то или иное... Приведите для примера один-два трюка, что бы другие в таком же стиле выкладывали свои. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
one_man_show 0 9 сентября, 2010 Опубликовано 9 сентября, 2010 · Жалоба хочется попросить малиновые штаны (раз представитель оных здесь на удачу уже присутствует) Если это в мой огород, то из него же граблями отвечу :) На Шараге.орг, как один из ее участников, готов использовать принятую там терминологию, здесь как-то хочется иного...я даже не про уважение...ну вы понимаете :) Относительно предложения отмечать в рассылках новые веяния, согласен полностью, но здесь был с моей стороны не злой умысел, а чистая эксплуатация жизненного опыта: если кинуть клич на создание команды, или открытие нового проекта, то в первую очередь отреагируют те, кот в этих начинаниях мало заинтересован (мягко говоря) или готов в основном обсуждать (точно выражаясь). В связи с этим я начал с предварительной работы, нашел заинтересованных и предложил им начаьт работу, когда сформируются компетентные группы, можно и всем в рассылке указать, что есть новые проекты, к которым можно присоединиться. В такой ситуации уже компетентные группы будут входным фильтром для "обсуждальщиков", в их темах долго не пофлудишь, при этом модерирование даже не понадобится. В теме у Иосифа по поводу видео-обучалок немного заоффтопил, здесь повторюсь, что и Статьи у нас в запустении. Пытаюсь "привлечь заинтересованных", чтобы в отдельной теме эти вопросы начать обсуждать, не мешая уже развивающимся проектам Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Maverick_ 15 9 сентября, 2010 Опубликовано 9 сентября, 2010 · Жалоба Присоединяйтесь к теме по написанию статей - обсуждение в этой ветке PS Я сам только учусь ... :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
CaPpuCcino 0 9 сентября, 2010 Опубликовано 9 сентября, 2010 · Жалоба здесь как-то хочется иного...я даже не про уважение...ну вы понимаете :) приношу свои извинения - не думал, что это может задеть. хотел пошутить. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 10 сентября, 2010 Опубликовано 10 сентября, 2010 · Жалоба Но, лично я, слово "трюки" в названии раздела употреблять бы не стал. Хотя это уже мелочи. :) ничего другого, не сленгового, но описывающего в целом предмет, мне в голову не пришло %) это как в книге "Исскуство схемотехники"? или это копилка удачных решений... или размышления о том, как лучше сделать... Мне импонирует стиль подачи материала как в в книге "Алгоритмические трюки для программистов", которую не однократно упоминал. В этой книге, на простых примерах, без привязки к целевой платформе даются красивые реализации простых вещей, которые обычно решаются в лоб. Можно назвать это копилкой удачных решений. Приведите для примера один-два трюка, что бы другие в таком же стиле выкладывали свои. параметризация функций в SV или пример использования task в синтезируемом коде, который позволяет красиво описать нужную функциональность и получить легкую расширяемость модуля //------------------------------------------------------------------------------------------------------ // 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(B); i++) ScramblerBit (b[i], state, msb[i]); end else begin // pMSB_FIRST == 1 for (i = $high(B); i >= 0; i--) ScramblerBit (b[i], state, msb[i]); end end endtask endmodule Как видите, для добавления нового полинома, нужно изменить всего две строки (если бы не дополнительная проверка, то одну). При этом ни каких варнингов при синтезе не будет %) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 10 сентября, 2010 Опубликовано 10 сентября, 2010 · Жалоба ничего другого, не сленгового, но описывающего в целом предмет, мне в голову не пришло %) "Хитрости". Еще логичнее - "Искусство схемотехники для ПЛИСоводов" - более популярная книга :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Maverick_ 15 10 сентября, 2010 Опубликовано 10 сентября, 2010 · Жалоба "Хитрости". Еще логичнее - "Искусство схемотехники для ПЛИСоводов" - более популярная книга :) Можно. Я предлагаю следующее: Схемотехнические головоломки на ПЛИС и способы решения Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Des333 0 10 сентября, 2010 Опубликовано 10 сентября, 2010 · Жалоба Можно. Я предлагаю следующее: Схемотехнические головоломки на ПЛИС и способы решения Почему же сразу "головоломки"? Некоторые из обсуждаемых вопросов являются банальными "ежедневными" задачами ПЛИСоводов. :) Кстати, насчет задач. Извиняюсь за кроспостинг, но укажу ссылку, чтобы читающие данную тему были в курсе. Задача подсчета количества единичных бит до сих пор не получила своего оптимального решения. Отличие результатов анализа частоты, которые получали разные участники обсуждения оказались вызваны различием версий Квартуса. Подробности тут: http://electronix.ru/forum/index.php?showt...80083&st=30 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sazh 8 11 сентября, 2010 Опубликовано 11 сентября, 2010 · Жалоба Мне импонирует стиль подачи материала как в в книге "Алгоритмические трюки для программистов", которую не однократно упоминал. В этой книге, на простых примерах, без привязки к целевой платформе даются красивые реализации простых вещей, которые обычно решаются в лоб. Можно назвать это копилкой удачных решений. Наверно имеет смысл подавать это в связке с написанием testbench_ей. Ибо систематизированных описаний красивых реализаций пока нет. Решения в лоб привалируют. Сплошь и рядом откровения типа оказывается можно одной строчкой while(flag == 1'b0) repeat (1) @(negedge clk); Особенно это актуально для Альтеровцев, ибо классный язык и наличие качественного встроенного симулятора в Квартусе сыграли с разработчиками злую шутку. Симулятора уже нет, на AlteraHDL многие подсели. (Поэтому смотрят на симулятор Альдека, графика) А ip_core идут в связке с моделсимом. А два симулятора - это уже перебор. Думаю, наступила пора только текстового описания и того и другого. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 14 сентября, 2010 Опубликовано 14 сентября, 2010 · Жалоба Наверно имеет смысл подавать это в связке с написанием testbench_ей. Ибо систематизированных описаний красивых реализаций пока нет. А это идея. Решения в лоб привалируют. Сплошь и рядом откровения типа оказывается можно одной строчкой Можно и не такое в одну строчку %) Извините за паузу, работы много. Итак, явное желание войти в команду выразили : XVR, Maverick, des333, на днях создам новую тему где выложу детали %) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 20 сентября, 2010 Опубликовано 20 сентября, 2010 · Жалоба Извините за паузу, работы много. Итак, явное желание войти в команду выразили : XVR, Maverick, des333, на днях создам новую тему где выложу детали %) еще раз извините, на меня свалились две срочных задачи, зашиваюсь %( Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Des333 0 20 сентября, 2010 Опубликовано 20 сентября, 2010 · Жалоба еще раз извините, на меня свалились две срочных задачи, зашиваюсь %( Ничего страшного. Бывает. :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться