找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

巢课
电巢直播8月计划
查看: 856|回复: 1
打印 上一主题 下一主题

六十进制计数器错误

[复制链接]

2

主题

18

帖子

-8983

积分

未知游客(0)

积分
-8983
跳转到指定楼层
1#
发表于 2011-10-12 15:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您!

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

x
六十进制计数器
% Y# A- E' b$ M2 _( Jlibrary ieee;
$ Q$ R( v' g/ |: _7 f# Vuse ieee.std_logic_1164.all;6 m! a6 U. V  A' o
use ieee.std_logic_unsigned.all;4 {( u! P" y: ?3 e) J, b1 E
9 e6 W) g4 p( [8 W0 v  u
entity counter_60 is2 Y9 I; b$ v; g! U! E# ^
        port(clk,bcd1wr,bcd10wr,cin:in std_logic;
& Z9 l  l& G( G" e                 co: out std_logic;
, @( O+ o  y. M/ a# ~6 z                 datain: in std_logic_vector(3 downto 0);2 j. d6 G* N) @* m; B
                 bcd1: out std_logic_vector(3 downto 0);' a4 G( f2 ?8 m- \8 h% L
                 bcd10: out std_logic_vector(2 downto 0));2 h! E# K  a5 G7 c: q- P9 j
end counter_60;
( b% F8 E2 K( Y7 z# S  i" s# ^6 E2 ]& g# L+ s" H! u# ^2 s" y
architecture rtl of counter_60 is+ x. B. b2 K. x$ ]7 J6 P& Q1 u' Y2 Z/ I
signal bcd1n:std_logic_vector(3 downto 0);/ \8 [0 e/ O7 @6 x. l8 P4 a% e. V/ @
signal bcd10n:std_logic_vector(2 downto 0);
2 e  U5 j6 X4 T9 v% F" ?' D) mbegin
% @3 u4 }/ I7 C+ A% B. ?+ l' X        bcd1<=bcd1n;' ?; U! E1 E, {, J; l6 F
        bcd10<=bcd10n;
# v* Z4 t9 L5 |8 T        process(clk,bcd1wr,datain) is
% M/ `4 m' [- W        begin
% A( T. g  S1 u# K' S( i                if(bcd1wr='1') then: d4 _" C6 p8 A% m
                        bcd1n<=datain;2 ~+ Y) m7 _6 B' H  ~
                elsif(clk'event and clk='1') then; [7 {$ p, ], _+ W0 R
                        if(cin='1') then* j; z7 h$ j0 l( O% w
                                if(bcd1n=9) then
& q% O9 s; U' N+ p4 |8 x                                        bcd1n<="0000";
+ c  C; s5 U6 {1 w8 w8 Y8 Q7 D* B0 ]                                else
) ]/ r' U1 h5 c* o9 V                                        bcd1n<=bcd1n+'1';$ P$ E1 s" q: v  h) R  m
                                end if;
/ N5 p9 u3 O8 u; G                        end if;# ?& T# W' G  l( g* \6 B5 ?
                end if;
9 f3 E' ]" i! S: F5 d$ A9 P1 d        end process;
: \5 [& p' O# U0 m      
" B4 a$ x* N5 |4 a3 z        process(clk,bcd10wr,datain) is* `: H" c9 y3 g5 i- p4 ]$ K2 _# K
        begin: C, T/ A! B% B% `* K$ j; w
                if(bcd10wr='1') then/ @* E% [& I* q9 ?
                        bcd10n<=datain(2 downto 0);
& ?  e; E" A; z# h& B9 X                elsif(clk'event and clk='1') then
" G8 l0 _- |. b7 N- l                        if(cin='1' and bcd1n=9) then
& G- B3 _2 o7 p5 l3 `                                if(bcd10n=5) then
9 q% v) l6 K1 U                                        bcd10n<="000";
: m) W7 A4 n# F                                else
/ t8 T3 n7 F$ ~, u) l2 m                                        bcd10n<=bcd10n+'1';
& L: L0 p2 @% c4 I! y, i/ k' C                                end if;, Z! n" W/ H5 F
                        end if;
% a$ }2 W" H. C' ^2 E                end if;4 l7 r6 M) c6 ^( G9 D5 D, M
        end process;) [1 U0 `3 P' ?6 {
       4 g: H' X/ k- F* S. ], e+ z$ u
        process(bcd10n,bcd1n,cin) is$ K2 Z! l; f- i6 f7 A" N4 O
        begin
7 X/ d, f- _6 v* g* m( ?                if((cin='1') and (bcd1n=9) and (bcd10n=5)) then
1 _3 l3 Q% d/ O) W7 Z$ X                        co<='1';* S$ ?' Q& m- s5 A2 M& ?
                else
: l# p) j" Z, o; B8 C                        co<='0';+ J2 z. k4 c( o& j! y
                end if;* o. Z6 i* B# B4 R' n/ c4 Y0 X
        end process;$ |7 B! a) `2 ]/ V2 l
end rtl;% c: f' a$ y1 n4 m: q! O
可以编译,但是仿真不合适,仿真不计数,请各位老师同仁指正,万分感谢
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 支持!支持! 反对!反对!

6

主题

30

帖子

144

积分

二级会员(20)

Rank: 2Rank: 2

积分
144
2#
发表于 2012-2-24 17:12 | 只看该作者
     把赋值放到前面去,怎么会变, bcd1<=bcd1n;
% E, N: M4 i: j' W! i        bcd10<=bcd10n;放在最后& i: P8 ^# }+ j3 i4 t- F
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

巢课

技术风云榜

关于我们|手机版|EDA365 ( 粤ICP备18020198号 )

GMT+8, 2024-11-24 08:31 , Processed in 0.065085 second(s), 33 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表