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

powered by: WebSVN 2.1.0

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