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

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

3天内不再提示

MicroBlade 串口设计

中科亿海微 2023-08-18 08:14 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

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

1e38de32-3d5c-11ee-ad04-dac502259ad0.jpg

MicroBlade 串口设计,开发板实现使用的是亿海神针系列EQ6HL45型FPGA。本篇通过原理图设计,学习MicroBlade基本结构,通过创建简单的MicroBlade工程,实现MicroBlade调用AXI Uartlite模块和AXI GPIO模块,完成串口打印功能,掌握在模块化设计中,MicroBlade最小系统的组成,学会导出、建立以及运行基于SDK的工程。

设计原理

本系统中的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:CSG324Available devices: EQ6HL456)最后在新工程总结中,检查工程创建是否有误。没有问题,则点击Finish,完成新工程的创建。

2

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

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

1ec8beee-3d5c-11ee-ad04-dac502259ad0.png

3)在Diagram中添加MicroBlade IP;

1ee42850-3d5c-11ee-ad04-dac502259ad0.png

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

1efcc52c-3d5c-11ee-ad04-dac502259ad0.png

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

Local Memory: 64KB

Debug Module: Debug

Peripheral AXI Port: Enabled

1f26d236-3d5c-11ee-ad04-dac502259ad0.png

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

1f5b2a7c-3d5c-11ee-ad04-dac502259ad0.png

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

1f7db2a4-3d5c-11ee-ad04-dac502259ad0.png

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

1f9bf82c-3d5c-11ee-ad04-dac502259ad0.png

1fc7f22e-3d5c-11ee-ad04-dac502259ad0.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)完成后,点击布局重置按钮重新布局,如下图所示:

20189472-3d5c-11ee-ad04-dac502259ad0.png

14)Ctrl+S保存设计。

3

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

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

2052c61a-3d5c-11ee-ad04-dac502259ad0.png

2)在Sources窗格中BD文件点击右键,选择Create HDL Wrapper,自动更新Sources列表,同时工程没有顶层,则自动设置为顶层;3)在界面上方工具栏中,选择Toos>Settings…在弹出的界面中点击Synthesis栏,取消勾选Post_Synthesis Netlist Optimizing;

2075f0d6-3d5c-11ee-ad04-dac502259ad0.png

4)完成后继续点击Flow Navigator中的SYNTHESIS栏中的Run Synthesis进行工程综合;5)综合结束后在界面上方工具栏中,选择Toos >I/O Planning编辑管脚指定;

209909e0-3d5c-11ee-ad04-dac502259ad0.png

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

20e4470c-3d5c-11ee-ad04-dac502259ad0.png

7)完成后继续点击左侧Run Implemenation按钮进行布局布线编译实现;8)在PROGRAM AND DEBUG栏点击Generate Bitstream。连接开发板,完成后点击Open target启动Programmer下载码流。下载成功后默认状态为led1和led2交替闪烁。

4

导出SDK并启动

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

214161f8-3d5c-11ee-ad04-dac502259ad0.png

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

21907d7e-3d5c-11ee-ad04-dac502259ad0.png

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

21b7da68-3d5c-11ee-ad04-dac502259ad0.png

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

21f05474-3d5c-11ee-ad04-dac502259ad0.png

222364c2-3d5c-11ee-ad04-dac502259ad0.png

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

224be1e0-3d5c-11ee-ad04-dac502259ad0.png

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

226bf8c2-3d5c-11ee-ad04-dac502259ad0.png

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

22828056-3d5c-11ee-ad04-dac502259ad0.png

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

22b3c22e-3d5c-11ee-ad04-dac502259ad0.png

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

22f1aa44-3d5c-11ee-ad04-dac502259ad0.png

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

23369776-3d5c-11ee-ad04-dac502259ad0.png

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

23484548-3d5c-11ee-ad04-dac502259ad0.png 

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

