在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 6586|回复: 9

[求助] 关于vhdl中数组查找最大值

[复制链接]
发表于 2010-4-19 17:10:49 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
本人才学习VHDL语言,写了个查找最大值的程序,但编译总通不过,请教下哪出错?
library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
use ieee.std_logic_unsigned.all;
type arr is array(35 downto 0) of std_logic_vector(8 downto 0);
entity findmax is
port (en:in std_logic;
      ori-matrix:in arr;
      maxut std_logic_vector(8 downto 0);      
      p,qut integer);
end findmax;
architecture behavioral of findmax is
signal a:std_logic_vector(8 downto 0);
begin
    variable i:integer:=0;
  if en='1' then
      while i<35 loop
   if i=0or7or14or21or28or35 then
    i<=i+1;
    elsif ori-matrix(i)(7 down to 0)>ori-matrix(i+1)(7 down to 0)
    then a<=ori-matrix(i);
    else a<=ori-matrix(i+1);
    i<=i+1;
    end if;
   end if;
   end loop;
   p<=i/6+1;
   q<=rem(i/6)+1;
  end if;
  max<=a;
end behavioral;


编译提示错误
** Error: D:/pca/findmax.vhd(5): near "type": expecting: ARCHITECTURE CONFIGURATION ENTITY LIBRARY PACKAGE USE
** Error: D:/pca/findmax.vhd(8): near "-": expecting: ':'
** Error: D:/pca/findmax.vhd(16): near "variable": expecting: END
发表于 2010-4-19 20:31:29 | 显示全部楼层
觉得你的程序有很多问题
1.没有见过将数组定义为输入端口的
2.你的进程(process)在哪里?没有敏感信号,怎么做事情?
还有我觉得你是在用c语言的思路在写vhdl,最好参照别人写的代码来规范自己

我是从fpga的角度来说的,呵呵,不对的话请见谅
发表于 2010-4-19 22:25:50 | 显示全部楼层
** Error: D:/pca/findmax.vhd(5): near "type": expecting: ARCHITECTURE CONFIGURATION ENTITY LIBRARY PACKAGE USE
** Error: D:/pca/findmax.vhd(8): near "-": expecting: ':'
** Error: D:/pca/findmax.vhd(16): near "variable": expecting: END

同意楼上说法,这里仅解释你提出的这几个错误:
第一行,你的数据类型应该定义在包集合中或构造体中;
第二行,端口命名只能用下划线;
第三行,变量应定义在进程或过程或函数中。
 楼主| 发表于 2010-4-22 10:32:12 | 显示全部楼层
2# qd0090
哦,谢谢,我去尝试下..刚学VHDL光看书好多语法规则都没有..
 楼主| 发表于 2010-4-22 10:34:34 | 显示全部楼层
2# qd0090 还有个问题,就是我的输入端需要一个矩阵怎么办,不用数组,应该用什么呢?
发表于 2010-4-22 10:46:37 | 显示全部楼层
你需要补充硬件基本知识,这不是写软件,是描述硬件电路。
你写的每句代码,先在脑里想想,这句话对应的硬件电路是什么
发表于 2010-4-22 11:27:14 | 显示全部楼层
in port的类型可以是任意的。你可以将这个port定义为数组类型。矩阵也是数组,是二维数组。
发表于 2010-4-22 11:59:28 | 显示全部楼层
学Verilog吧~~上手快点~~
vhdl规则复杂得很
 楼主| 发表于 2010-4-22 12:39:27 | 显示全部楼层
8# lhlhualin
毕设要去用VHDL。。。我也没办法啊...
发表于 2010-4-27 15:57:15 | 显示全部楼层
报错信息很清楚的说明需要修改的地方了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-6 08:00 , Processed in 0.030061 second(s), 9 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表