找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

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

六十进制计数器错误

[复制链接]

2

主题

18

帖子

-8983

积分

未知游客(0)

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

EDA365欢迎您!

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

x
六十进制计数器9 F1 H& f5 I* ]
library ieee;
0 Q7 U0 Q/ h/ N1 O4 Luse ieee.std_logic_1164.all;9 H3 G) N/ ~# C+ y5 T$ Z3 r
use ieee.std_logic_unsigned.all;1 [1 t4 B7 ?5 Q! R
4 z! w5 d4 Y) ?  p. _
entity counter_60 is
% s) n6 }! N% r& w7 w        port(clk,bcd1wr,bcd10wr,cin:in std_logic;
% y$ s/ \( J4 \1 R* U/ J1 }- d                 co: out std_logic;
6 D; J  a8 p! |' p; b2 j4 p                 datain: in std_logic_vector(3 downto 0);
" F+ L( e6 |1 W                 bcd1: out std_logic_vector(3 downto 0);0 L6 k/ Q' D5 f4 A/ V
                 bcd10: out std_logic_vector(2 downto 0));
. o4 j) K; V4 G- O* ^4 u8 Xend counter_60;
' W+ C$ U! L; `; z. G
. t" q( X- V9 karchitecture rtl of counter_60 is; g6 h1 P7 H* u, K8 w
signal bcd1n:std_logic_vector(3 downto 0);
, T/ A: k( I' }( {% tsignal bcd10n:std_logic_vector(2 downto 0);! o* x7 a  `$ X3 @' ]7 ]
begin. T( ^3 N* Y( }* Y
        bcd1<=bcd1n;+ M' f( _5 C9 @8 }& \! J
        bcd10<=bcd10n;' }- o% v; \! m7 s8 S3 Y9 x
        process(clk,bcd1wr,datain) is, A4 F- l& s1 m9 X5 S
        begin
+ w' E" W) y. C; R$ x: I                if(bcd1wr='1') then
5 a6 [( A4 y) [8 ~& |) [3 O$ q/ l& |                        bcd1n<=datain;
; G  T, a) R1 ?2 E; g                elsif(clk'event and clk='1') then
# ^( T, `  X$ f8 {3 S7 A6 I/ y4 d                        if(cin='1') then
1 C# }) ]1 H, [  }9 K1 j: y                                if(bcd1n=9) then- ~% n6 z5 d6 O8 }1 A  H( C5 B
                                        bcd1n<="0000";
. k2 u8 _3 A% }! r4 Z                                else; C/ z# X# d4 |2 j0 B9 z9 X
                                        bcd1n<=bcd1n+'1';
$ M6 E' x% K- q$ q% W6 h3 h8 Y                                end if;
( o6 d5 c! a# `                        end if;% a/ O, i' Z+ J
                end if;
) E  s: @& h0 x        end process;
- r6 e* p' T+ r8 Y0 F& O7 j' }9 I      
& M4 o" x3 A- C; M        process(clk,bcd10wr,datain) is
, W0 e% I6 }) T8 V+ q& I) }        begin/ N! _" m/ O7 N/ J
                if(bcd10wr='1') then) U  M! a1 b, Z# [7 {( [9 u# i. m
                        bcd10n<=datain(2 downto 0);) A- h4 R$ V) I7 B" B0 y
                elsif(clk'event and clk='1') then9 l3 z0 D9 M: A' L, o0 E
                        if(cin='1' and bcd1n=9) then
: H0 K( W0 u/ w7 Y$ S* G                                if(bcd10n=5) then
, k" q; \; N/ q6 C$ v                                        bcd10n<="000";
: ?) r6 S- C7 k                                else4 I, u8 X5 G9 ?3 `/ h
                                        bcd10n<=bcd10n+'1';
/ @$ ?  `$ k8 T. \                                end if;
  A) M& A& k. h' [* E                        end if;* G8 n8 L8 A* K$ v) J" X2 q
                end if;
" \3 g3 p$ R8 K5 ?4 I        end process;/ M# H5 h/ W3 B, c
       + M0 t+ |5 {$ `7 N
        process(bcd10n,bcd1n,cin) is. B5 f7 D* o1 h9 p2 }9 d
        begin! I/ r( ?! M8 F; _, s
                if((cin='1') and (bcd1n=9) and (bcd10n=5)) then: X; j7 \( ]& w2 C
                        co<='1';# _! N3 Y& X  X( T4 X7 H. y; n' m# u
                else
9 j3 I- s2 x' t5 |/ c9 Z                        co<='0';
) }- ?( ~( P- b                end if;% F, d3 a* e9 Z7 _( ]
        end process;- {/ `( `2 Q8 h% ^2 i1 V& s4 |3 X
end rtl;
9 Z; j0 o0 A+ d6 x- R' G可以编译,但是仿真不合适,仿真不计数,请各位老师同仁指正,万分感谢
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 支持!支持! 反对!反对!

6

主题

30

帖子

144

积分

二级会员(20)

Rank: 2Rank: 2

积分
144
2#
发表于 2012-2-24 17:12 | 只看该作者
     把赋值放到前面去,怎么会变, bcd1<=bcd1n;- \4 f4 I( g! {: T5 y
        bcd10<=bcd10n;放在最后1 m+ ]/ f! g8 ^, r3 y- G2 ^& J
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

巢课

技术风云榜

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

GMT+8, 2024-11-24 10:27 , Processed in 0.055293 second(s), 33 queries , Gzip On.

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

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

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