23752004-3d5c-11ee-ad04-dac502259ad0.png

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

    关注

    68

    文章

    20327

    浏览量

    254747
  • 计算机
    +关注

    关注

    19

    文章

    7837

    浏览量

    93447
  • IP
    IP
    +关注

    关注

    5

    文章

    1882

    浏览量

    156672
  • 串口
    +关注

    关注

    15

    文章

    1626

    浏览量

    83309
  • 串口传输
    +关注

    关注

    0

    文章

    33

    浏览量

    2127
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    51单片机驱动HMI串口屏,串口屏的下载方式

    串口串口屏是一个集成了单片机的屏幕模块,采用的是TTL串口协议,可以直接通过对应指令控制屏幕, 本文采用的串口屏是T0系列的基本型,目的是通过单片机的
    的头像 发表于 03-17 11:44 300次阅读
    51单片机驱动HMI<b class='flag-5'>串口</b>屏,<b class='flag-5'>串口</b>屏的下载方式

    串口协议的深度剖析

    串口通信协议作为电子设备间数据交互的基础技术,自20世纪60年代诞生以来,始终在工业控制、嵌入式系统和物联网等领域扮演着核心角色。本文将从技术原理、协议架构、应用场景及未来演进四个维度,对串口协议展开深度剖析。
    的头像 发表于 03-02 17:32 1227次阅读

    STM32驱动串口屏,STM32F103C8T6串口发送指令控制HMI串口

    串口串口屏是一个集成了单片机的屏幕模块,采用的是TTL串口协议,可以直接通过对应指令控制屏幕, 本文采用的串口屏是陶晶驰T0系列的基本型,目的是通过单片机的
    的头像 发表于 02-10 17:07 532次阅读
    STM32驱动<b class='flag-5'>串口</b>屏,STM32F103C8T6<b class='flag-5'>串口</b>发送指令控制HMI<b class='flag-5'>串口</b>屏

    RK3588平台串口配置修改指南:切换至串口8

    在嵌入式开发中,串口作为基础调试接口至关重要。本文档针对 RK3588 平台,详细介绍如何将系统默认串口修改为串口 8(UART8),包括 U-Boot 阶段和内核阶段的配置调整。该修改适用于需要使用额外
    的头像 发表于 02-01 16:37 1366次阅读

    USB转多串口扩展方案详解

    在计算机与嵌入式系统中,扩展多个串行通信接口是常见需求。当前实现多串口扩展的主要方式包括USB转串口、PCI/PCIe转串口以及基于网络或蓝牙的串口扩展。其中,USB接口因其高速传输、
    的头像 发表于 01-28 16:58 415次阅读
    USB转多<b class='flag-5'>串口</b>扩展方案详解

    串口调试步骤(适合免驱动的232串口设备)

    基础环境:麒麟系统,最好能联网以便于更新插件 将串口设备插入主板卡槽 进入命令行 bash dmesg | grep tty 查看新增的串口是否识别,如果识别回新增几个串口 sudo su 输入用户
    的头像 发表于 12-17 17:23 1619次阅读
    <b class='flag-5'>串口</b>调试步骤(适合免驱动的232<b class='flag-5'>串口</b>设备)

    欧拉取消串口上限步骤

    前提centos架构的系统串口上限为4,需要取消串口上限否则拓展的串口不能用 编辑 GRUB 配置文件: vi /etc/default/grub 在 GRUB_CMDLINE_LINUX 行末尾
    的头像 发表于 12-13 15:14 503次阅读

    串口服务器产品解析与应用方案选型指南

    2025年,物联网(IoT)、工业互联网及智能化设备控制的快速发展使得串口服务器技术再次成为行业焦点。作为传统串口通信与现代网络技术的桥梁,串口服务器在工业自动化、能源管理、智慧城市等领域的应用日益
    的头像 发表于 11-18 15:33 789次阅读

    通用串口转Modbus TCP 网关

    通用串口转Modbus TCP 网关 在工业自动化系统中,设备协议的多样性常常导致通信障碍。许多关键设备采用独特的串口协议(自定义串口协议),难以直接与广泛使用的标准协议(如 Modbus TCP
    的头像 发表于 08-13 15:59 715次阅读
    通用<b class='flag-5'>串口</b>转Modbus TCP 网关

    外部晶振在USB转串口模块的应用

    在工业设备、嵌入式系统以及各类专业仪器中,串口通信依然是关键的数据传输方式。为适应现代计算机,USB 转串口模块应运而生。可将 USB 接口转换为传统的串口,从而实现 USB 信号与串口
    的头像 发表于 08-12 17:28 1558次阅读
    外部晶振在USB转<b class='flag-5'>串口</b>模块的应用

    智嵌物联串口转光纤转换器-延长串口通信距离,增强抗干扰性能

    智嵌物联研发的串口光纤收发器是将RS-485/422/RS232接口信号转换为光纤接口传输,通信距离可达20Km,大大延长串口的通信距离以及抗干扰性能。设备可自适应串口参数,无需设置,即插即用
    的头像 发表于 06-27 17:08 915次阅读
    智嵌物联<b class='flag-5'>串口</b>转光纤转换器-延长<b class='flag-5'>串口</b>通信距离,增强抗干扰性能

    ESP32用作经典蓝牙串口透传模块与手机进行串口通信

    本文介绍了如何把ESP32用作一个蓝牙串口透传设备使用,其功能和常用的HC-05/06串口蓝牙设备一样。并与手机蓝牙串口APP进行双向蓝牙通信。
    的头像 发表于 06-20 17:45 3369次阅读
    ESP32用作经典蓝牙<b class='flag-5'>串口</b>透传模块与手机进行<b class='flag-5'>串口</b>通信

    串口相关课程设计

    是一个平时的作业,和串口相关,希望能帮助到大家
    发表于 06-08 10:05 2次下载

    串口网关是什么

    串口网关是什么? 串口网关(Serial Gateway) 是一种硬件或软件设备,用于将 串口通信协议 (如RS-232、RS-485、TTL等)转换为 网络通信协议 (如TCP/IP、UDP
    的头像 发表于 06-05 11:31 937次阅读

    第七章 串口通信

    本章介绍了W55MH32的串口通信,讲述了数据通信基础概念、串口通信协议和特性与功能,以及DMA在串口中用于高速数据传输场景,并进行了多种模式的程序设计与下载验证。
    的头像 发表于 05-26 17:00 1120次阅读
    第七章 <b class='flag-5'>串口</b>通信