533|4

745

帖子

1

资源

纯净的硅(中级)

【Sipeed 高云GW2A FPGA开发板】——ARM Cortex-M0软核处理器_LED点灯 [复制链接]

本帖最后由 mars4zhu 于 2022-11-23 19:47 编辑

4. 在高云半导体GW2A系列FPGA平台上运行ARM Cortex-M0软核处理器

4.1. ARMSOC_2

在原有代码基础上做细微修改,主要在于:

  1. ClockDiv模块中,分频参数根据板载时钟频率,将其改为27分频的合适频率。

    AHBLITE_SYS.v:

    // ClockDiv #(.CLOCK_DIV(8'd50))        uClockDiv       (
    ClockDiv #(.CLOCK_DIV(8'd27))   uClockDiv       (
    
  2. AHB2MEM模块中,之前使用的FPGA容量较大,因此采用了32KB的配置,但该配置在GW2A-18芯片上综合不通过,报错信息显示BRAM容量超出最大容量限制,因此修改为1KB配置,综合通过。

    AHBLITE_SYS.v:

    // AHB2MEM #(.MEMWIDTH(15)) uAHB2MEM (
    AHB2MEM #(.MEMWIDTH(10)) uAHB2MEM (
    
  3. 对应的IO引脚配置,如下:

    IO_LOC "LED[7]" P6;
    IO_PORT "LED[7]" PULL_MODE=UP DRIVE=8;
    IO_LOC "LED[6]" T6;
    IO_PORT "LED[6]" PULL_MODE=UP DRIVE=8;
    IO_LOC "LED[5]" L16;
    IO_PORT "LED[5]" PULL_MODE=UP DRIVE=8;
    IO_LOC "LED[4]" L14;
    IO_PORT "LED[4]" PULL_MODE=UP DRIVE=8;
    IO_LOC "LED[3]" N14;
    IO_PORT "LED[3]" PULL_MODE=UP DRIVE=8;
    IO_LOC "LED[2]" N16;
    IO_PORT "LED[2]" PULL_MODE=UP DRIVE=8;
    IO_LOC "LED[1]" A13;
    IO_PORT "LED[1]" PULL_MODE=UP DRIVE=8;
    IO_LOC "LED[0]" C13;
    IO_PORT "LED[0]" PULL_MODE=UP DRIVE=8;
    IO_LOC "RESETn" T10;
    IO_PORT "RESETn" PULL_MODE=UP;
    IO_LOC "CLK" H11;
    IO_PORT "CLK" PULL_MODE=UP;
    

综合之后整体的鸟瞰图如下:

ARM-CM0DS_ARMSOC-2_schematic-viewer.png

其综合过程对RAM的推断识别,并自动转换为FPGA的内部BRAM资源及其初始化内容过程如下:

Extracting RAM for identifier 'memory'("E:\myApp\Z3_IC\CPU\ARM\FPGA\DesignStart\myApp\CM0DS-DesignKit\AHB_Peripherals\AHBL_MEM\AHB2MEM_V2.v":140)
WARN  (EX3858) : System task 'display' is ignored for synthesis("E:\myApp\Z3_IC\CPU\ARM\FPGA\DesignStart\myApp\CM0DS-DesignKit\AHB_Peripherals\AHBL_MEM\AHB2MEM_V2.v":143)
WARN  (EX3858) : System task 'display' is ignored for synthesis("E:\myApp\Z3_IC\CPU\ARM\FPGA\DesignStart\myApp\CM0DS-DesignKit\AHB_Peripherals\AHBL_MEM\AHB2MEM_V2.v":145)

测试时特意将code.hex文件路径移动,则会报错如下:

Extracting RAM for identifier 'memory'("E:\myApp\Z3_IC\CPU\ARM\FPGA\DesignStart\myApp\CM0DS-DesignKit\AHB_Peripherals\AHBL_MEM\AHB2MEM_V2.v":140)
WARN  (EX3858) : System task 'display' is ignored for synthesis("E:\myApp\Z3_IC\CPU\ARM\FPGA\DesignStart\myApp\CM0DS-DesignKit\AHB_Peripherals\AHBL_MEM\AHB2MEM_V2.v":143)
WARN  (EX3988) : Cannot open file '..\Software\code.hex'("E:\myApp\Z3_IC\CPU\ARM\FPGA\DesignStart\myApp\CM0DS-DesignKit\AHB_Peripherals\AHBL_MEM\AHB2MEM_V2.v":144)
WARN  (EX3858) : System task 'display' is ignored for synthesis("E:\myApp\Z3_IC\CPU\ARM\FPGA\DesignStart\myApp\CM0DS-DesignKit\AHB_Peripherals\AHBL_MEM\AHB2MEM_V2.v":145)

最终下载运行后的效果为LED交叉闪烁(每隔一段时间0x55切换到0xAA),如图:

ARM-CM0DS_ARMSOC-2_effect.gif
  • PS: 同样的RTL代码和ARM软件代码,相比于A家FPGA(EP4C系列),似乎GW2A-18芯片运行的更慢一些。


回复

7217

帖子

193

资源

五彩晶圆(高级)

运行ARM Cortex-M0软核处理器

这个是厂家提供的吗  没玩过请教下

点评

ARM公开的,移植到FPGA开发板上即可。   厂家高云半导体也提供了类似的软核处理器,Cortex-M1、RISCV都有。  详情 回复 发表于 3 天前

回复

745

帖子

1

资源

纯净的硅(中级)

常见泽1 发表于 2022-11-24 17:18 运行ARM Cortex-M0软核处理器 这个是厂家提供的吗  没玩过请教下

ARM公开的,移植到FPGA开发板上即可。

 

厂家高云半导体也提供了类似的软核处理器,Cortex-M1、RISCV都有。

点评

内核直接用,外设自己编 是这个意思吧?  详情 回复 发表于 3 天前

回复

7217

帖子

193

资源

五彩晶圆(高级)

mars4zhu 发表于 2022-11-25 10:03 ARM公开的,移植到FPGA开发板上即可。   厂家高云半导体也提供了类似的软核处理器,Cortex-M1 ...

内核直接用,外设自己编 是这个意思吧?

点评

是的。  详情 回复 发表于 3 天前

回复

745

帖子

1

资源

纯净的硅(中级)

常见泽1 发表于 2022-11-25 10:24 内核直接用,外设自己编 是这个意思吧?

是的。


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

相关帖子
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
    关闭
    站长推荐上一条 1/7 下一条

    About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

    站点相关: 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

    北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

    电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2022 EEWORLD.com.cn, Inc. All rights reserved
    快速回复 返回顶部 返回列表