【pynq DMA 卡死 bug解决】采用vivadoHLS编写IP核在PYNQ中调用dma.receivechannal()时卡死
出现此问题是因为你的IP核输出的AXIS信号没有last信号,在axi协议中,last表示数据传输完成。在vivadoHLS中利用指令约束的axis总线自动生成时将不包括此信号。所以要在数据输出最后一个循环元处将last信号置为1.
此处可以编写一个带有last信号的结构体来完成数据传输。当然,结构体内数据data值类型可以是int float double 或者是ap_fixed<>自定义类型。
详细的说明可见官网这里