新闻中心

EEPW首页 > 电源与新能源 > 设计应用 > 不用处理器控制FPGA总线的方法

不用处理器控制FPGA总线的方法

作者:时间:2018-08-09来源:网络收藏

本文引用地址:http://www.eepw.com.cn/article/201808/386113.htm

图4显示了系统框图。注意,数字振荡器(NCO)可以由移位寄存器或PIO内核进行。移位寄存器用于调试,因为它可以直接NCO。将GPIO线置高将激活SPI-Avalon桥,进而控制Avalon总线上的32位PIO端口。PIO输出随即用于控制NCO频率。

图4:系统框图

借助基本的一些系统操作,可以将额外的外设内核连接到总线上。为了帮助系统设计,Altera提供了一款名为Qsys的工具,它提供了连接各个IP的图形用户界面(GUI)。Qsys可以将GUI设计的系统(图5)翻译为HDL。外设地址是完全可配置的。在这个案例中,PIO被设为基地址0x0。

图5:Qsys GUI

当设计在中实现后,LinearLabTools中提供的Python库包含的两个函数就能连接到设计:

transaction_write(dc2026, base, write_size, data) transaction_read(dc2026, base, read_size)

这些函数的第一个参数是Linduino的串口实例。第二个参数是Avalon总线上的外设地址。这两个函数分别用于接收和返回字节列表。当读写IP时这两个函数具有一定的灵活性。为了设置给定例子的NCO,只需要transaction_write一个函数。公式1用于确定调节字。

要将NCO设为1kHz并具有50MSPS采样率,调节字的值需要设为85899或0x00014F8B,并按4个字节一起传送。这样,将数模转换器设为1kHz的Python代码是: transaction_write(linduino_serial_instance, 0, 0, [0x0, 0x01, 0x4F, 0x8B])

图6:Python Avalon总线例子

图6中的Python脚本描述了用于配置NCO的简单文本接口。值得一提的是:SPI桥使用SPI模式3。这是通过不断的试错,并通过分析Altera例子中的Nios处理器的SPI接口验证后才确定的模式。 本设计实例提供了一种无需使用嵌入式处理器就能控制系统的方法,它能帮助硬件工程师在不打扰软件工程师的情况下搞定一个项目,并且对硬件设计的影响最小。


上一页 1 2 下一页

关键词: 控制 FPGA

评论


相关推荐

技术专区

关闭