Lista de sufixos do arquivo Xilinx (para ISE)

15

Pedi ao Xilinx essa lista, mas eles não têm uma lista completa. Desejo garantir que todos os arquivos de entrada estejam no controle de origem e todos os arquivos de saída não. Isto é com 13.1-13.2 com ISE e PlanAhead

Algumas das informações que eles fornecem são a lista de arquivos de saída PAR e os arquivos do ISE Design Suite no Guia do Usuário das Ferramentas de Linha de Comando, a lista de arquivos de origem daqui .

Editar em 19 de agosto de 2011: mencionado 13.2 e PlanAhead. Editar em 7 de setembro de 2011: referência de EDK removida, pois algumas respostas

Brian Carlton
fonte
1
Tanto quanto eu sei que eles estão se movendo para escrever a partir do zero todas as ferramentas de software que já possuem ... então, provavelmente, essa lista se tornar obsoleto em um ano e meio
doublée
Você não cria os arquivos de entrada e, portanto, sabe seus nomes e sufixos? Você não precisa saber os nomes dos arquivos de saída para garantir que os arquivos de entrada estejam no controle de origem. Eu não estou familiarizado com o seu fluxo de trabalho, então isso é um pouco confuso para mim.
21711 Kevin Vermeer
3
A maioria dos controles de versão opera com base em um princípio de lista negra, em vez de lista de permissões, para decidir quais arquivos são candidatos ao controle de versão. Por exemplo, no Mercurial, há o .hgignorearquivo que contém uma lista de expressões regulares que especificam quais arquivos excluir. O Subversion usa uma propriedade chamada svn:ignoreque afeta apenas o diretório em que está definido. Portanto, para impedir que outros usuários façam check-in de todo o lixo da compilação (o que geralmente causa colisões durante atualizações e mesclagens), é necessário ter uma lista de sufixos a serem excluídos .
Mike DeSimone
@ Kevin Vermeer: ​​Não exatamente. Existem outros utilitários, como o CoreGen, que geram alguns arquivos. E aqueles têm ambas as saídas (por exemplo, relatórios) e insumos (por exemplo, as definições para o gerador)
Brian Carlton
Como @Arash apontou que reescreveu seu software de maio 2012, agora chamado Vivado press.xilinx.com/...
Brian Carlton

Respostas:

12

Resposta rápida: Essa lista não existe, em nenhum lugar.

Resposta longa: eu poderia lhe dizer, mas estaria errado. Uso as ferramentas Xilinx há mais de 15 anos e sempre que elas lançam uma nova versão (ou mesmo um novo service pack) as coisas mudam. Às vezes, apenas alterar várias opções XST / MAP / PAR fará com que novos arquivos sejam gerados. Portanto, mesmo que eu lhe desse uma lista, ela provavelmente estaria desatualizada ou errada.

Eu criei meus próprios makefiles para construir meus FPGA (não estou usando o ambiente GUI do ISE), e está bastante bem documentado quais são os arquivos de entrada para as várias ferramentas (XST, MAP, etc.). Todo o resto não é necessário e, portanto, não precisa ser verificado no sistema de controle de origem. Meus makefiles têm uma opção "make clean" que remove todos os arquivos extras. Então, quando o Xilinx lança uma nova versão, eu simplesmente recompilo e o "make clean". Qualquer arquivo que permanece (e obviamente não é algo que eu preciso) é considerado lixo, e eu adiciono esses arquivos à lista "limpar" de itens a serem excluídos.


fonte
3
Sim, infelizmente isso geralmente é uma problema ENORME com a integração de IDE sofisticados na prática de engenharia estruturada.
Chris Stratton
1
@ David David Kessner Bom post. Alguma chance de você postar um de seus makefiles?
Jim Clay
@ JimClay Desculpe, mas não posso. Meus makefiles não são apenas muito mais complicados e confusos para a maioria das pessoas, eles também são feitos para o meu trabalho e, portanto, protegidos por direitos autorais e outras coisas.
9

