0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于FPGA的MicroBlade串口设计

73r1_FPGA_ehiwa 来源:中科亿海微 2023-08-18 09:27 次阅读

MicroBlade 处理器软核 IP是实现基于 RISC-V(Reduced Instruction Set Computer,精简指令集计算机)指令集架构的 32 位处理器软核,支持 RV32IM 指令集,支持 AXI4-Lite 接口,用于简化 FPGA 中复杂的控制逻辑。

MicroBlade 处理器软核框架如下图所示:

wKgaomTeyTqAN1r3AAB2iULXJns910.jpg

MicroBlade 串口设计,开发板实现使用的是亿海神针系列EQ6HL45型FPGA。

本篇通过原理图设计,学习MicroBlade基本结构,通过创建简单的MicroBlade工程,实现MicroBlade调用AXI Uartlite模块和AXI GPIO模块,完成串口打印功能,掌握在模块化设计中,MicroBlade最小系统的组成,学会导出、建立以及运行基于SDK的工程。获取本篇相关源工程代码,可在公众号内回复“MicroBlade串口设计源工程”,提供下载路径。

设计原理

本系统中的MicroBlade模块通过AXI Lite总线与AXI Uartlite IP和AXI GPIO IP进行通信,完成led指示灯的状态改变以及串口打印功能。

操作步骤

基于GUI界面创建工程

1创建新的工程项目

1)双击桌面图标打开eLinx3.0;

2)点击Create Project,或者单击File>New Project创建工程文件;

3)将新的工程项目命名TEST_MICROBLADE,选择工程保存路径,勾选Create project subdirectory,创建一个新的工程文件夹,点击Next继续;

4)选择新建一个RTL工程,由于本工程无需创建源文件,故将Do not specify sources at this time(不指定添加源文件)勾选上。点击 Next继续;

5)选择目标FPGA器件:

Family:eHiChip6

Package:CSG324

Available devices: EQ6HL45

6)最后在新工程总结中,检查工程创建是否有误。没有问题,则点击Finish,完成新工程的创建。

2创建原理图,添加IP,进行原理图设计

1)在Flow Navigator下,展开IP INTEGRATOR,选择Create Block Design创建新的原理图设计;

2)将新的设计命名为design1;

wKgZomTeyTqAWY1GAABWzpCT8aA029.png

3)在Diagram中添加MicroBlade IP;

wKgaomTeyTqAJeBmAAA8SF7MRe4023.png

4)添加完成后如下图所示,点击Run Block Automation;

wKgZomTeyTqAHCH6AACohgUzdFw003.png

在弹出窗口中,使用以下设置替换默认设置:

Local Memory: 64KB

Debug Module: Debug

Peripheral AXI Port: Enabled

wKgaomTeyTqAQ35RAACffbK8_tg420.png

6)完成之后,eLinx会基于之前的设置自动生成一些额外的IP,并且会自动连接完毕,此时不要点击Run Connection Automation;

wKgaomTeyTqAeryOAAFBGb8qxRg049.png

7)在Diagram中添加AXI Uartlite IP和AXI GPIO IP;

wKgZomTeyTqARsbfAABUU732CAQ911.png

8)完成后,点击Run Connection Automation,在弹出窗口中勾选所有端口,点击OK继续;

wKgZomTeyTqAZm0-AAGSBl2Es5s317.png

wKgaomTeyTqAP7iuAAFWDs1kSAs470.png

9)完成后,双击MicroBlade IP,打开界面,取消勾选Enable Interrupt隐藏Interrupt端口;

10)双击AXI_Lite Interconnect IP,打开界面,把master端口的数量修改为2。手动完成AXI_Lite Interconnect IP与AXI Uartlite IP,与AXI GPIO IP的连线;

11)双击AXI Uartlite IP,打开界面,把AXI CLK Frequency修改为50(板卡晶振为50M)。单击UART端口,引出外设IO;

12)双击AXI GPIO IP,打开界面,把GPIO通道GPIO Width修改为2,勾选Enable Dual Channel,把GPIO2通道GPIO Width修改为1。点击展开GPIO端口,点击gpio_io_o端口,引出外设IO;

13)完成后,点击布局重置按钮重新布局,如下图所示:

wKgaomTeyTqAIPTdAAFOZDyZHyI887.png

14)Ctrl+S保存设计。

