问答 店铺
热搜: ZYNQ FPGA discuz

QQ登录

只需一步,快速开始

微信登录

微信扫码,快速开始

微信扫一扫 分享朋友圈

已有 175 人浏览分享

开启左侧

02 Microblaze 最小系统搭建(含 MIG 控制器)

[复制链接]
175 0
AMD-FPGA课程
AMD课程: 05-典型入门实验 » 第一个MB软核实验
1 概述
      前文,我们搭建了不含 DDR 的 microblaze 最小系统。这种系统使用 FPGA 内置的 BRAM 资源,而 BRAM 通常比较有限。这样当 CPU SDK 程序规模大到一定程度,就放不下了。而使用 DDR 就不存在这个问题。当然使DDR 也会增加资源的消耗,尤其对于 MIG 核来说,这是一个软核,占用不少资源。

2 系统框图
      一个 MicroBlaze 最小系统主要由四个部分组成:CPU、内存(BRAM 或者 DDR 等)和 UART,本实验在前一个实验基础上加入 DDR,这里需要使用到 MIG 核,MIG 核会比较占用 FPGA 资源,使用 DDR 可以让 Microbalze 得更大的内存,用于存放数据或者代码。
image.jpg

3 基于图形化设计 SOC 系统
3.1 配置 Microblaze IP 核
      本实验在前一个实现基础上进行开发。双击 Microblaze 核,勾选 Use Instruction and Data Caches
image.jpg
      单击 Advanced 把 cache 修改下,因为我们这里不需要太高的 CPU 性能,因为我们的入门级开发板 BRAM 资源有限,如果对于高性能的应用可以增加 cache
image.jpg
      配置完成后,可以看到 microblaze 多出了两个接口
image.jpg

3.2 添加 AXI-Interconnect IP
      添加 1 个 axi-interconnect IP,互联到这两个接口
image.jpg image.jpg
      双击该 IP,修改设置如下
image.jpg
image.jpg

3.3 添加 MIG IP 核心
XILINX DDR 通过 MIG 控制,添加 MIG IP 核
image.jpg image.jpg
双击 IP 配置,设置MIG
image.jpg
image.jpg
image.jpg
image.jpg
image.jpg
image.jpg
image.jpg
image.jpg
image.jpg
image.jpg
image.jpg
导入 DDR 的 IO 约束,这个文件也是我们从已经做好的工程导出的,直接导入可以提高效率,不同的板子文件名可能不一样注意下。
image.jpg
image.jpg
校对
image.jpg
既然可以导入,那么也可以通过 Save Pin Out 导出设置,这里就不再演示
image.jpg
image.jpg
image.jpg
image.jpg
image.jpg
image.jpg
MIG 核配置完成后
image.jpg

3.4 完成信号连线设计

连线的过程不再重复描述,如果有不清楚的也可以看对应的视频课程,完成 IP 之间的连线,并且引出 MIG DDR 接

image.jpg

3.5 BD(block design)层次化功能
可以把带 DDR 的系统用层次化方法弄成一个带 DDR 的最小系统,全选所有 IP,右击选中创建层次化

image.jpg
取名可以自己取,这里设置 MinSoc
image.jpg
image.jpg
继续右击,选中 Regenerate Layout

image.jpg
现在看起来非常清爽了,端口只包含了时钟输入、串口、FLASH 和 DDR
image.jpg

3.6 地址空间分配
检查地址空间,分配下地址

image.jpg

4 搭建 Vitis-sdk 工程
创建 soc_base sdk platform 和 APP 工程。
4.1 创建 SDK Platform 工程
image.jpg
过程不再重复,如果不清楚的请看第一个 demo

4.2 创建 helloworld APP 工程
过程不再重复,如果不清楚的请看第一个 demo。
如下图右击 helloworld 工程,选择 Generate Linker Script
image.jpg

      如下图设置,程序、数据、堆在的运行地址空间为 DDR 内存空间,当数据、代码、堆栈都放到 DDR,CPU 指令的读取速度会降低,当然也可以根据实际情况增加 Cache,把堆栈放到 BRAM 等,另外堆栈下面设置的 1KB,当具有中断的程序,可能存在较多的代码和需要需要压入堆栈,可能会导致堆栈不够,这个时候建议设置 4KB 以上。
image.jpg
之后重新编译下
image.jpg

5 实验演示
为了观察实现结果,需要打开串口
首选选中 Debug,出来 Vitis Serial Terminal,串口终端
image.jpg
设置正确的串口号
image.jpg
单击 OK 打开终端
image.jpg
选中 Design 切换界面
image.jpg
右击选中调试
image.jpg
双击 System Project Debug
image.jpg
选中 SystemDebug_hellowrld_sytem 单击 debug
image.jpg
输入结果如下,最小系统运行正常
image.jpg


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

0

关注

10

粉丝

87

主题
精彩推荐
热门资讯
    网友晒图
      图文推荐
        
        • 微信公众平台

        • 扫描访问手机版