📄 altera_mf.vhd
字号:
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 := 0;signal cntr_e2_delay : integer := 0;signal cntr_e3_delay : integer := 0;signal transfer : std_logic := '0';signal scan_data : std_logic_vector(288 downto 0) := (OTHERS => '0');signal ena0 : std_logic;signal ena1 : std_logic;signal ena2 : std_logic;signal ena3 : std_logic;signal ena4 : std_logic;signal ena5 : std_logic;signal extena0 : std_logic;signal extena1 : std_logic;signal extena2 : std_logic;signal extena3 : std_logic;signal clk0_tmp : std_logic;signal clk1_tmp : std_logic;signal clk2_tmp : std_logic;signal clk3_tmp : std_logic;signal clk4_tmp : std_logic;signal clk5_tmp : std_logic;signal extclk0_tmp : std_logic;signal extclk1_tmp : std_logic;signal extclk2_tmp : std_logic;signal extclk3_tmp : std_logic;signal not_clk0_tmp : std_logic;signal not_clk1_tmp : std_logic;signal not_clk2_tmp : std_logic;signal not_clk3_tmp : std_logic;signal not_clk4_tmp : std_logic;signal not_clk5_tmp : std_logic;signal not_extclk0_tmp : std_logic;signal not_extclk1_tmp : std_logic;signal not_extclk2_tmp : std_logic;signal not_extclk3_tmp : std_logic;signal clkin : std_logic := '0';signal gate_locked : std_logic := '0';signal lock : std_logic := '0';signal about_to_lock : boolean := false;signal quiet_period_violation : boolean := false;signal reconfig_err : boolean := false;signal scanclr_violation : boolean := false;signal scanclr_clk_violation : boolean := false;signal inclk_l0 : std_logic;signal inclk_l1 : std_logic;signal inclk_g0 : std_logic;signal inclk_g1 : std_logic;signal inclk_g2 : std_logic;signal inclk_g3 : std_logic;signal inclk_e0 : std_logic;signal inclk_e1 : std_logic;signal inclk_e2 : std_logic;signal inclk_e3 : std_logic;signal inclk_m : std_logic;signal devpor : std_logic;signal devclrn : std_logic;signal inclk0_ipd : std_logic;signal inclk1_ipd : std_logic;signal ena_ipd : std_logic;signal pfdena_ipd : std_logic;signal comparator_ipd : std_logic;signal areset_ipd : std_logic;signal fbin_ipd : std_logic;signal clkena0_ipd : std_logic;signal clkena1_ipd : std_logic;signal clkena2_ipd : std_logic;signal clkena3_ipd : std_logic;signal clkena4_ipd : std_logic;signal clkena5_ipd : std_logic;signal extclkena0_ipd : std_logic;signal extclkena1_ipd : std_logic;signal extclkena2_ipd : std_logic;signal extclkena3_ipd : std_logic;signal scanclk_ipd : std_logic;signal scanaclr_ipd : std_logic;signal scandata_ipd : std_logic;signal clkswitch_ipd : std_logic;signal lvds_dffa_clk : std_logic;signal lvds_dffb_clk : std_logic;signal lvds_dffc_clk : std_logic;signal lvds_dffd_clk : std_logic;signal dffa_out : std_logic := '0';signal dffb_out : std_logic := '0';signal dffc_out : std_logic := '0';signal dffd_out : std_logic := '0';signal nce_temp : std_logic := '0';signal nce_l0 : std_logic := '0';signal nce_l1 : std_logic := '0';signal inclk_l0_dly1 : std_logic := '0';signal inclk_l0_dly2 : std_logic := '0';signal inclk_l0_dly3 : std_logic := '0';signal inclk_l0_dly4 : std_logic := '0';signal inclk_l0_dly5 : std_logic := '0';signal inclk_l0_dly6 : std_logic := '0';signal inclk_l1_dly1 : std_logic := '0';signal inclk_l1_dly2 : std_logic := '0';signal inclk_l1_dly3 : std_logic := '0';signal inclk_l1_dly4 : std_logic := '0';signal inclk_l1_dly5 : std_logic := '0';signal inclk_l1_dly6 : std_logic := '0';signal sig_offset : time := 0 ps;signal sig_refclk_time : time := 0 ps;signal sig_fbclk_period : time := 0 ps;signal sig_vco_period_was_phase_adjusted : boolean := false;signal sig_phase_adjust_was_scheduled : boolean := false;signal sig_stop_vco : std_logic := '0';signal sig_m_times_vco_period : time := 0 ps;signal sig_new_m_times_vco_period : time := 0 ps;signal sig_got_refclk_posedge : boolean := false;signal sig_got_fbclk_posedge : boolean := false;signal sig_got_second_refclk : boolean := false;signal m_delay : integer := 0;signal n_delay : integer := 0;signal sig_curr_clock : string(1 to 6) := primary_clock;signal inclk1_tmp : std_logic := '0';signal scan_chain_length : integer := GPP_SCAN_CHAIN;signal ext_fbk_cntr_high : integer := 0;signal ext_fbk_cntr_low : integer := 0;signal ext_fbk_cntr_delay : integer := 0;signal ext_fbk_cntr_ph : integer := 0;signal ext_fbk_cntr_initial : integer := 1;signal ext_fbk_cntr : string(1 to 2) := "e0";signal ext_fbk_cntr_mode : string(1 to 6) := "bypass";signal enable0_tmp : std_logic := '0';signal enable1_tmp : std_logic := '0';signal reset_low : std_logic := '0';signal scandataout_tmp : std_logic := '0';signal sig_refclk_period : time := (inclk0_input_frequency * 1 ps) * n;signal schedule_vco : std_logic := '0';signal areset_ena_sig : std_logic := '0';COMPONENT MF_mn_cntr PORT ( clk : IN std_logic; reset : IN std_logic; cout : OUT std_logic; initial_value : IN integer := 1; modulus : IN integer; time_delay : IN integer; ph : IN integer := 0 );END COMPONENT;COMPONENT stx_scale_cntr PORT ( clk : IN std_logic; reset : IN std_logic; cout : OUT std_logic; initial : IN integer := 1; high : IN integer := 1; low : IN integer := 1; mode : IN string := "bypass"; time_delay : IN integer := 0; ph_tap : IN natural );END COMPONENT;component DFFPport( Q : out STD_LOGIC := '0'; D : in STD_LOGIC := '1'; CLRN : in STD_LOGIC := '1'; PRN : in STD_LOGIC := '1'; CLK : in STD_LOGIC := '0'; ENA : in STD_LOGIC := '1');end component;COMPONENT MF_PLL_REG PORT( Q : out STD_LOGIC := '0'; D : in STD_LOGIC := '1'; CLRN : in STD_LOGIC := '1'; PRN : in STD_LOGIC := '1'; CLK : in STD_LOGIC := '0'; ENA : in STD_LOGIC := '1');END COMPONENT;begin ---------------------- -- INPUT PATH DELAYs ---------------------- WireDelay : block begin inclk0_ipd <= inclk(0); inclk1_ipd <= inclk(1); areset_ipd <= areset; ena_ipd <= ena; fbin_ipd <= fbin; pfdena_ipd <= pfdena; clkena0_ipd <= clkena(0); clkena1_ipd <= clkena(1); clkena2_ipd <= clkena(2); clkena3_ipd <= clkena(3); clkena4_ipd <= clkena(4); clkena5_ipd <= clkena(5); extclkena0_ipd <= extclkena(0); extclkena1_ipd <= extclkena(1); extclkena2_ipd <= extclkena(2); extclkena3_ipd <= extclkena(3); scanclk_ipd <= scanclk; scanaclr_ipd <= scanaclr; scandata_ipd <= scandata; comparator_ipd <= comparator; clkswitch_ipd <= clkswitch; end block;-- User to Advanced parameter conversion i_extclk3_counter <= "e3" when m=0 else extclk3_counter; i_extclk2_counter <= "e2" when m=0 else extclk2_counter; i_extclk1_counter <= "e1" when m=0 else extclk1_counter; i_extclk0_counter <= "e0" when m=0 else extclk0_counter; i_clk5_counter <= "l1" when m=0 else clk5_counter; i_clk4_counter <= "l0" when m=0 else clk4_counter; i_clk3_counter <= "g3" when m=0 else clk3_counter; i_clk2_counter <= "g2" when m=0 else clk2_counter; i_clk1_counter <= "g1" when m=0 else clk1_counter; i_clk0_counter <= "l0" when m=0 and pll_type = "lvds" else "g0" when m=0 else clk0_counter;-- end parameter conversion inclk_m <= extclk0_tmp when operation_mode = "external_feedback" and feedback_source = "extclk0" else extclk1_tmp when operation_mode = "external_feedback" and feedback_source = "extclk1" else extclk2_tmp when operation_mode = "external_feedback" and feedback_source = "extclk2" else extclk3_tmp when operation_mode = "external_feedback" and feedback_source = "extclk3" else vco_out(m_ph_val); ext_fbk_cntr <= "e0" when (feedback_source = "extclk0" and extclk0_counter = "e0") or (feedback_source = "extclk1" and extclk1_counter = "e0") or (feedback_source = "extclk2" and extclk2_counter = "e0") or (feedback_source = "extclk3" and extclk3_counter = "e0") else "e1" when (feedback_source = "extclk0" and extclk0_counter = "e1") or (feedback_source = "extclk1" and extclk1_counter = "e1") or (feedback_source = "extclk2" and extclk2_counter = "e1") or (feedback_source = "extclk3" and extclk3_counter = "e1") else "e2" when (feedback_source = "extclk0" and extclk0_counter = "e2") or (feedback_source = "extclk1" and extclk1_counter = "e2") or (feedback_source = "extclk2" and extclk2_counter = "e2") or (feedback_source = "extclk3" and extclk3_counter = "e2") else "e3" when (feedback_source = "extclk0" and extclk0_counter = "e3") or (feedback_source = "extclk1" and extclk1_counter = "e3") or (feedback_source = "extclk2" and extclk2_counter = "e3") or (feedback_source = "extclk3" and extclk3_counter = "e3") else "e0"; ext_fbk_cntr_high <= e0_high_val when ext_fbk_cntr = "e0" else e1_high_val when ext_fbk_cntr = "e1" else e2_high_val when ext_fbk_cntr = "e2" else e3_high_val when ext_fbk_cntr = "e3" else 1; ext_fbk_cntr_low <= e0_low_val when ext_fbk_cntr = "e0" else e1_low_val when ext_fbk_cntr = "e1" else e2_low_val when ext_fbk_cntr = "e2" else e3_low_val when ext_fbk_cntr = "e3" else 1; ext_fbk_cntr_delay <= e0_time_delay_val when ext_fbk_cntr = "e0" else e1_time_delay_val when ext_fbk_cntr = "e1" else e2_time_delay_val when ext_fbk_cntr = "e2" else e3_time_delay_val when ext_fbk_cntr = "e3" else 0; ext_fbk_cntr_ph <= e0_ph_val when ext_fbk_cntr = "e0" else e1_ph_val when ext_fbk_cntr = "e1" else e2_ph_val when ext_fbk_cntr = "e2" else e3_ph_val when ext_fbk_cntr = "e3" else 0; ext_fbk_cntr_initial <= e0_initial_val when ext_fbk_cntr = "e0" else e1_initial_val when ext_fbk_cntr = "e1" else e2_initial_val when ext_fbk_cntr = "e2" else e3_initial_val when ext_fbk_cntr = "e3" else 0; ext_fbk_cntr_mode <= e0_mode_val when ext_fbk_cntr
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -