URL: http://www.eefocus.com/JohnWoo/blog/12-04/246785_db665.html
使用Xilinx EDK建立工程时有几个关键文件:
- system.xmp EDK工程的顶层工作为文件
- system.mhs EDK工程的系统硬件规范,包括系统的设备、对应参数以及接口连接,MHS文件项目的硬件基础。
- system.mss EDK工程的系统软件规范,包括系统的设备的软件参数,MSS文件是项目的软件基础。
MHS文件对于FPGA构成的嵌入式系统硬件非常重要的,一般在建立工程时由软件自动生成。了解MHS构成是必要的,特别是添加IP或者IP版本升级,必须要修改MHS文件。
MHS语法
MHS语法很简单,命令也不多。MHS语法与HDL语言规范相似,熟悉硬件描述语言的很容易看懂。
1。注释符 # 号代表注释行
2。设备模块
BEGIN name
赋值语句
END
BEGIN和END之间描述了一个系统设备。
3。赋值语句 有三种赋值语句
- PARAMETER 参数
- BUS_INTERFACE 总线接口
- PORT 端口连接
实例说明
MHS中参数和端口还分为全局参数、局部参数和全局端口和局部端口。处于BEGIN与END之外的赋值语句就是全局的,之内的是局部的,总线接口BUS_INTERFACE指设备内部之间连接。以一个实例说明:
PARAMETER VERSION = 2.1.0
PORT fpga_0_DIP_Switches_8Bits_GPIO_IO_I_pin = fpga_0_DIP_Switches_8Bits_GPIO_IO_I_pin, DIR = I, VEC = [0:7]
BEGIN microblaze
PARAMETER INSTANCE = microblaze_0
PARAMETER C_DEBUG_ENABLED = 1
PARAMETER HW_VER = 7.30.b
PARAMETER C_USE_BARREL = 1
PARAMETER C_DPLB_BUS_EXCEPTION = 1
PARAMETER C_IPLB_BUS_EXCEPTION = 1
PARAMETER C_ILL_OPCODE_EXCEPTION = 1
PARAMETER C_UNALIGNED_EXCEPTIONS = 1
PARAMETER C_OPCODE_0x0_ILLEGAL = 1
PARAMETER C_USE_ICACHE = 0
PARAMETER C_USE_DCACHE = 0
BUS_INTERFACE DPLB = mb_plb
BUS_INTERFACE IPLB = mb_plb
BUS_INTERFACE DEBUG = microblaze_0_mdm_bus
BUS_INTERFACE DLMB = dlmb
BUS_INTERFACE ILMB = ilmb
PORT MB_RESET = mb_reset
PORT INTERRUPT = microblaze_0_Interrupt
END
全局参数VERSION指MHS文件语法版本2.1.0。
BEGIN和END之外的PORT定义指全局端口,要在UCF文件中定义到FPGA的管脚,以及端口的一些关键字如DIR(方向)、VEC(总线矢量宽度)。
BEGIN之后是IP的名称 microblaze
内部参数包括INSTANCE工程中的IP名称(自定义)、HW_VER(IP核的版本)以及其他一些IP的参数。
总线接口BUS_INTERFACE定义了内部的总线
内部的PORT定义了设备内部的端口连接。