Acabei de declarar o uso do Vivado em um novo projeto e gostaria de colocar os arquivos do projeto no SVN.
O Vivado parece criar todos os arquivos do projeto sob o nome do projeto (por exemplo, proj1):
/<path to the project>/proj1/
proj1.xpr
proj1.srcs/
constrs_1/
new/
const1.xdc
proj1.runs/
proj1.data/
proj1.cache/
Minha pergunta é quais são os arquivos que eu preciso colocar no SVN que não sejam o XDC e o arquivo XPR?
Respostas:
O Xilinx cria um vídeo do YouTube (suspiro) para lidar com isso. Aqui está o link para o vídeo
http://www.xilinx.com/training/vivado/vivado-version-control-overview.htm
Aqui está o meu resumo do vídeo (8 minutos)
Antes que você comece
Se você realmente gosta de controle total, o Xilinx sugere que você renuncie inteiramente à GUI e faça tudo na linha de comando e saiba o que é fonte e o que não é.
Caso contrário, o Xilinx perceberá que os projetos do Vivado não foram projetados para controle de versão. NÃO VERIFIQUE TODO O PROJETO. Mas continue lendo para obter dicas ...
Linha de base
Obviamente, qualquer coisa que você escrever fora da ferramenta Vivado deve ser registrada.
Verifique nos seguintes arquivos
Blocos IP
Se você usar blocos de IP, gere o IP em uma pasta exclusiva e faça check-in de tudo.
Pontos de verificação
Se você deseja executar novamente partes do fluxo sem executar tudo, verifique os arquivos do ponto de verificação.
My Adendum
Se as ferramentas do Xilinx fossem eficientes, eu não recomendaria o check-in dos arquivos dcp, mas eles levam tantas horas para serem executados que pode valer a pena às custas de um feio sistema de controle de versão.
O vídeo não diz agachamento sobre os arquivos do projeto Vivado (* .xpr), então aqui está minha sugestão:
A alternativa que o Xilinx recomenda (que é realmente um hack, não é adequado para controle de versão) é executar o
File -> Write Project Tcl
comando toda vez que você desejar confirmar e, em seguida, confirmar esse arquivo TCL no controle de versão. Quando você atualiza sua pasta local, é necessário executar novamente o arquivo TCL para criar todos os arquivos do projeto. Que nojo.fonte
O Vivado 2014.1 permite o uso de scripts .tcl para regenerar projetos.
Para fazer isso, com o seu projeto aberto, vá em Arquivo -> Escrever Projeto tcl.
Projetos Básicos
Eu costumo armazenar minhas fontes e o script .tcl em um local fora do diretório do projeto. Os núcleos IP xilinx gerados no projeto podem ser copiados em outro local clicando com o botão direito do mouse no núcleo e selecionando "Copiar IP". E excluindo o original. Quando o script tcl é gerado, ele cria links relativos para esses arquivos. Geralmente é assim que minha estrutura de diretórios se parece:
Apenas os arquivos .xml e .xci do IP precisam ser confirmados. (E mesmo isso não é necessário, tecnicamente, veja as notas no final).
É isso que se compromete com o git, observe a falta de project.xpr ou diretórios do projeto.
Quando executo
genproject.tcl
, ele cria outro diretório para o projeto.Esta nova pasta é completamente descartável. Para criar essa estrutura, modifico o script tcl da seguinte maneira.
Altero as 3 primeiras linhas da seguinte maneira:
Isso cria um novo diretório de projeto e o novo projeto nesse diretório.
Depois modifico os caminhos para apontar para os lugares corretos. Pode ser necessário alterar esses caminhos em outros lugares do script.
Também modifico as execuções de design para núcleos IP, como visto nesta resposta .
Os arquivos .wcfg podem ser incluídos de maneira semelhante ao ip e srcs.
É aqui que o processamento termina para projetos mais simples (contendo apenas fontes e IP, sem diagramas de blocos). Também é necessário fazer o seguinte para armazenar os dados do diagrama de blocos.
Projetos de diagrama de blocos
Para salvar o diagrama de blocos, com o diagrama de blocos aberto, vá em Arquivo -> Exportar -> Diagrama de Blocos para Tcl e salve-o no mesmo diretório que o outro arquivo tcl.
Então eu criei um
Generate_Wrapper.tcl
script que cria os arquivos do wrapper do diagrama de blocos para que você não precise fazer isso manualmente. A pasta project / project.srcs é usada para armazenar os dados bd, mas ainda é completamente descartável, pois o bd é armazenado no script tcl. Salve isso com os outros dois.No final,
genproject.tcl
adiciono as seguintes linhas para gerar o diagrama de blocos e os invólucros:Para projetos sem fonte (apenas diagrama de blocos), meu commit do git é o seguinte:
Para gerar tudo, execute
genproject.tcl
.Você pode até combinar tudo isso em um, se for particularmente eficiente, ainda não cheguei a esse ponto.
Componentes personalizados: O projeto do componente
Outra observação rápida sobre a criação de um componente personalizado. Se você possui um component.xml, adicione-o à sua lista de fontes tcl:
E adicione também a seguinte seção:
Isso inclui o design do componente no projeto para facilitar a personalização.
Componentes personalizados: referenciando seu componente
Você pode espaçar seu caminho de repo de componente personalizado assim:
Na minha pasta de repositório, há pastas individuais contendo arquivos .xml. Portanto, você não está referenciando a pasta que contém o arquivo .xml, mas o pai dela. Por exemplo:
Como executamos esses scripts tcl?
Abra o Vivado e, sem abrir nenhum projeto, selecione Ferramentas -> Executar script TCL e navegue até seu script.
Notas extras sobre TCL
Todo comando que você executa no Vivado é mostrado no console tcl como um comando tcl. Por exemplo, quando eu gerei um novo IP Xilinx usando a GUI, isso surgiu no console tcl:
Isso significa algumas coisas:
Você nem precisa salvar os núcleos ip do xilinx - assim que quiser, copie os comandos para o script tcl e não precisará mais confirmar o ip /.
especifique o diretório IP com o argumento -dir após -module_name para colocá-lo onde quiser (no padrão, é em project.srcs).
Principalmente tudo o que você faz na GUI pode ser feito no tcl, a maneira mais fácil de ver como o xilinx faz as coisas é fazê-lo na GUI e depois ver o que está no console do TCL posteriormente.
Este pdf imenso detalha todos os comandos do vivado tcl.
fonte
Há um vídeo de treinamento do Xilinx que explica como usar os sistemas de controle de versão com o Vivado. Basicamente, a lista de arquivos depende dos recursos que você está usando.
Se você usar uma abordagem com script (como o vermaete faz), poderá fazer com que o Vivado grave todos os arquivos intermediários / temporários em um diretório separado ( veja aqui ), para poder separá-los facilmente.
Caso contrário, você pode limpar a pasta de compilação do Vivado, e tudo o que resta pode ser colocado sob controle de versão.
fonte
Dê uma olhada neste tópico nos fóruns do Xilinx:
http://forums.xilinx.com/t5/Implementation/What-files-to-put-under-revision-control-for-consistent-build/td-p/174232
fonte