Vivado下MicroBlaze MIG_7 DDR3简单测试

软件版本: Vivado 2019.1 (2019.1版本之前还使用SDK工具,2019.2版本后使用新的vitis)

FPGA: Artix7 xc7a100tfsg484-2

DDR3: MT41K256M16TW-107 两片共1GByte

1. Vivado下新建工程,创建Block Design如下:

clk_wiz_0配置两个频率输出:clk_out1=160Mhz连接MicroBlaze及外围,同时提供给MIG sys_clk_i。clk_out2=200Mhz连接到MIG clk_ref_i(参考时钟为200MHz)

MIG ui_clk=160Mhz(配置360MHz 2:1)

因为 sys_clk_i为clk_wiz_0提供,sys_rst 应连接到locked。

MIG aresetn应连接到rst_mig_7series_0_160M的peripheral_aresetn, 这是官方建议的。

AXI SmartConnect 是MicroBlaze和MIG通信桥梁,因为两者使用不同时钟源,这里配置了2个时钟,aclk应连接clk_wiz_0 160Mhz,  aclk1连接ui_clk 160Mhz。

综合后资源情况:

 

MicroBlaze配置:

 General面页默认即可

 Debug面页默认即可。

 

2. 生产bitstream.

3.导出 Hardware

 

记得勾选 Include bitstream

 

这时在工程目录下生产top_wrapper.hdf 文件。

4. 打开SDK

 如果之前没有安装SDK包,可以点击菜单Help-Add Design Tools or Devices 添加

 

默认OK。

此时,SDK软件自动打开

新建工程。

 

输入工程名,Next

选择简单的Hello World模板,Finish

 加载比较慢,20核心电脑用了一分钟????

在左边src目录下就是源文件了。打开helloworld.c进行编辑

 添加下面测试代码:

int main()
{
    init_platform();

    print("Hello World\n\r");
    
    //
    unsigned int*DDR_MEM = (unsigned int*)XPAR_MIG_7SERIES_0_BASEADDR;

    *DDR_MEM =0x12345678; //Write 0x12345678 to DDR at MIG_7SERIES_0_BASEADDR

    unsigned int value =*(unsigned int *)XPAR_MIG_7SERIES_0_BASEADDR;  //Read data from DDR at same address

    xil_printf("value= 0x%x\n", value); 

    cleanup_platform();
    return 0;
}

保存,Build.

 下载到FPGA

点击Program

 

 运行

如果Run As选项下没有1-5, 可尝试右击工程,选择Clean Project

 

打开串口软件查看结果

 

打印成功。 

 

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值