灵活的使用ap_ctlr_none实现功能(一)
一、ap_ctrl_none说明
1.一般情况不要使用ap_ctrl_none,因为ap_ctrl_none容易出问题;
2.使用ap_ctrl_none后,可以实现一些意想不到的功能
二、使用ap_ctrl_none来实现axis-to-frame
上图是rtl仿真结果,这个我仿真了差不到快两个小数了,终于看到rtl仿真的全貌了。
三、导出rtl仿真报告
四、h文件设计
// 文件名: axi_to_video.h
#ifndef FRAME_TOP_H_
#define FRAME_TOP_H_
#include "ap_int.h"
#include "hls_stream.h"
// 定义视频时序参数(示例:640x480 @ 60Hz,可根据需要修改)
// 行时序:640 active + 16 front + 96 sync + 48 back = 800 total
#define H_ACTIVE 640
#define H_FRONT 16
#define H_SYNC 96
#define H_BACK 48
#define H_TOTAL (H_ACTIVE + H_FRONT + H_SYNC + H_BACK)
// 场时序:480 active + 10 front + 2 sync + 33 back = 525 total
#define V_ACTIVE 480
#define V_FRONT 10
#define V_SYNC 2
#define V_BACK 33
#define V_TOTAL (V_ACTIVE + V_FRONT + V_SYNC + V_BACK)
// 定义像素数据类型:此处以24位RGB为例(也可根据需要修改)
typedef ap_uint<24> pixel_t;
// 顶层转换函数声明
void axi_stream_to_video(
hls::stream<pixel_t> &input_stream, // AXI4-Stream 输入接口
pixel_t &out_data, // 输出像素数据
ap_uint<1> &