Aqui está o início de um wiki da comunidade para os sufixos. Eu concordo com @David Kessner. O Xilinx também possui essa lista no documento de ferramentas de linha de comando e publicou uma lista aqui e aqui (para versões anteriores de seus softwares).

File Suffix,Input or output,description
asy,output,symbol file
awc,,
bat,input,batch file. Some are generated by PlanAhead
bgn,,bitgen report file
bin,,
bit,output,FPGA bitstream
blc,output,NGCBuild report file
bld,output,build report from NGDBuild
bmm,,blockram files
bsb,,
cdc,input,ChipScope file 
cel,,
cfi,input and output,provides info to Support for Platform Flash PROM Design Revisioning
cgc,,ChipScope file
cgp,,Coregen project file
cmd,,
cmd_log,output,log file
cpj,,
css,output,HTML file
csv,output,pin list
ctj,,trigger file for ChipScope
dat,,
data,,
dbg
do,input,simulation script
drc,output,design rule check
edf,output,EDIF netlist
edif,,see edf
edn,,an EDIF file suffix
f,,used for functional simulation
filter,,used in ISE to filter messages
gise,output,"contain generated data, such as process status" per http://www.xilinx.com/support/documentation/sw_manuals/xilinx11/ise_c_understanding_ise_project.htm
hdx,,used in PlanAhead for partitions
html,,report file
ipf,input,impact (programmer) project
isc,output,Configuration data in IEEE 1532 format.
jobs,,
js,output,JavaScript for some HTML report
lfp,,
ll,output, Readback information; created by bitgen
log,output,log file
lso,input,library search order input  to XST.
lst,,
make,outout,from EDK tools
map,output,report file
mcs,output,prom file
mhs,,(EDK) Defines system
mrp,output,report file from map
mhs,,(EDK)
mif,input,memory initalization
mpd,,MicroProcessor Definition (EDK)
msd,output,Mask information from bitgen; used for verification
msk,output,mask information from bitgen; related to .bit
ncd,output,Native Circuit Description; after map process; used as bitgen input
ncf,,constraints for a core
new,,
ngc,output,used by NGDbuild
ngc_xst,output,
ngd,output,
ngo,output,intermediate netlist from NGDBuild
ngr,output,RTL schematic generated from XST
nky,,encryption key file, used by bitgen
nlf,output,ASCII NetGen NetGen log file that contains information on the NetGen run
nmc,,physical macros; used by NGDBuild
opt,,EDK generation options
pad,output,list of I/O pads/pins
par,output,Place and route log
pcf,,physical constraints file; used by bitgen
pdf,output,Acrobat document for core
ppr,,PlanAhead project file
prj,input,project file
prm,,PROM file generation control file
prn,output,exported ChipScope .csv file. Often lacks that suffix.
psg,output,PlanAhead strategy file
ptxw,,twx file which project navigator uses for parsing 
pwr,,
pxml,,associated with partitions
rba,output,read back file created by bitgen; binary
rbb,output,read back file created by bitgen; ascii
rbd,output,read back file created by bitgen; data only
rbt,output,bit file in different format
restore,,
rtf,output,Documentation
runs,,directory in PlanAhead
rst,,
scr,,XST synthesis script
sdbl,,
sdbx,,Installation files
sdc,input,timing file [thanks @trondd]
sedif
sh,input,Linux shell script. Some are generated by PlanAhead
srcs,,directory in PlanAhead
srp,output,Synthesis log file
stx,,
sym,output,Core symbol file
tsi,,
txt,output,log file
twr,output,timing report
twx,output,
ucf,input,constraints file
unroutes,output,report file
urf,input,User Rules File; used by NGDBuild
ut,,
v,input or output,Verilog file for code. Output of coregen
vdbl,,
vbdx,,
veo,output,Verilog timing simulation file
vhd,input or output,input source VHDL file; output from Coregen
vho,output,VHDL timing simulation.
wcfg,input,ISim waveform configuration file
xaw,output,generated by Coregen
xbcd,,    
xco,,use by Coregen to regenerate cores. Contains core's parameters
xdc,,
xdl,,
xise,,created by coregen
xlsx,,some report
xml,,some are output reports
xmp,,(EDK)
xmsgs,output,log file
xpa,,
xpe,,
xpi,,
xreport,output,report file
xrpt,output,report file, others are inputs to PlanAhead
xsf,,symbol file for Mentor
xst,output,associated with HTML file?
xsl,,
xst,,
unroutes,output,report file
wbd,output,Waveform Database
wxbt,,
y,,
Brian Carlton
fonte
2
O arquivo sdc é listado como saída, mas geralmente é um arquivo de entrada para o analisador de temporização (TimeQuest no mundo da Altera). O arquivo geralmente é manuscrito e, portanto, deve estar no controle de versão.
trondd
2

