axi_clkgen: Added a second input clock option
parent
afc4274ee3
commit
e7fd964874
|
@ -41,6 +41,7 @@ module axi_clkgen (
|
||||||
// clocks
|
// clocks
|
||||||
|
|
||||||
clk,
|
clk,
|
||||||
|
clk2,
|
||||||
clk_0,
|
clk_0,
|
||||||
clk_1,
|
clk_1,
|
||||||
|
|
||||||
|
@ -71,6 +72,7 @@ module axi_clkgen (
|
||||||
parameter ID = 0;
|
parameter ID = 0;
|
||||||
parameter DEVICE_TYPE = 0;
|
parameter DEVICE_TYPE = 0;
|
||||||
parameter CLKIN_PERIOD = 5.0;
|
parameter CLKIN_PERIOD = 5.0;
|
||||||
|
parameter CLKIN2_PERIOD = 5.0;
|
||||||
parameter VCO_DIV = 11;
|
parameter VCO_DIV = 11;
|
||||||
parameter VCO_MUL = 49;
|
parameter VCO_MUL = 49;
|
||||||
parameter CLK0_DIV = 6;
|
parameter CLK0_DIV = 6;
|
||||||
|
@ -79,6 +81,7 @@ module axi_clkgen (
|
||||||
// clocks
|
// clocks
|
||||||
|
|
||||||
input clk;
|
input clk;
|
||||||
|
input clk2;
|
||||||
output clk_0;
|
output clk_0;
|
||||||
output clk_1;
|
output clk_1;
|
||||||
|
|
||||||
|
@ -191,12 +194,14 @@ module axi_clkgen (
|
||||||
ad_mmcm_drp #(
|
ad_mmcm_drp #(
|
||||||
.MMCM_DEVICE_TYPE (DEVICE_TYPE),
|
.MMCM_DEVICE_TYPE (DEVICE_TYPE),
|
||||||
.MMCM_CLKIN_PERIOD (CLKIN_PERIOD),
|
.MMCM_CLKIN_PERIOD (CLKIN_PERIOD),
|
||||||
|
.MMCM_CLKIN2_PERIOD (CLKIN2_PERIOD),
|
||||||
.MMCM_VCO_DIV (VCO_DIV),
|
.MMCM_VCO_DIV (VCO_DIV),
|
||||||
.MMCM_VCO_MUL (VCO_MUL),
|
.MMCM_VCO_MUL (VCO_MUL),
|
||||||
.MMCM_CLK0_DIV (CLK0_DIV),
|
.MMCM_CLK0_DIV (CLK0_DIV),
|
||||||
.MMCM_CLK1_DIV (CLK1_DIV))
|
.MMCM_CLK1_DIV (CLK1_DIV))
|
||||||
i_mmcm_drp (
|
i_mmcm_drp (
|
||||||
.clk (clk),
|
.clk (clk),
|
||||||
|
.clk2 (clk2),
|
||||||
.mmcm_rst (mmcm_rst),
|
.mmcm_rst (mmcm_rst),
|
||||||
.mmcm_clk_0 (clk_0),
|
.mmcm_clk_0 (clk_0),
|
||||||
.mmcm_clk_1 (clk_1),
|
.mmcm_clk_1 (clk_1),
|
||||||
|
|
|
@ -17,6 +17,8 @@ adi_ip_properties axi_clkgen
|
||||||
ipx::remove_bus_interface {clk} [ipx::current_core]
|
ipx::remove_bus_interface {clk} [ipx::current_core]
|
||||||
ipx::associate_bus_interfaces -busif s_axi -clock s_axi_aclk [ipx::current_core]
|
ipx::associate_bus_interfaces -busif s_axi -clock s_axi_aclk [ipx::current_core]
|
||||||
|
|
||||||
|
set_property driver_value 0 [ipx::get_ports *clk2* -of_objects [ipx::current_core]]
|
||||||
|
|
||||||
adi_ip_constraints axi_clkgen [list \
|
adi_ip_constraints axi_clkgen [list \
|
||||||
"axi_clkgen_constr.xdc" ]
|
"axi_clkgen_constr.xdc" ]
|
||||||
|
|
||||||
|
|
|
@ -43,6 +43,7 @@ module ad_mmcm_drp (
|
||||||
// clocks
|
// clocks
|
||||||
|
|
||||||
clk,
|
clk,
|
||||||
|
clk2,
|
||||||
mmcm_rst,
|
mmcm_rst,
|
||||||
mmcm_clk_0,
|
mmcm_clk_0,
|
||||||
mmcm_clk_1,
|
mmcm_clk_1,
|
||||||
|
@ -66,6 +67,7 @@ module ad_mmcm_drp (
|
||||||
localparam MMCM_DEVICE_VIRTEX6 = 1;
|
localparam MMCM_DEVICE_VIRTEX6 = 1;
|
||||||
|
|
||||||
parameter MMCM_CLKIN_PERIOD = 1.667;
|
parameter MMCM_CLKIN_PERIOD = 1.667;
|
||||||
|
parameter MMCM_CLKIN2_PERIOD = 1.667;
|
||||||
parameter MMCM_VCO_DIV = 6;
|
parameter MMCM_VCO_DIV = 6;
|
||||||
parameter MMCM_VCO_MUL = 12.000;
|
parameter MMCM_VCO_MUL = 12.000;
|
||||||
parameter MMCM_CLK0_DIV = 2.000;
|
parameter MMCM_CLK0_DIV = 2.000;
|
||||||
|
@ -74,6 +76,7 @@ module ad_mmcm_drp (
|
||||||
// clocks
|
// clocks
|
||||||
|
|
||||||
input clk;
|
input clk;
|
||||||
|
input clk2;
|
||||||
input mmcm_rst;
|
input mmcm_rst;
|
||||||
output mmcm_clk_0;
|
output mmcm_clk_0;
|
||||||
output mmcm_clk_1;
|
output mmcm_clk_1;
|
||||||
|
@ -146,6 +149,7 @@ module ad_mmcm_drp (
|
||||||
.CLKOUT1_DUTY_CYCLE (0.500),
|
.CLKOUT1_DUTY_CYCLE (0.500),
|
||||||
.CLKOUT1_USE_FINE_PS ("FALSE"),
|
.CLKOUT1_USE_FINE_PS ("FALSE"),
|
||||||
.CLKIN1_PERIOD (MMCM_CLKIN_PERIOD),
|
.CLKIN1_PERIOD (MMCM_CLKIN_PERIOD),
|
||||||
|
.CLKIN2_PERIOD (MMCM_CLKIN2_PERIOD),
|
||||||
.REF_JITTER1 (0.010))
|
.REF_JITTER1 (0.010))
|
||||||
i_mmcm (
|
i_mmcm (
|
||||||
.CLKIN1 (clk),
|
.CLKIN1 (clk),
|
||||||
|
@ -171,7 +175,7 @@ module ad_mmcm_drp (
|
||||||
.CLKOUT4 (),
|
.CLKOUT4 (),
|
||||||
.CLKOUT5 (),
|
.CLKOUT5 (),
|
||||||
.CLKOUT6 (),
|
.CLKOUT6 (),
|
||||||
.CLKIN2 (1'b0),
|
.CLKIN2 (clk2),
|
||||||
.CLKINSEL (1'b1),
|
.CLKINSEL (1'b1),
|
||||||
.PSCLK (1'b0),
|
.PSCLK (1'b0),
|
||||||
.PSEN (1'b0),
|
.PSEN (1'b0),
|
||||||
|
@ -202,6 +206,7 @@ module ad_mmcm_drp (
|
||||||
.CLKOUT1_DUTY_CYCLE (0.500),
|
.CLKOUT1_DUTY_CYCLE (0.500),
|
||||||
.CLKOUT1_USE_FINE_PS ("FALSE"),
|
.CLKOUT1_USE_FINE_PS ("FALSE"),
|
||||||
.CLKIN1_PERIOD (MMCM_CLKIN_PERIOD),
|
.CLKIN1_PERIOD (MMCM_CLKIN_PERIOD),
|
||||||
|
.CLKIN2_PERIOD (MMCM_CLKIN2_PERIOD),
|
||||||
.REF_JITTER1 (0.010))
|
.REF_JITTER1 (0.010))
|
||||||
i_mmcm (
|
i_mmcm (
|
||||||
.CLKIN1 (clk),
|
.CLKIN1 (clk),
|
||||||
|
@ -227,7 +232,7 @@ module ad_mmcm_drp (
|
||||||
.CLKOUT4 (),
|
.CLKOUT4 (),
|
||||||
.CLKOUT5 (),
|
.CLKOUT5 (),
|
||||||
.CLKOUT6 (),
|
.CLKOUT6 (),
|
||||||
.CLKIN2 (1'b0),
|
.CLKIN2 (clk2),
|
||||||
.CLKINSEL (1'b1),
|
.CLKINSEL (1'b1),
|
||||||
.PSCLK (1'b0),
|
.PSCLK (1'b0),
|
||||||
.PSEN (1'b0),
|
.PSEN (1'b0),
|
||||||
|
|
Loading…
Reference in New Issue