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_pll_sim/] [plle2_base.v] - Blame information for rev 48

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 48 alirezamon
/*
2
 * plle2_base.v: Simulates the PLLE2_BASE pll of the xilinx 7 series. This
3
 * is just a wrapper around the actual logic found in pll.v
4
 * author: Till Mahlburg
5
 * year: 2019-2020
6
 * organization: Universität Leipzig
7
 * license: ISC
8
 *
9
 */
10
 
11
// synthesis translate_off
12
 
13
`timescale 1 ns / 1 ps
14
 
15
/* A reference for the interface can be found in Xilinx UG953 page 509ff */
16
module PLLE2_BASE #(
17
        /* not implemented */
18
        parameter BANDWIDTH                     = "OPTIMIZED",
19
 
20
        parameter CLKFBOUT_MULT                 = 5,
21
        parameter CLKFBOUT_PHASE                = 0.0,
22
 
23
        /* is ignored, but should be set */
24
        parameter CLKIN1_PERIOD                 = 0.0,
25
 
26
        parameter CLKOUT0_DIVIDE                = 1,
27
        parameter CLKOUT1_DIVIDE                = 1,
28
        parameter CLKOUT2_DIVIDE                = 1,
29
        parameter CLKOUT3_DIVIDE                = 1,
30
        parameter CLKOUT4_DIVIDE                = 1,
31
        parameter CLKOUT5_DIVIDE                = 1,
32
 
33
        parameter CLKOUT0_DUTY_CYCLE    = 0.5,
34
        parameter CLKOUT1_DUTY_CYCLE    = 0.5,
35
        parameter CLKOUT2_DUTY_CYCLE    = 0.5,
36
        parameter CLKOUT3_DUTY_CYCLE    = 0.5,
37
        parameter CLKOUT4_DUTY_CYCLE    = 0.5,
38
        parameter CLKOUT5_DUTY_CYCLE    = 0.5,
39
 
40
        parameter CLKOUT0_PHASE                 = 0.0,
41
        parameter CLKOUT1_PHASE                 = 0.0,
42
        parameter CLKOUT2_PHASE                 = 0.0,
43
        parameter CLKOUT3_PHASE                 = 0.0,
44
        parameter CLKOUT4_PHASE                 = 0.0,
45
        parameter CLKOUT5_PHASE                 = 0.0,
46
 
47
        parameter DIVCLK_DIVIDE                 = 1,
48
 
49
        /* both not implemented */
50
        parameter REF_JITTER1                   = 0.0,
51
        parameter STARTUP_WAIT                  = "FALSE",
52
 
53
        /* Setting the FPGA model and speed grade allows a more realistic
54
         * simulation. Default values are the most restrictive */
55
        parameter FPGA_TYPE                             = "ARTIX",
56
        parameter SPEED_GRADE                   = "-1")(
57
        output  CLKOUT0,
58
        output  CLKOUT1,
59
        output  CLKOUT2,
60
        output  CLKOUT3,
61
        output  CLKOUT4,
62
        output  CLKOUT5,
63
        /* PLL feedback output. */
64
        output  CLKFBOUT,
65
 
66
        output  LOCKED,
67
 
68
        input   CLKIN1,
69
        /* PLL feedback input. Is ignored in this implementation, but should be connected to CLKFBOUT for internal feedback. */
70
        input   CLKFBIN,
71
 
72
        /* Used to power down instatiated but unused PLLs */
73
        input   PWRDWN,
74
        input   RST);
75
 
76
        wire    [15:0] DO;
77
        wire    DRDY;
78
 
79
        plle2_base_sim #(
80
                .BANDWIDTH(BANDWIDTH),
81
                .CLKFBOUT_MULT_F(CLKFBOUT_MULT),
82
                .CLKFBOUT_PHASE(CLKFBOUT_PHASE),
83
                .CLKIN1_PERIOD(CLKIN1_PERIOD),
84
                .CLKIN2_PERIOD(0.000),
85
 
86
                .CLKOUT0_DIVIDE_F(CLKOUT0_DIVIDE),
87
                .CLKOUT1_DIVIDE(CLKOUT1_DIVIDE),
88
                .CLKOUT2_DIVIDE(CLKOUT2_DIVIDE),
89
                .CLKOUT3_DIVIDE(CLKOUT3_DIVIDE),
90
                .CLKOUT4_DIVIDE(CLKOUT4_DIVIDE),
91
                .CLKOUT5_DIVIDE(CLKOUT5_DIVIDE),
92
 
93
                .CLKOUT0_DUTY_CYCLE(CLKOUT0_DUTY_CYCLE),
94
                .CLKOUT1_DUTY_CYCLE(CLKOUT1_DUTY_CYCLE),
95
                .CLKOUT2_DUTY_CYCLE(CLKOUT2_DUTY_CYCLE),
96
                .CLKOUT3_DUTY_CYCLE(CLKOUT3_DUTY_CYCLE),
97
                .CLKOUT4_DUTY_CYCLE(CLKOUT4_DUTY_CYCLE),
98
                .CLKOUT5_DUTY_CYCLE(CLKOUT5_DUTY_CYCLE),
99
 
100
                .CLKOUT0_PHASE(CLKOUT0_PHASE),
101
                .CLKOUT1_PHASE(CLKOUT1_PHASE),
102
                .CLKOUT2_PHASE(CLKOUT2_PHASE),
103
                .CLKOUT3_PHASE(CLKOUT3_PHASE),
104
                .CLKOUT4_PHASE(CLKOUT4_PHASE),
105
                .CLKOUT5_PHASE(CLKOUT5_PHASE),
106
 
107
                .DIVCLK_DIVIDE(DIVCLK_DIVIDE),
108
                .REF_JITTER1(REF_JITTER1),
109
                .REF_JITTER2(0.010),
110
                .STARTUP_WAIT(STARTUP_WAIT),
111
                .COMPENSATION("ZHOLD"),
112
 
113
                .MODULE_TYPE("PLLE2_BASE"),
114
 
115
                .FPGA_TYPE(FPGA_TYPE),
116
                .SPEED_GRADE(SPEED_GRADE))
117
        plle2_base (
118
                .CLKOUT0(CLKOUT0),
119
                .CLKOUT1(CLKOUT1),
120
                .CLKOUT2(CLKOUT2),
121
                .CLKOUT3(CLKOUT3),
122
                .CLKOUT4(CLKOUT4),
123
                .CLKOUT5(CLKOUT5),
124
                .CLKOUT6(),
125
 
126
                .CLKOUT0B(),
127
                .CLKOUT1B(),
128
                .CLKOUT2B(),
129
                .CLKOUT3B(),
130
                .CLKFBOUTB(),
131
 
132
 
133
                .CLKFBOUT(CLKFBOUT),
134
                .LOCKED(LOCKED),
135
 
136
                .CLKIN1(CLKIN1),
137
                .CLKIN2(1'b0),
138
                .CLKINSEL(1'b1),
139
 
140
                .PWRDWN(PWRDWN),
141
                .RST(RST),
142
                .CLKFBIN(CLKFBIN),
143
 
144
                .DADDR(7'h00),
145
                .DCLK(1'b0),
146
                .DEN(1'b0),
147
                .DWE(1'b0),
148
                .DI(16'h0),
149
 
150
                .DO(DO),
151
                .DRDY(DRDY)
152
        );
153
endmodule
154
 
155
// synthesis translate_on
156
 

powered by: WebSVN 2.1.0

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