打印

VHDL的计数器

[复制链接]
1714|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
小李志|  楼主 | 2007-4-1 12:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY COUNTER IS
 PORT( CLK:IN STD_LOGIC;
       EN: IN STD_LOGIC;
        S: IN STD_LOGIC;
       LOAD: IN STD_LOGIC_VECTOR(3 DOWNTO 0);
          C: OUT STD_LOGIC;
       JISHU: OUT STD_LOGIC_VECTOR(3 DOWNTO 0)
     );
END ENTITY;
 ARCHITECTURE BHV OF COUNTER IS
   SIGNAL TEMP:STD_LOGIC_VECTOR(3 DOWNTO 0);
BEGIN
   PROCESS(EN,CLK,S,LOAD)
      BEGIN
        IF CLK'EVENT AND CLK='1' THEN
          IF(EN='1')   
          THEN IF(S='1') THEN TEMP<=LOAD;
               ELSIF(TEMP<10) THEN TEMP<=TEMP+1; C<='0';
                   ELSE TEMP<="0000";
                       C<='1';
               END IF;
           END IF;
         END IF;
          
        
        
    END PROCESS;
    JISHU<=TEMP;
END BHV;
其中EN是使能端,如果是1的话就计数,否则就不计,
S是置位端,如果是1的话就把LOAD的值赋给TEMP
但是编译通不过,不知错在哪?
   
                   

相关帖子

沙发
yinlu| | 2007-4-2 13:29 | 只看该作者

是不是文件名的问题

看看文件名是不是counter.vhd,如果不是的话改成这个试试

使用特权

评论回复
板凳
hideid| | 2007-4-4 00:46 | 只看该作者

估计是你的文件名不对

我把你的程序直接复制了,放到quartus2下面编译,没有任何问题。

就跟楼上说的,把文件改了试试看。

使用特权

评论回复
地板
小李志|  楼主 | 2007-4-5 13:56 | 只看该作者

谢了

哦,我用的是MAXPLUS 2,不过谢谢了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

151

主题

727

帖子

3

粉丝