vivado代码编写——倍频(使用IP核)

FPGA的倍频用代码来实现比较复杂,简单的方法就是使用PLL核。

PLL全称是Phase Locked Loop,即锁相环,是一种反馈控制电路。PLL对时钟网络进行系统级的时钟管理和偏移控制,具有时钟倍频、分频、相位偏移和可编程占空比等功能。

打开工程FreDivDou,

使用IP核

点击PROJECT MANAGER中的IP Catalog,

IP Catalog

在IP Catalog的Search中输入clock,双击下面出现的FPGA Feathers and

Design——Clocking——Clocking Wizard,

Clocking Options

在Clocking Options界面内,Primitive中选择PLL,Input Clock Information中将Primary的Input Frequency改为50MHz,点击OK,

Output Clocks

在Output Clocks界面中,将clk_out1的Output Freq改为100MHz(50Mhz的2倍频),将clk_out2的Output

Freq改为150MHz(50Mhz的3倍频),点击OK,

Create Directory

点击OK,

Generate Output Products

点击Generate,生成PLL的ip核clk_wiz_0,

生产IP核

双击Sources——IP Sources——clk_wiz_0——Instantiation Template——clk_wiz_0.veo,在clk_wiz_0.veo中

显示该IP核的实例化模板。

IP核的实例化模板

在FreDivDou.v中继续添加verilog代码,


moduleFreDivDou(

input  clk_i,

input  rst_n_i,


outputdiv2_o,

outputdiv3_o,

outputdiv4_o,

outputdou2_o,

outputdou3_o

);


 wire locked;

  clk_wiz_0 instance_name

   (

    // Clock out ports

    .clk_out1(dou2_o),     // output clk_out1

    .clk_out2(dou3_o),     // output clk_out2

    // Status and control signals

    .reset(~rst_n_i), // input reset,这里要加上取反负号,是因为生成PLL时,默//认选择的是高电平有效,而在本电路中,初始上电时rst_n_i为低电平,之后一直保持

//低电平

    .locked(locked),       // output locked

   // Clock in ports

    .clk_in1(clk_i));      // input clk_in1

Endmodule

你可能感兴趣的:(vivado代码编写——倍频(使用IP核))