altera_mf.vhd
来自「free hardware ip core about sparcv8,a so」· VHDL 代码 · 共 1,741 行 · 第 1/5 页
VHD
1,741 行
clk1_time_delay : string := "0"; clk1_duty_cycle : integer := 50; clk2_multiply_by : integer := 1; clk2_divide_by : integer := 1; clk2_phase_shift : string := "0"; clk2_time_delay : string := "0"; clk2_duty_cycle : integer := 50; clk3_multiply_by : integer := 1; clk3_divide_by : integer := 1; clk3_phase_shift : string := "0"; clk3_time_delay : string := "0"; clk3_duty_cycle : integer := 50; clk4_multiply_by : integer := 1; clk4_divide_by : integer := 1; clk4_phase_shift : string := "0"; clk4_time_delay : string := "0"; clk4_duty_cycle : integer := 50; clk5_multiply_by : integer := 1; clk5_divide_by : integer := 1; clk5_phase_shift : string := "0"; clk5_time_delay : string := "0"; clk5_duty_cycle : integer := 50; extclk0_multiply_by : integer := 1; extclk0_divide_by : integer := 1; extclk0_phase_shift : string := "0"; extclk0_time_delay : string := "0"; extclk0_duty_cycle : integer := 50; extclk1_multiply_by : integer := 1; extclk1_divide_by : integer := 1; extclk1_phase_shift : string := "0"; extclk1_time_delay : string := "0"; extclk1_duty_cycle : integer := 50; extclk2_multiply_by : integer := 1; extclk2_divide_by : integer := 1; extclk2_phase_shift : string := "0"; extclk2_time_delay : string := "0"; extclk2_duty_cycle : integer := 50; extclk3_multiply_by : integer := 1; extclk3_divide_by : integer := 1; extclk3_phase_shift : string := "0"; extclk3_time_delay : string := "0"; extclk3_duty_cycle : integer := 50; primary_clock : string := "inclk0"; inclk0_input_frequency : integer := 10000; inclk1_input_frequency : integer := 10000; gate_lock_signal : string := "no"; gate_lock_counter : integer := 1; valid_lock_multiplier : integer := 5; invalid_lock_multiplier : integer := 5; switch_over_on_lossclk : string := "off"; switch_over_on_gated_lock : string := "off"; switch_over_counter : integer := 1; enable_switch_over_counter : string := "off"; feedback_source : string := "extclk0"; bandwidth_type : string := "auto"; bandwidth : integer := 0; spread_frequency : integer := 0; down_spread : string := "0.0"; pfd_min : integer := 0; pfd_max : integer := 0; vco_min : integer := 0; vco_max : integer := 0; vco_center : integer := 0; -- ADVANCED USER PARAMETERS m_initial : integer := 1; m : integer := 1; n : integer := 1; m2 : integer := 1; n2 : integer := 1; ss : integer := 0; l0_high : integer := 1; l0_low : integer := 1; l0_initial : integer := 1; l0_mode : string := "bypass"; l0_ph : integer := 0; l0_time_delay : integer := 0; l1_high : integer := 1; l1_low : integer := 1; l1_initial : integer := 1; l1_mode : string := "bypass"; l1_ph : integer := 0; l1_time_delay : integer := 0; g0_high : integer := 1; g0_low : integer := 1; g0_initial : integer := 1; g0_mode : string := "bypass"; g0_ph : integer := 0; g0_time_delay : integer := 0; g1_high : integer := 1; g1_low : integer := 1; g1_initial : integer := 1; g1_mode : string := "bypass"; g1_ph : integer := 0; g1_time_delay : integer := 0; g2_high : integer := 1; g2_low : integer := 1; g2_initial : integer := 1; g2_mode : string := "bypass"; g2_ph : integer := 0; g2_time_delay : integer := 0; g3_high : integer := 1; g3_low : integer := 1; g3_initial : integer := 1; g3_mode : string := "bypass"; g3_ph : integer := 0; g3_time_delay : integer := 0; e0_high : integer := 1; e0_low : integer := 1; e0_initial : integer := 1; e0_mode : string := "bypass"; e0_ph : integer := 0; e0_time_delay : integer := 0; e1_high : integer := 1; e1_low : integer := 1; e1_initial : integer := 1; e1_mode : string := "bypass"; e1_ph : integer := 0; e1_time_delay : integer := 0; e2_high : integer := 1; e2_low : integer := 1; e2_initial : integer := 1; e2_mode : string := "bypass"; e2_ph : integer := 0; e2_time_delay : integer := 0; e3_high : integer := 1; e3_low : integer := 1; e3_initial : integer := 1; e3_mode : string := "bypass"; e3_ph : integer := 0; e3_time_delay : integer := 0; m_ph : integer := 0; m_time_delay : integer := 0; n_time_delay : integer := 0; extclk0_counter : string := "e0"; extclk1_counter : string := "e1"; extclk2_counter : string := "e2"; extclk3_counter : string := "e3"; clk0_counter : string := "g0"; clk1_counter : string := "g1"; clk2_counter : string := "g2"; clk3_counter : string := "g3"; clk4_counter : string := "l0"; clk5_counter : string := "l1"; -- LVDS mode parameters enable0_counter : string := "l0"; enable1_counter : string := "l0"; charge_pump_current : integer := 0; loop_filter_r : string := "1.0"; loop_filter_c : integer := 1; common_rx_tx : string := "off"; rx_outclock_resource : string := "auto"; use_vco_bypass : string := "false"; use_dc_coupling : string := "false"; pll_compensation_delay : integer := 0; simulation_type : string := "timing"; skip_vco : string := "off");port ( inclk : in std_logic_vector(1 downto 0); fbin : in std_logic; ena : in std_logic; clkswitch : in std_logic; areset : in std_logic; pfdena : in std_logic; clkena : in std_logic_vector(5 downto 0); extclkena : in std_logic_vector(3 downto 0); scanaclr : in std_logic; scandata : in std_logic; scanclk : in std_logic; clk : out std_logic_vector(5 downto 0); extclk : out std_logic_vector(3 downto 0); clkbad : out std_logic_vector(1 downto 0); activeclock : out std_logic; locked : out std_logic; clkloss : out std_logic; scandataout : out std_logic; -- lvds specific ports comparator : in std_logic := '0'; enable0 : out std_logic; enable1 : out std_logic);END MF_stratix_pll;ARCHITECTURE vital_pll of MF_stratix_pll is-- internal advanced parameter signalssignal i_vco_min : natural;signal i_vco_max : natural;signal i_vco_center : natural;signal i_pfd_min : natural;signal i_pfd_max : natural;signal l0_ph_val : natural;signal l1_ph_val : natural;signal g0_ph_val : natural;signal g1_ph_val : natural;signal g2_ph_val : natural;signal g3_ph_val : natural;signal e0_ph_val : natural;signal e1_ph_val : natural;signal e2_ph_val : natural;signal e3_ph_val : natural;signal i_extclk3_counter : string(1 to 2) := "e3";signal i_extclk2_counter : string(1 to 2) := "e2";signal i_extclk1_counter : string(1 to 2) := "e1";signal i_extclk0_counter : string(1 to 2) := "e0";signal i_clk5_counter : string(1 to 2) := "l1";signal i_clk4_counter : string(1 to 2) := "l0";signal i_clk3_counter : string(1 to 2) := "g3";signal i_clk2_counter : string(1 to 2) := "g2";signal i_clk1_counter : string(1 to 2) := "g1";signal i_clk0_counter : string(1 to 2) := "g0";signal i_charge_pump_current : natural;signal i_loop_filter_r : natural;-- end internal advanced parameter signals-- CONSTANTSCONSTANT EGPP_SCAN_CHAIN : integer := 289;CONSTANT GPP_SCAN_CHAIN : integer := 193;CONSTANT TRST : time := 5000 ps;CONSTANT TRSTCLK : time := 5000 ps;-- signalssignal vcc : std_logic := '1';signal fbclk : std_logic;signal refclk : std_logic;signal l0_clk : std_logic;signal l1_clk : std_logic;signal g0_clk : std_logic;signal g1_clk : std_logic;signal g2_clk : std_logic;signal g3_clk : std_logic;signal e0_clk : std_logic;signal e1_clk : std_logic;signal e2_clk : std_logic;signal e3_clk : std_logic;signal vco_out : std_logic_vector(7 downto 0) := (OTHERS => '0');-- signals to assign values to counter paramssignal m_val : integer := 1;signal m2_val : integer := 1;signal n_val : integer := 1;signal n2_val : integer := 1;signal m_time_delay_val, n_time_delay_val : integer := 0;signal m_ph_val : integer := 0;signal m_initial_val : integer := m_initial;signal l0_initial_val : integer := l0_initial;signal l1_initial_val : integer := l1_initial;signal l0_high_val : integer := l0_high;signal l1_high_val : integer := l1_high;signal l0_low_val : integer := l0_low;signal l1_low_val : integer := l1_low;signal l0_mode_val : string(1 to 6) := "bypass";signal l1_mode_val : string(1 to 6) := "bypass";signal l0_time_delay_val : integer := l0_time_delay;signal l1_time_delay_val : integer := l1_time_delay;signal g0_initial_val : integer := g0_initial;signal g1_initial_val : integer := g1_initial;signal g2_initial_val : integer := g2_initial;signal g3_initial_val : integer := g3_initial;signal g0_high_val : integer := g0_high;signal g1_high_val : integer := g1_high;signal g2_high_val : integer := g2_high;signal g3_high_val : integer := g3_high;signal g0_mode_val : string(1 to 6) := "bypass";signal g1_mode_val : string(1 to 6) := "bypass";signal g2_mode_val : string(1 to 6) := "bypass";signal g3_mode_val : string(1 to 6) := "bypass";signal g0_low_val : integer := g0_low;signal g1_low_val : integer := g1_low;signal g2_low_val : integer := g2_low;signal g3_low_val : integer := g3_low;signal g0_time_delay_val : integer := g0_time_delay;signal g1_time_delay_val : integer := g1_time_delay;signal g2_time_delay_val : integer := g2_time_delay;signal g3_time_delay_val : integer := g3_time_delay;signal e0_initial_val : integer := e0_initial;signal e1_initial_val : integer := e1_initial;signal e2_initial_val : integer := e2_initial;signal e3_initial_val : integer := e3_initial;signal e0_high_val : integer := e0_high;signal e1_high_val : integer := e1_high;signal e2_high_val : integer := e2_high;signal e3_high_val : integer := e3_high;signal e0_low_val : integer := e0_low;signal e1_low_val : integer := e1_low;signal e2_low_val : integer := e2_low;signal e3_low_val : integer := e3_low;signal e0_time_delay_val : integer := e0_time_delay;signal e1_time_delay_val : integer := e1_time_delay;signal e2_time_delay_val : integer := e2_time_delay;signal e3_time_delay_val : integer := e3_time_delay;signal e0_mode_val : string(1 to 6) := "bypass";signal e1_mode_val : string(1 to 6) := "bypass";signal e2_mode_val : string(1 to 6) := "bypass";signal e3_mode_val : string(1 to 6) := "bypass";signal m_mode_val : string(1 to 6) := " ";signal m2_mode_val : string(1 to 6) := " ";signal n_mode_val : string(1 to 6) := " ";signal n2_mode_val : string(1 to 6) := " ";signal cntr_e0_initial : integer := 1;signal cntr_e1_initial : integer := 1;signal cntr_e2_initial : integer := 1;signal cntr_e3_initial : integer := 1;signal ext_fbk_delay : integer := 0;signal cntr_e0_delay : integer := 0;signal cntr_e1_delay : integer :=
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?