// soc_system_vid_0_vfr.v

// This file was auto-generated from alt_vip_cl_vfb_hw.tcl.  If you edit it your changes
// will probably be lost.
// 
// Generated using ACDS version 18.1 646

`timescale 1 ps / 1 ps
module soc_system_vid_0_vfr #(
		parameter BITS_PER_SYMBOL              = 8,
		parameter NUMBER_OF_COLOR_PLANES       = 4,
		parameter COLOR_PLANES_ARE_IN_PARALLEL = 1,
		parameter PIXELS_IN_PARALLEL           = 1,
		parameter READY_LATENCY                = 1,
		parameter MAX_WIDTH                    = 1280,
		parameter MAX_HEIGHT                   = 720,
		parameter CLOCKS_ARE_SEPARATE          = 0,
		parameter MEM_PORT_WIDTH               = 256,
		parameter MEM_BASE_ADDR                = 0,
		parameter BURST_ALIGNMENT              = 1,
		parameter WRITE_FIFO_DEPTH             = 32,
		parameter WRITE_BURST_TARGET           = 16,
		parameter READ_FIFO_DEPTH              = 32,
		parameter READ_BURST_TARGET            = 16,
		parameter WRITER_RUNTIME_CONTROL       = 0,
		parameter READER_RUNTIME_CONTROL       = 1,
		parameter IS_FRAME_WRITER              = 0,
		parameter IS_FRAME_READER              = 1,
		parameter DROP_FRAMES                  = 1,
		parameter REPEAT_FRAMES                = 1,
		parameter DROP_REPEAT_USER             = 0,
		parameter INTERLACED_SUPPORT           = 0,
		parameter CONTROLLED_DROP_REPEAT       = 0,
		parameter DROP_INVALID_FIELDS          = 1,
		parameter MULTI_FRAME_DELAY            = 1,
		parameter IS_SYNC_MASTER               = 0,
		parameter IS_SYNC_SLAVE                = 0,
		parameter LINE_BASED_BUFFERING         = 0,
		parameter PRIORITIZE_FMAX              = 0,
		parameter USER_PACKETS_MAX_STORAGE     = 0,
		parameter MAX_SYMBOLS_PER_PACKET       = 10,
		parameter NUM_BUFFERS                  = 3
	) (
		input  wire         main_clock,                  //        main_clock.clk
		input  wire         main_reset,                  //        main_reset.reset
		output wire [31:0]  dout_data,                   //              dout.data
		output wire         dout_valid,                  //                  .valid
		output wire         dout_startofpacket,          //                  .startofpacket
		output wire         dout_endofpacket,            //                  .endofpacket
		input  wire         dout_ready,                  //                  .ready
		output wire [31:0]  mem_master_rd_address,       //     mem_master_rd.address
		output wire [4:0]   mem_master_rd_burstcount,    //                  .burstcount
		input  wire         mem_master_rd_waitrequest,   //                  .waitrequest
		output wire         mem_master_rd_read,          //                  .read
		input  wire [255:0] mem_master_rd_readdata,      //                  .readdata
		input  wire         mem_master_rd_readdatavalid, //                  .readdatavalid
		output wire         control_interrupt_irq,       // control_interrupt.irq
		input  wire [3:0]   control_address,             //           control.address
		input  wire [3:0]   control_byteenable,          //                  .byteenable
		input  wire         control_write,               //                  .write
		input  wire [31:0]  control_writedata,           //                  .writedata
		input  wire         control_read,                //                  .read
		output wire [31:0]  control_readdata,            //                  .readdata
		output wire         control_readdatavalid,       //                  .readdatavalid
		output wire         control_waitrequest          //                  .waitrequest
	);

	wire         rd_ctrl_vob_data_valid;                // rd_ctrl:vob_data_valid -> video_out:av_st_din_valid
	wire  [63:0] rd_ctrl_vob_data_data;                 // rd_ctrl:vob_data_data -> video_out:av_st_din_data
	wire         rd_ctrl_vob_data_ready;                // video_out:av_st_din_ready -> rd_ctrl:vob_data_ready
	wire         rd_ctrl_vob_data_startofpacket;        // rd_ctrl:vob_data_startofpacket -> video_out:av_st_din_startofpacket
	wire         rd_ctrl_vob_data_endofpacket;          // rd_ctrl:vob_data_endofpacket -> video_out:av_st_din_endofpacket
	wire         rd_ctrl_vob_cmd_valid;                 // rd_ctrl:vob_cmd_valid -> video_out:av_st_cmd_valid
	wire  [63:0] rd_ctrl_vob_cmd_data;                  // rd_ctrl:vob_cmd_data -> video_out:av_st_cmd_data
	wire         rd_ctrl_vob_cmd_ready;                 // video_out:av_st_cmd_ready -> rd_ctrl:vob_cmd_ready
	wire         rd_ctrl_vob_cmd_startofpacket;         // rd_ctrl:vob_cmd_startofpacket -> video_out:av_st_cmd_startofpacket
	wire         rd_ctrl_vob_cmd_endofpacket;           // rd_ctrl:vob_cmd_endofpacket -> video_out:av_st_cmd_endofpacket
	wire         rd_ctrl_pkt_rd_cmd_valid;              // rd_ctrl:pkt_rd_cmd_valid -> pkt_trans_rd:av_st_cmd_valid
	wire  [63:0] rd_ctrl_pkt_rd_cmd_data;               // rd_ctrl:pkt_rd_cmd_data -> pkt_trans_rd:av_st_cmd_data
	wire         rd_ctrl_pkt_rd_cmd_ready;              // pkt_trans_rd:av_st_cmd_ready -> rd_ctrl:pkt_rd_cmd_ready
	wire         rd_ctrl_pkt_rd_cmd_startofpacket;      // rd_ctrl:pkt_rd_cmd_startofpacket -> pkt_trans_rd:av_st_cmd_startofpacket
	wire         rd_ctrl_pkt_rd_cmd_endofpacket;        // rd_ctrl:pkt_rd_cmd_endofpacket -> pkt_trans_rd:av_st_cmd_endofpacket
	wire         pkt_trans_rd_av_st_dout_valid;         // pkt_trans_rd:av_st_dout_valid -> rd_ctrl:pkt_rd_data_valid
	wire  [63:0] pkt_trans_rd_av_st_dout_data;          // pkt_trans_rd:av_st_dout_data -> rd_ctrl:pkt_rd_data_data
	wire         pkt_trans_rd_av_st_dout_ready;         // rd_ctrl:pkt_rd_data_ready -> pkt_trans_rd:av_st_dout_ready
	wire         pkt_trans_rd_av_st_dout_startofpacket; // pkt_trans_rd:av_st_dout_startofpacket -> rd_ctrl:pkt_rd_data_startofpacket
	wire         pkt_trans_rd_av_st_dout_endofpacket;   // pkt_trans_rd:av_st_dout_endofpacket -> rd_ctrl:pkt_rd_data_endofpacket
	wire         rd_ctrl_sync_resp_valid;               // rd_ctrl:sync_resp_valid -> sync_ctrl:rd_resp_valid
	wire  [63:0] rd_ctrl_sync_resp_data;                // rd_ctrl:sync_resp_data -> sync_ctrl:rd_resp_data
	wire         rd_ctrl_sync_resp_ready;               // sync_ctrl:rd_resp_ready -> rd_ctrl:sync_resp_ready
	wire         rd_ctrl_sync_resp_startofpacket;       // rd_ctrl:sync_resp_startofpacket -> sync_ctrl:rd_resp_startofpacket
	wire         rd_ctrl_sync_resp_endofpacket;         // rd_ctrl:sync_resp_endofpacket -> sync_ctrl:rd_resp_endofpacket
	wire         sync_ctrl_rd_cmd_valid;                // sync_ctrl:rd_cmd_valid -> rd_ctrl:sync_cmd_valid
	wire  [63:0] sync_ctrl_rd_cmd_data;                 // sync_ctrl:rd_cmd_data -> rd_ctrl:sync_cmd_data
	wire         sync_ctrl_rd_cmd_ready;                // rd_ctrl:sync_cmd_ready -> sync_ctrl:rd_cmd_ready
	wire         sync_ctrl_rd_cmd_startofpacket;        // sync_ctrl:rd_cmd_startofpacket -> rd_ctrl:sync_cmd_startofpacket
	wire         sync_ctrl_rd_cmd_endofpacket;          // sync_ctrl:rd_cmd_endofpacket -> rd_ctrl:sync_cmd_endofpacket

	generate
		// If any of the display statements (or deliberately broken
		// instantiations) within this generate block triggers then this module
		// has been instantiated this module with a set of parameters different
		// from those it was generated for.  This will usually result in a
		// non-functioning system.
		if (BITS_PER_SYMBOL != 8)
		begin
			initial begin
				$display("Generated module instantiated with wrong parameters");
				$stop;
			end
			instantiated_with_wrong_parameters_error_see_comment_above
					bits_per_symbol_check ( .error(1'b1) );
		end
		if (NUMBER_OF_COLOR_PLANES != 4)
		begin
			initial begin
				$display("Generated module instantiated with wrong parameters");
				$stop;
			end
			instantiated_with_wrong_parameters_error_see_comment_above
					number_of_color_planes_check ( .error(1'b1) );
		end
		if (COLOR_PLANES_ARE_IN_PARALLEL != 1)
		begin
			initial begin
				$display("Generated module instantiated with wrong parameters");
				$stop;
			end
			instantiated_with_wrong_parameters_error_see_comment_above
					color_planes_are_in_parallel_check ( .error(1'b1) );
		end
		if (PIXELS_IN_PARALLEL != 1)
		begin
			initial begin
				$display("Generated module instantiated with wrong parameters");
				$stop;
			end
			instantiated_with_wrong_parameters_error_see_comment_above
					pixels_in_parallel_check ( .error(1'b1) );
		end
		if (READY_LATENCY != 1)
		begin
			initial begin
				$display("Generated module instantiated with wrong parameters");
				$stop;
			end
			instantiated_with_wrong_parameters_error_see_comment_above
					ready_latency_check ( .error(1'b1) );
		end
		if (MAX_WIDTH != 1280)
		begin
			initial begin
				$display("Generated module instantiated with wrong parameters");
				$stop;
			end
			instantiated_with_wrong_parameters_error_see_comment_above
					max_width_check ( .error(1'b1) );
		end
		if (MAX_HEIGHT != 720)
		begin
			initial begin
				$display("Generated module instantiated with wrong parameters");
				$stop;
			end
			instantiated_with_wrong_parameters_error_see_comment_above
					max_height_check ( .error(1'b1) );
		end
		if (CLOCKS_ARE_SEPARATE != 0)
		begin
			initial begin
				$display("Generated module instantiated with wrong parameters");
				$stop;
			end
			instantiated_with_wrong_parameters_error_see_comment_above
					clocks_are_separate_check ( .error(1'b1) );
		end
		if (MEM_PORT_WIDTH != 256)
		begin
			initial begin
				$display("Generated module instantiated with wrong parameters");
				$stop;
			end
			instantiated_with_wrong_parameters_error_see_comment_above
					mem_port_width_check ( .error(1'b1) );
		end
		if (MEM_BASE_ADDR != 0)
		begin
			initial begin
				$display("Generated module instantiated with wrong parameters");
				$stop;
			end
			instantiated_with_wrong_parameters_error_see_comment_above
					mem_base_addr_check ( .error(1'b1) );
		end
		if (BURST_ALIGNMENT != 1)
		begin
			initial begin
				$display("Generated module instantiated with wrong parameters");
				$stop;
			end
			instantiated_with_wrong_parameters_error_see_comment_above
					burst_alignment_check ( .error(1'b1) );
		end
		if (WRITE_FIFO_DEPTH != 32)
		begin
			initial begin
				$display("Generated module instantiated with wrong parameters");
				$stop;
			end
			instantiated_with_wrong_parameters_error_see_comment_above
					write_fifo_depth_check ( .error(1'b1) );
		end
		if (WRITE_BURST_TARGET != 16)
		begin
			initial begin
				$display("Generated module instantiated with wrong parameters");
				$stop;
			end
			instantiated_with_wrong_parameters_error_see_comment_above
					write_burst_target_check ( .error(1'b1) );
		end
		if (READ_FIFO_DEPTH != 32)
		begin
			initial begin
				$display("Generated module instantiated with wrong parameters");
				$stop;
			end
			instantiated_with_wrong_parameters_error_see_comment_above
					read_fifo_depth_check ( .error(1'b1) );
		end
		if (READ_BURST_TARGET != 16)
		begin
			initial begin
				$display("Generated module instantiated with wrong parameters");
				$stop;
			end
			instantiated_with_wrong_parameters_error_see_comment_above
					read_burst_target_check ( .error(1'b1) );
		end
		if (WRITER_RUNTIME_CONTROL != 0)
		begin
			initial begin
				$display("Generated module instantiated with wrong parameters");
				$stop;
			end
			instantiated_with_wrong_parameters_error_see_comment_above
					writer_runtime_control_check ( .error(1'b1) );
		end
		if (READER_RUNTIME_CONTROL != 1)
		begin
			initial begin
				$display("Generated module instantiated with wrong parameters");
				$stop;
			end
			instantiated_with_wrong_parameters_error_see_comment_above
					reader_runtime_control_check ( .error(1'b1) );
		end
		if (IS_FRAME_WRITER != 0)
		begin
			initial begin
				$display("Generated module instantiated with wrong parameters");
				$stop;
			end
			instantiated_with_wrong_parameters_error_see_comment_above
					is_frame_writer_check ( .error(1'b1) );
		end
		if (IS_FRAME_READER != 1)
		begin
			initial begin
				$display("Generated module instantiated with wrong parameters");
				$stop;
			end
			instantiated_with_wrong_parameters_error_see_comment_above
					is_frame_reader_check ( .error(1'b1) );
		end
		if (DROP_FRAMES != 1)
		begin
			initial begin
				$display("Generated module instantiated with wrong parameters");
				$stop;
			end
			instantiated_with_wrong_parameters_error_see_comment_above
					drop_frames_check ( .error(1'b1) );
		end
		if (REPEAT_FRAMES != 1)
		begin
			initial begin
				$display("Generated module instantiated with wrong parameters");
				$stop;
			end
			instantiated_with_wrong_parameters_error_see_comment_above
					repeat_frames_check ( .error(1'b1) );
		end
		if (DROP_REPEAT_USER != 0)
		begin
			initial begin
				$display("Generated module instantiated with wrong parameters");
				$stop;
			end
			instantiated_with_wrong_parameters_error_see_comment_above
					drop_repeat_user_check ( .error(1'b1) );
		end
		if (INTERLACED_SUPPORT != 0)
		begin
			initial begin
				$display("Generated module instantiated with wrong parameters");
				$stop;
			end
			instantiated_with_wrong_parameters_error_see_comment_above
					interlaced_support_check ( .error(1'b1) );
		end
		if (CONTROLLED_DROP_REPEAT != 0)
		begin
			initial begin
				$display("Generated module instantiated with wrong parameters");
				$stop;
			end
			instantiated_with_wrong_parameters_error_see_comment_above
					controlled_drop_repeat_check ( .error(1'b1) );
		end
		if (DROP_INVALID_FIELDS != 1)
		begin
			initial begin
				$display("Generated module instantiated with wrong parameters");
				$stop;
			end
			instantiated_with_wrong_parameters_error_see_comment_above
					drop_invalid_fields_check ( .error(1'b1) );
		end
		if (MULTI_FRAME_DELAY != 1)
		begin
			initial begin
				$display("Generated module instantiated with wrong parameters");
				$stop;
			end
			instantiated_with_wrong_parameters_error_see_comment_above
					multi_frame_delay_check ( .error(1'b1) );
		end
		if (IS_SYNC_MASTER != 0)
		begin
			initial begin
				$display("Generated module instantiated with wrong parameters");
				$stop;
			end
			instantiated_with_wrong_parameters_error_see_comment_above
					is_sync_master_check ( .error(1'b1) );
		end
		if (IS_SYNC_SLAVE != 0)
		begin
			initial begin
				$display("Generated module instantiated with wrong parameters");
				$stop;
			end
			instantiated_with_wrong_parameters_error_see_comment_above
					is_sync_slave_check ( .error(1'b1) );
		end
		if (LINE_BASED_BUFFERING != 0)
		begin
			initial begin
				$display("Generated module instantiated with wrong parameters");
				$stop;
			end
			instantiated_with_wrong_parameters_error_see_comment_above
					line_based_buffering_check ( .error(1'b1) );
		end
		if (PRIORITIZE_FMAX != 0)
		begin
			initial begin
				$display("Generated module instantiated with wrong parameters");
				$stop;
			end
			instantiated_with_wrong_parameters_error_see_comment_above
					prioritize_fmax_check ( .error(1'b1) );
		end
		if (USER_PACKETS_MAX_STORAGE != 0)
		begin
			initial begin
				$display("Generated module instantiated with wrong parameters");
				$stop;
			end
			instantiated_with_wrong_parameters_error_see_comment_above
					user_packets_max_storage_check ( .error(1'b1) );
		end
		if (MAX_SYMBOLS_PER_PACKET != 10)
		begin
			initial begin
				$display("Generated module instantiated with wrong parameters");
				$stop;
			end
			instantiated_with_wrong_parameters_error_see_comment_above
					max_symbols_per_packet_check ( .error(1'b1) );
		end
		if (NUM_BUFFERS != 3)
		begin
			initial begin
				$display("Generated module instantiated with wrong parameters");
				$stop;
			end
			instantiated_with_wrong_parameters_error_see_comment_above
					num_buffers_check ( .error(1'b1) );
		end
	endgenerate

	alt_vip_vfb_rd_ctrl #(
		.SRC_WIDTH                    (8),
		.DST_WIDTH                    (8),
		.CONTEXT_WIDTH                (8),
		.TASK_WIDTH                   (8),
		.BITS_PER_SYMBOL              (8),
		.NUMBER_OF_COLOR_PLANES       (4),
		.COLOR_PLANES_ARE_IN_PARALLEL (1),
		.PIXELS_IN_PARALLEL           (1),
		.PRIORITIZE_FMAX              (0)
	) rd_ctrl (
		.clock                     (main_clock),                            //  main_clock.clk
		.reset                     (main_reset),                            //  main_reset.reset
		.pkt_rd_cmd_valid          (rd_ctrl_pkt_rd_cmd_valid),              //  pkt_rd_cmd.valid
		.pkt_rd_cmd_startofpacket  (rd_ctrl_pkt_rd_cmd_startofpacket),      //            .startofpacket
		.pkt_rd_cmd_endofpacket    (rd_ctrl_pkt_rd_cmd_endofpacket),        //            .endofpacket
		.pkt_rd_cmd_data           (rd_ctrl_pkt_rd_cmd_data),               //            .data
		.pkt_rd_cmd_ready          (rd_ctrl_pkt_rd_cmd_ready),              //            .ready
		.pkt_rd_data_valid         (pkt_trans_rd_av_st_dout_valid),         // pkt_rd_data.valid
		.pkt_rd_data_startofpacket (pkt_trans_rd_av_st_dout_startofpacket), //            .startofpacket
		.pkt_rd_data_endofpacket   (pkt_trans_rd_av_st_dout_endofpacket),   //            .endofpacket
		.pkt_rd_data_data          (pkt_trans_rd_av_st_dout_data),          //            .data
		.pkt_rd_data_ready         (pkt_trans_rd_av_st_dout_ready),         //            .ready
		.vob_cmd_valid             (rd_ctrl_vob_cmd_valid),                 //     vob_cmd.valid
		.vob_cmd_startofpacket     (rd_ctrl_vob_cmd_startofpacket),         //            .startofpacket
		.vob_cmd_endofpacket       (rd_ctrl_vob_cmd_endofpacket),           //            .endofpacket
		.vob_cmd_data              (rd_ctrl_vob_cmd_data),                  //            .data
		.vob_cmd_ready             (rd_ctrl_vob_cmd_ready),                 //            .ready
		.vob_data_valid            (rd_ctrl_vob_data_valid),                //    vob_data.valid
		.vob_data_startofpacket    (rd_ctrl_vob_data_startofpacket),        //            .startofpacket
		.vob_data_endofpacket      (rd_ctrl_vob_data_endofpacket),          //            .endofpacket
		.vob_data_data             (rd_ctrl_vob_data_data),                 //            .data
		.vob_data_ready            (rd_ctrl_vob_data_ready),                //            .ready
		.sync_cmd_valid            (sync_ctrl_rd_cmd_valid),                //    sync_cmd.valid
		.sync_cmd_startofpacket    (sync_ctrl_rd_cmd_startofpacket),        //            .startofpacket
		.sync_cmd_endofpacket      (sync_ctrl_rd_cmd_endofpacket),          //            .endofpacket
		.sync_cmd_data             (sync_ctrl_rd_cmd_data),                 //            .data
		.sync_cmd_ready            (sync_ctrl_rd_cmd_ready),                //            .ready
		.sync_resp_valid           (rd_ctrl_sync_resp_valid),               //   sync_resp.valid
		.sync_resp_startofpacket   (rd_ctrl_sync_resp_startofpacket),       //            .startofpacket
		.sync_resp_endofpacket     (rd_ctrl_sync_resp_endofpacket),         //            .endofpacket
		.sync_resp_data            (rd_ctrl_sync_resp_data),                //            .data
		.sync_resp_ready           (rd_ctrl_sync_resp_ready)                //            .ready
	);

	alt_vip_video_output_bridge #(
		.BITS_PER_SYMBOL              (8),
		.NUMBER_OF_COLOR_PLANES       (4),
		.COLOR_PLANES_ARE_IN_PARALLEL (1),
		.PIXELS_IN_PARALLEL           (1),
		.VIDEO_PROTOCOL_NO            (1),
		.READY_LATENCY_1              (1),
		.SOP_PRE_ALIGNED              (1),
		.MULTI_CONTEXT_SUPPORT        (0),
		.TYPE_11_SUPPORT              (0),
		.NO_CONCATENATION             (1),
		.PIPELINE_READY               (0),
		.SRC_WIDTH                    (8),
		.DST_WIDTH                    (8),
		.CONTEXT_WIDTH                (8),
		.TASK_WIDTH                   (8),
		.LOW_LATENCY_COMMAND_MODE     (0)
	) video_out (
		.clock                        (main_clock),                     //     main_clock.clk
		.reset                        (main_reset),                     //     main_reset.reset
		.av_st_cmd_valid              (rd_ctrl_vob_cmd_valid),          //      av_st_cmd.valid
		.av_st_cmd_startofpacket      (rd_ctrl_vob_cmd_startofpacket),  //               .startofpacket
		.av_st_cmd_endofpacket        (rd_ctrl_vob_cmd_endofpacket),    //               .endofpacket
		.av_st_cmd_data               (rd_ctrl_vob_cmd_data),           //               .data
		.av_st_cmd_ready              (rd_ctrl_vob_cmd_ready),          //               .ready
		.av_st_din_valid              (rd_ctrl_vob_data_valid),         //      av_st_din.valid
		.av_st_din_startofpacket      (rd_ctrl_vob_data_startofpacket), //               .startofpacket
		.av_st_din_endofpacket        (rd_ctrl_vob_data_endofpacket),   //               .endofpacket
		.av_st_din_data               (rd_ctrl_vob_data_data),          //               .data
		.av_st_din_ready              (rd_ctrl_vob_data_ready),         //               .ready
		.av_st_vid_dout_data          (dout_data),                      // av_st_vid_dout.data
		.av_st_vid_dout_valid         (dout_valid),                     //               .valid
		.av_st_vid_dout_startofpacket (dout_startofpacket),             //               .startofpacket
		.av_st_vid_dout_endofpacket   (dout_endofpacket),               //               .endofpacket
		.av_st_vid_dout_ready         (dout_ready)                      //               .ready
	);

	alt_vip_packet_transfer #(
		.FAMILY                            ("Cyclone V"),
		.DATA_WIDTH                        (32),
		.SYMBOLS_IN_SEQ                    (1),
		.ELEMENTS_IN_PARALLEL              (1),
		.MEM_ADDR_WIDTH                    (32),
		.CLOCKS_ARE_SEPARATE               (0),
		.MEM_PORT_WIDTH                    (256),
		.WRITE_HAS_PRIORITY                (1),
		.WRITE_ENABLE                      (0),
		.USE_RESPONSE_WRITE                (0),
		.ENABLE_MANY_COMMAND_WRITE         (0),
		.ENABLE_PERIOD_MODE_WRITE          (0),
		.SUPPORT_BEATS_OVERFLOW_PRETECTION (1),
		.ENABLE_MM_OUTPUT_REGISTER         (0),
		.MAX_PACKET_SIZE_WRITE             (8192),
		.MAX_PACKET_NUM_WRITE              (16),
		.MAX_CONTEXT_NUMBER_WRITE          (1),
		.CONTEXT_BUFFER_RATIO_WRITE        (4),
		.BURST_TARGET_WRITE                (8),
		.COMB_OUTPUT_WRITE                 (0),
		.PIPELINE_READY_WRITE              (0),
		.RESPONSE_DETINATION_ID_WRITE      (0),
		.RESPONSE_SOURCE_ID_WRITE          (0),
		.READ_ENABLE                       (1),
		.ENABLE_MANY_COMMAND_READ          (0),
		.ENABLE_PERIOD_MODE_READ           (0),
		.ENABLE_COMMAND_BUFFER_READ        (1),
		.MAX_PACKET_SIZE_READ              (921600),
		.PREFETCH_THRESHOLD_READ           (0),
		.MAX_CONTEXT_NUMBER_READ           (1),
		.CONTEXT_BUFFER_RATIO_READ         (2),
		.BURST_TARGET_READ                 (16),
		.OUTPUT_MSG_QUEUE_DEPTH_READ       (2),
		.MM_MSG_QUEUE_DEPTH_READ           (4),
		.LOGIC_ONLY_SCFIFO_READ            (0),
		.PIPELINE_READY_READ               (1),
		.COMB_OUTPUT_READ                  (0),
		.DOUT_MAX_DESTINATION_ID_NUM_READ  (1),
		.DOUT_SOURCE_ID_READ               (1),
		.SRC_WIDTH                         (8),
		.DST_WIDTH                         (8),
		.CONTEXT_WIDTH                     (8),
		.TASK_WIDTH                        (8)
	) pkt_trans_rd (
		.av_st_clock                (main_clock),                            //  av_st_clock.clk
		.av_st_reset                (main_reset),                            //  av_st_reset.reset
		.av_st_cmd_valid            (rd_ctrl_pkt_rd_cmd_valid),              //    av_st_cmd.valid
		.av_st_cmd_startofpacket    (rd_ctrl_pkt_rd_cmd_startofpacket),      //             .startofpacket
		.av_st_cmd_endofpacket      (rd_ctrl_pkt_rd_cmd_endofpacket),        //             .endofpacket
		.av_st_cmd_data             (rd_ctrl_pkt_rd_cmd_data),               //             .data
		.av_st_cmd_ready            (rd_ctrl_pkt_rd_cmd_ready),              //             .ready
		.av_st_dout_valid           (pkt_trans_rd_av_st_dout_valid),         //   av_st_dout.valid
		.av_st_dout_startofpacket   (pkt_trans_rd_av_st_dout_startofpacket), //             .startofpacket
		.av_st_dout_endofpacket     (pkt_trans_rd_av_st_dout_endofpacket),   //             .endofpacket
		.av_st_dout_data            (pkt_trans_rd_av_st_dout_data),          //             .data
		.av_st_dout_ready           (pkt_trans_rd_av_st_dout_ready),         //             .ready
		.av_mm_master_address       (mem_master_rd_address),                 // av_mm_master.address
		.av_mm_master_burstcount    (mem_master_rd_burstcount),              //             .burstcount
		.av_mm_master_waitrequest   (mem_master_rd_waitrequest),             //             .waitrequest
		.av_mm_master_read          (mem_master_rd_read),                    //             .read
		.av_mm_master_readdata      (mem_master_rd_readdata),                //             .readdata
		.av_mm_master_readdatavalid (mem_master_rd_readdatavalid)            //             .readdatavalid
	);

	alt_vip_vfb_sync_ctrl #(
		.SRC_WIDTH                (8),
		.DST_WIDTH                (8),
		.CONTEXT_WIDTH            (8),
		.TASK_WIDTH               (8),
		.FRAME_BUFFER_LENGTH      (3686400),
		.ANC_BUFFER_LENGTH        (512),
		.MAX_WIDTH                (1280),
		.MAX_HEIGHT               (720),
		.NUM_BUFFERS              (3),
		.WRITER_RUNTIME_CONTROL   (0),
		.READER_RUNTIME_CONTROL   (1),
		.IS_FRAME_WRITER          (0),
		.IS_FRAME_READER          (1),
		.DROP_FRAMES              (1),
		.REPEAT_FRAMES            (1),
		.DROP_REPEAT_USER         (0),
		.MULTI_FRAME_DELAY        (1),
		.MEM_BASE_ADDR            (0),
		.USER_PACKETS_MAX_STORAGE (0),
		.MAX_SYMBOLS_PER_PACKET   (12),
		.INTERLACED_SUPPORT       (0),
		.CONTROLLED_DROP_REPEAT   (0),
		.DROP_INVALID_FIELDS      (1),
		.IS_SYNC_MASTER           (0),
		.IS_SYNC_SLAVE            (0)
	) sync_ctrl (
		.clock                        (main_clock),                      //               main_clock.clk
		.reset                        (main_reset),                      //               main_reset.reset
		.rd_cmd_valid                 (sync_ctrl_rd_cmd_valid),          //                   rd_cmd.valid
		.rd_cmd_startofpacket         (sync_ctrl_rd_cmd_startofpacket),  //                         .startofpacket
		.rd_cmd_endofpacket           (sync_ctrl_rd_cmd_endofpacket),    //                         .endofpacket
		.rd_cmd_data                  (sync_ctrl_rd_cmd_data),           //                         .data
		.rd_cmd_ready                 (sync_ctrl_rd_cmd_ready),          //                         .ready
		.rd_resp_valid                (rd_ctrl_sync_resp_valid),         //                  rd_resp.valid
		.rd_resp_startofpacket        (rd_ctrl_sync_resp_startofpacket), //                         .startofpacket
		.rd_resp_endofpacket          (rd_ctrl_sync_resp_endofpacket),   //                         .endofpacket
		.rd_resp_data                 (rd_ctrl_sync_resp_data),          //                         .data
		.rd_resp_ready                (rd_ctrl_sync_resp_ready),         //                         .ready
		.reader_control_address       (control_address),                 //           reader_control.address
		.reader_control_byteenable    (control_byteenable),              //                         .byteenable
		.reader_control_write         (control_write),                   //                         .write
		.reader_control_writedata     (control_writedata),               //                         .writedata
		.reader_control_read          (control_read),                    //                         .read
		.reader_control_readdata      (control_readdata),                //                         .readdata
		.reader_control_readdatavalid (control_readdatavalid),           //                         .readdatavalid
		.reader_control_waitrequest   (control_waitrequest),             //                         .waitrequest
		.reader_control_irq           (control_interrupt_irq)            // reader_control_interrupt.irq
	);

endmodule
