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

 
 
5 страниц V  < 1 2 3 4 5 >  
Reply to this topicStart new topic
> как быстро вникнуть в чужой код, советы по скоростному освоению чужой программы
Amurak
сообщение Jul 24 2014, 10:43
Сообщение #31


Частый гость
**

Группа: Свой
Сообщений: 187
Регистрация: 18-11-12
Пользователь №: 74 459



Цитата(Golikov A. @ Jul 23 2014, 22:49) *
книжек как грязи

Пару примеров? Хотя бы уровня "FPGA Prototyping by VHDL examples".

Цитата(Golikov A. @ Jul 23 2014, 22:49) *
только едва ли описание реальных устройств полезнее перепечатки стандарта

Есть способ быстрее перейти от стадии "я выучил весь синтаксис" к стадии "могу применять на практике", нежели разбирать готовые примеры?
Go to the top of the page
 
+Quote Post
des00
сообщение Jul 24 2014, 11:07
Сообщение #32


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

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



Цитата(Amurak @ Jul 24 2014, 17:43) *
Пару примеров? Хотя бы уровня "FPGA Prototyping by VHDL examples".

библия Дугласа Смита HDL Chip design не попадалась ?


--------------------
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Jul 24 2014, 11:09
Сообщение #33


Гуру
******

Группа: Свой
Сообщений: 4 210
Регистрация: 17-02-06
Пользователь №: 14 454



http://www.ozon.ru/?context=search&text=VHDL
sm.gif

Обучение - вещь субъективная, учебные примеры стандартных решений и практика реализации множества задач, мне дает больше, чем ковыряние чужого когда. Чужое решение - это чужое решение, на которое влияют множество факторов, вплоть до заплаток из - за нехватки времени, а академическая база - это база. Но я не настаиваю...
Go to the top of the page
 
+Quote Post
Amurak
сообщение Jul 24 2014, 12:32
Сообщение #34


Частый гость
**

Группа: Свой
Сообщений: 187
Регистрация: 18-11-12
Пользователь №: 74 459



Цитата(Golikov A. @ Jul 24 2014, 15:09) *
Чужое решение - это чужое решение, на которое влияют множество факторов, вплоть до заплаток из - за нехватки времени

То есть если чужое решение работает и встала задача доработки этого решения, то надо отбросить это чужое решение и решать все заново самому? И вообще, приходя на новое место работы, удалять все исходники и писать все заново?
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Jul 24 2014, 18:47
Сообщение #35


Гуру
******

Группа: Свой
Сообщений: 4 210
Регистрация: 17-02-06
Пользователь №: 14 454



Ну нет...

Одно дело обучение, другое дело работа, разговор был про одно, продолжился в контексте другого... Троллинг?
Go to the top of the page
 
+Quote Post
Amurak
сообщение Jul 25 2014, 04:57
Сообщение #36


Частый гость
**

Группа: Свой
Сообщений: 187
Регистрация: 18-11-12
Пользователь №: 74 459



Цитата(Golikov A. @ Jul 24 2014, 22:47) *
Троллинг?

Возврат к теме.
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Jul 25 2014, 06:17
Сообщение #37


Гуру
******

Группа: Свой
Сообщений: 4 210
Регистрация: 17-02-06
Пользователь №: 14 454



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

Естественно если работаю с проектом на предмет исправления ошибки, то в обоих вариантах вношу правки.

Заново писать проект - это затратный бред, даже если он очень неправильный, но по какой-то причине продается, выкинуть и написать заново - не правильно, только поэтапные модификации, чтобы продолжал продаваться. Я исхожу из того что полностью не годный проект все таки на продажу не выставят. А от комментариев никому плохо не будет, чем их больше тем лучше, так что их добавляю нещадноsm.gif
Go to the top of the page
 
+Quote Post
SM
сообщение Jul 28 2014, 13:17
Сообщение #38


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



Цитата(Golikov A. @ Jul 25 2014, 10:17) *
Заново писать проект - это затратный бред, даже если он очень неправильный, но по какой-то причине продается, выкинуть и написать заново - не правильно,


Вот не надо так безапелляционно то.... Бывает, и нередко, что другого выхода нет - так как проект написан таким образом, что результирующая схема либо не влезает в заданный объем, либо не дает нужной частоты, а оптимизация проекта практически невозможна (а, точнее, невыгодна, так как займет больше времени, чем переписывание) из-за изначально глобально не оптимальной структуры. Но при этом вникать в код все равно надо, например, чтобы понять "мутные" места спецификации того, что проект реализовывает...
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Jul 28 2014, 15:32
Сообщение #39


Гуру
******

Группа: Свой
Сообщений: 4 210
Регистрация: 17-02-06
Пользователь №: 14 454



Цитата
Бывает, и нередко, что другого выхода нет - так как проект написан таким образом, что результирующая схема либо не влезает в заданный объем, либо не дает нужной частоты

