5383|10

71

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

VHDL 30进制减计数器编写 不知道对不对 望帮帮忙 谢谢 [复制链接]

library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity d is
port(clk: in bit;
       oc: out bit;
        y: out integer range 0 to 29);
end d;
architecture dh of d is
signal q: integer range 0 to 29;
begin
pl: process (clk)
begin
if(clk'event and clk='1') then
if q=29 then
q<=q-1;
elsif
q=0 then
q<=29;
end if;
end if;
if q<15 then
oc<='0';
else
oc<='1';
end if;
y<=q;
end process;
end;

大家看看 对不对 还有我希望在这个计数器上添加 暂停和连续 以及清零的工作 也是有VHDL 该怎么写 谢谢

最新回复

-------- 不难,增加一个相同的计数器对输入脉冲进行计数。原来的计数器每次溢出都载入这个数值就可以了。  详情 回复 发表于 2008-11-21 14:55
点赞 关注

回复
举报

65

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
这个多多有问题,我看得好头痛啊,格式杂乱无章,最好养成一个良好的编程习惯,试一下我下面这个
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity d is
port
        (
                clk:in bit;--时钟
             oc:out bit;--15?
                rst:in bit;--复位
                hold:in bit;--暂停与继续
             y:out integer range 0 to 29--计数器输出
        );
end d;
architecture dh of d is
signal q:integer range 0 to 29;
signal c:bit;  
begin
        process (clk,rst)
        begin
                if rst = '1' then--异步复位
                        q <= 29;
                        c <= '1';
                elsif clk'event and clk = '1' then--上升沿触发
                        if hold = '0' then--暂停计数
                                q <= q;
                        else--继续计数
                                q <= q - 1;
                        end if;
                        if q < 15 then--15?
                                c <= '0';
                        else c <= '1';
                        end if;
                        if q = 0 then--重新赋值
                                q <= 29;
                        end if;
                end if;
        end process;
        y <= q;
        oc <= c;
end;
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
怎么回事,我一回帖又变成这个样子了,呵呵,有问题
 
 
 

回复

84

帖子

0

TA的资源

一粒金砂(初级)

4
 
避免在程序中使用teb缩进
用孔个最好
 
 
 

回复

84

帖子

0

TA的资源

一粒金砂(中级)

5
 
space 缩进哈
 
 
 

回复

78

帖子

0

TA的资源

一粒金砂(初级)

6
 
>大家看看 对不对
依我看,你这个算法不对

我觉得这样的算法比较好

if (RST = '1') then
  q <= 29;

elsif (clk'event and clk = '1') then
  if ((q >= 0) and (q <= 29)) then
    q <= q - 1;
  else
    q <= 29;
  end if;
end if;

>还有我希望在这个计数器上添加 暂停和连续 以及清零的工作 也是有VHDL
这些功能加上判断就可以了
 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

7
 
谢谢大家  我在研究下
 
 
 

回复

82

帖子

0

TA的资源

一粒金砂(初级)

8
 
如果在这个程序的基础上想要添加手动控制减计数的时间,通过一个键可以进行加减数应该怎么改呢?真诚请教各位牛人。
 
 
 

回复

87

帖子

0

TA的资源

一粒金砂(初级)

9
 
我问一下哈,学VHDL是不是很有前途啊?因为我学过那么一点,在不久前这些问题是可以解答出来的,可是现在……:-)
 
 
 

回复

83

帖子

0

TA的资源

一粒金砂(中级)

10
 
能告诉我vhdl怎么实现ADS8402芯片的控制时序和实现数据采集吗??
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

11
 
引用 7 楼 linlinste 的回复:
如果在这个程序的基础上想要添加手动控制减计数的时间,通过一个键可以进行加减数应该怎么改呢?真诚请教各位牛人。

--------
不难,增加一个相同的计数器对输入脉冲进行计数。原来的计数器每次溢出都载入这个数值就可以了。
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表