|  | // Copyright 2020-2022 F4PGA Authors | 
|  | // | 
|  | // Licensed under the Apache License, Version 2.0 (the "License"); | 
|  | // you may not use this file except in compliance with the License. | 
|  | // You may obtain a copy of the License at | 
|  | // | 
|  | //     http://www.apache.org/licenses/LICENSE-2.0 | 
|  | // | 
|  | // Unless required by applicable law or agreed to in writing, software | 
|  | // distributed under the License is distributed on an "AS IS" BASIS, | 
|  | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | 
|  | // See the License for the specific language governing permissions and | 
|  | // limitations under the License. | 
|  | // | 
|  | // SPDX-License-Identifier: Apache-2.0 | 
|  |  | 
|  | // ============================================================================ | 
|  | // CMT | 
|  |  | 
|  | // PLLE2_ADV_VPR | 
|  | (* blackbox *) | 
|  | module PLLE2_ADV_VPR ( | 
|  | input CLKFBIN, | 
|  | input CLKIN1, | 
|  | input CLKIN2, | 
|  | input CLKINSEL, | 
|  |  | 
|  | output CLKFBOUT, | 
|  | output CLKOUT0, | 
|  | output CLKOUT1, | 
|  | output CLKOUT2, | 
|  | output CLKOUT3, | 
|  | output CLKOUT4, | 
|  | output CLKOUT5, | 
|  |  | 
|  | input  PWRDWN, | 
|  | input  RST, | 
|  | output LOCKED, | 
|  |  | 
|  | input         DCLK, | 
|  | input         DEN, | 
|  | input         DWE, | 
|  | output        DRDY, | 
|  | input  [ 6:0] DADDR, | 
|  | input  [15:0] DI, | 
|  | output [15:0] DO | 
|  | ); | 
|  |  | 
|  | parameter [0:0] INV_CLKINSEL = 1'd0; | 
|  | parameter [0:0] ZINV_PWRDWN = 1'd0; | 
|  | parameter [0:0] ZINV_RST = 1'd1; | 
|  |  | 
|  | parameter [0:0] STARTUP_WAIT = 1'd0; | 
|  |  | 
|  | // Tables | 
|  | parameter [9:0] TABLE = 10'd0; | 
|  | parameter [39:0] LKTABLE = 40'd0; | 
|  | parameter [15:0] POWER_REG = 16'd0; | 
|  | parameter [11:0] FILTREG1_RESERVED = 12'd0; | 
|  | parameter [9:0] FILTREG2_RESERVED = 10'd0; | 
|  | parameter [5:0] LOCKREG1_RESERVED = 6'd0; | 
|  | parameter [0:0] LOCKREG2_RESERVED = 1'b0; | 
|  | parameter [0:0] LOCKREG3_RESERVED = 1'b0; | 
|  |  | 
|  | // DIVCLK | 
|  | parameter [5:0] DIVCLK_DIVCLK_HIGH_TIME = 6'd0; | 
|  | parameter [5:0] DIVCLK_DIVCLK_LOW_TIME = 6'd0; | 
|  | parameter [0:0] DIVCLK_DIVCLK_NO_COUNT = 1'b1; | 
|  | parameter [0:0] DIVCLK_DIVCLK_EDGE = 1'b0; | 
|  |  | 
|  | // CLKFBOUT | 
|  | parameter [5:0] CLKFBOUT_CLKOUT1_HIGH_TIME = 6'd0; | 
|  | parameter [5:0] CLKFBOUT_CLKOUT1_LOW_TIME = 6'd0; | 
|  | parameter [0:0] CLKFBOUT_CLKOUT1_OUTPUT_ENABLE = 1'b0; | 
|  | parameter [2:0] CLKFBOUT_CLKOUT1_PHASE_MUX = 3'd0; | 
|  | parameter [5:0] CLKFBOUT_CLKOUT2_DELAY_TIME = 6'd0; | 
|  | parameter [0:0] CLKFBOUT_CLKOUT2_EDGE = 1'b0; | 
|  | parameter [2:0] CLKFBOUT_CLKOUT2_FRAC = 3'd0; | 
|  | parameter [0:0] CLKFBOUT_CLKOUT2_FRAC_EN = 1'b0; | 
|  | parameter [0:0] CLKFBOUT_CLKOUT2_FRAC_WF_R = 1'b0; | 
|  | parameter [0:0] CLKFBOUT_CLKOUT2_NO_COUNT = 1'b1; | 
|  |  | 
|  | // CLKOUT0 | 
|  | parameter [5:0] CLKOUT0_CLKOUT1_HIGH_TIME = 6'd0; | 
|  | parameter [5:0] CLKOUT0_CLKOUT1_LOW_TIME = 6'd0; | 
|  | parameter [0:0] CLKOUT0_CLKOUT1_OUTPUT_ENABLE = 1'b0; | 
|  | parameter [2:0] CLKOUT0_CLKOUT1_PHASE_MUX = 3'd0; | 
|  | parameter [5:0] CLKOUT0_CLKOUT2_DELAY_TIME = 6'd0; | 
|  | parameter [0:0] CLKOUT0_CLKOUT2_EDGE = 1'b0; | 
|  | parameter [2:0] CLKOUT0_CLKOUT2_FRAC = 3'd0; | 
|  | parameter [0:0] CLKOUT0_CLKOUT2_FRAC_EN = 1'b0; | 
|  | parameter [0:0] CLKOUT0_CLKOUT2_FRAC_WF_R = 1'b0; | 
|  | parameter [0:0] CLKOUT0_CLKOUT2_NO_COUNT = 1'b1; | 
|  |  | 
|  | // CLKOUT1 | 
|  | parameter [5:0] CLKOUT1_CLKOUT1_HIGH_TIME = 6'd0; | 
|  | parameter [5:0] CLKOUT1_CLKOUT1_LOW_TIME = 6'd0; | 
|  | parameter [0:0] CLKOUT1_CLKOUT1_OUTPUT_ENABLE = 1'b0; | 
|  | parameter [2:0] CLKOUT1_CLKOUT1_PHASE_MUX = 3'd0; | 
|  | parameter [5:0] CLKOUT1_CLKOUT2_DELAY_TIME = 6'd0; | 
|  | parameter [0:0] CLKOUT1_CLKOUT2_EDGE = 1'b0; | 
|  | parameter [2:0] CLKOUT1_CLKOUT2_FRAC = 3'd0; | 
|  | parameter [0:0] CLKOUT1_CLKOUT2_FRAC_EN = 1'b0; | 
|  | parameter [0:0] CLKOUT1_CLKOUT2_FRAC_WF_R = 1'b0; | 
|  | parameter [0:0] CLKOUT1_CLKOUT2_NO_COUNT = 1'b1; | 
|  |  | 
|  | // CLKOUT2 | 
|  | parameter [5:0] CLKOUT2_CLKOUT1_HIGH_TIME = 6'd0; | 
|  | parameter [5:0] CLKOUT2_CLKOUT1_LOW_TIME = 6'd0; | 
|  | parameter [0:0] CLKOUT2_CLKOUT1_OUTPUT_ENABLE = 1'b0; | 
|  | parameter [2:0] CLKOUT2_CLKOUT1_PHASE_MUX = 3'd0; | 
|  | parameter [5:0] CLKOUT2_CLKOUT2_DELAY_TIME = 6'd0; | 
|  | parameter [0:0] CLKOUT2_CLKOUT2_EDGE = 1'b0; | 
|  | parameter [2:0] CLKOUT2_CLKOUT2_FRAC = 3'd0; | 
|  | parameter [0:0] CLKOUT2_CLKOUT2_FRAC_EN = 1'b0; | 
|  | parameter [0:0] CLKOUT2_CLKOUT2_FRAC_WF_R = 1'b0; | 
|  | parameter [0:0] CLKOUT2_CLKOUT2_NO_COUNT = 1'b1; | 
|  |  | 
|  | // CLKOUT3 | 
|  | parameter [5:0] CLKOUT3_CLKOUT1_HIGH_TIME = 6'd0; | 
|  | parameter [5:0] CLKOUT3_CLKOUT1_LOW_TIME = 6'd0; | 
|  | parameter [0:0] CLKOUT3_CLKOUT1_OUTPUT_ENABLE = 1'b0; | 
|  | parameter [2:0] CLKOUT3_CLKOUT1_PHASE_MUX = 3'd0; | 
|  | parameter [5:0] CLKOUT3_CLKOUT2_DELAY_TIME = 6'd0; | 
|  | parameter [0:0] CLKOUT3_CLKOUT2_EDGE = 1'b0; | 
|  | parameter [2:0] CLKOUT3_CLKOUT2_FRAC = 3'd0; | 
|  | parameter [0:0] CLKOUT3_CLKOUT2_FRAC_EN = 1'b0; | 
|  | parameter [0:0] CLKOUT3_CLKOUT2_FRAC_WF_R = 1'b0; | 
|  | parameter [0:0] CLKOUT3_CLKOUT2_NO_COUNT = 1'b1; | 
|  |  | 
|  | // CLKOUT4 | 
|  | parameter [5:0] CLKOUT4_CLKOUT1_HIGH_TIME = 6'd0; | 
|  | parameter [5:0] CLKOUT4_CLKOUT1_LOW_TIME = 6'd0; | 
|  | parameter [0:0] CLKOUT4_CLKOUT1_OUTPUT_ENABLE = 1'b0; | 
|  | parameter [2:0] CLKOUT4_CLKOUT1_PHASE_MUX = 3'd0; | 
|  | parameter [5:0] CLKOUT4_CLKOUT2_DELAY_TIME = 6'd0; | 
|  | parameter [0:0] CLKOUT4_CLKOUT2_EDGE = 1'b0; | 
|  | parameter [2:0] CLKOUT4_CLKOUT2_FRAC = 3'd0; | 
|  | parameter [0:0] CLKOUT4_CLKOUT2_FRAC_EN = 1'b0; | 
|  | parameter [0:0] CLKOUT4_CLKOUT2_FRAC_WF_R = 1'b0; | 
|  | parameter [0:0] CLKOUT4_CLKOUT2_NO_COUNT = 1'b1; | 
|  |  | 
|  | // CLKOUT5 | 
|  | parameter [5:0] CLKOUT5_CLKOUT1_HIGH_TIME = 6'd0; | 
|  | parameter [5:0] CLKOUT5_CLKOUT1_LOW_TIME = 6'd0; | 
|  | parameter [0:0] CLKOUT5_CLKOUT1_OUTPUT_ENABLE = 1'b0; | 
|  | parameter [2:0] CLKOUT5_CLKOUT1_PHASE_MUX = 3'd0; | 
|  | parameter [5:0] CLKOUT5_CLKOUT2_DELAY_TIME = 6'd0; | 
|  | parameter [0:0] CLKOUT5_CLKOUT2_EDGE = 1'b0; | 
|  | parameter [2:0] CLKOUT5_CLKOUT2_FRAC = 3'd0; | 
|  | parameter [0:0] CLKOUT5_CLKOUT2_FRAC_EN = 1'b0; | 
|  | parameter [0:0] CLKOUT5_CLKOUT2_FRAC_WF_R = 1'b0; | 
|  | parameter [0:0] CLKOUT5_CLKOUT2_NO_COUNT = 1'b1; | 
|  |  | 
|  |  | 
|  | // TODO: Compensation parameters | 
|  |  | 
|  | // TODO: How to simulate a PLL in verilog (i.e. the VCO) ??? | 
|  |  | 
|  | endmodule |