.m_axi_mm2s_araddr (S_AXI_araddr),
.m_axi_mm2s_arlen (S_AXI_arlen),
.m_axi_mm2s_arsize (S_AXI_arsize),
.m_axi_mm2s_arburst(S_AXI_arburst),
.m_axi_mm2s_arprot (S_AXI_arprot),
.m_axi_mm2s_arcache(S_AXI_arcache),
.m_axi_mm2s_arvalid(S_AXI_arvalid),
.m_axi_mm2s_arready(S_AXI_arready),
.m_axi_mm2s_rdata (S_AXI_rdata),
.m_axi_mm2s_rresp (S_AXI_rresp),
.m_axi_mm2s_rlast (S_AXI_rlast),
.m_axi_mm2s_rvalid (S_AXI_rvalid),
.m_axi_mm2s_rready (S_AXI_rready),
.s_axis_s2mm_tdata(axis_s2mm_tdata),
.s_axis_s2mm_tkeep(4'b1111),
.s_axis_s2mm_tuser(axis_s2mm_tuser),
.s_axis_s2mm_tvalid(axis_s2mm_tvalid),
.s_axis_s2mm_tready(axis_s2mm_tready),
.s_axis_s2mm_tlast(axis_s2mm_tlast),
.m_axis_mm2s_tdata(axis_mm2s_tdata),
.m_axis_mm2s_tkeep(),
.m_axis_mm2s_tuser(axis_mm2s_tuser),
.m_axis_mm2s_tvalid(axis_mm2s_tvalid),
.m_axis_mm2s_tready(axis_mm2s_tready),
.m_axis_mm2s_tlast(axis_mm2s_tlast),
.mm2s_fsync(!vid_vsync_i),
.s2mm_introut()
);
axi_slave u_axi_slave
(
.S_AXI_ACLK (axi_clk),
.S_AXI_ARESETN (!reset),
.S_AXI_AWID (S_AXI_awid ),
.S_AXI_AWADDR (S_AXI_awaddr ),
.S_AXI_AWLEN (S_AXI_awlen ),
.S_AXI_AWSIZE (S_AXI_awsize ),
.S_AXI_AWBURST (S_AXI_awburst),
.S_AXI_AWVALID (S_AXI_awvalid),
.S_AXI_AWREADY (S_AXI_awready),
.S_AXI_WDATA (S_AXI_wdata ),
.S_AXI_WSTRB (S_AXI_wstrb ),
.S_AXI_WLAST (S_AXI_wlast ),
.S_AXI_WVALID (S_AXI_wvalid ),
.S_AXI_WREADY (S_AXI_wready ),
.S_AXI_BID (S_AXI_bid ),
.S_AXI_BRESP (S_AXI_bresp ),
.S_AXI_BVALID (S_AXI_bvalid ),
.S_AXI_BREADY (S_AXI_bready ),
.S_AXI_ARID (S_AXI_arid ),
.S_AXI_ARADDR (S_AXI_araddr ),
.S_AXI_ARLEN ({4'b0,S_AXI_arlen} ),
.S_AXI_ARSIZE (S_AXI_arsize ),
.S_AXI_ARBURST (S_AXI_arburst),
.S_AXI_ARVALID (S_AXI_arvalid),
.S_AXI_ARREADY (S_AXI_arready),
.S_AXI_RID (S_AXI_rid ),
.S_AXI_RDATA (S_AXI_rdata ),
.S_AXI_RRESP (S_AXI_rresp ),
.S_AXI_RLAST (S_AXI_rlast ),
.S_AXI_RVALID (S_AXI_rvalid ),
.S_AXI_RREADY (S_AXI_rready )
);
integer file_fd;
reg vblank_o_r;
reg [1:0] frame_cnt=0;
always @(posedge video_clk) vblank_o_r <= vid_vblank_o;
always @(posedge video_clk)
begin
if((~vblank_o_r) & vid_vblank_o)
frame_cnt <= frame_cnt + 1'b1;
end
initial begin
file_fd = $fopen("output.rgb","wb");
end
always @(posedge video_clk)
begin
if(frame_cnt == 1 && vid_de_o)
begin
$fwrite(file_fd,"%c%c%c%c",vid_video_o[31:24],vid_video_o[23:16],vid_video_o[15:8],vid_video_o[7:0]);
end
else if(frame_cnt == 2)
begin
$fclose(file_fd);
$stop;
end
end
endmodule
評論