Files
LVDS1M/top_src/rtl/top_module.v

181 lines
4.6 KiB
Coq
Raw Normal View History

2026-02-05 18:42:08 +08:00
`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company:
// Engineer:
//
// Create Date: 2026/02/02 18:13:16
// Design Name:
// Module Name: top_module
// Project Name:
// Target Devices:
// Tool Versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//////////////////////////////////////////////////////////////////////////////////
module top_module(
input wire CLK_A_p,CLK_A_n,
input wire [3:0] DATA_A_p,DATA_A_n,
input wire CLK_B_p,CLK_B_n,
input wire [3:0] DATA_B_p,DATA_B_n,
// -------------------------------------------
output wire CLK0_A_p,CLK0_A_n,
output wire [3:0] DATA0_A_p,DATA0_A_n,
output wire CLK0_B_p,CLK0_B_n,
output wire [3:0] DATA0_B_p,DATA0_B_n,
// -------------------------------------------
output wire CLK1_A_p,CLK1_A_n,
output wire [3:0] DATA1_A_p,DATA1_A_n,
output wire CLK1_B_p,CLK1_B_n,
output wire [3:0] DATA1_B_p,DATA1_B_n,
// -------------------------------------------
output wire CLK2_A_p,CLK2_A_n,
output wire [3:0] DATA2_A_p,DATA2_A_n,
output wire CLK2_B_p,CLK2_B_n,
output wire [3:0] DATA2_B_p,DATA2_B_n,
input wire sys_clk_50,
input wire sys_rest_n
);
// lvds_1to3_copy_reg lvds_inst0(
// // 输入LVDS差分信号
// .clk_in_p(CLK_A_p),
// .clk_in_n(CLK_A_n),
// .data_in_p(DATA_A_p),
// .data_in_n(DATA_A_n),
// // 输出LVDS差分信号
// .clk_out0_p(CLK0_A_p),
// .clk_out0_n(CLK0_A_n),
// .data_out0_p(DATA0_A_p),
// .data_out0_n(DATA0_A_n),
// .clk_out1_p(CLK1_A_p),
// .clk_out1_n(CLK1_A_n),
// .data_out1_p(DATA1_A_p),
// .data_out1_n(DATA1_A_n),
// .clk_out2_p(CLK2_A_p),
// .clk_out2_n(CLK2_A_n),
// .data_out2_p(DATA2_A_p),
// .data_out2_n(DATA2_A_n)
// );
lvds_1to3bypass lvds_1to3bypass_int0(
.CLK_p(CLK_A_p),
.CLK_n(CLK_A_n),
.DATA_p(DATA_A_p),
.DATA_n(DATA_A_n),
// -------------------------------------------
.CLK0_p(CLK0_A_p),
.CLK0_n(CLK0_A_n),
.DATA0_p(DATA0_A_p),
.DATA0_n(DATA0_A_n),
// -------------------------------------------
.CLK1_p(CLK1_A_p),
.CLK1_n(CLK1_A_n),
.DATA1_p(DATA1_A_p),
.DATA1_n(DATA1_A_n),
// -------------------------------------------
.CLK2_p(CLK2_A_p),
.CLK2_n(CLK2_A_n),
.DATA2_p(DATA2_A_p),
.DATA2_n(DATA2_A_n),
// input sys_clk_50,
.io_reset(sys_rest_n)
);
wire [3:0] data_in_to_device;
wire clk_out;
selectio_wiz_in lvds_in1(
// From the system into the device
.data_in_from_pins_p(DATA_B_p), //
.data_in_from_pins_n(DATA_B_n), //
.data_in_to_device(data_in_to_device),
.clk_in_p(CLK_B_p), // // Differential clock from IOB
.clk_in_n(CLK_B_n), //
.clk_out(clk_out),//
.io_reset(sys_rest_n)
);
selectio_wiz_out lvdsout0 (
// From the device out to the system
.data_out_from_device(data_in_to_device),
.data_out_to_pins_p(DATA0_B_p),
.data_out_to_pins_n(DATA0_B_n),
.clk_to_pins_p(CLK0_B_p),
.clk_to_pins_n(CLK0_B_n),
.clk_in(clk_out), // Fast clock input from PLL/MMCM
.clk_reset(sys_rest_n),
.io_reset(sys_rest_n)
);
selectio_wiz_out lvdsout1 (
// From the device out to the system
.data_out_from_device(data_in_to_device),
.data_out_to_pins_p(DATA1_B_p),
.data_out_to_pins_n(DATA1_B_n),
.clk_to_pins_p(CLK1_B_p),
.clk_to_pins_n(CLK1_B_n),
.clk_in(clk_out), // Fast clock input from PLL/MMCM
.clk_reset(sys_rest_n),
.io_reset(sys_rest_n)
);
selectio_wiz_out lvdsout2 (
// From the device out to the system
.data_out_from_device(data_in_to_device),
.data_out_to_pins_p(DATA2_B_p),
.data_out_to_pins_n(DATA2_B_n),
.clk_to_pins_p(CLK2_B_p),
.clk_to_pins_n(CLK2_B_n),
.clk_in(clk_out), // Fast clock input from PLL/MMCM
.clk_reset(sys_rest_n),
.io_reset(sys_rest_n)
);
endmodule