找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

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

六十进制计数器错误

[复制链接]

2

主题

18

帖子

-8983

积分

未知游客(0)

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

EDA365欢迎您!

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

x
六十进制计数器( {! K0 f# o" ^' f7 w
library ieee;" r" ?% t/ m8 {
use ieee.std_logic_1164.all;& t2 n5 s0 a) [2 }) D
use ieee.std_logic_unsigned.all;+ E. J1 a. x: @2 n8 A" J5 i

! u/ W) U# ?, u% Jentity counter_60 is+ N$ H' A+ n* Z
        port(clk,bcd1wr,bcd10wr,cin:in std_logic;$ N$ f" O$ J6 {: F' Q
                 co: out std_logic;
3 X! s6 |2 q. v$ S! t* S                 datain: in std_logic_vector(3 downto 0);
% @( _7 V# N4 N, j                 bcd1: out std_logic_vector(3 downto 0);1 L) j$ M2 y* Y4 K' r4 k4 l" ]3 u, D5 v
                 bcd10: out std_logic_vector(2 downto 0));
2 p* u. f8 v9 R" {. _1 c2 F  Q3 lend counter_60;! Q& |& _1 N- y1 B' [! q1 o' g
' ?4 {1 j$ C% x
architecture rtl of counter_60 is
) V/ i, d' [$ P. Gsignal bcd1n:std_logic_vector(3 downto 0);6 w% f: }4 B) F; F
signal bcd10n:std_logic_vector(2 downto 0);. L' H) b8 E, Q6 W2 A! S( a
begin% h- q" k" j+ ~3 {" d# C$ r
        bcd1<=bcd1n;' ~4 m, C( N. E# ^6 y- A
        bcd10<=bcd10n;
& R; e1 s& H7 @* p  M  g. k        process(clk,bcd1wr,datain) is. r3 ]% f( y( j# p
        begin
, G- G" c6 ?; i* f                if(bcd1wr='1') then
7 i; E+ l, {0 n3 G                        bcd1n<=datain;
& Y9 q; `6 a2 e                elsif(clk'event and clk='1') then
' q3 g  u7 H, v8 N, c                        if(cin='1') then/ B  F: Z; g0 p5 O
                                if(bcd1n=9) then2 }5 f/ ^( ]+ a/ r
                                        bcd1n<="0000";
0 H2 i6 R" Y0 H" S, }                                else
+ A9 i+ I# \* t# Q) w                                        bcd1n<=bcd1n+'1';
5 V/ K. b, V1 C: M6 W/ L                                end if;7 k/ O$ V. o+ W: P4 z# T. d. c0 D
                        end if;
; c7 i9 [2 k5 Y0 ]3 {1 S! b                end if;
" f6 m- P! I8 Q( s) o4 F        end process;& I, n7 y  {- R# e$ l: w9 a( r/ m4 r
       & l" u) P; ~3 o  {2 Q
        process(clk,bcd10wr,datain) is* ]% a# _' z7 s1 ?2 n
        begin% I+ [+ G% l% g2 ?5 K3 H
                if(bcd10wr='1') then* y. K# Z& P2 R* h
                        bcd10n<=datain(2 downto 0);: H% I7 N  N/ x6 U4 v9 i; E
                elsif(clk'event and clk='1') then
0 }& h1 {+ o7 l4 v$ h5 t                        if(cin='1' and bcd1n=9) then
. t8 ?" c, o( I3 f6 h( N: N& k  _6 w                                if(bcd10n=5) then0 t6 G& Q: J+ p/ f' P  o
                                        bcd10n<="000";
) j# l7 M# T/ a8 ^                                else- ~7 A% o  v# m- Q
                                        bcd10n<=bcd10n+'1';
* k' s, @% ?' F) ^, X4 i/ A                                end if;
7 B: r  q9 M, _  h+ `                        end if;
" i% }  d$ s; D                end if;
! g9 A2 O# O' [        end process;
" ~) G) r3 Q; U       7 k$ Y+ g: R/ q4 J* y8 k7 A
        process(bcd10n,bcd1n,cin) is
7 Y0 b, _7 _6 B        begin
6 Z6 ~. Y3 U4 a4 r$ I* K                if((cin='1') and (bcd1n=9) and (bcd10n=5)) then7 O9 O5 n, b' Q0 {" b
                        co<='1';
/ M! S" ?: E4 E$ N  ?                else1 _# ~$ K6 N1 x0 }% H) i6 E1 m
                        co<='0';+ W9 g0 d) ?* M
                end if;, W" o( D8 d6 S( l+ c! a7 [/ L
        end process;1 g. [, e/ ?3 x" Z' Y% k: I( L
end rtl;
: e' N5 m9 z8 e5 M6 h: J可以编译,但是仿真不合适,仿真不计数,请各位老师同仁指正,万分感谢
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 支持!支持! 反对!反对!

6

主题

30

帖子

144

积分

二级会员(20)

Rank: 2Rank: 2

积分
144
2#
发表于 2012-2-24 17:12 | 只看该作者
     把赋值放到前面去,怎么会变, bcd1<=bcd1n;
$ f/ c% S1 n8 l/ r* s! S        bcd10<=bcd10n;放在最后7 H6 s4 P& z4 K6 `# p* H( D0 P" q6 }
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

巢课

技术风云榜

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

GMT+8, 2025-2-17 23:00 , Processed in 0.068602 second(s), 33 queries , Gzip On.

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

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

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