前言
在Aurora通信工程中,有一个专门产生Aurora数据包的模块,该模块在Aurora ip准备好后会自动根据计数器产生发送的数据包。
但现在希望能实时地控制数据包的发送以及中断,这时候可以采用vivado的vio ip核处理。
VIO IP
调用VIO IP核可以实时监控和驱动FPGA内部的信号,另外输入和输出端口的数量和宽度是可以设置的,其中输入输出端口的数量支持0-256;位宽支持1-256。
注意VIO IP核时钟与被监控或驱动信号的同步,即时钟应该连接被监控或驱动信号的时钟域。
比如我们输出一个监控信号package_vio,用于驱动实时发包。因此在IP核中配置输出数量=1.
在Probe width配置该信号的位宽 = 1.
在vio ip核模板上进行实例化,其时钟与Aurora发包时钟域相同,输出的package_vio作用发包的使能信号即可。
bash
//vio_0 u_vio_0
// (
// .clk (sCLK_50M ),
// .probe_out0 (package_vio )
// );
至此,即可生成bit文件,并下载到板卡中,然后手动调节package_vio信号,来实现数据包的实时发送和关闭。默认为0,调至1表示发包,调回0表示结束发包。