VHDL—PLL的直接实例化
我正在尝试在DE0板上制作VGA控制器,并制作了以下代码:VHDL—PLL的直接实例化,vhdl,intel-fpga,quartus,Vhdl,Intel Fpga,Quartus,我正在尝试在DE0板上制作VGA控制器,并制作了以下代码: LIBRARY IEEE; USE IEEE.std_logic_1164.ALL; USE IEEE.numeric_std.ALL; ENTITY VGA is PORT (clk : IN std_logic; vga_hs, vga_vs : OUT std_logic; vga_r, vga_g, vga_b :
LIBRARY IEEE;
USE IEEE.std_logic_1164.ALL;
USE IEEE.numeric_std.ALL;
ENTITY VGA is
PORT (clk : IN std_logic;
vga_hs, vga_vs : OUT std_logic;
vga_r, vga_g, vga_b : OUT std_logic_vector(3 DOWNTO 0));
END ENTITY VGA;
ARCHITECTURE A1 OF VGA IS
SIGNAL rst, clk25 : std_logic;
BEGIN
SYNC1 : ENTITY work.sync(A1)
PORT MAP (clk25, vga_hs, vga_vs, vga_r, vga_g, vga_b);
CLK_25 : ENTITY work.pll(rtl)
PORT MAP (clk, rst, clk25);
END ARCHITECTURE A1;
编译模型时,我收到以下错误消息:
错误(12006):节点实例“altpll\u 0”实例化未定义的实体“PLL\u altpll\u 0”
我正在实例化两个组件:第一个SYNC1是640 x 480显示器的同步计数,第二个(CLK_25)是quartus II生成的PLL时钟。使用以下型号:
library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.numeric_std.all;
entity PLL is
port (
clk_clk : in std_logic := '0'; -- clk.clk
rst_reset : in std_logic := '0'; -- rst.reset
clk_25_clk : out std_logic -- clk_25.clk
);
end entity PLL;
architecture rtl of PLL is
component PLL_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_altpll_0;
begin
altpll_0 : component PLL_altpll_0
port map (
clk => clk_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_25_clk, -- c0.clk
areset => open, -- areset_conduit.export
locked => open, -- locked_conduit.export
phasedone => open -- phasedone_conduit.export
);
end architecture rtl; -- of PLL
如何从工作库直接实例化pll(rtl) 使用Quartus Prime中的MegaWizard生成PLL,然后将生成的.qip文件包含在设计中。在您的示例中,我假设MegaWizard用于生成
PLL\u altpll\u 0
生成的PLL实体随后被编译成work(或另一个库,该库随后显示在.qip文件中),然后您可以使用实体实例化来实例化PLL,从而在使用生成的PLL的体系结构中省去冗余组件声明。类似这样的代码,假设workPLL\u altpll\u 0
被编译为work
库:
altpll_0 : entity work.PLL_altpll_0
port map (
您是否使用Quartus的MegaWizard生成了PLL?