PLL时钟分频(运用ODDR2)

要求:利用锁相环IP核将系统的50MHz进行分频,同时也可以改变占空比(具体数值不重要)

为什么要用ODDR2?

如果不用,PLL_ip核得到的时钟信号在BUFG,直接连接到OBUF上,在编译map时会出现错误,为了避免错误可以在约束文件加一条约束,让编译器忽略时序约束的要求,直接通过普通逻辑资源连接,但是这样CLOCK输出的时延和JITTER都会变差(这种方式不好) (该解释来源于开发板数据手册)

IP核调用的时候,注意复位信号有取反哦。

问题:锁相环IP核可以输出4个时钟数据,但是使用ODDR2只能输出一路,还没找到解决方式,先把这问题留着,有解决方法也请大佬告诉我一下。


module clk_div(   
						input wire		sys_clk		,
						input wire 		sys_rst		,
						
//						output wire 	clk_100_50	,
//						output wire 	clk_25_25	,
						output wire 	clk_10_10	,
						output wire   	LOCKED


    );
	  

 pll_div instance_name
   (// Clock in ports
    .CLK_IN1(sys_clk),      // IN
    // Clock out ports
    .CLK_OUT1(CLK_OUT1),     // OUT
    .CLK_OUT2(CLK_OUT2),     // OUT
    .CLK_OUT3(CLK_OUT3),     // OUT
    // Status and control signals
    .RESET(~sys_rst),// IN              注意取反哦
    .LOCKED(LOCKED));      // OUT


///调用 ODDR2 使时钟信号通过普通 IO 输出//
ODDR2 
#(
			.DDR_ALIGNMENT("NONE"), // Sets output alignment to "NONE", "C0" or "C1"
			.INIT(1'b0), // Sets initial state of the Q output to 1'b0 or 1'b1
			.SRTYPE("SYNC") // Specifies "SYNC" or "ASYNC" set/reset
			) 
ODDR2_inst (
			.Q(clk_10_10), // 1-bit DDR output data    输出信号
			.C0(CLK_OUT2), // 1-bit clock input         锁相环输出
			.C1(~CLK_OUT2), // 1-bit clock input			锁相环输出取反
			.CE(1'b1), // 1-bit clock enable input
			.D0(1'b1), // 1-bit data input (associated with C0)
			.D1(1'b0), // 1-bit data input (associated with C1)
			.R(1'b0), // 1-bit reset input
			.S(1'b0) // 1-bit set input
		 );  
		 
endmodule

module vtf_clk_div;

	// Inputs
	reg sys_clk;
	reg sys_rst;

	// Outputs
	wire clk_10_10;
	wire LOCKED;

	// Instantiate the Unit Under Test (UUT)
	clk_div uut (
		.sys_clk(sys_clk), 
		.sys_rst(sys_rst), 
		.clk_10_10(clk_10_10), 
		.LOCKED(LOCKED)
	);

	initial begin
		// Initialize Inputs
		sys_clk = 0;
		sys_rst = 0;

		// Wait 100 ns for global reset to finish
		#100;
		sys_rst <= 1'b1;
		
		
        
		// Add stimulus here

	end
	
		always # 10 sys_clk = ~sys_clk;
      
endmodule

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值