Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VHDL—PLL的直接实例化_Vhdl_Intel Fpga_Quartus - Fatal编程技术网

VHDL—PLL的直接实例化

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 :

我正在尝试在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 :   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?