Criei um projeto no Github chamado X-MimeTypes que visa fornecer uma base que a comunidade possa usar para criar de uma vez por todas uma base de conhecimento adequada sobre os tipos de arquivos usados ​​no setor de EDA.

Essa abordagem tem algumas vantagens em apenas listar todos os arquivos conhecidos em uma lista, conforme feito na resposta anterior:

  • Está no Github, portanto é aberto e sua versão é controlada para que você possa ver um histórico completo.
  • O formato usado corresponde ao do banco de dados mimetype do OpenDesktop. Novamente, há muitas vantagens em usar essa abordagem.

    • Está provado.
    • Pode ser estendido. As extensões atuais permitem que cada tipo seja marcado como gerado ou não. Muito útil para controle de versão e operações de limpeza etc.
    • No Linux, você pode adicionar esse arquivo ao banco de dados mime do sistema e todos os programas reconhecerão os tipos no arquivo.
    • Ele suporta a capacidade de classificar arquivos usando cabeçalhos mágicos etc. Um exemplo do por que isso é necessário é um arquivo de configuração binária do Xilinx que termina com * .bin. O banco de dados padrão do tipo MIME define um arquivo .bin como application / octet-stream , portanto, ele será tratado como um arquivo binário normal e não será escolhido como um arquivo de configuração binária do Xilinx. A especificação mimetype resolve facilmente esse problema usando cabeçalhos mágicos. Portanto, uma possível definição correta de tipo MIME para um arquivo .il do Xilinx é:
  <mime-type type="application/vnd.xilinx.bitgen.binary_configuration_file">
    <comment xml:lang="en">Xilinx Binary Configuration File</comment>
    <glob pattern="*.bin"/>
    <magic priority="60">
      <match type="string" value="\xff\xff\xff\xff" offset="0"/>
    </magic>  
    <x:generated>true</x:generated>
  </mime-type>
  • Qualquer um pode arquivar bugs no repositório, cloná-lo etc.
  • Não é específico do fornecedor.

Os tipos MIME da EDA podem ser acessados aqui .

Esse projeto realmente requer o poder da multidão, portanto, cada pequena contribuição tornará o banco de dados mais útil para muitos designers de FPGA por aí.

Jaco Naude
fonte
1

Outra solução para classificar os arquivos de entrada dos arquivos de saída é:

1) Construa o FPGA

2) importe tudo para um sistema de controle de versão (por exemplo, git init; git add.; Git commit -m "init";)

3) execute novamente a compilação FPGA

4) todos os arquivos modificados ('status git') após a segunda execução provavelmente serão arquivos de saída (incluindo arquivos de log, ...) e os não modificados uma vez serão os arquivos de entrada.

É o que faço quando recebo um diretório ou arquivo zip com a mensagem "este é o projeto, por favor, corrija-o ..."

vermaete
fonte
4) funciona principalmente. Mas, às vezes, eles atualizam os arquivos com um último tempo de compilação no próprio arquivo. Isso faz com que esse passo não seja tão bom quanto eu gostaria.
Brian Carlton
1
@ Brian Carlton Você fala sobre arquivos de entrada que são atualizados com um horário de modificação. Por exemplo, arquivos XCO da Coregen. De fato, aqui falha meu método. Impeço que as ferramentas modifiquem esse tipo de arquivo executando um 'chmod -w' nesses arquivos no Makefile.
vermaete