世俱杯 2025

不使用处理器控制 FPGA 总线

出处:维库电子市场网 发布于:2023-02-13 16:30:09

    许多 FPGA 设计使用嵌入式处理器进行控制。一个典型的解决方案涉及使用 Nios 等软处理器,尽管带有内置硬处理器的 FPGA SoC 也变得很流行。图 1显示了一个典型的 Altera FPGA 系统,它包含处理器和通过 Altera 的Avalon映射 (MM) 连接的混合外设 。这些处理器大大简化了终应用程序,但需要强大的编程背景和复杂工具链的知识。这会阻碍调试,特别是如果硬件工程师需要一种简单的方法来读取和写入外围设备而无需纠缠软件工程师。

    图 1  使用 Avalon 内存映射总线连接的典型 Altera FPGA 系统
    该设计理念使用 Altera 的SPI 从器件到 Avalon MM 桥接器来提供跳到 Avalon 总线上的简单方法。这种技术有两个优点:它不损害原来的系统设计,桥可以与嵌入式处理器共存。对于图 1所示的系统,SPI 桥允许工程师直接控制 LTC6948 小数 N PLL 的频率,设置 LTC1668 DAC 电压,从 LTC2498 ADC 读取电压,或从 LTC2983 读取温度,就像处理器可以。
    Altera 为 SPI-Avalon MM 桥接器提供参考设计。不幸的是,文档充其量是稀疏的,并且使用 Nios 处理器作为 SPI 主机。这实际上违背了 SPI 桥的目的,因为 Nios 可以直接连接到 Avalon MM 总线。一个实用的 SPI 主控制器是凌力尔特的Linduino ,它是一个 Arduino 克隆,具有连接到 LT 演示板的额外功能。一项额外功能是电平转换 SPI 端口。当连接到电压低至 1.2V 的 FPGA I/O bank 时,这种电平转换功能特别有用。Linduino 固件可用于通过虚拟 COM 端口接受命令并将命令转换为 SPI 事务。
    在对 Altera 示例设计(图 2的左侧)进行逆向工程后,开发了一个 Python 库来创建网桥可以接受的数据包。然后将这些数据包翻译成 Linduino 命令。然后,Python 脚本允许硬件工程师完全控制项目,而无需重新发明接口协议。LinearLabTools Python 文件夹中提供了一个示例 Python 脚本,用于控制 LTC1668 DAC 的数字模式的频率。图 3显示了演示设置。

    图 4显示了系统框图。请注意,数控 (NCO) 可由移位寄存器或 PIO 内核控制。包含移位寄存器用于调试,因为它允许直接控制 NCO。将 GPIO 线设置为高电平可启用 SPI-Avalon 桥接器,它进而控制 Avalon 总线上的 32 位 PIO 端口。然后 PIO 输出控制 NCO 频率。

    图4   FPGA系统框图

    在基本系统运行的情况下,可以将额外的外围内核连接到总线。为了设计系统,Altera 提供了一种名为 Qsys 的工具,它提供了一个 GUI 来将 IP 相互连接。Qsys 将 GUI 设计的系统(图 5)转换为 HDL。外设地址是完全可配置的。在这种情况下,PIO 设置为基址 0x0。

    图 5  Qsys GUI
    在 FPGA 中实现设计后,LinearLabTools 中提供的 Python 库包含两个与设计接口的函数:
    transaction_write (dc2026, base, write_size, data)
    transaction_read (dc2026, base, read_size)
    这些函数的个参数是 Linduino 串行端口实例。第二个参数是外设在 Avalon 总线上的地址。这些函数分别接受和返回字节列表。这两个函数的编写是为了在写入和读取 IP 时提供灵活性。要为提供的示例设置 NCO,只需要transaction_write 函数。公式 1 用于确定调谐字。
    要以 50MSPS 采样率将 NCO 设置为 1kHz,调整值为 85899 或 0x00014F8B,它作为四个字节的列表传递。因此,将 DAC 设置为 1kHz 的 python 代码是:

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

    图 6  Python Avalon 总线示例
    图 6中的 Python 脚本说明了配置 NCO 的简单文本界面。重要提示:桥接器使用 SPI 模式 3。这被痛苦地确定为正确的 通过反复试验模式,并通过分析 Altera 示例中的 Nios 处理器的 SPI 接口进行验证。
    该设计理念提供了在不接触嵌入式处理器的情况下控制系统的能力,允许硬件工程师在不打扰软件工程师的情况下推进项目,并且对硬件设计的影响。
关键词:FPGA 总线  

版权与免责声明

凡本网注明“出处:维库电子市场网”的所有作品,版权均属于维库电子市场网,转载请必须注明维库电子市场网,//tgdrjb.cn,违反者本网将追究相关法律责任。

本网转载并注明自其它出处的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品出处,并自负版权等法律责任。

如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。

OEM清单文件: OEM清单文件
*公司名:
*联系人:
*手机号码:
QQ:
有效期:

扫码下载APP,
 一键连接广大的电子世界。

在线人工客服

买家服务:
卖家服务:
技术客服:

0571-85317607

网站技术支持

13606545031

客服在线时间周一至周五
9:00-17:30 

关注官方微信号,
第一时间获取资讯。

建议反馈

联系人:

联系方式:

按住滑块,拖拽到最右边
>>
感谢您向阿库提出的宝贵意见,您的参与是维库提升服务的动力!意见一经采纳,将有感恩红包奉上哦!