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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 3379|回复: 7

请教各位高手问题:我在MAX+PLUSII中用VHDL描述计数器时遇到的

[复制链接]
发表于 2003-12-25 11:59:25 | 显示全部楼层 |阅读模式

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

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

x
我在MAX+PLUSII中用VHDL描述计数器,编译时遇到加号‘+’,就出现错误,说是调用子程序错误,无论怎么试都是这样,请问那位老师遇到过这个问题么?是不是我的MAX+PLUSII有问题啊,请赐教,谢谢
发表于 2003-12-25 12:08:16 | 显示全部楼层

请教各位高手问题:我在MAX+PLUSII中用VHDL描述计数器时遇到的

用verilog就不会出现这个问题
1164的库加了没有
发表于 2003-12-25 13:46:27 | 显示全部楼层

请教各位高手问题:我在MAX+PLUSII中用VHDL描述计数器时遇到的

应该是没有调用库
 楼主| 发表于 2003-12-25 16:59:13 | 显示全部楼层

请教各位高手问题:我在MAX+PLUSII中用VHDL描述计数器时遇到的

实际上程序是这样写的,烦请各位帮忙看看吧,其中只有一个地方用的加号。

LIBRARY ieee;
USE ieee.std_logic_1164.all;
USE ieee.std_logic_arith.all;
ENTITY count12en IS
    PORT(clr,clk,en  :IN  std_logic;
         qa,qb,qc,qd :OUT std_logic);
END count12en;
ARCHITECTURE rtl OF count12en IS
         SIGNAL reg:std_logic_vector(3 downto 0);
BEGIN
    PROCESS(clk,clr,en)
    BEGIN
        IF(clr='0')THEN
           reg<="0000";           
        ELSIF(clk'event and clk='1')THEN
           IF(en='1')THEN
              reg<=reg+'1';
              IF(reg="1011")THEN
                  reg<="0000";
              END IF;            
           END IF;
        END IF;
     qa<=reg(0);
     qb<=reg(1);
     qc<=reg(2);
     qd<=reg(3);
    END PROCESS;
END rtl;
发表于 2003-12-25 17:09:58 | 显示全部楼层

请教各位高手问题:我在MAX+PLUSII中用VHDL描述计数器时遇到的

SIGNAL reg:std_logic_vector(3 downto 0);改成
SIGNAL reg:integer range 0 to 15;试试看
或者reg<=reg+'1';把1改成二进制表示
发表于 2003-12-25 18:22:56 | 显示全部楼层

请教各位高手问题:我在MAX+PLUSII中用VHDL描述计数器时遇到的

LIBRARY ieee;
USE ieee.std_logic_1164.all;
USE ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
ENTITY count12en IS
   PORT(clr,clk,en  :IN  std_logic;
        qa,qb,qc,qd :OUT std_logic);
END count12en;
ARCHITECTURE rtl OF count12en IS
        SIGNAL reg:std_logic_vector(3 downto 0);
BEGIN
  
PROCESS(clk,clr,en)
   BEGIN
       IF clr='0' THEN
          reg<="0000";           
       ELSIF clk'event and clk='1' THEN
          IF en='1' THEN
             IF reg="1011" THEN
                 reg<="0000";
else
reg<=reg + 1 ;
             END IF;            
          END IF;
       END IF;
    qa<=reg(0);
    qb<=reg(1);
    qc<=reg(2);
    qd<=reg(3);
   END PROCESS;
这样就可以了
 楼主| 发表于 2003-12-26 09:16:48 | 显示全部楼层

请教各位高手问题:我在MAX+PLUSII中用VHDL描述计数器时遇到的

谢谢各位启发,加了ieee.std_logic_unsigned.all就好了。谢谢:)
发表于 2012-5-3 21:47:30 | 显示全部楼层
很不错的 啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

X

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

GMT+8, 2025-5-29 07:23 , Processed in 0.024271 second(s), 10 queries , Gzip On, MemCached On.

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