例说FPGA连载74:FX2与FPGA之功能概述
特权同学,版权所有
配套例程和更多资料下载链接:
http://pan.baidu.com/s/1c0nf6Qc
本实例有4个工程,一个8051 MCU的工程,位于例程的“…\prj\vip_ex12\ fx2_firmware”文件夹下。另外3个都是FPGA工程,分别位于例程的“…\prj\vip_ex12\fx2_loopback”、“…\prj\ vip_ex12\fx2_StreamIN”和“…\prj\ vip_ex12\fx2_StreamOUT”文件夹下。
fx2_firmware工程是FX2中8051对应的程序,它只是简单的对FX2的USB工作模式和数据传输方式做初始化配置,使其工作于SlaveFIFO接口方式,接下来我们的FPGA和PC机直接就可以进行“透明”的数据传输了。
如图14.1所示,fx2_loopback工程主要是PC端发送数据到FX2,FX2通过指示位flaga告知FPGA有数据待读取,FPGA端便通过SlaveFIFO接口读取PC端发送过来的数据缓存到FPGA内部的FIFO中,FPGA在完成读取操作后,发起一次SlaveFIFO的写入操作,将接收到的数据通过FX2最终返回到PC端。整个数据的收发过程,我们在FPGA内部可以通过在线逻辑分析仪SignalTapII抓取SlaveFIFO接口的所有信号进行查看。
图14.1 fx2_loopback例程数据流顺序
如图14.2所示,fx2_StreamIN工程执行的操作比loopback要简单得多,FPGA端只要读取数据写入满标志位flagb一直处于高电平(未满)状态,就持续的写入256*16bit的数据到FX2中,并且等待PC端读取。PC端每读取一次,则FPGA端再次写入新的数据。整个数据的写入过程,我们在FPGA内部可以通过在线逻辑分析仪SignalTapII抓取SlaveFIFO接口的所有信号进行查看。
图14.2 fx2_SteamIN例程数据流顺序
如图14.3所示,fx2_StreamOUT工程的数据发起者是PC端,PC端写入的任何数据,都可以通过FX2最终传输到FPGA中。整个数据的读取过程,我们在FPGA内部可以通过在线逻辑分析仪SignalTapII抓取SlaveFIFO接口的所有信号进行查看。同时我们在FPGA内部也例化了一个onchip RAM,将最新读取到的一帧数据缓存到RAM上,同时在Quartus II中,我们可以查看已经读取的最新的一帧数据。
图14.3 fx2_StreamOUT例程数据流顺序
谢谢大家的分享。谢谢。