Quartus II 7.2编译总出错,急!!!(高手请进)

[复制链接]
 楼主| bob_mei 发表于 2008-3-17 16:45 | 显示全部楼层 |阅读模式
自己刚开始学习VHDL和Quartus&nbsp;II&nbsp;7.2,写了下面一段程序后编译总是出错,希望高手指点一下,在下先谢谢了!<br /><br />程序如下:<br />library&nbsp;ieee;<br />use&nbsp;ieee.std_logic_1164.all;<br />use&nbsp;ieee.std_logic_unsigned.all;<br />entity&nbsp;adder&nbsp;is<br />&nbsp;&nbsp;&nbsp;port(a1:&nbsp;&nbsp;in&nbsp;bit_vector;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a2:&nbsp;&nbsp;in&nbsp;bit_vector;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cnt1:&nbsp;in&nbsp;bit;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pout:&nbsp;out&nbsp;bit_vector);<br />&nbsp;&nbsp;&nbsp;end&nbsp;adder;<br />architecture&nbsp;func&nbsp;of&nbsp;adder&nbsp;is<br />begin&nbsp;<br />&nbsp;&nbsp;&nbsp;cale:process(cnt1)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;begin<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(cnt1='1')then&nbsp;pout&nbsp;&lt=&nbsp;a1&nbsp;+&nbsp;a2;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end&nbsp;if;<br />&nbsp;&nbsp;&nbsp;end&nbsp;process;<br />end&nbsp;func;<br /><br />其实就是一个很简单的加法器,可是编译不通过,显示错误信息如下:<br /><br />Error&nbsp;(10327):&nbsp;VHDL&nbsp;error&nbsp;at&nbsp;adder.vhd(14):&nbsp;can't&nbsp;determine&nbsp;definition&nbsp;of&nbsp;operator&nbsp;&quot;&quot;+&quot;&quot;&nbsp;--&nbsp;found&nbsp;0&nbsp;possible&nbsp;definitions<br /><br />希望高手帮忙解答!!!<br />谢谢!
lxyscls 发表于 2008-3-18 09:32 | 显示全部楼层

11

呵呵<br />use&nbsp;ieee.numeric_std.all;<br />或者use&nbsp;ieee.numeric_bit.all;试一试~<br /><br />这个QUARTUS里面我在IEEE下没发现std_logic_unsigned啊~<br /><br />呵呵~
 楼主| bob_mei 发表于 2008-3-18 10:33 | 显示全部楼层

非常感谢!

试了一下,呵呵...<br />还是编译不通过,同样的错误提示,唉!真不知道怎么办了...<br /><br />不过,还是感谢楼上的!
fancy728 发表于 2008-3-18 22:07 | 显示全部楼层

我也遇到这个问题

不知道出什么问题了
风中的舞者 发表于 2008-3-19 17:37 | 显示全部楼层

in bit_vector

首先位矢量必须制定位宽&nbsp;&nbsp;其次位矢量不能进行加法运算<br /><br />改bit_vector为std_logic_vector&nbsp;&nbsp;并且制定位宽
风中的舞者 发表于 2008-3-19 17:40 | 显示全部楼层

bit和bit_vector只能做逻辑运算和算术左移右移等运算

请参照VHDL操作符的说明
风中的舞者 发表于 2008-3-19 17:52 | 显示全部楼层

再参照一下IEEE库类型转换函数表

STD_LOGIC_1164<br /><br />由bit_vector类型转换为std_logic_vector<br />由std_logic_vector类型转换为bit_vector<br />由bit类型转换为std_logic<br />由std_logic类型转换为bit<br /><br />STD_LOGIC_UNSIGNED<br />由std_logic_vector类型转换为integer<br /><br /><br />没有bit和bit_vector转换为integer类型<br /><br />而只有integer类型可以进行加减运算<br /><br />所以bit和bit_vector是无法直接进行加减运算
 楼主| bob_mei 发表于 2008-3-20 11:03 | 显示全部楼层

非常感谢!

非常感谢风中的舞者,问题解决!<br /><br />
niu9911 发表于 2008-3-24 17:48 | 显示全部楼层

学习

  
chenqh023 发表于 2008-3-28 12:33 | 显示全部楼层

为什么找不到std_logic_unsigned 程序包

在Quartus&nbsp;II&nbsp;7.2的安装目标下的IEEE库中,我怎么也找不到std_logic_unsigned&nbsp;程序包。<br /><br />将上面的bit_vector改为std_logic_vector后,能正确仿真,但这种矢量相加需要std_logic_unsigned程序包支持啊,怎么在IEEE库中就找不到这个程序包呢?<br /><br />还望大虾不吝赐教。&nbsp;
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

19

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部