OpenCores
URL https://opencores.org/ocsvn/an-fpga-implementation-of-low-latency-noc-based-mpsoc/an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk

Subversion Repositories an-fpga-implementation-of-low-latency-noc-based-mpsoc

[/] [an-fpga-implementation-of-low-latency-noc-based-mpsoc/] [trunk/] [mpsoc/] [rtl/] [src_peripheral/] [clk_source/] [xilinx_pll_base.v] - Blame information for rev 48

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 48 alirezamon
/**************************************
2
* Module: xilinx_pll_base
3
* Date:2020-03-18
4
* Author: alireza
5
*
6
* Description:
7
***************************************/
8
module  xilinx_pll_base #(
9
    parameter BANDWIDTH = "OPTIMIZED",  // OPTIMIZED, HIGH, LOW
10
    parameter CLKFBOUT_MULT = 5,        // Multiply value for all CLKOUT, (2-64)
11
    parameter CLKFBOUT_PHASE = 0.0,     // Phase offset in degrees of CLKFB, (-360.000-360.000).
12
    parameter CLKIN1_PERIOD =0.0,      // Input clock period in ns to ps resolution (i.e. 33.333 is 30 MHz).
13
    // CLKOUT0_DIVIDE - CLKOUT5_DIVIDE: Divide amount for each CLKOUT (1-128)
14
    parameter CLKOUT0_DIVIDE =1,
15
    parameter CLKOUT1_DIVIDE =1,
16
    parameter CLKOUT2_DIVIDE =1,
17
    parameter CLKOUT3_DIVIDE =1,
18
    parameter CLKOUT4_DIVIDE =1,
19
    parameter CLKOUT5_DIVIDE =1,
20
    // CLKOUT0_DUTY_CYCLE - CLKOUT5_DUTY_CYCLE: Duty cycle for each CLKOUT (0.001-0.999).
21
    parameter CLKOUT0_DUTY_CYCLE= 0.5,
22
    parameter CLKOUT1_DUTY_CYCLE=0.5,
23
    parameter CLKOUT2_DUTY_CYCLE=0.5,
24
    parameter CLKOUT3_DUTY_CYCLE=0.5,
25
    parameter CLKOUT4_DUTY_CYCLE=0.5,
26
    parameter CLKOUT5_DUTY_CYCLE=0.5,
27
    // CLKOUT0_PHASE - CLKOUT5_PHASE: Phase offset for each CLKOUT (-360.000-360.000).
28
    parameter CLKOUT0_PHASE=0.0,
29
    parameter CLKOUT1_PHASE=0.0,
30
    parameter CLKOUT2_PHASE=0.0,
31
    parameter CLKOUT3_PHASE=0.0,
32
    parameter CLKOUT4_PHASE=0.0,
33
    parameter CLKOUT5_PHASE=0.0,
34
    parameter DIVCLK_DIVIDE=1,        // Master division value, (1-56)
35
    parameter REF_JITTER1=0.0,        // Reference input jitter in UI, (0.000-0.999).
36
    parameter STARTUP_WAIT="FALSE"    // Delay DONE until PLL Locks, ("TRUE"/"FALSE")
37
)(
38
  // Clock Outputs: 1-bit (each) output: User configurable clock outputs    
39
    output clk_out0,   // 1-bit output: CLKOUT0                             
40
    output clk_out1,   // 1-bit output: CLKOUT1                             
41
    output clk_out2,   // 1-bit output: CLKOUT2                             
42
    output clk_out3,   // 1-bit output: CLKOUT3                             
43
    output clk_out4,   // 1-bit output: CLKOUT4                             
44
    output clk_out5,   // 1-bit output: CLKOUT5                             
45
  // Feedback Clocks: 1-bit (each) output: Clock feedback ports             
46
   // output CLKFBOUT, // 1-bit output: Feedback clock                      
47
    output reset_out,     // 1-bit output: LOCK                                
48
    input clk_in,     // 1-bit input: Input clock                          
49
  // Control Ports: 1-bit (each) input: PLL control ports                   
50
  //  input PWRDWN,     // 1-bit input: Power-down                           
51
    input reset_in           // 1-bit input: Reset                                
52
  // Feedback Clocks: 1-bit (each) input: Clock feedback ports              
53
    //input CLKFBIN    // 1-bit input: Feedback clock                       
54
);
55
 
