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

 
 
> проблема "гиблых коммитов", (при работе с HDL-кодом)
Doka
сообщение Jul 4 2008, 20:45
Сообщение #1


Electrical Engineer
******

Группа: СуперМодераторы
Сообщений: 2 163
Регистрация: 4-10-04
Пользователь №: 778



следующая проблема:
код создаётся и правится командой, притом функции оной более-менее чётко разделены:
* прототипирование и первичная отладка на ПЛИС (HDL syntax checker)
* синтез в Synopsys DC
* моделирование в NCsim

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

притом, задача не конкретно для HDL-кода. Это может быть любой код, обрабатываемый разнообразными САПР, которые в силу вольности трактовки стандарта (что в случае HDL имеется в явном виде для верилог), могут выдавать различный по успешности результат для одного и того же кода.

задача: иметь (и помещать) в хранилище только код, свободный от синтаксических/лексических ошибок.
в данный момент задача решается передачей отдельных файлов минуя хранилище (для пробного прогона на других EDA)

понимаю, что в комплексе с системой контроля ревизий очень хорошо заиграет такая штука как регрессионные тесты, но есть два момента:
1) это всёже функциональное тестирование - и при редактировании кода для изменения функционала эти тесты работать перестанут.
2) как правило, разработчик пользуется только "своими" САПР и возможность прогнать код на всей линейке инструментов - отсутствует/затруднена.

PS: как вариант - редактирование комментариев уже совершённых в прошлом коммитов - добавление туда некоего специального тега (например в SVN такая возможность есть - правка комментариев существующих коммитов).
но может есть еще какие-то идеи?


--------------------
Блог iDoka.ru
CV linkedin.com/in/iDoka
Sources github.com/iDoka


Never stop thinking...........................
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
yes
сообщение Dec 18 2008, 15:42
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 198
Регистрация: 23-12-04
Пользователь №: 1 640



Цитата(Doka @ Jul 4 2008, 23:45) *
притом, задача не конкретно для HDL-кода. Это может быть любой код, обрабатываемый разнообразными САПР, которые в силу вольности трактовки стандарта (что в случае HDL имеется в явном виде для верилог), могут выдавать различный по успешности результат для одного и того же кода.


вроде бы совсем недавно вполне успешно решил такую проблему пользуясь svn (как раз таки для HDL)

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

я ответвил версию до смены log2 и приложил на эту версию все изменения с главной ветки (от +1 до HEAD) - все работает.

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

в любом случае придется сливать изменения с "ущербной" ветки в основную и из основной в ущербную

--------

возможно таги облегчили бы жизнь, но таги как-то мутно реализованы в svn (типа как в cvs мутно реализованы ветки) и я пока не рискую ими пользоваться

btw: у меня есть проекты, где от svn/cvs не отказаться из-за организационных вопросов - поэтому приходится пользовать все подряд
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 20th August 2025 - 05:06
Рейтинг@Mail.ru


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