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

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

3天内不再提示

一种无需“接触”嵌入式处理器便可控制系统的FPGA接口

电子工程师 来源:FPGA设计论坛 作者:FPGA设计论坛 2021-04-04 12:16 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

许多新式FPGA设计采用了一些用于控制的嵌入式处理器。一种典型解决方案需要使用诸如NIOS等嵌入式软处理器。另一种解决方案则使用包含一个内置硬处理器的SoC(片上系统)器件。图1所示为一个典型的Altera FPGA系统,该系统包含处理器和一系列通过Avalon内存映射(MM)总线连接的外设。这些处理器极大地简化了最终应用,但是要求开发人员拥有坚实的编程背景和精细复杂工具链的相关知识。这会阻碍调试工作的推进,特别是如果硬件工程师需要一种不会烦扰软件工程师即可完成外设读写的简单方法。

70e226f4-8f65-11eb-8b86-12bb97331649.png

图1 通过Avalon内存映射(MM)总线连接的典型Altera FPGA系统

1 SPI-Avalon MM桥接器

该设计思想运用了Altera(2015年被英特尔收购,成为其下的可编程解决方案事业部)的SPI从端至Avalon MM桥接器,以提供一种跳上Avalon总线的简单方法。采用这种方法有两项优势:它并未损害原始系统设计,而且该桥接器能够与嵌入式处理器共存。对于图1中所示的系统,SPI-Avalon MM桥接器将允许设计师直接控制LTC6948分数N PLL的频率,设定LTC1668 DAC电压,从LTC2498读取一个电压,或者从LTC2983读取温度,就像处理器一样。

Altera 提供了一款针对SPI-Avalon MM桥接器的参考设计。不幸的是,文档较为稀少,并且使用一个NIOS处理器作为SPI主控器。这实际上违背了SPI桥接器的初衷,因为NIOS处理器可直接连接至Avalon MM总线。一款实用的SPI主控器是凌力尔特的Linduino微控制器,它是具有附加特性的Arduino克隆产品,以与LT演示板相连接。附加特性之一是电平移位SPI端口。当连接至具有低至1.2V电压的FPGA I/O块时,这种电平移位功能是特别有帮助的。Linduino固件可用于通过一个虚拟COM端口接受命令并把命令转化为SPI事务处理。

在对Altera实例设计实施了反向工程之后(图2的左侧),开发一个Python库以生成桥接器将要接受的数据包。这些数据包随后被转化为Linduino命令。这样,一个简单的Python脚本使得硬件工程师能够全面地控制项目,并不需要彻底改变接口协议。在 LinearLabTools Python文件夹中提供了一个控制用于LTC1668 DAC的数字图形发生器之频率的Python脚本实例。图3所示为演示设置。

图4给出了FPGA的系统方框图。请注意,数控振荡器DCO)可由移位寄存器PIO内核来控制。内置移位寄存器用于调试,因为它提供了NCO的直接控制。把GPIO线逻辑电平设定为“高”将使能SPI-Avalon MM桥接器,该桥接器接着通过Avalon MM总线控制一个32位PIO端口。然后,PIO输出控制NCO频率。

7364ec68-8f65-11eb-8b86-12bb97331649.jpg

图4 DC2459A FPGA系统方框图

2系统集成工具Qsys

当最基本的系统运行时,可以把额外的Avalon外设IP内核连接至Avalon MM总线。为了设计系统,Altera提供了一款被称为Qsys的系统集成工具。这款工具提供一个GUI以相互连接IP。Qsys随后被用于把GUI系统转化为硬件描述语言(HDL)Verilog。图5所示为GUI。最后,系统将被添加至用于实施的顶层。IP的地址是完全可配置的。就给出的实例而言,PIO被设定在一个0x0的基地址单元。

一旦在 FPGA 中实现了设计,则LinearLabTools中提供的Python库包含两个函数以与设计接口:

transaction_write(dc2026, base, write_size, data)

transaction_read(dc2026, base, read_size)

这些函数的第一个参数是Linduino串行端口实例。第二个参数是外设在Avalon总线上的地址。这些函数分别接受和返还字节列表。编写这两个函数以在读和写IP时提供灵活性。如欲设定用于所提供实例的NCO,则所需的就是transaction_write函数。式(1)用于确定频率控制字。

频率控制字 = (期望的频率/系统时钟频率) x 232 (1)

如要把NCO设定至1kHz和一个50Msps采样速率,则频率控制字数值设为85899。该数值用十六进制来表示即为 0x00014F8B,其作为一个4字节列表进行传递。于是,用于把DAC设定至1kHz的Python代码为:

transaction_write(linduino_serial_instance, 0, 0, [0x0,0x01,0x4F, 0x8B])

注:根据逻辑设计,PIO 的基地址为零。

3 Python Avalon总线示例

本文提供一个如图6所示的简单Python脚本,以演示FPGA设计和Python脚本的接口。它包含一个简单的文本接口以配置NCO。一个重要提示是Avalon SPI桥接器采用SPI Mode 3。这是痛苦地通过反复试验而确定正确模式;并通过分析Altera实例中的NIOS处理器SPI接口进行验证。

4 结论

