FPGA硬件逻辑独有的并行性使其在实时处理和并行算法中占尽优势,但当执行串行操作时却需要使用笨重的状态机来完成。因此,要实现对实时性要求不高的串行操作,对各类IP核的总体控制调度,亦或是快速移植软件协议栈时,利用fpga内部CPU 是个比较好的选择。

   下面描述怎么搭建一个最小的microblaze软核,以及各个模块的意义。

create block design,添加microblaze软核。

vivado 下的microblaze系统搭建

配置添加microblaze之后,点击 run block automation 

vivado 下的microblaze系统搭建

这里暂时不使用DDR之类的缓存设备,利用片内memory存储代码,因此将local memory 容量增大。

点击OK后,工具自动生成CPU 系统所需要的所有必要硬件模块,包括:时钟管理单元(clk_wiz_1),复位逻辑(rst_clk_wiz),调试模块(MDM),microblaze CPU ,以及local memory 。

vivado 下的microblaze系统搭建

 

MDM模块 选择 enable jtag uart.可以连接jtag,在SDK 界面打印调试信息。  

vivado 下的microblaze系统搭建

 

按照硬件需求,配置时钟复位,添加输入输出端口,进行电气检查。

vivado 下的microblaze系统搭建

右键,source窗口中 block design 名称,依次选中generate output products 和generate HDL wrapper 。前者生成可综合,布局布线的.V文件,后者产生工程顶层封装。

按照正常流程,添加XDC 文件,生成bit文件。file ---- export  ------ export hardware,导出硬件平台。这里要选择include bitstream,否则SDK 中无法识别硬件系统。最后点击file --- launch SDK 启动软件开发工具,开始软件设计流程。

vivado 下的microblaze系统搭建

 

vivado 下的microblaze系统搭建

 

C 代码添加,在test 的src目录下添加,这里只是描述一下调试怎么配置jtag模式。在对应的 _bsp 上,右键,选择board support package setting  。

vivado 下的microblaze系统搭建

vivado 下的microblaze系统搭建

vivado 下的microblaze系统搭建

配置为mdm即可在测试的时候直接在SDK 打印结果。如果外挂有uart,也可以用外部的串口,同时board support package setting 全部设置为外部串口

相关文章:

  • 2021-12-25
  • 2021-10-23
  • 2021-12-01
  • 2022-12-23
  • 2021-11-14
  • 2021-10-09
  • 2021-09-07
  • 2021-04-22
猜你喜欢
  • 2021-12-09
  • 2022-01-24
  • 2021-09-11
  • 2021-06-30
  • 2021-11-08
  • 2022-12-23
相关资源
相似解决方案