找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

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

六十进制计数器错误

[复制链接]

2

主题

18

帖子

-8983

积分

未知游客(0)

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

EDA365欢迎您!

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

x
六十进制计数器
2 i2 X/ @3 }- h% slibrary ieee;
4 c  D# z" B) L% i  `use ieee.std_logic_1164.all;4 r" \6 X! M2 X. y$ V: }
use ieee.std_logic_unsigned.all;+ g/ [8 W. I* b- p! S7 X

, j3 x2 Y: [' ]1 E2 }/ p2 S* Rentity counter_60 is
0 P+ b+ c1 i6 |: ?1 ~2 U9 J! x        port(clk,bcd1wr,bcd10wr,cin:in std_logic;* Y7 o  R# T, ]8 ?  l
                 co: out std_logic;
3 }% q8 i. o: {" Q$ |                 datain: in std_logic_vector(3 downto 0);( H( i- h0 A2 t* k6 N
                 bcd1: out std_logic_vector(3 downto 0);
. R* G6 O& {* A, e+ _                 bcd10: out std_logic_vector(2 downto 0));. v! ]1 A, h3 O! W% D- [& s
end counter_60;
# v5 }; U' Z. C; F" X8 r
1 \! \/ o$ _* s9 sarchitecture rtl of counter_60 is
6 S' @4 Y. v# n5 vsignal bcd1n:std_logic_vector(3 downto 0);8 A1 s! l. A4 v- j; ~
signal bcd10n:std_logic_vector(2 downto 0);$ A( s0 ]! l6 L; ~2 m
begin
, z, n+ R! k9 S5 \        bcd1<=bcd1n;
' ~# [& |1 R- t& X: F7 w7 G; R* l        bcd10<=bcd10n;) q6 q; Z" c9 J6 [
        process(clk,bcd1wr,datain) is# |$ @" m  Q; w/ u" B
        begin$ ~/ B7 |$ }! o$ B' ^
                if(bcd1wr='1') then
# D% y; f% f- h' t' G& `; ?                        bcd1n<=datain;% _; H& b; F# n7 _+ s
                elsif(clk'event and clk='1') then
" L' v) V6 J0 z$ y                        if(cin='1') then' d; [! `* K: k1 c1 k  m' S  \/ [& R
                                if(bcd1n=9) then
  |; d2 _) w. r. H                                        bcd1n<="0000";, t9 R( w1 X7 w+ U
                                else5 E3 e7 I7 L, }8 ]  [/ p
                                        bcd1n<=bcd1n+'1';
2 F2 S3 B" E$ R& H% \0 E/ r9 s2 r                                end if;
/ i8 C/ R) ~, H5 I$ T, j                        end if;
2 B$ J' F% w8 [' M                end if;
* g5 v' V7 A( b        end process;5 m8 K4 X0 k2 O2 {; \8 n
       ' y1 D4 \, ^: b( o6 l
        process(clk,bcd10wr,datain) is. {/ e1 o% ?# ^
        begin( {7 U+ y# _7 I& c  {2 u3 m
                if(bcd10wr='1') then
. Y4 ]" _9 e: G* P, b+ N& m                        bcd10n<=datain(2 downto 0);& x% g5 W7 z, j( x
                elsif(clk'event and clk='1') then4 j6 V9 m5 W. z7 L& e- M1 n
                        if(cin='1' and bcd1n=9) then
9 v- h3 e( H9 {7 x1 R+ e! |                                if(bcd10n=5) then
! _0 ?' h" u  B: B( A+ f                                        bcd10n<="000";& P6 j2 T  Y* X' D# Q( P
                                else4 ~: U; U8 {4 v% J2 {
                                        bcd10n<=bcd10n+'1';, W; i6 }, n3 L# u$ x5 J2 P* J
                                end if;
" _& r% S( Z% v6 Q, Q% g                        end if;
5 c" j& c# Q) r) h5 Z- U; d                end if;
" R6 ], k% F' S; ~+ L        end process;4 l5 r% i3 f' n, G! t
       1 J3 f1 j/ b/ o
        process(bcd10n,bcd1n,cin) is3 c/ W0 V5 r% N" }2 z
        begin0 H) W2 M4 \; T% C6 @( O5 i
                if((cin='1') and (bcd1n=9) and (bcd10n=5)) then9 s- v  z. C! A8 ]
                        co<='1';& a. i0 g6 B5 M4 Y3 G4 i" l
                else
& ^! u- ~& h& {6 U& u                        co<='0';
1 o- @5 r7 ?- m: z                end if;
: {/ D4 q3 Y9 {% e        end process;) i! p8 }: Y3 C- `+ l# C4 N
end rtl;3 j! o! I1 W, |% Z/ `2 m; @
可以编译,但是仿真不合适,仿真不计数,请各位老师同仁指正,万分感谢
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 支持!支持! 反对!反对!

6

主题

30

帖子

144

积分

二级会员(20)

Rank: 2Rank: 2

积分
144
2#
发表于 2012-2-24 17:12 | 只看该作者
     把赋值放到前面去,怎么会变, bcd1<=bcd1n;
7 V! a: g5 J! I2 V# E9 T        bcd10<=bcd10n;放在最后
8 V2 q$ z& g7 W* k& b* r
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

巢课

技术风云榜

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

GMT+8, 2024-11-24 10:43 , Processed in 0.056268 second(s), 32 queries , Gzip On.

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

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

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