тогда в моей терминологии такой проект не может продаватьсяsm.gif И тут надо смотреть на создание нового проекта, и не считать это правкой старого... как-то так... а в целом из всего есть исключения
Go to the top of the page
 
+Quote Post
SM
сообщение Jul 28 2014, 15:48
Сообщение #40


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



Цитата(Golikov A. @ Jul 28 2014, 19:32) *
тогда в моей терминологии такой проект не может продаватьсяsm.gif И тут надо смотреть на создание нового проекта, и не считать это правкой старого...


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

А продаваться "оно" еще как может, и продается вовсю и всеми (я это подробно исследовал на примере PCI, PCIe и USB IP - за их мегауниверсальность надо платить лишней площадью и тормозами). Сейчас редко кто "впихивает невпихуемое" sm.gif, современная тенденция - тупо поставить ПЛИС грейдом повыше, и/или площадью потолще, не думая о том, что затрата "лишнего" месяца на оптимизацию принесет впоследствии прибыль от экономии на себестоимости продукта, которая, чаще всего, покроет этот месяц с лихвой (за редким исключением единичных изделий и прототипов). Хотя, конечно, для этого надо быть не на зарплате... Сорри за мини-оффтопик.
Go to the top of the page
 
+Quote Post
Leka
сообщение Aug 11 2014, 07:06
Сообщение #41


Знающий
****

Группа: Участник
Сообщений: 949
Регистрация: 30-09-05
Пользователь №: 9 118



Думаю, подходящая ветка.
Код
module tst(
    output reg q=0,
    input d1, d2, d3, clk

);
    always
        while(d1)
            while(d2)
                while(d3)
                    @(posedge clk)
                        q <= ~q;    
endmodule

Просьба:
1) объяснить работу этого модуля с точки зрения стандарта Верилога,
2) привести в моделируемый вид,
3) перевести в синтезируемый (для ПЛИС) вид.
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Aug 11 2014, 08:25
Сообщение #42


Гуру
******

Группа: Свой
Сообщений: 4 210
Регистрация: 17-02-06
Пользователь №: 14 454



Код
always @(posedge clk)
  if(((d1&d2&d3) == 1'b1)
    q<=~q;


может что-то типа того?
я так понимаю это для симуляции, пока эти 3 сигнала в единице по каждому клоку сигнал ку меняется, и это происходит вечно... зачем 3 раза вложили вайлы фиг знает, может там какие-то задержки или еще что под этими вайлами есть...
Go to the top of the page
 
+Quote Post
khach
сообщение Aug 11 2014, 09:10
Сообщение #43


Гуру
******

Группа: Свой
Сообщений: 3 172
Регистрация: 29-12-04
Пользователь №: 1 741



Кстати, для программистов на С или Дельфях есть интресное решение- перекомпилить весь проект с отладочной информацией и натравить на результат ИДУ - она построит граф вызовов функций и по нему можно многое понять, тем более, что имена функций будут соответсвовать исходникам.
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Aug 11 2014, 09:55
Сообщение #44


Гуру
******

Группа: Свой
Сообщений: 4 210
Регистрация: 17-02-06
Пользователь №: 14 454



ага...

вот мне проект достался самое длинное имя переменно 6 букв.
переменные типа
F_ENSM - это флаг включения шагового двигателя
F_WP - флаг программной работы, при этом есть еще F_WORK - который тоже флаг работы, но другой.
Все переменные глобальные, и мизер комментариев, причем часто такого рода

//чтобы работало эту переменную надо задать в 1
W_DFSV = 0;

или

//вызов функции с параметром 1 выключит все устойства, с параметром 0 оставит CASEL включенным
void ALLOFF(void)
{

}

при этом что такое CASEL никто незнает, ровно как вызвать void функцию с параметромsm.gif.....

а вы говорите граф построит и станет понятноsm.gif....

Кстати с графом тоже облом 90% переменных глобальные, и меняются в нескольких прерываниях, которые блокируют друг друга, так что....
Go to the top of the page
 
+Quote Post
Leka
сообщение Aug 11 2014, 11:00
Сообщение #45


Знающий
****

Группа: Участник
Сообщений: 949
Регистрация: 30-09-05
Пользователь №: 9 118



Цитата(Golikov A. @ Aug 11 2014, 12:25) *
Код
always @(posedge clk)
  if(((d1&d2&d3) == 1'b1)
    q<=~q;

может что-то типа того? ...пока эти 3 сигнала в единице по каждому клоку сигнал ку меняется, и это происходит вечно...

Нет.
Цитата
зачем 3 раза вложили вайлы фиг знает...

Это я задачку на сообразительность подкинул - смотрю, на каком форуме дизайнеры круче.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 25th September 2017 - 00:48
Рейтинг@Mail.ru


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