3综合、实现、生成比特流文件

1)保存后,在Sources窗格中鼠标右键design1,选择Generate Output Products...,开始BD工程综合,如下图所示:

wKgZomTeyTuAc6z8AAJBoQLPKC4970.png

2)在Sources窗格中BD文件点击右键,选择Create HDL Wrapper,自动更新Sources列表,同时工程没有顶层,则自动设置为顶层;

3)在界面上方工具栏中,选择Toos>Settings…在弹出的界面中点击Synthesis栏,取消勾选Post_Synthesis Netlist Optimizing;

wKgZomTeyTuATH5BAAEbv0zDtno011.png

4)完成后继续点击Flow Navigator中的SYNTHESIS栏中的Run Synthesis进行工程综合;

5)综合结束后在界面上方工具栏中,选择Toos >I/O Planning编辑管脚指定;

wKgaomTeyTuAGe5-AAOEO29U9YQ576.png

6)完成后在SYNTHESIS栏中点击Edit Timing Constraints添加2个时序约束后保存;

wKgaomTeyTuABpLXAAL9Uzo1xI0854.png

7)完成后继续点击左侧Run Implemenation按钮进行布局布线编译实现;

8)在PROGRAM AND DEBUG栏点击Generate Bitstream。连接开发板,完成后点击Open target启动Programmer下载码流。下载成功后默认状态为led1和led2交替闪烁。

4导出SDK并启动

1)在顶部工具栏中,选择File>Export>Export Hardware导出硬件工程到SDK;

wKgZomTeyTuAZI7VAAKQwkesr8E388.png

2)在工具栏中,选择File>Launch SDK,使用默认工程,启动SDK;

wKgZomTeyTuAHVdkAAKd6IH3Rhw006.png

3)启动SDK后,如下界面,点击Create a project,弹出如下界面:

wKgaomTeyTuAb-QfAAFKFhpIuMc147.png

4)选择New Application->Application project,输入工程名helloworld,依次默认配置点击Finish完成创建;

wKgaomTeyTuAXk6zAAGKK9SGnic313.png

wKgaomTeyTuAMNJgAAF4flHKvlE994.png

5)工程属性无需配置,工程中集成了例程,如下图:

wKgZomTeyTuAJdHMAABGqmlqDbs012.png

6)构建。构建成功后左侧生成Debug文件夹

wKgZomTeyTuAVUuJAAB_tATYEXM517.png

7)进行上板运行

a)在工程名称上点击右键,弹出界面选择run as

wKgZomTeyTuAeUTBAAJQVMHgNCg628.png

b)点击后弹出如下界面,在GDB OpenOCD Debugging按钮双击即可

wKgaomTeyTuAPAloAAJPf_um9sY530.png

c)完成后,点击run可开始板卡联调,成功如下图所示:

wKgZomTeyTuAQxYXAAKzsMf4JcQ816.png

5)连接串口。选择SDK界面下方的Terminal窗口,点击下图的按钮

wKgaomTeyTuACy14AAELhCVCvA0487.png

6)在弹出窗口中,进行如下配置:

wKgZomTeyTuAS_OhAAB7dPQj2So344.png

7)点击OK后,点击EQ6HL45板卡上的复位按钮(F2),Terminal界面出现了’Hello RISC-V World’字样。

wKgaomTeyTyAMIs4AABHflDHqPo719.png

中科亿海微

中科亿海微电子科技(苏州)有限公司,是中国科学院“可编程芯片与系统”研究领域的科研与产业化团队,按照国家创新驱动发展战略,发起成立的以“可编程逻辑芯片与可重构系统”为技术特色的高新技术企业。公司坚持全正向设计技术路线,自主研制具有高可靠性的嵌入式可编程电路IP核、可编程逻辑芯片、EDA软件与可重构系统,提供具有高性能和自适应计算的行业解决方案和集成电路设计服务,具有较完善的知识产权保护体系。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 处理器
    +关注

    关注

    68

    文章

    18275

    浏览量

    222164
  • FPGA
    +关注

    关注

    1602

    文章

    21320

    浏览量

    593201
  • 计算机
    +关注

    关注

    19

    文章

    6649

    浏览量

    84533
  • 串口
    +关注

    关注

    14

    文章

    1483

    浏览量

    74513
  • RISC-V
    +关注

    关注

    41

    文章

    1901

    浏览量

    45045

