找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

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

六十进制计数器错误

[复制链接]

2

主题

18

帖子

-8983

积分

未知游客(0)

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

EDA365欢迎您!

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

x
六十进制计数器/ Q& c) u. P- D( z, c
library ieee;+ R& A+ @+ G( b4 I
use ieee.std_logic_1164.all;
' D5 x4 G, z: xuse ieee.std_logic_unsigned.all;- B" b  R! b+ S) z
( s6 G7 H! V5 M% U7 E5 o8 E
entity counter_60 is
- q" e/ O9 f- _! ~6 E& n9 F        port(clk,bcd1wr,bcd10wr,cin:in std_logic;
5 N+ \8 p: M, X2 a, h" |% h- r                 co: out std_logic;
5 R0 l; \( a3 o) n& q( H                 datain: in std_logic_vector(3 downto 0);
9 Q% e% {3 s% ~4 ^% I# G                 bcd1: out std_logic_vector(3 downto 0);
% j' S/ b* R$ r                 bcd10: out std_logic_vector(2 downto 0));
* y! G- E8 ~; a4 V- Yend counter_60;
# W* p! U& S( d+ u0 t) X; A0 k8 N
architecture rtl of counter_60 is
# U7 {; A+ W4 }9 Q; M% p! p! `  esignal bcd1n:std_logic_vector(3 downto 0);
# I; a$ O) j, [8 D4 Ysignal bcd10n:std_logic_vector(2 downto 0);
5 U! V# J: ^: v8 `3 kbegin
* r1 p' q4 {: k7 |- Z7 T- d# I        bcd1<=bcd1n;0 Q! y% \! w+ M; f3 U
        bcd10<=bcd10n;9 w( R+ w2 k' f) h, r8 [
        process(clk,bcd1wr,datain) is
& ~: K! `8 @# ]5 ~2 O. ^( P' \% B        begin
& ^& v& W0 V  m  u: M4 t                if(bcd1wr='1') then
7 N# b0 N3 M6 i5 e: L6 K                        bcd1n<=datain;
. D1 O, l8 l4 C0 j9 {                elsif(clk'event and clk='1') then
9 J9 t- C; o' h' l% o: N" B% K                        if(cin='1') then
9 A$ X4 S! x; N2 R2 l- M                                if(bcd1n=9) then7 |% F. M4 ^, u( S& ~
                                        bcd1n<="0000";& K7 ~/ K+ P" D% @0 W/ t* ]6 _
                                else
4 t' G; L8 z( t; g$ [+ \" |3 Z/ \1 e                                        bcd1n<=bcd1n+'1';. D: a% ^1 p3 ~, [3 x  e! z
                                end if;
0 j" `( X! B) `                        end if;" ^0 g- u  h& w# S( r
                end if;
( }9 \) d$ H9 P& R& |        end process;( k* X( p; b- K1 Q0 P
         t2 l3 k$ ^; C" ~1 k
        process(clk,bcd10wr,datain) is
1 M) E3 ~3 |: O- d& G- I; c7 h! P& n4 ^        begin+ T5 y0 ]1 q" r2 u- \6 i
                if(bcd10wr='1') then
$ `% ^# @4 ~: u7 S+ ~; r( p& ^3 j                        bcd10n<=datain(2 downto 0);. I" a* b0 P+ G$ X6 P
                elsif(clk'event and clk='1') then. f# |3 T. [% B  r; u; D9 t7 _% I
                        if(cin='1' and bcd1n=9) then; i4 d( G4 O( ]
                                if(bcd10n=5) then
3 a/ F( W# {% U: {4 |" _+ i                                        bcd10n<="000";. Y4 Q2 N/ w! x
                                else
7 o8 k; {0 E. S% l+ i6 G% E                                        bcd10n<=bcd10n+'1';2 _' E5 M# H5 Q& `
                                end if;
8 }( }$ B5 Z. t2 \3 z2 `                        end if;
' x( ]: r+ ?% j                end if;3 A. |, q& K# H' H
        end process;
" M6 s4 O! [! M7 B* m8 ]       0 o2 W3 R% {+ H  _
        process(bcd10n,bcd1n,cin) is
0 K* Q; H: p+ k7 ?8 f        begin
9 `5 V1 H: {+ F7 H                if((cin='1') and (bcd1n=9) and (bcd10n=5)) then2 A! X: H  ?- e1 s. U8 P$ A
                        co<='1';
. O6 r: Z9 a5 W9 s, t3 m, S                else
1 u! t2 ]" i' ^" Z                        co<='0';4 K! P4 M) T, t! G  S5 [# U; g
                end if;
" V; ]2 H3 b4 v; B& X* \. G% [        end process;1 Z. S1 x- z$ E  S; L( o/ w. Q3 ]# S
end rtl;
6 j% e0 G' j5 ^7 }1 l- _" \; Y3 t可以编译,但是仿真不合适,仿真不计数,请各位老师同仁指正,万分感谢
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 支持!支持! 反对!反对!

6

主题

30

帖子

144

积分

二级会员(20)

Rank: 2Rank: 2

积分
144
2#
发表于 2012-2-24 17:12 | 只看该作者
     把赋值放到前面去,怎么会变, bcd1<=bcd1n;& A8 C4 o6 S. d
        bcd10<=bcd10n;放在最后" ^/ C/ i3 y  c. \' F: h; X
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

巢课

技术风云榜

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

GMT+8, 2025-2-19 05:56 , Processed in 0.052940 second(s), 32 queries , Gzip On.

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

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

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