Remove verilog header files built from Chisel .prm file.
[freedom-sifive.git] / fpga / u500vc707devkit / src / system.v
1 // See LICENSE for license details.
2 `timescale 1ns/1ps
3 `default_nettype none
4
5 module system
6 (
7 //200Mhz differential sysclk
8 input wire sys_diff_clock_clk_n,
9 input wire sys_diff_clock_clk_p,
10 //active high reset
11 input wire reset,
12 // DDR3 SDRAM
13 output wire [13:0] ddr3_addr,
14 output wire [2:0] ddr3_ba,
15 output wire ddr3_cas_n,
16 output wire [0:0] ddr3_ck_n,
17 output wire [0:0] ddr3_ck_p,
18 output wire [0:0] ddr3_cke,
19 output wire [0:0] ddr3_cs_n,
20 output wire [7:0] ddr3_dm,
21 inout wire [63:0] ddr3_dq,
22 inout wire [7:0] ddr3_dqs_n,
23 inout wire [7:0] ddr3_dqs_p,
24 output wire [0:0] ddr3_odt,
25 output wire ddr3_ras_n,
26 output wire ddr3_reset_n,
27 output wire ddr3_we_n,
28 // LED
29 output wire [7:0] led,
30 //UART
31 output wire uart_tx,
32 input wire uart_rx,
33 output wire uart_rtsn,
34 input wire uart_ctsn,
35 //SDIO
36 output wire sdio_clk,
37 inout wire sdio_cmd,
38 inout wire [3:0] sdio_dat,
39 //JTAG
40 input wire jtag_TCK,
41 input wire jtag_TMS,
42 input wire jtag_TDI,
43 output wire jtag_TDO,
44 //PCIe
45 output wire [0:0] pci_exp_txp,
46 output wire [0:0] pci_exp_txn,
47 input wire [0:0] pci_exp_rxp,
48 input wire [0:0] pci_exp_rxn,
49 input wire pci_exp_refclk_rxp,
50 input wire pci_exp_refclk_rxn
51 );
52
53 reg [1:0] uart_rx_sync;
54 wire [3:0] sd_spi_dq_i;
55 wire [3:0] sd_spi_dq_o;
56 wire sd_spi_sck;
57 wire sd_spi_cs;
58 wire top_clock,top_reset;
59
60 U500VC707DevKitTop top
61 (
62 //UART
63 .io_uarts_0_rxd(uart_rx_sync[1]),
64 .io_uarts_0_txd(uart_tx),
65 //SPI
66 .io_spis_0_sck(sd_spi_sck),
67 .io_spis_0_dq_0_i(sd_spi_dq_i[0]),
68 .io_spis_0_dq_1_i(sd_spi_dq_i[1]),
69 .io_spis_0_dq_2_i(sd_spi_dq_i[2]),
70 .io_spis_0_dq_3_i(sd_spi_dq_i[3]),
71 .io_spis_0_dq_0_o(sd_spi_dq_o[0]),
72 .io_spis_0_dq_1_o(sd_spi_dq_o[1]),
73 .io_spis_0_dq_2_o(sd_spi_dq_o[2]),
74 .io_spis_0_dq_3_o(sd_spi_dq_o[3]),
75 .io_spis_0_dq_0_oe(),
76 .io_spis_0_dq_1_oe(),
77 .io_spis_0_dq_2_oe(),
78 .io_spis_0_dq_3_oe(),
79 .io_spis_0_cs_0(sd_spi_cs),
80 //GPIO
81 .io_gpio_pins_0_i_ival(1'b0),
82 .io_gpio_pins_1_i_ival(1'b0),
83 .io_gpio_pins_2_i_ival(1'b0),
84 .io_gpio_pins_3_i_ival(1'b0),
85 .io_gpio_pins_0_o_oval(led[0]),
86 .io_gpio_pins_1_o_oval(led[1]),
87 .io_gpio_pins_2_o_oval(led[2]),
88 .io_gpio_pins_3_o_oval(led[3]),
89 .io_gpio_pins_0_o_oe(),
90 .io_gpio_pins_1_o_oe(),
91 .io_gpio_pins_2_o_oe(),
92 .io_gpio_pins_3_o_oe(),
93 .io_gpio_pins_0_o_pue(),
94 .io_gpio_pins_1_o_pue(),
95 .io_gpio_pins_2_o_pue(),
96 .io_gpio_pins_3_o_pue(),
97 .io_gpio_pins_0_o_ds(),
98 .io_gpio_pins_1_o_ds(),
99 .io_gpio_pins_2_o_ds(),
100 .io_gpio_pins_3_o_ds(),
101 //JTAG
102 .io_jtag_TRST(1'b0),
103 .io_jtag_TCK(jtag_TCK),
104 .io_jtag_TMS(jtag_TMS),
105 .io_jtag_TDI(jtag_TDI),
106 .io_jtag_DRV_TDO(),
107 .io_jtag_TDO(jtag_TDO),
108 //MIG
109 .io_xilinxvc707mig__inout_ddr3_dq(ddr3_dq),
110 .io_xilinxvc707mig__inout_ddr3_dqs_n(ddr3_dqs_n),
111 .io_xilinxvc707mig__inout_ddr3_dqs_p(ddr3_dqs_p),
112 .io_xilinxvc707mig_ddr3_addr(ddr3_addr),
113 .io_xilinxvc707mig_ddr3_ba(ddr3_ba),
114 .io_xilinxvc707mig_ddr3_ras_n(ddr3_ras_n),
115 .io_xilinxvc707mig_ddr3_cas_n(ddr3_cas_n),
116 .io_xilinxvc707mig_ddr3_we_n(ddr3_we_n),
117 .io_xilinxvc707mig_ddr3_reset_n(ddr3_reset_n),
118 .io_xilinxvc707mig_ddr3_ck_p(ddr3_ck_p),
119 .io_xilinxvc707mig_ddr3_ck_n(ddr3_ck_n),
120 .io_xilinxvc707mig_ddr3_cke(ddr3_cke),
121 .io_xilinxvc707mig_ddr3_cs_n(ddr3_cs_n),
122 .io_xilinxvc707mig_ddr3_dm(ddr3_dm),
123 .io_xilinxvc707mig_ddr3_odt(ddr3_odt),
124 //PCIe
125 .io_xilinxvc707pcie_pci_exp_txp(pci_exp_txp),
126 .io_xilinxvc707pcie_pci_exp_txn(pci_exp_txn),
127 .io_xilinxvc707pcie_pci_exp_rxp(pci_exp_rxp),
128 .io_xilinxvc707pcie_pci_exp_rxn(pci_exp_rxn),
129 //Clock + Reset
130 .io_pcie_refclk_p(pci_exp_refclk_rxp),
131 .io_pcie_refclk_n(pci_exp_refclk_rxn),
132 .io_sys_clk_p(sys_diff_clock_clk_p),
133 .io_sys_clk_n(sys_diff_clock_clk_n),
134 .io_sys_reset(reset),
135 //Misc outputs for system.v
136 .io_core_clock(top_clock),
137 .io_core_reset(top_reset)
138 );
139
140 sdio_spi_bridge ip_sdio_spi
141 (
142 .clk(top_clock),
143 .reset(top_reset),
144 .sd_cmd(sdio_cmd),
145 .sd_dat(sdio_dat),
146 .sd_sck(sdio_clk),
147 .spi_sck(sd_spi_sck),
148 .spi_dq_o(sd_spi_dq_o),
149 .spi_dq_i(sd_spi_dq_i),
150 .spi_cs(sd_spi_cs)
151 );
152
153 //UART
154 assign uart_rtsn =1'b0;
155 always @(posedge top_clock) begin
156 if (top_reset) begin
157 uart_rx_sync <= 2'b11;
158 end else begin
159 uart_rx_sync[0] <= uart_rx;
160 uart_rx_sync[1] <= uart_rx_sync[0];
161 end
162 end
163
164 assign led[7:4] = 4'b0000;
165
166 endmodule
167
168 `default_nettype wire