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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 4102|回复: 8

[求助] VHDL unsigned signal有语法错误,麻烦看看

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

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

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

x
定义signal  cnt : unsigned (7 downto 0);
然后是个process,每clk 加1
再引用
case cnt is;
when 1 =>
....
when 2 =>
.....
modelsim报错:Integer literal 1 is not of type ieee.numeric_std.unsigned
请指出问题所在
发表于 2010-5-21 09:52:52 | 显示全部楼层
可能是你的库没有加全。下面是我写的一段程序,经测试没有问题。
library        ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;

entity test is
        port(
        clk : in std_logic;
        rst : in std_logic;
        p   : out std_logic
        );
end entity;

architecture test_arch of test is
signal cnt: unsigned(2 downto 0);
begin                  
  p<='1' when cnt=2 else '0';
  process(clk)
  begin
        if rising_edge(clk) then
          if rst='1' then
                cnt <= (others=>'0');
          else
                cnt <= cnt+1;
          end if;
        end if;
  end process;
  
end test_arch;
发表于 2010-5-21 09:55:03 | 显示全部楼层
这是仿真结果,。。。。。。。
cnt.JPG
发表于 2010-5-21 09:56:36 | 显示全部楼层
仿真软件Active-HDL 8.2,,,,,,,,,
发表于 2010-5-21 10:02:03 | 显示全部楼层
另外,使用这两个库也是可以的
library        ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
事实上,std_logic_1164和numeric_std是标准库。
发表于 2010-5-21 14:57:51 | 显示全部楼层
when "0000001" =>
请用这样的格式。VHDL是不能偷懒的
发表于 2010-5-22 23:13:27 | 显示全部楼层
支持6楼
发表于 2010-5-24 14:29:24 | 显示全部楼层
VHDL还是可以偷懒的,是你的库没加对。
 楼主| 发表于 2010-5-24 14:51:27 | 显示全部楼层
嗯,如6楼所言,
如果是if语句中,可以用unsigned singal = num,但是在case语句是,还是得用二进制,这几天的发现。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

X

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

GMT+8, 2025-6-27 19:39 , Processed in 0.022998 second(s), 10 queries , Gzip On, MemCached On.

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