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

    文章

    19286

    浏览量

    229856
  • 计算机
    +关注

    关注

    19

    文章

    7494

    浏览量

    87966
  • IP
    IP
    +关注

    关注

    5

    文章

    1708

    浏览量

    149558
  • 串口
    +关注

    关注

    14

    文章

    1554

    浏览量

    76527
  • 串口传输
    +关注

    关注

    0

    文章

    33

    浏览量

    1798
收藏 人收藏

    评论

    相关推荐

    常见串口故障及解决方案 串口转蓝牙模块使用技巧

    在现代电子设备和计算机系统中,串口通信是一种常见的数据传输方式。然而,串口通信可能会遇到各种故障,影响数据的传输效率和准确性。 常见串口故障及解决方案 1. 串口无法识别设备 故障现象
    的头像 发表于 12-27 10:08 87次阅读

    串口通信原理解析 串口与并口的区别

    在计算机硬件和通信领域,串口(Serial Port)和并口(Parallel Port)是两种常见的数据传输接口。它们在数据传输方式、速度、应用场景等方面有着明显的区别。 串口通信原理 1. 定义
    的头像 发表于 12-27 09:50 133次阅读

    串口通信的开发环境配置

    串口通信的开发环境配置涉及多个方面,包括选择编程语言、安装必要的库或驱动程序、配置串口参数等。以下是一个基于Python的串口通信开发环境配置的步骤: 一、硬件准备 确保你有一个支持串口
    的头像 发表于 11-22 09:21 264次阅读

    串口通信协议解析 串口通信应用实例

    串口通信协议解析 串口通信协议是指规定了数据包的内容,内容包含了起始位、主体数据、校验位及停止位,双方需要约定一致的数据包格式才能正常收发数据的有关规范。以下是串口通信协议的介绍: 基本概念
    的头像 发表于 11-21 17:03 533次阅读

    为什么通信要使用虚拟串口串口助手?

    串口助手和虚拟串口是什么?串口助手和虚拟串口串口通信中很常见。串口助手是用于
    的头像 发表于 11-15 01:04 1035次阅读
    为什么通信要使用虚拟<b class='flag-5'>串口</b>和<b class='flag-5'>串口</b>助手?

    LABVIEW串口通讯

    labview实现串口通讯
    发表于 08-19 14:37 7次下载

    USB转串口串口卡的性能比较

    在当今的电子设备中,串口通信是一种非常常见的通信方式。随着威廉希尔官方网站 的发展,USB接口逐渐取代了传统的串口接口,但串口通信在某些特定领域仍然具有不可替代的作用。因此,市场上出现了USB转串口
    的头像 发表于 07-15 15:21 857次阅读

    模拟串口为何会影响自带串口信号

    模拟串口与自带串口信号干扰问题是一个复杂的话题,涉及到硬件设计、软件编程、信号完整性等多个方面。 模拟串口与自带串口的基本概念 串口(Ser
    的头像 发表于 07-15 15:11 601次阅读

    工业串口设备通讯神器:串口服务器CS64J

    在当今工业物联网应用中,串口服务器的应用非常普遍。无论是RS485还是RS232串口通讯,串口服务器都能够轻松实现虚拟串口串口以太网双向数
    的头像 发表于 03-21 17:09 491次阅读
    工业<b class='flag-5'>串口</b>设备通讯神器:<b class='flag-5'>串口</b>服务器CS64J

    什么是串口?什么是并口?串口与并口有什么区别?

    什么是串口?什么是并口?串口与并口有什么区别? 串口和并口都是计算机与外部设备进行数据传输的接口,它们之间存在一些重要区别。在下面的文章中,我将详细介绍串口和并口的定义、工作原理、特点
    的头像 发表于 02-02 15:33 8731次阅读

    usb转串口线怎么使用 usb转串口串口转usb的区别

    USB转串口线(USB to Serial Cable)是一种用于将计算机的USB接口连接到串口设备的转换线。正常情况下,计算机主机上只带有USB接口,而许多老旧的外围设备仍然使用串口(RS-232
    的头像 发表于 01-22 14:56 4652次阅读

    QT串口通信的简单使用

    QT串口通信是上位机和下位机通信常用的通信方式, 也是学习QT必须学会的基础知识, 这篇就简单介绍一下QT串口通信的简单使用.
    的头像 发表于 01-15 09:27 2023次阅读
    QT<b class='flag-5'>串口</b>通信的简单使用

    stm32怎么读取串口发来的指令

    读取串口发来的指令是嵌入式系统中一项常见的任务,特别是在与外部设备进行通信时。在STM32系列微控制器中,提供了多个串口接口(USART、UART等),可以用于读取和处理串口接收到的数据。下面将详细
    的头像 发表于 01-07 17:08 2725次阅读

    无线串口监控怎么连接

    无线串口监控是一种用于远程监控和管理串口设备的威廉希尔官方网站 。它可以方便地连接和管理串口设备,避免了物理连接和距离限制。在本文中,我们将详细介绍无线串口监控的连接方法。 了解无线
    的头像 发表于 01-04 15:18 737次阅读

    USB虚拟串口串口1可以同时发送吗

    可以同时发送,USB虚拟串口和物理串口1都可以作为数据传输的通道,可以同时操作和发送数据。 USB虚拟串口是一种通过USB接口模拟的串口,它通过驱动程序将USB接口转换为标准的
    的头像 发表于 01-04 11:26 1576次阅读