xilinx FPGA DCM IP核的使用(VHDL&ISE)

目录

1.新建工程之后 建一个ip核文件:

 2.配置ip核:

 3.编写顶层文件或者激励文件:(一定一定点击下面这个例化模板 去对ip核进行例化)

4.查看rtl图:

 5.编写测试文件:


1.新建工程之后 建一个ip核文件:

 2.配置ip核:

根据自己的器件型号,选择单时钟:

可以取消rst 会有一个弹窗 点击ok即可

 然后勾选上fx的输出,就可以调整输出频率,然后选择时钟输入 点击next

 然后填写输出时钟,并点击计算 最后finish完成

 3.编写顶层文件或者激励文件:(一定一定点击下面这个例化模板 去对ip核进行例化)

点开是一个.vho的文件,里面就有你建的ip核的元件声明和例化(ip核的名字跟顶层文件或者其他的测试或者其他模块名字不要重!!!我找了一周的错) 

 这里我选择再新建1个ip核,对时钟进行多个分频输出:

然后编写顶层文件:

顶层代码如下:(VHDL)


library IEEE;
use IEEE.STD_LOGIC_1164.ALL;

entity clk_top is
PORT(
		clk_in : IN std_logic;          
		clk_40m : OUT std_logic;
		clk_50m : OUT std_logic
		);
end clk_top;

architecture Behavioral of clk_top is

signal CLKIN_IBUFG_OUT1 :  std_logic;
signal CLK0_OUT1 :  std_logic;
signal LOCKED_OUT1 :  std_logic;
signal CLKIN_IBUFG_OUT2 :  std_logic;
signal CLK0_OUT2 :  std_logic;
        
COMPONENT clk
	PORT(
		CLKIN_IN : IN std_logic;          
		CLKFX_OUT : OUT std_logic;
		CLKIN_IBUFG_OUT : OUT std_logic;
		CLK0_OUT : OUT std_logic;
		LOCKED_OUT : OUT std_logic
		);
	END COMPONENT;

COMPONENT clk1
	PORT(
		CLKIN_IN : IN std_logic;          
		CLKFX_OUT : OUT std_logic;
		CLKIN_IBUFG_OUT : OUT std_logic;
		CLK0_OUT : OUT std_logic
		);
	END COMPONENT;
    
begin

u0: clk PORT MAP(
		CLKIN_IN => clk_in,
		CLKFX_OUT => clk_40m,
		CLKIN_IBUFG_OUT => CLKIN_IBUFG_OUT1,
		CLK0_OUT => CLK0_OUT1,
		LOCKED_OUT => LOCKED_OUT1
	);
    
u1: clk1 PORT MAP(
		CLKIN_IN => clk_in,
		CLKFX_OUT => clk_50m,
		CLKIN_IBUFG_OUT => CLKIN_IBUFG_OUT2,
		CLK0_OUT => CLK0_OUT2
	);
    
end Behavioral;

4.查看rtl图:

 5.编写测试文件:

 

 tb文件如下:


LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
 
ENTITY clk_top_tb IS
END clk_top_tb;
 
ARCHITECTURE behavior OF clk_top_tb IS 
 
    -- Component Declaration for the Unit Under Test (UUT)
 
    COMPONENT clk_top
    PORT(
         clk_in : IN  std_logic;
         clk_40m : OUT  std_logic;
         clk_50m : OUT  std_logic
        );
    END COMPONENT;
    

   --Inputs
   signal clk_in : std_logic := '0';

 	--Outputs
   signal clk_40m : std_logic;
   signal clk_50m : std_logic;

   -- Clock period definitions
   constant clk_in_period : time := 10 ns;
   
 
BEGIN
 
	-- Instantiate the Unit Under Test (UUT)
   uut: clk_top PORT MAP (
          clk_in => clk_in,
          clk_40m => clk_40m,
          clk_50m => clk_50m
        );

   -- Clock process definitions
   clk_in_process :process
   begin
		clk_in <= '0';
		wait for clk_in_period/2;
		clk_in <= '1';
		wait for clk_in_period/2;
   end process;
 
   
   

END;

仿真图如下:

 工程文件:https://download.csdn.net/download/qq_43811597/86438305

  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值