Lista de sufijos de archivo Xilinx (para ISE)

15

Le pedí a Xilinx una lista así, pero no tienen una lista completa. Deseo asegurarme de que todos los archivos de entrada estén en control de origen y que todos los archivos de salida no lo estén. Esto es con 13.1-13.2 con ISE y PlanAhead

Parte de la información que proporcionan es la lista de archivos de salida PAR y los archivos de ISE Design Suite en la Guía del usuario de herramientas de línea de comandos, la lista de archivos de origen desde aquí .

Editar 19 de agosto de 2011: mencionó 13.2 y PlanAhead Editar 7 de septiembre de 2011: eliminó la referencia EDK ya que algunos en respuesta

Brian Carlton
fuente
1
Hasta donde sé, se están moviendo para escribir desde cero todas las herramientas de software que ya tienen ... así que probablemente esa lista se vuelva obsoleta en un año y medio
doble E
¿No crea los archivos de entrada y, por lo tanto, conoce sus nombres y sufijos? No debería necesitar saber los nombres de los archivos de salida para asegurarse de que los archivos de entrada estén en control de origen. No estoy familiarizado con su flujo de trabajo, por lo que esto es un poco confuso para mí.
Kevin Vermeer
3
La mayoría del control de versiones opera en una lista negra en lugar del principio de la lista blanca para decidir qué archivos son candidatos para el control de versiones. Por ejemplo, en Mercurial, existe el .hgignorearchivo que contiene una lista de expresiones regulares que especifica qué archivos excluir. Subversion usa una propiedad llamada svn:ignoreque solo afecta el directorio en el que está configurado. Por lo tanto, para evitar que otros usuarios revisen toda la basura de compilación (que a menudo causa colisiones durante las actualizaciones y las fusiones), debe tener una lista de sufijos para excluir .
Mike DeSimone
@ Kevin Vermeer: ​​No exactamente. Hay otras utilidades como CoreGen que generan algunos archivos. Y esos tienen tanto salidas (por ejemplo, informes) como entradas (por ejemplo, configuraciones para el generador)
Brian Carlton
Como señaló @Arash, reescribieron su software en mayo de 2012, ahora llamado Vivado press.xilinx.com/…
Brian Carlton,

Respuestas:

12

Respuesta rápida: No existe tal lista, en ningún lado.

Respuesta larga: podría decírtelo, pero me equivocaría. He estado usando las herramientas de Xilinx durante los últimos 15 años y cada vez que salen con una nueva versión (o incluso un nuevo paquete de servicio) las cosas cambian. A veces, incluso solo cambiando varias opciones de XST / MAP / PAR hará que se generen nuevos archivos. Entonces, incluso si te diera una lista, probablemente estaría desactualizada o simplemente mal.

He creado mis propios archivos MAKE para construir mis FPGA (no estoy usando el entorno GUI de ISE), y está bastante bien documentado cuáles son los archivos de entrada a las diversas herramientas (XST, MAP, etc.). No se requiere todo lo demás y, por lo tanto, no es necesario que se registre en el sistema de control de fuente. Mis archivos MAKE tienen una opción de "limpieza" que elimina todos los archivos adicionales. Entonces, cuando Xilinx lanza una nueva versión, simplemente recompilo y hago el "make clean". Cualquier archivo que permanezca (y obviamente no es algo que necesito) se considera basura, y agrego esos archivos a la lista "limpiar" de cosas para eliminar.


fuente
3
Sí, lamentablemente este es a menudo un problema ENORME al integrar IDE sofisticados en la práctica de ingeniería estructurada.
Chris Stratton
1
@David Kessner Buena publicación. ¿Alguna posibilidad de que puedas publicar uno de tus makefiles?
Jim Clay
@ JimClay Lo siento, pero no puedo. Mis archivos Makefile no solo son mucho más complicados y confusos para la mayoría de las personas, sino que también están hechos para mi trabajo y, por lo tanto, tienen derechos de autor y demás.
9

Aquí está el comienzo de una wiki comunitaria para los sufijos. Estoy de acuerdo con @David Kessner. Xilinx también tiene esta lista del documento de herramientas de línea de comandos y publicó una lista aquí y aquí (para versiones anteriores de su software).

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
fuente
2
El archivo sdc aparece como salida, pero generalmente es un archivo de entrada para el analizador de tiempo (TimeQuest en el mundo Altera). El archivo generalmente está escrito a mano y, por lo tanto, debe estar en control de versiones.
trondd
2

Creé un proyecto en Github llamado X-MimeTypes que tiene como objetivo proporcionar una base que la comunidad pueda usar para crear de una vez por todas una base de conocimiento adecuada sobre los tipos de archivos utilizados en la industria EDA.

Este enfoque tiene algunas ventajas sobre solo enumerar todos los archivos conocidos en una lista como se hizo en la respuesta anterior:

  • Está en Github, por lo tanto, está abierto y su versión controlada para que pueda ver un historial completo.
  • El formato utilizado coincide con el de la base de datos mimetype OpenDesktop. Nuevamente, hay muchas ventajas en el uso de este enfoque.

    • Esta probado.
    • Se puede extender. Las extensiones actuales permiten que cada tipo se marque como generado o no. Muy útil para el control de versiones y operaciones de limpieza, etc.
    • En Linux, puede agregar este archivo a la base de datos mime de su sistema y todos los programas reconocerán los tipos en el archivo.
    • Admite la capacidad de clasificar archivos usando encabezados mágicos, etc. Un ejemplo de por qué esto es necesario es un archivo de configuración binaria Xilinx que termina con * .bin. La base de datos estándar de tipo MIME define un archivo .bin como application / octet-stream , por lo que se manejará como un archivo binario normal y no se recogerá como un archivo de configuración binaria Xilinx. La especificación mimetype resuelve fácilmente este problema usando encabezados mágicos. Por lo tanto, una posible definición correcta de tipo MIME para un archivo .bin de Xilinx es:
  <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>
  • Cualquiera puede archivar errores en el repositorio, clonarlo, etc.
  • No es específico del proveedor.

Se puede acceder a los tipos mimos EDA aquí .

Tal proyecto realmente requiere el poder de la multitud, por lo que cada pequeña contribución hará que la base de datos sea más útil para muchos diseñadores de FPGA.

Jaco Naude
fuente
1

Otra solución para ordenar los archivos de entrada de los archivos de salida esto:

1) Construye el FPGA

2) importe todo a un sistema de control de versiones (por ejemplo, git init; git add.; Git commit -m "init";)

3) vuelva a ejecutar la compilación FPGA

4) todos los archivos modificados ('estado de git') después de la segunda ejecución tienen más probabilidades de ser archivos de salida (inc. Archivos de registro, ...) y los no modificados una vez son los archivos de entrada.

Esto es lo que hago cuando recibo un directorio o archivo zip con el mensaje "este es el proyecto, corríjalo ..."

vermaete
fuente
4) en su mayoría funciona. Pero a veces actualizan archivos con un último tiempo compilado en el archivo mismo. Eso hace que este paso no sea tan bueno como me gustaría.
Brian Carlton
1
@Brian Carlton ¿Habla de archivos de entrada que se actualizan con una hora de modificación? Por ejemplo, archivos XCO de Coregen. De hecho, aquí falla mi método. Prevengo las herramientas para modificar ese tipo de archivos haciendo un 'chmod -w' en esos archivos en el Makefile.
vermaete