I've created a project on Github called X-MimeTypes which aims to provide a basis which the community can use to once and for all create a proper knowledge base about the file types used in the EDA industry.
This approach has some advantages over just listing all known files in a list as done in the previous answer:
Its on Github, thus its open and its version controlled so that you can view a full history.
The format used matches that of the OpenDesktop mimetype database. Again, there are many advantages in using this approach.
It is proven.
It can be extended. The current extensions allows each type to be marked as generated or not. Very useful for version control and cleanup operations etc.
On Linux you can add this file to your system's mime database and all programs will recognize the types in the file.
It supports the ability to classify files using magic headers etc. An example of why this is necessary is a Xilinx binary configuration file which ends with *.bin. The standard mime type database defines a .bin file as application/octet-stream, thus it will be handled as a normal binary file and it won't be picked up as a Xilinx binary configuration file. The mimetype specification easily solves this problem using magic headers. Thus, a possible correct mimetype definition for a Xilinx .bin file is:
<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>
- Anyone can file bugs against the repository, clone it etc.
- Its not vendor specific.
The EDA mime types can be accessed here.
Such a project really requires the power of the crowd, thus each small contribution will make the database more useful to many FPGA designers out there.
Cheers,
Jaco