首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

求助:一个简单VHDL程序,帮找一下错!谢谢!

求助:一个简单VHDL程序,帮找一下错!谢谢!

LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
PACKAGE abc IS
function max (a,b,c:in std_logic_vector)
   return std_logic_vector;
END abc;
PACKAGE body abc IS
function max (a,b,c:in std_logic_vector)
   return std_logic_vector is
begin
if a>b then
  if a>c then return a;
    else return c;
  end if;
else if b>c then return b;
      else return c;
     end if;
end if;
end function max;
END abc;
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
USE work.abc.ALL;
ENTITY amax IS
 ORT(
  a1,a2,a3 : IN STD_LOGIC_vector(3 downto 0);
  b1,b2,b3: IN STD_LOGIC_VECTOR(3 downto 0);
  y1, y2: OUT STD_LOGIC_vector(3 downto 0));
END amax;
ARCHITECTURE a OF amax IS
BEGIN
pro1:
PROCESS (a1,a2,a3)
BEGIN
y1<=max(a1,a2,a3);
END PROCESS ;
pro2:
PROCESS (b1,b2,b3)
BEGIN
y1<=max (b1,b2,b3);
END PROCESS ;
END a;
错误提示:ruturn statement in an if or case statement is not supported
if语句里不支持return,你不能直接在if语句里面直接返回数值,并且函数语句中只能返回一个值,你要是想返回多个值就需要用过程(procedure)
美梦成真-->噩梦降临!
谢谢版主,非常感谢!
返回列表