Я не думаю, что это имеет большое значение, какой инструмент контроля версий вы используете - все, что вы считаете хорошим в целом, вероятно, будет в порядке здесь. Я лично использую Git для значительного программного проекта Verilog +, и я очень доволен им.
Что будет укусить вас в задницу - независимо от того, какой контроль версий вы используете - так это: инструменты Xilinx обычно не соблюдают четкое разделение между «вводом» и «выводом» или между (отредактировано человеком) » источник "и (непрозрачный)" двоичный файл ". Многие из инструментов любят хранить некоторую информацию о состоянии, например время последнего запуска или значение хеша, в своих «входных» файлах, что означает, что вы получите много ложных изменений. Coregen делает это с файлами .xco, а навигатор проекта (основной графический интерфейс) - с файлами .xise. Кроме того, оба инструмента имеют привычку вставлять или удалять строки для параметров по умолчанию, по-видимому, наугад.
Самая большая проблема, с которой я столкнулся, - это рабочий процесс с Coregen: во многих случаях верно хотя бы одно из следующих:
- Вам необходимо вручную редактировать файлы HDL, созданные Coregen.
- Параметры, входящие в Coregen, хранятся где-то, кроме файла .xco (обычно в том, что выглядит как выходной файл).
- Вы должны скопировать и вставить вывод из Coregen в ваш дизайн верхнего уровня.
Это означает, что не существует единого логического источника / основного местоположения для вашего ввода в процесс генерации ядра. Таким образом, даже если у вас есть файл .xco под управлением версией, нельзя ожидать, что ваш дизайн соответствует ему. Если вы заново сгенерируете «то же самое» ядро из его номинальных входов, вы, вероятно, не получите правильные выходы. И даже не думай о слиянии.