4 软件实现
在设计的总体构思和器件选择完成后,必须进行的工作是建立设计输入文件,该文件主要用于描述所设计电路的逻辑功能。这里使用的是XILINX公司提供的开发工具FOUNDATION 4.1。本设计采用硬件描述语言VHDL来设计,其部分程序如下:
entity lvds is
port (
pclk: in STD LOGIC;
pclk_62: out std_logic_vector(31 downto 0);
pclk_4: out std_logic_vector(31 downto 0));
end lvds;
architecture lvds_arch of lvds is
component clkdll
port( clkin: in std_logic;
clkfb : in std_logic;
rst: in std_logic;
clk0: out std_logic;
clk90 : out std_logic;
clk180: out std_logic;
clk270: out std_logic;
clk2x : out std_logic;
clkdv: out std_logic;
locked: out std_logic);
end component;
begin
reset n<=‘0' ;
uibuf : ibufg port map (
i => pclk,
o => clk);
udll: clkdll port map( clkin => clk,
rst => reset_n,
clkfb => clkfb,
clk0 => clk0,
clk90 => open,
clk180 => open,
clk270 => open,
clk2x => clk2x,
clkdv => clkdv,
locked => locked
);
bufg_clk0: bufg port map ( i => clk0,
o=>clk_int2;
);
clkfb<=clk_int2;
process(clk2x);
begin
if clk2x′event and clk2x=′1′ then
clk_int <=clk int2;
clk_int3<= clkdv;
pclk_62(0)<=clk_int;
pclk_62(1)<=clk_int;
…
…
pclk_62(31)<=clk_int;
pclk_4(0)<=clk_int3;
pclk_4(1)<=clk_int3;
…
…
pclk_4(31)<=clk_int3;
end if;
end process;
end lvds_arch;
,基于FPGA的高频时钟的分频和分配设计