原文标题:MicroBlade 串口设计

文章出处:【微信号:FPGA-ehiway,微信公众号:中科亿海微】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    MicroBlade 串口设计

    AXI4-Lite接口,用于简化FPGA中复杂的控制逻辑。MicroBlade处理器软核框架如下图所示:MicroBlade串口设计,开发板实现使用的是亿海神针系列E
    的头像 发表于 08-18 08:14 395次阅读
    <b class='flag-5'>MicroBlade</b> <b class='flag-5'>串口</b>设计

    基于FPGA的SOC系统中的串口设计

    基于FPGA 的SOC 系统中的串口设计 作者:葛锐 欧钢摘要:本文在XILINX FPGA 中采用嵌入式处理器Picoblaze 进行SOC 设计,以较少的
    发表于 02-08 09:48 21次下载

    基于EasyFPGA030的串口接收显示设计

    本实验是基于EasyFPGA030 的串口接收设计。FPGA 除了需要控制外围器件完成特定的功能外,在很多的应用中还需要完成FPGAFPGA
    发表于 03-11 15:39 30次下载

    基于Actel FPGA的多串口扩展设计

    基于Actel FPGA 的多串口扩展设计采用了Actel 公司高集成度,小体积,低功耗,低系统成本,高安全性和可靠性的小容量FPGA—A3P030 进行设计,把若干接口电路的功能集成到A3P030
    发表于 11-15 17:43 71次下载

    采用Actel FPGA的多串口扩展方案

    采用Actel FPGA的多串口扩展方案    在当前的多串口的扩展应用中,虽然市面上有部分的多串口扩展芯片,但是其可扩展的
    发表于 03-18 11:11 2516次阅读

    基于CPLD/FPGA的多串口设计

    在工业控制中如何提高一对多的串口通讯可靠性和系统的集成性成为研究热点。本文利用嵌入式技术,提出基于CPLD/FPGA的多串口扩展设计方案。实现并行口到多个全双工异步通讯口之间
    发表于 04-27 11:17 111次下载
    基于CPLD/<b class='flag-5'>FPGA</b>的多<b class='flag-5'>串口</b>设计

    基于FPGA串口通讯与VGA显示

    本文介绍了基于FPGA(现场可编程门阵列)具有串口控制功能的VGA显示图像的设计实现方案。通过对该设计方案进行分析,可把本设计分成3个模块一一进行实现,这3个模块分别是串口
    发表于 09-19 15:26 290次下载
    基于<b class='flag-5'>FPGA</b>的<b class='flag-5'>串口</b>通讯与VGA显示

    完整FPGA串口程序(测试通过(FPGA给PC机发))

    VHDL串口发送的程序,主要是FPGA给Pc发送数据。
    发表于 01-06 10:21 57次下载

    基于FPGA串口通信设计_王鹏

    介绍FPGA串口通信有发送模块与接收模块的程序
    发表于 03-03 16:31 22次下载

    基于FPGA串口通信电路设计

    基于FPGA串口通信电路设计
    发表于 01-24 17:30 33次下载

    基于FPGA Verilog-HDL语言的串口设计

    基于FPGA Verilog-HDL语言的串口设计
    发表于 02-16 00:08 35次下载

    xilinx FPGA串口设计笔记

    在设计中,需要用FPGA读取GPS内部的信息,GPS的通信方式为串口,所以在FPGA中移植了串口程序。
    发表于 03-26 11:04 11次下载

    FPGA中利用IP核实现SOC系统中的串口收发接口的设计

    在基于FPGA的SOC设计中,常使用串口作为通信接口,但直接用FPGA进行串口通信数据的处理是比较繁杂的,特别是直接使用FPGA进行
    的头像 发表于 08-02 08:08 3892次阅读

    基于FPGA的SDRAM串口实验

    基于FPGA的SDRAM串口实验(嵌入式开发板实验报告)-基于FPGA的SDRAM串口实验,verilog语言编写
    发表于 08-04 09:43 37次下载
    基于<b class='flag-5'>FPGA</b>的SDRAM<b class='flag-5'>串口</b>实验

    FPGA-串口通信模块(含IP核)

    ARTIX-xlinx 版本FPGA 串口通信模块(含IP核)
    发表于 06-20 11:07 12次下载