767|1

161

帖子

0

资源

一粒金砂(高级)

【米尔ARM+FPGA架构之作MYD-JX8MMA7开发板】FPGA端开发体验-STEPBYSTEP [复制链接]

前言

MYD-JX8MMA7 硬件平台,由 FPGA+ARM 异构,FPGA 和 ARM 通过 PCIE 接口来进行数据的交互,FPGA 使用的是 Xilinx 公司的 Artix-7 系列芯片。

型号为xc7a25t ,逻辑资源 23360,一个PCIE 接口,4 个 GTP 高速串行接口,3 个 bank,一共有 150 个 FPGA 管脚。

配置:两路光口,SD卡,CSI并口摄像头,一路PCIE,复位按键,JTAG,启动模式配置拨码开关,IO通过ASP座引出。

 

过程

安装开发环境

选择什么版本vivado

https://china.xilinx.com/products/design-tools/vivado/vivado-ml.html#licensing

由于只做硬件开发,所以选择Vivado而不是vitis

我们的器件是 Artix‐7 系列所以选择Vivado ML标准版即可支持,是免费的。

image-20230211203546-1.png  

image-20230211203546-2.png  

 

安装Vivado ML标准版

 

https://china.xilinx.com/support/download.html

image-20230211203546-3.png  

需要登录

image-20230211203546-4.png  

image-20230211203546-5.png  

image-20230211203546-6.png  

下载非常快

image-20230211203546-7.png  

弹出用户账户权限控制

点击是

 

image-20230211203546-8.png  

image-20230211203546-9.png  

image-20230211203546-10.png  

image-20230211203546-11.png  

 

只安装需要的器件支持,减少空间占用

image-20230211203546-12.png  

同意所有

image-20230211203546-13.png  

 

修改安装路径

image-20230211203546-14.png  

image-20230211203546-15.png  

下载是比较的

image-20230211203546-16.png  

image-20230211203546-17.png  

image-20230211203546-18.png  

image-20230211203546-19.png  

image-20230211203546-20.png  

 

image-20230211203546-21.png  

 

双击桌面图标打开

image-20230211203546-22.png  

JTAG连接

参考原理图

image-20230211203621-23.png  

image-20230211203621-24.png  

Open target-> Auto connect

image-20230211203621-25.png  

识别到芯片

image-20230211203621-26.png  

 

监控系统温度

image-20230211203621-27.png  

image-20230211203621-28.png  

 

下载程序

xc7a25t上右键点击Program Device即可

image-20230211203621-29.png  

image-20230211203621-30.png  

 

 

 

 

新建工程

image-20230211203621-31.png  

image-20230211203621-32.png  

image-20230211203621-33.png  

image-20230211203621-34.png  

 

 

image-20230211203621-35.png  

image-20230211203621-36.png  

 

添加源码

image-20230211203621-37.png  

image-20230211203621-38.png  

image-20230211203621-39.png  

image-20230211203621-40.png  

image-20230211203621-41.png  

 

添加代码,保存

image-20230211203621-42.png  

 

module flow_led(

    input               sys_clk  ,  //系统时钟

    input               sys_rst_n,  //系统复位,低电平有效

    

    output  reg  [3:0]  led         //4个LED灯

    );

 

//reg define

reg [23:0] counter;

 

//*****************************************************

//**                    main code

//*****************************************************

                                                                                                                                                                                                                         

//计数器对系统时钟计数,计时0.2秒

always @(posedge sys_clk or negedge sys_rst_n) begin

    if (!sys_rst_n)

        counter <= 24'd0;

    else if (counter < 24'd1000_0000 - 1'd1)

    //else if (counter < 24'd5) //仅用于仿真

        counter <= counter + 1'b1;

    else

        counter <= 24'd0;

end

 

//通过移位寄存器控制IO口的高低电平,从而改变LED的显示状态

always @(posedge sys_clk or negedge sys_rst_n) begin

    if (!sys_rst_n)

        led <= 4'b0001;

    else if(counter == 24'd1000_0000 - 1'd1)

    //else if (counter == 24'd5) //仅用于仿真

        led[3:0] <= {led[2:0],led[3]};

    else

        led <= led;

end

 

endmodule

 

添加仿真文件

EEWORLDIMGTK20

EEWORLDIMGTK21

EEWORLDIMGTK22

EEWORLDIMGTK23

EEWORLDIMGTK24

 

添加如下代码,保存

EEWORLDIMGTK25

`timescale  1ns/1ns                // 定义仿真时间单位1ns和仿真时间精度为1ns

 

module  tb_flow_led();               // 测试模块

 

//输入

reg  sys_clk;                      // 时钟信号

reg  sys_rst_n;                    // 复位信号

 

//输出

wire  [3:0]  led;

 

//*****************************************************

//**                    main code

//*****************************************************

 

//给输入信号初始值

initial begin

    sys_clk            = 1'b0;

    sys_rst_n          = 1'b0;     // 复位

    #20  sys_rst_n  = 1'b1;     // 在第21ns的时候复位信号信号拉高

end

 

//50Mhz的时钟,周期则为1/50Mhz=20ns,所以每10ns,电平取反一次

always #10 sys_clk = ~sys_clk;

 

//例化led模块

flow_led  u0_flow_led (

    .sys_clk     (sys_clk  ),

    .sys_rst_n   (sys_rst_n),

    .led         (led      )

);

 

Endmodule

 

仿真

image-20230211203622-49.png  

 

出现波形

image-20230211203622-50.png  

 

可以设置仿真时间,点击如下按钮缩放到合适大小

image-20230211203622-51.png  

 

鼠标框选指定区域可以放大指定区域,或者ctrl加滚轮缩放

image-20230211203622-52.png  

 

综合

image-20230211203622-53.png  

右上角显示状态

image-20230211203622-54.png  

image-20230211203622-55.png  

image-20230211203622-56.png  

 

约束

image-20230211203622-57.png  

右上角选择I/O Planning

image-20230211203622-58.png  

 

 

板子FOGA端没有LED,所以任意选择几个引出的IO

image-20230211203622-59.png  

 

image-20230211203622-60.png  

Ctrl+s保存

image-20230211203622-61.png  

 

修改引脚约束后,重新综合

 

生成bit文件

image-20230211203622-62.png  

等待右上角显示完成

 

下载

见JTAG连接

在线逻辑分析仪仿真

 

测试

使用逻辑分析仪测试对应的引脚查看波形。

 

总结

参考《MYIR MYD-JX8MMA7 FPGA指导手册V1.0.0.pdf》提供了3个测试Demo,

《04_Sources\FPGA_Demo》提供了测试代码。

但是FGPA相关的文档内容没有CPU端的多,比如FPGA的时钟源等资源就没有介绍,提供的Demo也只有上述三个比较复杂的Demo,建议可以提供更多的针对外设和功能的由简单到复杂的Demo。

此帖出自工控电子论坛

最新回复

大佬 的作品很优秀呀,FPGA学习起来简单吗?  详情 回复 发表于 2023-2-23 12:09

回复

3311

帖子

3

资源

版主

大佬 的作品很优秀呀,FPGA学习起来简单吗?
此帖出自工控电子论坛

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

相关帖子
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2023 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表