【发布时间】:2016-02-09 16:55:30
【问题描述】:
您好,我正在尝试使用锁相环为 VGA 控制器生成时钟。我没有运气,决定自己做时钟,然后就可以正常工作了。我得到了VGA控制器的工作。回到 PLL,虽然我仍然无法选择一个 PLL 来给我一个输出。我做了一个小测试模型来模拟它。
LIBRARY IEEE;
USE IEEE.std_logic_1164.ALL;
ENTITY PLL4 IS
PORT (
clk : IN std_logic;
a : IN std_logic;
rst : IN std_logic:='0';
x : OUT std_logic
);
END ENTITY PLL4;
ARCHITECTURE A1 OF PLL4 IS
COMPONENT PLL_4 IS
PORT(
clk_in_clk : in std_logic; -- clk
rst_reset : in std_logic; -- reset
clk_out_clk : out std_logic -- clk
);
END COMPONENT PLL_4;
SIGNAL clk25 : std_logic;
BEGIN
CLK_25 : PLL_4 PORT MAP (clk,rst,clk25);
x <= a and clk25;
END ARCHITECTURE A1;
当我用 mod sim 模拟这个时,我得到以下结果
我从来没有看到 PLL 时钟输出。谁能给我一些建议。
--更新-- 添加来自 CLK_25 的信号后:PLL 我现在在 Modsim 上得到以下信息。第一个连接到实例化罚款以及 clk 到 clk_in_clk,但值 clk_out_clk 永远改变。见下文:
这让我觉得我遇到的问题是使用 Qsys 创建的 PLL 模型。Qsys 生成的 .vhd 中包含的模型如下:
-- PLL_4.vhd
-- Generated using ACDS version 13.0sp1 232 at 2016.02.09.16:46:16
library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.numeric_std.all;
entity PLL_4 is
port (
clk_in_clk : in std_logic := '0'; -- clk_in.clk
rst_reset : in std_logic := '0'; -- rst.reset
clk_out_clk : out std_logic -- clk_out.clk
);
end entity PLL_4;
architecture rtl of PLL_4 is
component PLL_4_altpll_0 is
port (
clk : in std_logic := 'X'; -- clk
reset : in std_logic := 'X'; -- reset
read : in std_logic := 'X'; -- read
write : in std_logic := 'X'; -- write
address : in std_logic_vector(1 downto 0) := (others => 'X'); -- address
readdata : out std_logic_vector(31 downto 0); -- readdata
writedata : in std_logic_vector(31 downto 0) := (others => 'X'); -- writedata
c0 : out std_logic; -- clk
areset : in std_logic := 'X'; -- export
locked : out std_logic; -- export
phasedone : out std_logic -- export
);
end component PLL_4_altpll_0;
begin
altpll_0 : component PLL_4_altpll_0
port map (
clk => clk_in_clk, -- inclk_interface.clk
reset => rst_reset, -- inclk_interface_reset.reset
read => open, -- pll_slave.read
write => open, -- .write
address => open, -- .address
readdata => open, -- .readdata
writedata => open, -- .writedata
c0 => clk_out_clk, -- c0.clk
areset => open, -- areset_conduit.export
locked => open, -- locked_conduit.export
phasedone => open -- phasedone_conduit.export
);
end architecture rtl; -- of PLL_4
【问题讨论】:
-
能否将内部信号添加到波形中?您是否使用 PLL 向导生成它? ModelSim 中是否有黑盒警告?
-
是的,我使用 PLL 向导来生成 Avalon ALTPLL。 modsim 中没有后箱警告。如果当您说添加来自 PLL 的内部信号时,那么我不知道在哪里可以找到这些,这可能就是我遇到问题的原因。
-
您的设计有一个层次结构视图。目前,您选择了顶层(您的测试平台),您可以在其中找到您自己的信号。应该有一个名为
CLK_25的节点,因为您的 PLL 实例被命名。点击这个子级别,你会看到生成向导文件的信号(PLL_4)。 -
当我打开分层视图时,是的,我看到 PLL:CLK_25 但这如何帮助我看到时髦的信号?当我打开它时,我可以看到实体、组件和架构
-
如果点击它(不是双击),可以将更多的信号拖到波形中。需要内部信号才能看到,例如。 PLL 不会离开初始复位状态。
标签: vhdl modelsim intel-fpga