|
16 | 16 | * a problem in real designs. |
17 | 17 | * |
18 | 18 | *************************************************************************/ |
19 | | -module la_pll #(parameter PROP = "", // cell property |
20 | | - parameter NIN = 1, // number of input reference clocks |
21 | | - parameter NOUT = 1, // number of output clocks |
22 | | - parameter REFW = 8, // reference divider width |
23 | | - parameter FBW = 8, // feedback divider width |
24 | | - parameter PW = 8, // post feedback divider/phase width |
25 | | - parameter CW = 1, // control vector width |
26 | | - parameter SW = 1 // status vector width |
| 19 | +module la_pll #(parameter PROP = "", // cell property |
| 20 | + parameter NIN = 1, // number of input reference clocks |
| 21 | + parameter NOUT = 1, // number of output clocks |
| 22 | + parameter DIVINW = 8, // reference divider width |
| 23 | + parameter DIVFBW = 8, // feedback divider width |
| 24 | + parameter DIVPOSTW = 8, // post feedback divider width |
| 25 | + parameter PHASEW = 8, // phase shift adjust width |
| 26 | + parameter CW = 1, // control vector width |
| 27 | + parameter SW = 1 // status vector width |
27 | 28 | ) |
28 | 29 | ( |
29 | 30 | // supplies |
30 | | - inout vdda, // analog supply |
31 | | - inout vdd, // digital core supply |
32 | | - inout vddaux, // aux core supply |
33 | | - inout vss, // common ground |
| 31 | + inout vdda, // analog supply |
| 32 | + inout vdd, // digital core supply |
| 33 | + inout vddaux, // aux core supply |
| 34 | + inout vss, // common ground |
34 | 35 | // clocks |
35 | | - input [NIN-1:0] refclk, // input reference clock |
36 | | - output [NOUT-1:0] clkout, // output clocks |
| 36 | + input [NIN-1:0] clkin, // input reference clock |
| 37 | + output [NOUT-1:0] clkout, // output clocks |
37 | 38 | // standard controls |
38 | | - input reset, // active high async reset |
39 | | - input en, // pll enable |
40 | | - input bypass, // pll bypasses |
41 | | - input [NIN-1:0] clksel, // one hot clock selector |
42 | | - input [REFW-1:0] divref, // reference divider |
43 | | - input [FBW-1:0] divfb, // feedback divider |
44 | | - input [NOUT*PW-1:0] divpost, // output divider |
45 | | - input [NOUT*PW-1:0] phase, // output phase shift |
46 | | - output locked, // pll is locked |
| 39 | + input reset, // active high async reset |
| 40 | + input en, // pll enable |
| 41 | + input bypass, // pll bypasses |
| 42 | + input [NIN-1:0] clksel, // one hot clock selector |
| 43 | + input [DIVINW-1:0] divin, // reference divider |
| 44 | + input [DIVFBW-1:0] divfb, // feedback divider |
| 45 | + input [NOUT*DIVPOSTW-1:0] divpost, // output divider |
| 46 | + input [NOUT*PHASEW-1:0] phase, // output phase shift |
| 47 | + output locked, // pll is locked |
47 | 48 | // user defined signals (defined per unique PLL) |
48 | | - input [CW-1:0] ctrl, // controls |
49 | | - output [SW-1:0] status // status |
| 49 | + input [CW-1:0] ctrl, // controls |
| 50 | + output [SW-1:0] status // status |
50 | 51 | ); |
51 | 52 |
|
52 | 53 | genvar i; |
53 | 54 |
|
54 | 55 | wire clk; |
55 | 56 |
|
56 | 57 | // input clock selector |
57 | | - assign clk = |(refclk[NIN-1:0] & clksel[NIN-1:0]); |
| 58 | + assign clk = |(clkin[NIN-1:0] & clksel[NIN-1:0]); |
58 | 59 |
|
59 | 60 | // model bypass and pll en |
60 | 61 | for (i = 0; i < NOUT; i = i + 1) begin : gen_out |
|
0 commit comments