56
 
57
 
58
 // Xilinx HDL Language Template, version 2019.1
59
 
60
wire clk_feedback;
61
wire locked;
62
 
63
   PLLE2_BASE #(
64
    .BANDWIDTH           (BANDWIDTH            ),
65
    .CLKFBOUT_MULT       (CLKFBOUT_MULT        ),
66
    .CLKFBOUT_PHASE      (CLKFBOUT_PHASE       ),
67
    .CLKIN1_PERIOD       (CLKIN1_PERIOD        ),
68
 
69
    .CLKOUT0_DIVIDE      (CLKOUT0_DIVIDE       ),
70
    .CLKOUT1_DIVIDE      (CLKOUT1_DIVIDE       ),
71
    .CLKOUT2_DIVIDE      (CLKOUT2_DIVIDE       ),
72
    .CLKOUT3_DIVIDE      (CLKOUT3_DIVIDE       ),
73
    .CLKOUT4_DIVIDE      (CLKOUT4_DIVIDE       ),
74
    .CLKOUT5_DIVIDE      (CLKOUT5_DIVIDE       ),
75
 
76
    .CLKOUT0_DUTY_CYCLE  (CLKOUT0_DUTY_CYCLE   ),
77
    .CLKOUT1_DUTY_CYCLE  (CLKOUT1_DUTY_CYCLE   ),
78
    .CLKOUT2_DUTY_CYCLE  (CLKOUT2_DUTY_CYCLE   ),
79
    .CLKOUT3_DUTY_CYCLE  (CLKOUT3_DUTY_CYCLE   ),
80
    .CLKOUT4_DUTY_CYCLE  (CLKOUT4_DUTY_CYCLE   ),
81
    .CLKOUT5_DUTY_CYCLE  (CLKOUT5_DUTY_CYCLE   ),
82
 
83
    .CLKOUT0_PHASE       (CLKOUT0_PHASE        ),
84
    .CLKOUT1_PHASE       (CLKOUT1_PHASE        ),
85
    .CLKOUT2_PHASE       (CLKOUT2_PHASE        ),
86
    .CLKOUT3_PHASE       (CLKOUT3_PHASE        ),
87
    .CLKOUT4_PHASE       (CLKOUT4_PHASE        ),
88
    .CLKOUT5_PHASE       (CLKOUT5_PHASE        ),
89
    .DIVCLK_DIVIDE       (DIVCLK_DIVIDE        ),
90
    .REF_JITTER1         (REF_JITTER1          ),
91
    .STARTUP_WAIT        (STARTUP_WAIT         )
92
   )
93
   PLLE2_BASE_inst
94
   (
95
      // Clock Outputs: 1-bit (each) output: User configurable clock outputs
96
      .CLKOUT0(clk_out0),   // 1-bit output: CLKOUT0
97
      .CLKOUT1(clk_out1),   // 1-bit output: CLKOUT1
98
      .CLKOUT2(clk_out2),   // 1-bit output: CLKOUT2
99
      .CLKOUT3(clk_out3),   // 1-bit output: CLKOUT3
100
      .CLKOUT4(clk_out4),   // 1-bit output: CLKOUT4
101
      .CLKOUT5(clk_out5),   // 1-bit output: CLKOUT5
102
      // Feedback Clocks: 1-bit (each) output: Clock feedback ports
103
      .CLKFBOUT(clk_feedback), // 1-bit output: Feedback clock
104
      .LOCKED(locked),     // 1-bit output: LOCK
105
      .CLKIN1(clk_in),     // 1-bit input: Input clock
106
      // Control Ports: 1-bit (each) input: PLL control ports
107
      .PWRDWN(1'b0),     // 1-bit input: Power-down
108
      .RST(reset_in),           // 1-bit input: Reset
109
      // Feedback Clocks: 1-bit (each) input: Clock feedback ports
110
      .CLKFBIN(clk_feedback)    // 1-bit input: Feedback clock
111
   );
112
 
113
    assign reset_out =~locked;
114
 
115
endmodule
116
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.