Entity: MmcmEmulation
- File: MmcmEmulation.vhd
Diagram
Description
Company : SLAC National Accelerator Laboratory
Description:
This file is part of 'SLAC Firmware Standard Library'. It is subject to the license terms in the LICENSE.txt file found in the top-level directory of this distribution and at: https://confluence.slac.stanford.edu/display/ppareg/LICENSE.html. No part of 'SLAC Firmware Standard Library', including this file, may be copied, modified, propagated, or distributed except according to
the terms contained in the LICENSE.txt file.
Generics
| Generic name | Type | Value | Description |
|---|---|---|---|
| CLKIN_PERIOD_G | real | 10.0 | |
| DIVCLK_DIVIDE_G | integer range 1 to 106 | 2 | |
| CLKFBOUT_MULT_F_G | real range 1.0 to 128.0 | 20.0 | |
| CLKOUT0_DIVIDE_F_G | real range 1.0 to 128.0 | 1.0 | |
| CLKOUT1_DIVIDE_G | integer range 1 to 128 | 2 | |
| CLKOUT2_DIVIDE_G | integer range 1 to 128 | 3 | |
| CLKOUT3_DIVIDE_G | integer range 1 to 128 | 4 | |
| CLKOUT4_DIVIDE_G | integer range 1 to 128 | 5 | |
| CLKOUT5_DIVIDE_G | integer range 1 to 128 | 6 | |
| CLKOUT6_DIVIDE_G | integer range 1 to 128 | 7 | |
| CLKOUT0_PHASE_G | real range -360.0 to 360.0 | 0.0 | |
| CLKOUT1_PHASE_G | real range -360.0 to 360.0 | 0.0 | |
| CLKOUT2_PHASE_G | real range -360.0 to 360.0 | 0.0 | |
| CLKOUT3_PHASE_G | real range -360.0 to 360.0 | 0.0 | |
| CLKOUT4_PHASE_G | real range -360.0 to 360.0 | 0.0 | |
| CLKOUT5_PHASE_G | real range -360.0 to 360.0 | 0.0 | |
| CLKOUT6_PHASE_G | real range -360.0 to 360.0 | 0.0 | |
| CLKOUT0_DUTY_CYCLE_G | real range 0.01 to 0.99 | 0.5 | |
| CLKOUT1_DUTY_CYCLE_G | real range 0.01 to 0.99 | 0.5 | |
| CLKOUT2_DUTY_CYCLE_G | real range 0.01 to 0.99 | 0.5 | |
| CLKOUT3_DUTY_CYCLE_G | real range 0.01 to 0.99 | 0.5 | |
| CLKOUT4_DUTY_CYCLE_G | real range 0.01 to 0.99 | 0.5 | |
| CLKOUT5_DUTY_CYCLE_G | real range 0.01 to 0.99 | 0.5 | |
| CLKOUT6_DUTY_CYCLE_G | real range 0.01 to 0.99 | 0.5 | |
| CLKOUT0_RST_POLARITY_G | sl | '1' | |
| CLKOUT1_RST_POLARITY_G | sl | '1' | |
| CLKOUT2_RST_POLARITY_G | sl | '1' | |
| CLKOUT3_RST_POLARITY_G | sl | '1' | |
| CLKOUT4_RST_POLARITY_G | sl | '1' | |
| CLKOUT5_RST_POLARITY_G | sl | '1' | |
| CLKOUT6_RST_POLARITY_G | sl | '1' |
Ports
| Port name | Direction | Type | Description |
|---|---|---|---|
| CLKIN | in | sl | |
| RST | in | sl | |
| LOCKED | out | sl | |
| CLKOUT0 | out | sl | |
| CLKOUT1 | out | sl | |
| CLKOUT2 | out | sl | |
| CLKOUT3 | out | sl | |
| CLKOUT4 | out | sl | |
| CLKOUT5 | out | sl | |
| CLKOUT6 | out | sl |
Signals
| Name | Type | Description |
|---|---|---|
| phasedUp | slv(6 downto 0) | |
| clkOut | slv(6 downto 0) |
Constants
| Name | Type | Value | Description |
|---|---|---|---|
| VCO_PERIOD_REAL_C | real | (real(DIVCLK_DIVIDE_G)*CLKIN_PERIOD_G)/(CLKFBOUT_MULT_F_G) | |
| CLKOUT_PERIOD_REAL_C | RealArray | ( 0 => (VCO_PERIOD_REAL_CCLKOUT0_DIVIDE_F_G), 1 => (VCO_PERIOD_REAL_CCLKOUT1_DIVIDE_G), 2 => (VCO_PERIOD_REAL_CCLKOUT2_DIVIDE_G), 3 => (VCO_PERIOD_REAL_CCLKOUT3_DIVIDE_G), 4 => (VCO_PERIOD_REAL_CCLKOUT4_DIVIDE_G), 5 => (VCO_PERIOD_REAL_CCLKOUT5_DIVIDE_G), 6 => (VCO_PERIOD_REAL_C*CLKOUT6_DIVIDE_G)) |
|
| CLKOUT_PERIOD_C | TimeArray | ( 0 => (CLKOUT_PERIOD_REAL_C(0)(1 ns)), 1 => (CLKOUT_PERIOD_REAL_C(1)(1 ns)), 2 => (CLKOUT_PERIOD_REAL_C(2)(1 ns)), 3 => (CLKOUT_PERIOD_REAL_C(3)(1 ns)), 4 => (CLKOUT_PERIOD_REAL_C(4)(1 ns)), 5 => (CLKOUT_PERIOD_REAL_C(5)(1 ns)), 6 => (CLKOUT_PERIOD_REAL_C(6)*(1 ns))) |
|
| PHASE_OFFSET_C | TimeArray(6 downto 0) | (others => (1 ps)) | place holder for future feature support |
| CLK_HI_CYCLE_C | TimeArray | ( 0 => (CLKOUT_PERIOD_C(0)CLKOUT0_DUTY_CYCLE_G), 1 => (CLKOUT_PERIOD_C(1)CLKOUT1_DUTY_CYCLE_G), 2 => (CLKOUT_PERIOD_C(2)CLKOUT2_DUTY_CYCLE_G), 3 => (CLKOUT_PERIOD_C(3)CLKOUT3_DUTY_CYCLE_G), 4 => (CLKOUT_PERIOD_C(4)CLKOUT4_DUTY_CYCLE_G), 5 => (CLKOUT_PERIOD_C(5)CLKOUT5_DUTY_CYCLE_G), 6 => (CLKOUT_PERIOD_C(6)*CLKOUT6_DUTY_CYCLE_G)) |
|
| CLK_LO_CYCLE_C | TimeArray | ( 0 => (CLKOUT_PERIOD_C(0)-CLK_HI_CYCLE_C(0)), 1 => (CLKOUT_PERIOD_C(1)-CLK_HI_CYCLE_C(1)), 2 => (CLKOUT_PERIOD_C(2)-CLK_HI_CYCLE_C(2)), 3 => (CLKOUT_PERIOD_C(3)-CLK_HI_CYCLE_C(3)), 4 => (CLKOUT_PERIOD_C(4)-CLK_HI_CYCLE_C(4)), 5 => (CLKOUT_PERIOD_C(5)-CLK_HI_CYCLE_C(5)), 6 => (CLKOUT_PERIOD_C(6)-CLK_HI_CYCLE_C(6))) |
|
| CLKOUT_RST_POLARITY_C | slv(6 downto 0) | (CLKOUT6_RST_POLARITY_G & CLKOUT5_RST_POLARITY_G & CLKOUT4_RST_POLARITY_G & CLKOUT3_RST_POLARITY_G & CLKOUT2_RST_POLARITY_G & CLKOUT1_RST_POLARITY_G & CLKOUT0_RST_POLARITY_G) |