该实例项目展示了完全无需“接触”嵌入式处理器便可控制系统的能力。这让硬件工程师不必麻烦软件工程师就能在项目方面取得进展。这种方法的好处可以悄然地添加至 FPGA,并不会影响原始设计。硬件工程师可以把精力集中在硬件上。

原文标题:跳上Avalon总线:一种简化的FPGA接口

文章出处:【微信公众号:FPGA设计论坛】欢迎添加关注!文章转载请注明出处。

责任编辑:haq

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

    关注

    68

    文章

    20148

    浏览量

    246966
  • FPGA
    +关注

    关注

    1655

    文章

    22282

    浏览量

    630084
  • 嵌入式
    +关注

    关注

    5186

    文章

    20143

    浏览量

    328676

原文标题:跳上Avalon总线:一种简化的FPGA接口

文章出处:【微信号:gh_9d70b445f494,微信公众号:FPGA设计论坛】欢迎添加关注!文章转载请注明出处。

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    嵌入式硬件设计解析

    嵌入式硬件设计是个复杂而精细的过程,它涉及将微控制器(MCU)、微处理器(MPU)或数字信号处理器(DSP)等核心芯片与其他外围电子元件(
    发表于 12-02 08:22

    嵌入式FPGA的区别

    器件的基础上进步发展的产物,是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解.决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。 FPGA是硬件电路设计,嵌入式
    发表于 11-20 07:12

    嵌入式FPGA的区别

    开发中做出更明智的技术选择。 基本概念解析 嵌入式系统(Embedded System)是一种专用计算机系统,通常包含微处理器/微
    发表于 11-19 06:55

    嵌入式与单片机定义及区别

    ,我们将深入探讨这些不同类型的嵌入式处理器的定义、特性及其在各种应用领域中的作用。 我们的单片机,即嵌入式微控制器MCU,是一种高度集成的电子器件。它内部融合了ROM/RAM、总线逻
    发表于 11-17 08:11

    嵌入式系统的定义和应用领域

    嵌入式系统,简而言之,就是一种专为特定设备或装置设计的计算机系统。它们通常配备嵌入式
    发表于 11-17 06:49

    MicroBlaze处理器嵌入式设计用户指南

    *本指南内容涵盖了在嵌入式设计中使用 MicroBlaze 处理器、含存储 IP 核的设计、IP integrator 中的复位和时钟拓扑结构。获取完整版《 MicroBlaze 处理器
    的头像 发表于 07-28 10:43 780次阅读

    嵌入式和单片机,是同个东西吗?

    (Microcontroller,简称MCU),是一种集成了处理器、内存和外围设备的单芯片微型计算机。它通常作为嵌入式系统的核心控制单元,具
    发表于 07-09 10:20

    嵌入式单片机在电机控制系统中的应用

    长时间处于良好的工作状态,其稳定性也得到了显著的提升。嵌入式单片机在电机控制系统中的应用可以分为软件应用和硬件应用,硬件提供基本的物理框架支撑,软件提供基本的信息、数据处理渠道,也只有这样,才能
    发表于 06-11 15:07

    服务级芯片进军嵌入式市场,AMD这颗处理器驾驭AI洪流

    市场进行了优化,在计算能力与专门设计的嵌入式特性之间实现平衡,增强产品寿命、系统弹性和嵌入式应用开发的便利性。     该处理器采用成熟的Zen 5架构,提供领先的性能和能效,使网络、
    的头像 发表于 03-28 09:18 3749次阅读
    服务<b class='flag-5'>器</b>级芯片进军<b class='flag-5'>嵌入式</b>市场,AMD这颗<b class='flag-5'>处理器</b>驾驭AI洪流

    AMD EPYC嵌入式9005系列处理器发布

    AMD(超威,纳斯达克股票代码:AMD )今日宣布推出第五代 AMD EPYC(霄龙)嵌入式处理器,扩展其 x86 嵌入式处理器产品组合。
    的头像 发表于 03-12 17:08 1348次阅读

    嵌入式主板的概述与发展

    未来发展趋势进行深入探讨。嵌入式主板的基本概念嵌入式主板是指为嵌入式系统设计的电路板,它通常集成了微处理器、内存、输入输出
    的头像 发表于 01-13 16:30 1179次阅读
    <b class='flag-5'>嵌入式</b>主板的概述与发展

    MPU在嵌入式系统中的应用

    、MPU的基本功能 微处理器单元(MPU)是嵌入式系统中的大脑,负责执行程序指令、处理数据和控制
    的头像 发表于 01-08 09:26 1493次阅读

    ARM嵌入式通信协议及应用

    同工作至关重要。 、ARM嵌入式系统概述 ARM(Advanced RISC Machines)是一种基于精简指令集计算机(RISC)的处理器
    的头像 发表于 12-28 09:18 1488次阅读

    什么是嵌入式人工智能

    嵌入式人工智能是指将人工智能技术应用于嵌入式系统中的一种技术。嵌入式系统
    的头像 发表于 12-11 09:23 1516次阅读
    什么是<b class='flag-5'>嵌入式</b>人工智能

    嵌入式系统开发与硬件的关系 嵌入式系统开发常见问题解决

    系统开发与硬件关系的几个关键点: 硬件依赖性 :嵌入式系统的软件必须能够在特定的硬件上运行,这包括处理器、内存、输入/输出接口等。软件必须能
    的头像 发表于 12-09 09:38 1464次阅读