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

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

3天内不再提示

不使用处理器控制FPGA总线

FPGA设计论坛 来源:FPGA设计论坛 2023-04-08 11:08 次阅读

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

4b2eefa8-d5ba-11ed-bfe3-dac502259ad0.jpg

图 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 频率。

4b544b18-d5ba-11ed-bfe3-dac502259ad0.jpg

图4 FPGA系统框图

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

4b6ed528-d5ba-11ed-bfe3-dac502259ad0.jpg

图 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])

4bfee726-d5ba-11ed-bfe3-dac502259ad0.png

图 6 Python Avalon 总线示例

图 6中的 Python 脚本说明了配置 NCO 的简单文本界面。重要提示:桥接器使用 SPI 模式 3。这被痛苦地确定为正确的 通过反复试验模式,并通过分析 Altera 示例中的 Nios 处理器的 SPI 接口进行验证。

该设计理念提供了在不接触嵌入式处理器的情况下控制系统的能力,允许硬件工程师在不打扰软件工程师的情况下推进项目,并且对硬件设计的影响。

审核编辑:汤梓红

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

    关注

    68

    文章

    19191

    浏览量

    229311
  • FPGA
    +关注

    关注

    1627

    文章

    21685

    浏览量

    602321
  • 嵌入式
    +关注

    关注

    5076

    文章

    19045

    浏览量

    303853
  • Altera
    +关注

    关注

    37

    文章

    778

    浏览量

    153873
  • 总线
    +关注

    关注

    10

    文章

    2871

    浏览量

    88009

原文标题:不使用处理器控制 FPGA 总线

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

收藏 人收藏

    评论

    相关推荐

    用处理器,未来电机驱动的主流

    `专用处理器是未来电机驱动的主流 专用处理器(ASSP)是未来电机驱动的主流,是电机驱动领域的技术发展趋势。在硬件上,处理器本身就考虑到了大量电机驱动本身的实际问题,在集成控制MCU内
    发表于 12-31 17:57

    不使用处理器的I2C控制器

    嗨,我需要一个I2C内核来控制串行eeprom。在Web上的大多数I2C示例中,使用了微处理器。但我想只使用FPGA。我怎样才能做到这一点?有没有人有I2C控制器,不需要
    发表于 03-13 13:08

    如何正确使用处理器参数?

    使用处理器参数。前一步是“目标64”,我认为选择了正确的处理器。我已经尝试在多台计算机上执行此操作,并且我已经尝试了ISE 14.1,14.2和14.3,每个都有各自的u-boot文件。他们都没有工作
    发表于 09-03 09:08

    什么是总线处理器

    第一章复习要点①微处理器 p12②微型计算机p13③总线处理器:一般也称中央处理器(CPU),是本身具有运算能力和控制功能,是微型计算机的
    发表于 07-22 06:48

    DSP处理器与通用处理器的比较

    DSP处理器与通用处理器的比较1 对密集的乘法运算的支持GPP不是设计来做密集乘法任务的,即使是一些现代的GPP,也要求多个指令周期来做一次乘法。而DSP处理器使用专门的硬件来实现单周期乘法。DSP
    发表于 09-03 08:12

    多媒体应用处理器的原理和应用

    用处理器的全名叫最多媒体应用处理器(Multimedia Application Processor), 简称MAP。它是在低功耗CPU的基础上扩展音视频功能和专用接口的超大规模集成电路。MAP是伴随着智能手机而产
    发表于 12-01 13:27 6次下载

    什么是通用处理器

    什么是通用处理器 通用微处理器一般指的是服务器用和桌面计算用CPU芯片。  目前,在桌面计算领域,Intel公司的Pentium系列微处理器芯片领导了市场的主流,占据着微
    发表于 01-12 15:40 4305次阅读

    流水线操作,应用处理器,应用处理器的结构和原理是什么?

    流水线操作,应用处理器,应用处理器的结构和原理是什么? 与哈佛结构相关,DSP芯片广泛采用流水线以减少指令执行时间.从而增强
    发表于 03-26 15:03 1229次阅读

    i.MX286应用处理器简介

    i.MX286应用处理器简介
    发表于 09-29 18:53 6次下载
    i.MX286应<b class='flag-5'>用处理器</b>简介

    iMX28系列应用处理器数据手册

    iMX28系列应用处理器数据手册
    发表于 09-29 18:55 26次下载
    iMX28系列应<b class='flag-5'>用处理器</b>数据手册

    基于FPGA和多DSP的多总线并行处理器设计

    基于FPGA和多DSP的多总线并行处理器设计
    发表于 10-19 13:40 4次下载
    基于<b class='flag-5'>FPGA</b>和多DSP的多<b class='flag-5'>总线</b>并行<b class='flag-5'>处理器</b>设计

    用处理器就可以控制FPGA总线的方法你知道吗?

    许多FPGA设计使用嵌入式处理器实现控制。典型的解决方案是使用Nios这样的软处理器,虽然内置硬处理器
    的头像 发表于 05-02 17:38 5133次阅读
    不<b class='flag-5'>用处理器</b>就可以<b class='flag-5'>控制</b><b class='flag-5'>FPGA</b><b class='flag-5'>总线</b>的方法你知道吗?

    面向高级应用处理器的新型PMIC

    面向高级应用处理器的新型PMIC
    发表于 05-23 16:49 12次下载
    面向高级应<b class='flag-5'>用处理器</b>的新型PMIC

    用处理器芯片行业科普

    APU市场概述APU(应用处理器)概述APU定义APU(Application Processor Unit),又名应用处理器芯片,是在低功耗中央处理器的基础上扩展音...
    发表于 01-25 19:55 1次下载
    应<b class='flag-5'>用处理器</b>芯片行业科普

    什么是专用处理器?专用处理器的设计方法和工具介绍

    on some external data source, usually memory or some other data stream”。专用处理器就是针对特定应用或者领域的处理器,类似于是我们经常说的Domain Specific Architecture的概念
    发表于 07-17 14:14 1430次阅读
    什么是专<b class='flag-5'>用处理器</b>?专<b class='flag-5'>用处理器</b>的设计方法和工具介绍