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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 3158|回复: 6

乘法器问题(vhdl)

[复制链接]
发表于 2009-5-21 16:55:48 | 显示全部楼层 |阅读模式

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

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

x
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_ARITH.ALL;
ENTITY multplier2 is
generic(M: integer:=8 );
  port(  dataA: IN STD_LOGIC_VECTOR(M-1 DOWNTO 0);
         dataB: IN STD_LOGIC_VECTOR(M-1 DOWNTO 0);
         result: out std_logic_vector(M+M-1 DOWNTO 0));
END multplier2 ;
ARCHITECTURE BEH OF multplier2 is
begin
inset_mult: process(dataA,dataB)
variable dataA_temp,dataB_temp,temp: std_logic_vector(M-1 DOWNTO 0);
variable count: integer:= 0;
begin
    dataA_temp := dataA;
    dataB_temp := dataB;
    temp:="00000000";
    while count<M-1 LOOP
          if ( dataA(count)='1') then
            temp:= temp+ dataB_temp;
          end if;
     dataA_temp := temp(0) & dataA_temp(M-1 DOWNTO 1);
     temp := '0' & temp(M-1 TO 1);
     count := count + 1;
    end loop;
    result<=temp & dataA_temp;
END process inset_mult;
end architecture BEH;


编译后报
Error (10327): Vhdl error at multplier2.vhd(21): can't determine definition of operator ""+"" -- found 0 possible definitions
错误
是什么原因啊
temp:= temp+ dataB_temp这句没有错啊
发表于 2009-5-22 16:23:12 | 显示全部楼层
“ if ( dataA(count)='1') then”
是不是dataA(count)='1'的问题?
发表于 2010-6-4 19:53:10 | 显示全部楼层
看看 接着评论
发表于 2010-6-4 20:25:09 | 显示全部楼层
先看看看看
发表于 2010-6-4 20:39:53 | 显示全部楼层
将USE IEEE.STD_LOGIC_ARITH.ALL;换成unsigned这个包
发表于 2010-6-5 21:50:28 | 显示全部楼层
将USE IEEE.STD_LOGIC_ARITH.ALL;换成unsigned这个包
楼上说得对
发表于 2011-5-7 16:58:14 | 显示全部楼层
将USE IEEE.STD_LOGIC_ARITH.ALL;换成unsigned这个包
楼上说得对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

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

GMT+8, 2024-5-9 22:03 , Processed in 0.043880 second(s), 9 queries , Gzip On, Redis On.

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