打印
[VHDL]

VHDL编译时出现问题,求大神解读

[复制链接]
2008|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
awinnie|  楼主 | 2015-7-15 09:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
程序在编译时出现error(10346):formal port or pamrameter“clk“must have actual or default vale   error(10784):see declaration for object ”clk“的错误,程序如下:LIBRARY ieee;
USE ieee. std_logic_1164.all;
USE ieee. std_logic_unsigned.all;


ENTITY butterfly IS
PORT (clk, start : IN STD_LOGIC;
      in1_re, in1_im, in2_re, in2_im : IN STD_LOGIC_VECTOR(7 DOWNTO 0);
      w_re, w_im : IN STD_LOGIC_VECTOR(7 DOWNTO 0);
      out1_re, out1_im, out2_re, out2_im : OUT STD_LOGIC_VECTOR(7 DOWNTO 0));
END butterfly;

ARCHITECTURE struc OF butterfly IS
COMPONENT sub8b
PORT (din: IN STD_LOGIC;
          a, b: IN STD_LOGIC_VECTOR(7 DOWNTO 0);
          d: OUT STD_LOGIC_VECTOR(7 DOWNTO 0);
          dout: OUT STD_LOGIC);
  END COMPONENT;
  COMPONENT adder8b
  PORT(cin: IN STD_LOGIC;
           a , b: IN STD_LOGIC_VECTOR(7 DOWNTO 0);
           s:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);
           cout:OUT STD_LOGIC);
  END COMPONENT;
  
   COMPONENT multi8
   PORT(clk, start:IN STD_LOGIC;
            a,b:IN STD_LOGIC_VECTOR(7 DOWNTO 0);
            ariend:OUT STD_LOGIC;
            dout:OUT STD_LOGIC_VECTOR(15 DOWNTO 0));
   END COMPONENT;

   COMPONENT enable
   PORT(clk, d:IN STD_LOGIC_VECTOR(7 DOWNTO 0);
            data: OUT STD_LOGIC_VECTOR(7 DOWNTO 0);
            enout:OUT STD_LOGIC);
   END COMPONENT;
   SIGNAL temp_re, temp_im: STD_LOGIC_VECTOR(15 DOWNTO 0);
   SIGNAL temp1, temp2, tem1, tem2: STD_LOGIC_VECTOR(7 DOWNTO 0);
   SIGNAL Y1_RE, Y1_IM, Y2_RE, Y2_IM: STD_LOGIC_VECTOR(7 DOWNTO 0);
   SIGNAL W:STD_LOGIC_VECTOR(7 DOWNTO 0);
   SIGNAL gnd, startup1, startup2, rstart1, rstart2:STD_LOGIC;
   
   BEGIN   
    out1_re<=Y1_RE;
    out1_im<=Y1_IM;
    out2_re<=Y2_RE;      
    out2_im<=Y2_IM;
    Q1:multi8 PORT MAP(clk=>clk,start=>start,a=>in2_re,b=>w_re,ariend=>startup1,dout=>temp_re);
    Q2:multi8 PORT MAP(clk=>clk,start=>start,a=>in2_im,b=>w_im,ariend=>startup2,dout=>temp_im);
    Q3:adder8b PORT MAP(cin=>startup1,a=>temp_re(14 DOWNTO 7),b=>temp_im(14
       DOWNTO 7),s=>temp2);
    Q4:sub8b PORT MAP(din=>startup2, a=>temp_re(14 DOWNTO 7),b=>temp_im(14
       DOWNTO 7),d=>temp1);
    Q5:enable PORT MAP(d=>temp1,data=>tem1, enout=>rstart1);
    Q6:enable PORT MAP(d=>temp2,data=>tem2, enout=>rstart2);
    Q7:sub8b PORT MAP(din=>rstart1,a=>in1_re,b=>temp1,d=>Y2_RE);
    Q8:sub8b PORT MAP(din=>rstart2,a=>in1_im,b=>temp2,d=>Y2_IM);
    Q9:adder8b PORT MAP(cin=>rstart1,a=>in1_re,b=>temp1,s=>Y1_RE);
    Q10:adder8b PORT MAP(cin=>rstart2,a=>in1_im,b=>temp2,s=>Y1_IM);

  END;

相关帖子

沙发
ococ| | 2015-7-15 10:06 | 只看该作者
COMPONENT enable 的clk你没有连接。

代码文字错误和连接错误还是最好自己检查吧。

使用特权

评论回复
板凳
awinnie|  楼主 | 2015-7-15 10:17 | 只看该作者
ococ 发表于 2015-7-15 10:06
COMPONENT enable 的clk你没有连接。

代码文字错误和连接错误还是最好自己检查吧。 ...

多谢,我先看看

使用特权

评论回复
地板
awinnie|  楼主 | 2015-7-15 10:20 | 只看该作者
ococ 发表于 2015-7-15 10:06
COMPONENT enable 的clk你没有连接。

代码文字错误和连接错误还是最好自己检查吧。 ...

我是初学者,这个代码是抄书上的,麻烦问下您说的连接CLK是怎么个方法呢

使用特权

评论回复
5
醉小清风| | 2015-7-15 16:10 | 只看该作者
例化的clk没有连接上, Q5:enable PORT MAP(d=>temp1,data=>tem1, enout=>rstart1);
                              Q6:enable PORT MAP(d=>temp2,data=>tem2, enout=>rstart2);
加上clk
Q5:enable PORT MAP(clk=>clk,d=>temp1,data=>tem1, enout=>rstart1);
Q6:enable PORT MAP(clk=>clk,d=>temp2,data=>tem2, enout=>rstart2);
还有你程序中有个明显的错误:
COMPONENT enable
   PORT(clk, d:IN STD_LOGIC_VECTOR(7 DOWNTO 0);
            data: OUT STD_LOGIC_VECTOR(7 DOWNTO 0);
            enout:OUT STD_LOGIC);
   END COMPONENT;
中clk的定义应该是 in_std_logic

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

15

帖子

0

粉丝