我正在尝试将我的结构时钟推到ZedBoard上的输出LVDS对。我正在使用scary_jeff提供的解决方案here。
FCLK_CLK1正在使用设置为150 MHz的DDR PLL。我为IP创建了一个测试平台,显示了已经输出的输出(输入时钟之后的lvds对以及对之间的预期反转)。
vhdl用于生成ip:
library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
library UNISIM;
use UNISIM.Vcomponents.all;
entity clk_to_lvds_v1_0 is
port (
clk_in : in std_logic;
clk_out_p : out std_logic;
clk_out_n : out std_logic
);
end clk_to_lvds_v1_0;
architecture arch_imp of clk_to_lvds_v1_0 is
signal clk_buf : std_logic;
signal clk_inv : std_logic;
begin
-- V1
-- oddr_inst : oddr
-- generic map(
-- DDR_CLK_EDGE => "SAME_EDGE",
-- INIT => '0',
-- SRTYPE => "SYNC"
-- )
-- port map (
-- Q => clk_buf,
-- C => clk_in,
-- CE => '1',
-- D1 => '1',
-- D2 => '0',
-- R => '0',
-- S => '0'
-- );
-- V2
clk_inv <= not clk_in;
ODDR_pxlclk_p : ODDR2
generic map(
DDR_ALIGNMENT => "NONE",
INIT => '0',
SRTYPE => "SYNC")
port map(
Q => clk_buf,
C0 => clk_in,
C1 => clk_inv,
CE => '1',
D0 => '1',
D1 => '0',
R => '0',
S => '0'
);
obufds_inst : obufds
generic map ( IOSTANDARD=>"LVDS_25" )
port map(
O => clk_out_p,
OB => clk_out_n,
I => clk_buf
);
end arch_imp;
使用LVDS_25标准将输出推送到JC1_P / N pmod端口。
set_property PACKAGE_PIN AB7 [get_ports {clk_out_p[0]}]
set_property IOSTANDARD LVDS_25 [get_ports {clk_out_p[0]}]
我用示波器测量输出(6 GHz,20 GS / s),我看到的都是噪音。我打开了设计中的一些LED,以确保正确加载比特流。
这仍然是Xilinx在I / O上输出时钟的首选方法吗?
答案 0 :(得分:1)
问题是我没有在ARM内核上初始化ps7_init,因此无法启动时钟。完成之后,我看到示波器上的输出时钟。