使用Xilinx EDK建立工程时有几个关键文件:

  1. system.xmp    EDK工程的顶层工作为文件
  2. system.mhs    EDK工程的系统硬件规范,包括系统的设备、对应参数以及接口连接,MHS文件项目的硬件基础。
  3. 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定义了设备内部的端口连接。