微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > VHDL

VHDL

时间:10-02 整理:3721RD 点击:

  1. LIBRARY IEEE ;
  2. USE IEEE.STD_LOGIC_1164.ALL ;
  3. USE IEEE.STD_LOGIC_ARITH.ALL ;
  4. USE IEEE.STD_LOGIC_UNSIGNED.ALL ;

  5. ENTITY bj7  IS
  6. PORT (A :  IN STD_LOGIC_VECTOR(6 DOWNTO 0) ;
  7.       Y :  OUT STD_LOGIC ) ;
  8. END ;

  9. ARCHITECTURE BEHAVE OF bj7 IS
  10. SIGNAL YI : STD_LOGIC ;
  11. BEGIN
  12.       PROCESS(A)
  13.       VARIABLE TEMP : INTEGER ;
  14.       BEGIN
  15.         TEMP := 0 ;
  16.         FOR I IN 0 TO 6 LOOP
  17.            TEMP :=TEMP + A(I);
  18.         END LOOP ;
  19.         IF TEMP > 3  THEN
  20.          YI <= '1' ;
  21.         ELSE
  22.          YI <= '0' ;
  23.         END IF ;
  24.       END PROCESS ;
  25.       Y <= YI ;
  26. END BEHAVE ;

复制代码



Error (10327): VHDL error at bj7.vhd(20): can't determine definition of operator ""+"" -- found 0 possible definitions

19行的A(I)改为A[I]试试


不好意思搞错了,Verilog和VHDL弄混了

A(I)为STD_LOGIC; TEMP为 INTEGER ,类型需要转换吧。

修改成  TEMP :=TEMP + conv_integer(A(I downto I));

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

网站地图

Top