在AN65974示例中连接fifo_slave_block和video_out IP块并配置FMC的XDC约束,需遵循以下步骤:
1. IP核接口分析
- fifo_slave_block:
通常包含AXI Stream接口(TDATA, TVALID, TREADY)或自定义FIFO接口(data_out, rd_en, empty)。
- video_out:
需要像素数据输入(如pixel_data)、同步信号(hsync, vsync)和像素时钟(pixel_clk)。
2. 在Vivado Block Design中连接IP
步骤:
添加IP到Block Design
将fifo_slave_block和video_out IP核拖入画布。
连接数据路径
- 将
fifo_slave_block的数据输出(dout或TDATA)连接到video_out的像素数据输入(pixel_data)。
- 若使用AXI Stream,连接
TVALID和TREADY以确保流控制。
同步信号和时钟
- 将
video_out生成的hsync/vsync连接到显示控制器(如HDMI TX IP)。
- 确保
fifo_slave_block的读时钟(rd_clk)与video_out的像素时钟(pixel_clk)同步。若跨时钟域,需启用异步FIFO选项。
控制信号
- 连接
fifo_slave_block的empty信号到video_out的状态输入,防止读取空FIFO。
- 用
video_out的像素使能信号(pixel_enable)驱动FIFO的rd_en。
3. XDC约束配置(FMC引脚分配)
关键步骤:
确定FMC引脚映射
参考硬件手册(如FMC HPC引脚表),找到HDMI相关的差分对信号(如CLK, D0, D1, D2)对应的FPGA引脚号。
编写XDC约束
# 示例:HDMI差分时钟约束
set_property PACKAGE_PIN FMC_HPC_LA01_P [get_ports hdmi_clk_p]
set_property IOSTANDARD LVDS_25 [get_ports hdmi_clk_p]
set_property DIFF_TERM TRUE [get_ports {hdmi_clk_p hdmi_clk_n}]
# 数据通道(以D0为例)
set_property PACKAGE_PIN FMC_HPC_LA02_P [get_ports hdmi_d0_p]
set_property IOSTANDARD LVDS_25 [get_ports hdmi_d0_p]
同步信号约束
# Hsync/Vsync
set_property PACKAGE_PIN FMC_HPC_LA03_N [get_ports hsync]
set_property IOSTANDARD LVCMOS18 [get_ports hsync]
4. 调试与验证
生成比特流
完成连接和约束后,生成比特流并下载到FPGA。
ILA调试
插入ILA核监控fifo_slave_block的dout和video_out的pixel_data,确保数据连续且无溢出。
物理检查
确认显示器接收到1280x720@30fps图像,检查是否有撕裂或时序错误。
常见问题
- FIFO下溢:增加FIFO深度或优化数据输入速率。
- 引脚分配错误:核对硬件手册,确保差分对正确配对(如
_P和_N)。
- 时钟不同步:使用
Clock Wizard生成匹配的时钟域。
通过以上步骤,应能正确集成AN65974示例中的FIFO和视频输出模块。
在AN65974示例中连接fifo_slave_block和video_out IP块并配置FMC的XDC约束,需遵循以下步骤:
1. IP核接口分析
- fifo_slave_block:
通常包含AXI Stream接口(TDATA, TVALID, TREADY)或自定义FIFO接口(data_out, rd_en, empty)。
- video_out:
需要像素数据输入(如pixel_data)、同步信号(hsync, vsync)和像素时钟(pixel_clk)。
2. 在Vivado Block Design中连接IP
步骤:
添加IP到Block Design
将fifo_slave_block和video_out IP核拖入画布。
连接数据路径
- 将
fifo_slave_block的数据输出(dout或TDATA)连接到video_out的像素数据输入(pixel_data)。
- 若使用AXI Stream,连接
TVALID和TREADY以确保流控制。
同步信号和时钟
- 将
video_out生成的hsync/vsync连接到显示控制器(如HDMI TX IP)。
- 确保
fifo_slave_block的读时钟(rd_clk)与video_out的像素时钟(pixel_clk)同步。若跨时钟域,需启用异步FIFO选项。
控制信号
- 连接
fifo_slave_block的empty信号到video_out的状态输入,防止读取空FIFO。
- 用
video_out的像素使能信号(pixel_enable)驱动FIFO的rd_en。
3. XDC约束配置(FMC引脚分配)
关键步骤:
确定FMC引脚映射
参考硬件手册(如FMC HPC引脚表),找到HDMI相关的差分对信号(如CLK, D0, D1, D2)对应的FPGA引脚号。
编写XDC约束
# 示例:HDMI差分时钟约束
set_property PACKAGE_PIN FMC_HPC_LA01_P [get_ports hdmi_clk_p]
set_property IOSTANDARD LVDS_25 [get_ports hdmi_clk_p]
set_property DIFF_TERM TRUE [get_ports {hdmi_clk_p hdmi_clk_n}]
# 数据通道(以D0为例)
set_property PACKAGE_PIN FMC_HPC_LA02_P [get_ports hdmi_d0_p]
set_property IOSTANDARD LVDS_25 [get_ports hdmi_d0_p]
同步信号约束
# Hsync/Vsync
set_property PACKAGE_PIN FMC_HPC_LA03_N [get_ports hsync]
set_property IOSTANDARD LVCMOS18 [get_ports hsync]
4. 调试与验证
生成比特流
完成连接和约束后,生成比特流并下载到FPGA。
ILA调试
插入ILA核监控fifo_slave_block的dout和video_out的pixel_data,确保数据连续且无溢出。
物理检查
确认显示器接收到1280x720@30fps图像,检查是否有撕裂或时序错误。
常见问题
- FIFO下溢:增加FIFO深度或优化数据输入速率。
- 引脚分配错误:核对硬件手册,确保差分对正确配对(如
_P和_N)。
- 时钟不同步:使用
Clock Wizard生成匹配的时钟域。
通过以上步骤,应能正确集成AN65974示例中的FIFO和视频输出模块。
举报