微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 麻烦各位帮看下顶层VHDL程序哪错了,本人初学者

麻烦各位帮看下顶层VHDL程序哪错了,本人初学者

时间:10-02 整理:3721RD 点击:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_ARITH.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
--顶层结构
ENTITY FreqMeter IS
   PORT(
      input   :IN STD_LOGIC;
      clock   :IN STD_LOGIC;
      display  :OUT STD_LOGIC_VECTOR(31 DOWNTO 0);
      dp      :OUT STD_LOGIC_VECTOR(2 DOWNTO 0);
      sample  :OUT STD_LOGIC
);
END FreqMeter;
ARCHITECTURE FreqMeter_arch OF FreqMeter IS
   COMPONENT ClockGen
      PORT(
         clkHF  :IN STD_LOGIC;
         clk10  :OUT STD_LOGIC;
         clk100 :OUT STD_LOGIC;
         clk1k  :OUT STD_LOGIC
);
   END COMPONENT;
   COMPONENT Center
      PORT(
        clk10   :IN STD_LOGIC;
        digitalHF:IN STD_LOGIC_VECTOR(31 DOWNTO 0);
        digitalLF:IN STD_LOGIC_VECTOR(11 DOWNTO 0);
        fr_high  :IN STD_LOGIC;
        fr_low   :IN STD_LOGIC;
        fr_vlow  : IN STD_LOGIC;
        busy     :IN STD_LOGIC;
        display   :OUT STD_LOGIC_VECTOR(31 DOWNTO 0);
        dp       :OUT STD_LOGIC_VECTOR(2 DOWNTO 0);
        sample   :OUT STD_LOGIC;
        set       :BUFFER STD_LOGIC;
        clr       :BUFFER STD_LOGIC;
        ce       :BUFFER STD_LOGIC
);
   END COMPONENT;
   COMPONENT HiCnt
      PORT(
         input  :IN STD_LOGIC;
         enable :IN STD_LOGIC;
         clr    :IN STD_LOGIC;
         digital :BUFFER STD_LOGIC_VECTOR(31 DOWNTO 0)
);
   END COMPONENT;
   COMPONENT Divide
      PORT(
         set     :IN STD_LOGIC;
         clk     :IN STD_LOGIC;
         count   :IN STD_LOGIC_VECTOR(9 DOWNTO 0);
         digital  :OUT STD_LOGIC_VECTOR(9 DOWNTO 0)
);
   END COMPONENT;
   COMPONENT LowCnt
      PORT(
      input   :IN STD_LOGIC;
      clk1k  :IN STD_LOGIC;
      clk100 :IN STD_LOGIC;
      clk10  :IN STD_LOGIC;
      clr    :IN STD_LOGIC;
      count  :OUT STD_LOGIC_VECTOR(9 DOWNTO 0);
      busy   :BUFFER STD_LOGIC;
      fr_high :BUFFER STD_LOGIC;
      fr_low  :BUFFER STD_LOGIC;
      fr_vlow : BUFFER STD_LOGIC
);
   END COMPONENT;
   SIGNAL clk10,clk100,clk1k:STD_LOGIC;
   SIGNAL ce,clr,ser,busy:STD_LOGIC;
   SIGNAL fr_high,fr_low,fr_vlow:STD_LOGIC;
   SIGNAL count:STD_LOGIC_VECTOR(9 DOWNTO 0);
   SIGNAL digitalHF:STD_LOGIC_VECTOR(31 DOWNTO 0);
   SIGNAL digitalLF:STD_LOGIC_VECTOR(11 DOWNTO 0);
BEGIN
   u1: ClockGen PORT MAP (clock,clk10,clk100,clk1k);
   u2: Center PORT MAP (clk10,digitalHF,digitalLF,fr_high,fr_low,
                      fr_vlow,busy,display,dp,sample,set,clr,ce);
   u3: HiCnt PORT MAP (input,ce,clr,digitalHF);
   u4: LowCnt PORT MAP (input,clk1k,clk100,clk10,
                         clr,count,busy,fr_high,fr_low,fr_vlow);
   u5: Divide PORT MAP (set,clock,count,digitalLF);
END FreqMeter_arch;

错误提示80)bject "set" is used but not declarer

错误  object "set" is used but not declarer

求帮助了!

定义一个set 信号就可以了
SIGNAL set :STD_LOGIC;

使用了set信号,但是没有定义该信号

对啊,需要在实体里定义一个set信号啊

你的信号声明里面有个ser信号,声明了但没有使用,估计是声明时写错了……

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top