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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
楼主: empmit

vhdl 设计数字钟

[复制链接]
发表于 2008-7-4 18:10:38 | 显示全部楼层
多谢楼主,简直就是救命啊
发表于 2008-7-23 20:00:27 | 显示全部楼层
好东西。。。。。。。。。。。
发表于 2008-7-23 21:25:35 | 显示全部楼层

开始学vhdl了

开始学vhdl了
发表于 2008-8-4 22:16:31 | 显示全部楼层
实用,谢谢楼主分享
发表于 2008-8-4 22:17:29 | 显示全部楼层
顶一个,哈哈
头像被屏蔽
发表于 2008-8-11 22:06:49 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2008-11-4 23:39:56 | 显示全部楼层
为什么下不了啊?
发表于 2008-11-5 20:21:41 | 显示全部楼层

为什么我的不对?

为什么小时个位(cp5)是零的时候不能计数,好像是清零信号,把小时位都清零了。请高手指教下!
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity counter1000000 is
    Port ( clk : in  STD_LOGIC;--时钟
           en : in  STD_LOGIC;--使能
           clr : in  STD_LOGIC;--清零
     set:in std_logic_vector(1 downto 0);--置数选择秒分时
     data:in std_logic_vector(6 downto 0);--低4位置个位,高3位置十位
     q1,q2,q3,q4,q5,q6 : out  STD_LOGIC_VECTOR (3 downto 0);--分别是秒的个位和十位、分的个十位、时的个十位
           cout : out  STD_LOGIC);--24小时溢位输出
end counter1000000;
architecture Behavioral of counter1000000 is
signal cq1,cq2,cq3,cq4,cq5,cq6:std_logic_vector(3 downto 0);
begin
process(clk,en,clr,set,cq1,cq2,cq3,cq4,cq5,cq6)
begin
if clk'event and clk='1' then
  if clr='1' then
  cq1<="0000";
  cq2<="0000";
  cq3<="0000";
  cq4<="0000";
  cq5<="0000";
  cq6<="0000";
  elsif set/="00" then
     case set is
    when "01"=>cq1<=data(3 downto 0);cq2(2 downto 0)<=data(6 downto 4);
    when "10"=>cq3<=data(3 downto 0);cq4(2 downto 0)<=data(6 downto 4);
    when "11"=>cq5<=data(3 downto 0);cq6(2 downto 0)<=data(6 downto 4);
    when others=>null;
     end case;
   elsif en='1' then
   if cq1="1001" then cq1<="0000";
    if cq2="0101" then cq2<="0000";
     if cq3="1001" then cq3<="0000";
      if cq4="0101" then cq4<="0000";
       if cq6<="0010" and cq5<="0011" then cq5<="0000";cq6<="0000";cout<='1';--应该是这的问题,但是逻辑上没有问题啊!
       elsif cq5="1001" then cq5<="0000";cq6<=cq6+1;
       else cq5<=cq5+1;
       end if;
      else cq4<=cq4+1;
      end if;
     else cq3<=cq3+1;
     end if;
    else cq2<=cq2+1;
    end if;
   else cq1<=cq1+1;
   end if;
  end if;
end if;
q1<=cq1;
q2<=cq2;
q3<=cq3;
q4<=cq4;
q5<=cq5;
q6<=cq6;
end process;
  
end Behavioral;
发表于 2008-11-5 21:11:42 | 显示全部楼层
哈哈,以前做过这方面的东西,感觉很简单
发表于 2008-11-6 16:17:57 | 显示全部楼层
:hug: :hug:
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2025-1-5 18:28 , Processed in 0.022933 second(s), 8 queries , Gzip On, Redis On.

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