| module clkgen_xil7series ( |
| IO_CLK, |
| io_clk_bufg, |
| clk_sys |
| ); |
| input IO_CLK; |
| output clk_sys; |
| output io_clk_bufg; |
| wire locked_pll; |
| wire clk_50_buf; |
| wire clk_50_unbuf; |
| wire clk_fb_buf; |
| wire clk_fb_unbuf; |
| wire clk_pll_fb; |
| PLLE2_ADV #( |
| .BANDWIDTH("OPTIMIZED"), |
| .COMPENSATION("ZHOLD"), |
| .STARTUP_WAIT("FALSE"), |
| .DIVCLK_DIVIDE(1), |
| .CLKFBOUT_MULT(12), |
| .CLKFBOUT_PHASE(0), |
| .CLKOUT0_DIVIDE(48), |
| .CLKOUT0_PHASE(0) |
| ) pll( |
| .CLKFBOUT(clk_pll_fb), |
| .CLKOUT0(clk_50_unbuf), |
| .CLKOUT1(), |
| .CLKOUT2(), |
| .CLKOUT3(), |
| .CLKOUT4(), |
| .CLKOUT5(), |
| .CLKFBIN(clk_pll_fb), |
| .CLKIN1(io_clk_bufg), |
| .CLKIN2(1'b0), |
| .CLKINSEL(1'b1), |
| .DADDR(7'h0), |
| .DCLK(1'b0), |
| .DEN(1'b0), |
| .DI(16'h0), |
| .DO(), |
| .DRDY(), |
| .DWE(1'b0), |
| .LOCKED(locked_pll), |
| .PWRDWN(1'b0), |
| .RST(1'b0) |
| ); |
| BUFG clk_io_bufg( |
| .I(IO_CLK), |
| .O(io_clk_bufg) |
| ); |
| BUFG clk_50_bufg( |
| .I(clk_50_unbuf), |
| .O(clk_sys) |
| ); |
| |
| endmodule |
| |
| module top ( |
| input wire clk, |
| output wire clk1_pr1, |
| output wire clk2_pr1, |
| input wire [7:0] sw, |
| output wire [7:0] sw_pr1, |
| output wire [7:0] led, |
| input wire [7:0] led_pr1 |
| ); |
| wire clk_ibuf_w; |
| wire clk1_b; |
| wire clk2_b; |
| genvar i; |
| generate |
| for (i=0; i < 8; i=i+1) begin |
| SYN_IBUF led_ibuf(.I(led_pr1[i]), .O(led[i])); |
| SYN_OBUF sw_obuf(.I(sw[i]), .O(sw_pr1[i])); |
| end |
| endgenerate |
| |
| IBUF clk_ibuf(.I(clk), .O(clk_ibuf_w)); |
| |
| clkgen_xil7series clk_gen ( |
| .IO_CLK(clk_ibuf_w), |
| .io_clk_bufg(clk1_b), |
| .clk_sys(clk2_b) |
| ); |
| |
| SYN_OBUF clk1_obuf(.I(clk1_b), .O(clk1_pr1)); |
| SYN_OBUF clk2_obuf(.I(clk2_b), .O(clk2_pr1)); |
| endmodule |