建立一个ISE的工程,工程的顶层文件为schematic的。然后根据实际需要添加自己的逻辑或处理部分。Microblaze可以像一个IP一样同时应用到自己的设计中去。具体方法如下:
1、在工程中选择Add Source,在选择框中选择Embedded Processor,假设为该处理器起名为Microblaze_xxx。
2、此时ISE会自动启动XPS,在XPS中根据导向设置自己的Microblaze_xxx处理器的参数,并生成网表(注意必须在EDK中生成)。
3、选中Microblaze_xxx,双击View HDL Instantiation Template 生成例化文件。如果要使得Microblaze的管脚既可以和FPGA的外部通用IO连又能和内部的用户逻辑连接,则要将例化文件中关于对Microblaze管脚加BUF类的语句删除。
4、由例化文件生成一个schematic symbol。
5、这个schematic symbol即为Microblaze处理器核。用户可以像使用其他普通核一样使用它。
6、下面是生成mcs烧写文件。具体步骤如下:
7、/*将整个顶层的schematic生成schematic symbol并产生位流文件(.bit),然后将该位流文件改名为download.bit(因为后面用到的XPS中的批处理文件download.cmd文件里的链接文件名为download.bit,当然也可以改把这个名字改成与前面一样。两个名字改其中之一就行了)
8、将download.bit文件拷入工程所在文件夹下Microblaze_xxx文件夹下的implementation文件夹。*/
9、在XPS中编写软件。
10、如果想要microblaze自举加载,则要在处理器设置的PARAMETERS中的C_NUMBER_OF_PC_BRK的参数改为1。
12、将edkBmmFile.bmm文件中的每一行第一个 / 删除,并将文件属性改成只读,改名microblaze1_stub.bmm文件为microblaze1_bd.bmm文件
12、将Microblaze_xxx_bd.bmm文件里加上PLACED语句指定对应使用哪个Block RAM。格式如:
// File: f:/qpsk/microblaze1/implementation/microblaze1_stub.bmm
ADDRESS_BLOCK lmb_bram RAMB16 [0x00000000:0x00001fff]
BUS_BLOCK
microblaze1_i/lmb_bram/lmb_bram/ramb16_s9_s9_0 [31:24] PLACED=X0Y0;
microblaze1_i/lmb_bram/lmb_bram/ramb16_s9_s9_1 [23:16] PLACED=X0Y1;
microblaze1_i/lmb_bram/lmb_bram/ramb16_s9_s9_2 [15:8] PLACED=X0Y2;
microblaze1_i/lmb_bram/lmb_bram/ramb16_s9_s9_3 [7:0] PLACED=X0Y3;
END_BUS_BLOCK;
END_ADDRESS_BLOCK;
13、在PACE里也对应的对Block RAM进行配置。
14、写好用户软件后先将函数库链接好(用tool菜单下的Generate Libraries and
BSP)然后编译(用tools菜单下的Build All User Applications)
15、在ISE下,双击Update Bitstream with Processor Data,重新生成比特流文件将原来的download.bit文件覆盖。
16、再用ISE由download.bit产生MCS文件,烧写到FPGA中去即可。
17、在FPGA中实时调试Microblaze——在XPS中,先打开XMD,检测到Microblaze,并且不要将XMD关掉,然后打开Software Debugger(这两个命令在ISE的命令窗中和XPS的Tools菜单下都有)就可以开始调试了。如果以UART作为标准输入输出,则在Microblaze的程序中用print命令就可以在超级终端中输出相应的内容了。
18、在生成mcs文件的过程中还会产生下面两个错误,但应该不影响应用。如果要消除着俩个错误,则要将工程所在文件夹下.bmm文件里的第一个“/”删掉,并将该文件属性改为只读型。
Xilinx MicroBlaze的使用方法
最新推荐文章于 2024-10-16 10:42:32 发布