FPGA中可执行文件:bit/bin/mcs/elf
FPGA中可执行文件:bit/bin/mcs/elf
FPGA(现场可编程门阵列)中的可执行文件主要包括.bit、.mcs、.bin和.elf几种类型。这些文件在FPGA开发和调试过程中扮演着不同的角色,下面将分别介绍它们的用途和使用场景。
bit文件
bit文件是FPGA中最常见的配置文件类型,通常用于JTAG在线调试。它包含了FPGA配置的所有必要信息,包括工程名、用户ID、工具版本、FPGA芯片型号以及生成日期等。在开发过程中,bit文件会被烧写到FPGA中进行在线调试。
bin文件
bin文件是二进制文件,只包含原始字节流,不包含任何额外的头信息。这种文件通常用于烧写到外部存储器(如Flash)中,上电时自动加载到FPGA中。在ISE或Vivado等开发环境中,可以通过设置生成bin文件。
bit和bin的区别
通过UltraEdit等工具查看bin和bit文件可以发现,bit文件比bin文件多了文件信息,比如工程名、User_ID、工具的版本信息、FPGA芯片型号以及bit生成日期等信息。只要删除这些头信息,bin文件和bit文件的内容实际上是相同的。
mcs文件
mcs文件也是一种用于烧写到Flash中的配置文件,上电后会自动加载到FPGA中。与bin和bit文件不同的是,mcs文件是ASCII格式,每个字节用两个ASCII字符表示。mcs文件除了包含头部信息外,还包含地址信息和校验码,这使得它在数据完整性和定位方面具有优势。
在Vivado中生成mcs文件时,需要注意以下几个参数:
- Memory Part:所使用的Flash芯片型号
- Filename:生成的mcs文件名字,如果包含ILA,还会生成prm文件
- Interface:选择Flash加载模式
- Load Bitstream files:加载bit文件
- Start Address:下载Flash的文件起始地址
- Write checksum,Disable bit swapping,Overwrite:通常不勾选
- Command:Tcl指令,高级用户可以用Tcl脚本完成
elf文件
如果FPGA设计中包含了Microblaze或ZYNQ等处理器结构,还会生成elf文件。这是因为这些结构继承了ARM的可执行文件格式。在ARM体系中,所有文件均采用ELF(Executable and Linkable Format)格式。ARM中的各种源文件(包括汇编文件、C语言程序及C++程序等)经过编译后生成ELF格式的对象文件,这些对象文件和相应的C/C++运行时库经过连接后,生成ELF格式的镜像文件,这种ELF格式的映像文件是一种可执行文件,可被写入嵌入式设备的ROM中。
通过了解这些不同类型的文件及其用途,开发者可以更好地进行FPGA项目的开发和调试工作。