当前位置:首页 > 新闻资讯 > FPGA之家动态 >

【Sipeed 高云GW2A FPGA开发板】——ARM Cortex-M1软核处理器_硬件设计与点亮LED

时间:2025-01-22      来源:FPGA_UCY 关于我们 0

4.-20K开发板上运行-M1软核处理器

4.1.适用于GoWin FPGA的ARM -M1 简介

ARM针对FPGA领域,利用EDA软件,对自家的-M0内核的源文件进行加密,使得在保护IP源代码知识产权的情况下,终端用户可以直接采用ARM -M0内核作为FPGA的复杂逻辑控制的处理器,此时FPGA里的-M0软核处理器就被命名为-M1。

高云与ARM合作,将-M1内核,以及许多芯片内IP集成,形成一个完整功能的SoC,并以加密的形式发布,并提供了SoC的参考设计,从GoWin网站上下载 .6.5.zip ,解压后其内容结构以及加密后的M1内核源文件如图:

FPGA开发_开发FPGA_开发FPGA设备需要几年

其中给出了两种不同配置-M1内核的SoC参考设计,一种带有JTAG/SW调试功能支持,另一种则不带。前者是后者的超集,包含了后者的功能,因此本实验主要采用前者,并在后续软件测试中,利用JTAG/SW的调试功能,实现代码下载、软件调试等。

4.2.FPGA软核SoC的构建

参考设计开发包针对GoWin官方的不同系列的几个开发板进行了适配,与本实验使用的-20K开发板接近的是.0。后续所有操作都是根据该开发板的项目文件来进行修改移植。

该开发板有两个适配项目,一个是,另一个是,出于简便考虑,先测试后者。

集成了多种IP核,包括GPIO、UART、I2C、SPI,以及(RGMII接口的)、SD卡(SPI模式)、等等,如图:

开发FPGA_开发FPGA设备需要几年_FPGA开发

4.2.1.项目文件的概览与综合

按照FPGA开发软件的流程,打开 .下的项目文件,可以看到项目层次结构,与对应的文件:

FPGA开发_开发FPGA_开发FPGA设备需要几年

综合后,可以看到资源利用率和关键时钟信号:

FPGA开发_开发FPGA_开发FPGA设备需要几年

4.2.2.适配-20K开发板的IO引脚分配

打开,对引脚进行分配,由于原项目是针对开发板,配置的IO引脚也是跟该开发板匹配,如图:

开发FPGA_FPGA开发_开发FPGA设备需要几年

开发FPGA_FPGA开发_开发FPGA设备需要几年

FPGA开发_开发FPGA_开发FPGA设备需要几年

开发FPGA设备需要几年_开发FPGA_FPGA开发

开发FPGA_FPGA开发_开发FPGA设备需要几年

FPGA开发_开发FPGA设备需要几年_开发FPGA

为了移植到本次实验用到的开发板(-20K+),根据FPGA项目中的引脚需求和-20K的板载硬件资源,除了项目中的RGMII接口无法满足外,其余均可连接至-20K对应的硬件资源中。其中:

GPIO[3:0]分配到LED,GPIO[7:4]分配到S1~S4按键,GPIO[15:8]分配到2.54mm排母上;

rstn分配到按键S0,clk为板载27MHz;

FPGA开发_开发FPGA设备需要几年_开发FPGA

JTAG分配到2.54mm排母上。

FPGA开发_开发FPGA_开发FPGA设备需要几年

和spi-flash都分配到核心板上对应的信号,多出的几个信号分配到无关的LED/IO引脚;

FPGA开发_开发FPGA设备需要几年_开发FPGA

RGMII相关信号分配到底板的HDMI接口上,并确保HDMI接口留空,避免信号冲突;

开发FPGA_FPGA开发_开发FPGA设备需要几年

UART0分配到底板调试器的UART上,UART1、I2C、SPI分配到2.54mm排母上。

开发FPGA设备需要几年_FPGA开发_开发FPGA

同时需要在菜单栏的->中,设置SSPI、MSPI、READY、DONE等多功能引脚作为通用IO引脚功能:

FPGA开发_开发FPGA_开发FPGA设备需要几年

4.2.3.FPGA项目的编译与下载

按照EDA软件的编译流程,完成布局布线、时序、功耗分析,最终生成文件。各项流程报告如下:

开发FPGA_FPGA开发_开发FPGA设备需要几年

开发FPGA_开发FPGA设备需要几年_FPGA开发

开发FPGA设备需要几年_开发FPGA_FPGA开发

使用软件下载到FPGA,由于没有软件代码,-M1内核处于异常状态,开发板无运行输出。

4.3.Keil软件开发和下载调试_led例程

选用的是带有JTAG/SW调试接口的-M1软核,因此可以使用Keil等开发工具进行在线代码下载、调试。

4.3.1.JLink调试器的连接与识别

采用JLink-OB作为调试器,连接到JTAG7(SWDIO)和JTAG9(SWCLK),和GND共三根信号线,连接后使用JLink-可以识别出ARM -M1内核:

FPGA开发_开发FPGA设备需要几年_开发FPGA

4.3.2.Keil项目的设置、编译、下载与调试

使用Keil软件打开///led//led.,按照文档说明,由于本设计采用的是片内ITCM和DTCM,因此应改为对应的地址,如图:

开发FPGA_开发FPGA设备需要几年_FPGA开发

调试初始化文件.ini中,也应改为对应的地址:

FUNC void Setup (void)
{
        SP = _RDWORD(0x00000000);
        PC = _RDWORD(0x00000004);
}
LOAD %L INCREMENTAL
Setup();

为适配-20K板载的27MHz时钟频率,需要将软件代码中,.c文件中的改为,如下:

/*----------------------------------------------------------------------------
  Define clocks
 *----------------------------------------------------------------------------*/
#define  XTAL            (100000000UL)     /* Oscillator frequency */
// #define  SYSTEM_CLOCK    (XTAL / 2U)       /* 50MHz                */
#define  SYSTEM_CLOCK    (27000000)        /* 27MHz                */

在Keil软件中开启Debug,Keil软件读取.ini并执行代码的下载,和SP、PC寄存器的初始化,然后可以设置断点,运行、单步调试等操作:

开发FPGA_开发FPGA设备需要几年_FPGA开发

4.3.3.运行效果

运行效果如下:

FPGA开发_开发FPGA_开发FPGA设备需要几年

本文来自论坛,点击查看完整帖子内容。


注明:本内容来源网络,不用于商业使用,禁止转载,如有侵权,请来信到邮箱:429562386ⓐqq.com 或联系本站客服处理,感谢配合!

用户登陆

    未注册用户登录后会自动为您创建账号

提交留言