реклама на сайте
подробности

 
 
14 страниц V  < 1 2 3 4 5 > »   
Reply to this topicStart new topic
> "Схемотехнические трюки для ПЛИСоводов", создание аналога "Алгоритмические трюки для программистов"
des333
сообщение Sep 9 2010, 10:59
Сообщение #31


Профессионал
*****

Группа: Свой
Сообщений: 1 129
Регистрация: 19-07-08
Из: Санкт-Петербург
Пользователь №: 39 079



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


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


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



--------------------
Go to the top of the page
 
+Quote Post
CaPpuCcino
сообщение Sep 9 2010, 11:24
Сообщение #32


тоже уже Гуру
******

Группа: Свой
Сообщений: 2 047
Регистрация: 13-06-05
Из: Кёлн - Санкт-Петербург
Пользователь №: 5 973



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

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


--------------------
И снова на арене цирка - дрессированные клоуны!! Оказываем консультации по электронике за симпу круглосуточно.
Go to the top of the page
 
+Quote Post
Maverick
сообщение Sep 9 2010, 11:27
Сообщение #33


я только учусь...
******

Группа: Модераторы
Сообщений: 3 447
Регистрация: 29-01-07
Из: Украина
Пользователь №: 24 839



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

это Вы метко подметили по поводу наполнения wiki. На мой взгляд - он вообще запущен и забыт.


--------------------
If it doesn't work in simulation, it won't work on the board.

"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
Go to the top of the page
 
+Quote Post
Serhiy_UA
сообщение Sep 9 2010, 12:57
Сообщение #34


Знающий
****

Группа: Свой
Сообщений: 721
Регистрация: 23-10-08
Из: next to Odessa
Пользователь №: 41 112



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

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


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

Go to the top of the page
 
+Quote Post
one_man_show
сообщение Sep 9 2010, 13:15
Сообщение #35


Помогу, чем смогу
******

Группа: Админы
Сообщений: 2 786
Регистрация: 28-05-04
Из: Москва
Пользователь №: 25



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

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

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

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


--------------------
С уважением,
Ваган Саруханов
Проекты|Форум|Facebook|Linkedin
Go to the top of the page
 
+Quote Post
Maverick
сообщение Sep 9 2010, 13:58
Сообщение #36


я только учусь...
******

Группа: Модераторы
Сообщений: 3 447
Регистрация: 29-01-07
Из: Украина
Пользователь №: 24 839



Присоединяйтесь к теме по написанию статей - обсуждение в этой ветке

PS Я сам только учусь ... smile.gif


--------------------
If it doesn't work in simulation, it won't work on the board.

"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
Go to the top of the page
 
+Quote Post
CaPpuCcino
сообщение Sep 9 2010, 20:38
Сообщение #37


тоже уже Гуру
******

Группа: Свой
Сообщений: 2 047
Регистрация: 13-06-05
Из: Кёлн - Санкт-Петербург
Пользователь №: 5 973



Цитата(one_man_show @ Sep 9 2010, 16:15) *
здесь как-то хочется иного...я даже не про уважение...ну вы понимаете smile.gif

приношу свои извинения - не думал, что это может задеть. хотел пошутить.


--------------------
И снова на арене цирка - дрессированные клоуны!! Оказываем консультации по электронике за симпу круглосуточно.
Go to the top of the page
 
+Quote Post
des00
сообщение Sep 10 2010, 02:19
Сообщение #38


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(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

Как видите, для добавления нового полинома, нужно изменить всего две строки (если бы не дополнительная проверка, то одну). При этом ни каких варнингов при синтезе не будет %)


--------------------
Go to the top of the page
 
+Quote Post
ViKo
сообщение Sep 10 2010, 09:10
Сообщение #39


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(des00 @ Sep 10 2010, 05:19) *
ничего другого, не сленгового, но описывающего в целом предмет, мне в голову не пришло %)

"Хитрости". Еще логичнее - "Искусство схемотехники для ПЛИСоводов" - более популярная книга smile.gif
Go to the top of the page
 
+Quote Post
Maverick
сообщение Sep 10 2010, 10:00
Сообщение #40


я только учусь...
******

Группа: Модераторы
Сообщений: 3 447
Регистрация: 29-01-07
Из: Украина
Пользователь №: 24 839



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

Можно. Я предлагаю следующее:
Схемотехнические головоломки на ПЛИС и способы решения


--------------------
If it doesn't work in simulation, it won't work on the board.

"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
Go to the top of the page
 
+Quote Post
des333
сообщение Sep 10 2010, 23:46
Сообщение #41


Профессионал
*****

Группа: Свой
Сообщений: 1 129
Регистрация: 19-07-08
Из: Санкт-Петербург
Пользователь №: 39 079



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


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



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

Подробности тут:
http://electronix.ru/forum/index.php?showt...80083&st=30


--------------------
Go to the top of the page
 
+Quote Post
sazh
сообщение Sep 11 2010, 06:54
Сообщение #42


Гуру
******

Группа: Свой
Сообщений: 2 435
Регистрация: 6-10-04
Из: Петербург
Пользователь №: 804



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


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

Особенно это актуально для Альтеровцев, ибо классный язык и наличие качественного встроенного симулятора в Квартусе сыграли с разработчиками злую шутку.
Симулятора уже нет, на AlteraHDL многие подсели. (Поэтому смотрят на симулятор Альдека, графика)
А ip_core идут в связке с моделсимом.
А два симулятора - это уже перебор.
Думаю, наступила пора только текстового описания и того и другого.
Go to the top of the page
 
+Quote Post
des00
сообщение Sep 14 2010, 02:49
Сообщение #43


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(sazh @ Sep 11 2010, 01:54) *
Наверно имеет смысл подавать это в связке с написанием testbench_ей.
Ибо систематизированных описаний красивых реализаций пока нет.

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

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

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



--------------------
Go to the top of the page
 
+Quote Post
des00
сообщение Sep 20 2010, 06:05
Сообщение #44


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



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

еще раз извините, на меня свалились две срочных задачи, зашиваюсь %(


--------------------
Go to the top of the page
 
+Quote Post
des333
сообщение Sep 20 2010, 09:10
Сообщение #45


Профессионал
*****

Группа: Свой
Сообщений: 1 129
Регистрация: 19-07-08
Из: Санкт-Петербург
Пользователь №: 39 079



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

Ничего страшного. Бывает.  smile.gif


--------------------
Go to the top of the page
 
+Quote Post

14 страниц V  < 1 2 3 4 5 > » 
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th April 2024 - 04:21
Рейтинг@Mail.ru


Страница сгенерированна за 0.01553 секунд с 7
ELECTRONIX ©2004-2016