找回密码
 注册
关于网站域名变更的通知
查看: 1251|回复: 1
打印 上一主题 下一主题

六十进制计数器错误

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
六十进制计数器- k  k6 {/ I( R3 q5 _
library ieee;& z; k$ V) A9 k, H6 J0 R' ]; T
use ieee.std_logic_1164.all;: a5 f8 E' C9 J% z  [! Q
use ieee.std_logic_unsigned.all;
/ m5 S1 |5 d4 i! R" S
* U, s  V4 `& tentity counter_60 is* q+ b& ^/ V! ?4 |: c- G$ s
        port(clk,bcd1wr,bcd10wr,cin:in std_logic;
! j- f! @2 h4 o; w3 n                 co: out std_logic;
/ S3 \# n8 i; z. k8 g                 datain: in std_logic_vector(3 downto 0);' l6 i, X& [# F& f8 w0 s
                 bcd1: out std_logic_vector(3 downto 0);
. Z+ g# |% W/ x# F. K4 _                 bcd10: out std_logic_vector(2 downto 0));
$ O8 M+ s% [6 z- l1 W$ y0 b1 y% w% u# Jend counter_60;
: r- A8 S9 F7 I& w% n4 Q, n" I; A* p4 [$ c5 a5 T
architecture rtl of counter_60 is6 s3 u8 e) A' n2 {4 M$ ]; P
signal bcd1n:std_logic_vector(3 downto 0);
" {+ d, G1 q# \* M. nsignal bcd10n:std_logic_vector(2 downto 0);
' X6 {6 h, }" o$ o) ebegin
7 i6 ]6 y" k, V7 P        bcd1<=bcd1n;
" h5 ~' p3 [" D! U6 K        bcd10<=bcd10n;/ U! d5 B5 ?+ d
        process(clk,bcd1wr,datain) is; R0 @9 B0 K$ ^  ^& l0 p
        begin
. z+ s% G5 J# ^* u# H' K- L+ H$ g                if(bcd1wr='1') then
% D  ~/ g$ p: h& ~4 Z/ k, t                        bcd1n<=datain;" Q# ?' J% ^- v# |0 |5 t
                elsif(clk'event and clk='1') then
$ E/ b' M# u+ A( \9 Z+ D: \                        if(cin='1') then3 v( n3 J! z; z5 q6 p
                                if(bcd1n=9) then" E- x& ~8 {+ }+ b9 j% [9 H+ B
                                        bcd1n<="0000";
& k7 J" G' J; y# P+ z$ k                                else
! l- H* H: |0 Q* C  c, P                                        bcd1n<=bcd1n+'1';' w( d6 u) e! _
                                end if;7 s8 e" {+ j& J: H6 L
                        end if;; w0 T( O) h  f" N6 b5 K( c/ _, T9 |; C
                end if;
) m1 t. [" u5 z' t; j3 }: X8 @        end process;
) ]' v8 i6 y2 {- n      
: N9 b+ b9 @; U; O  e# ~2 u        process(clk,bcd10wr,datain) is$ z# B. C. {( z
        begin7 u3 f/ ]3 ]% c' i
                if(bcd10wr='1') then
% _; P& f+ _! g+ J; I/ V                        bcd10n<=datain(2 downto 0);# x3 L, M) N9 w; Z* y) t
                elsif(clk'event and clk='1') then9 U+ ~2 g( z: x4 J7 ?& w) U/ {7 W' u
                        if(cin='1' and bcd1n=9) then# s% O' i- O$ a$ p) u
                                if(bcd10n=5) then* t+ c) @( Y6 R5 P; d; o
                                        bcd10n<="000";
& N( N) d1 Y- J' J                                else$ J+ {/ d; Y& @% b/ i/ n
                                        bcd10n<=bcd10n+'1';
2 ]. P  @# p% }' v$ i" W) p& m                                end if;
/ H( _- D- p$ u2 ~0 n1 K9 |                        end if;* J4 W9 X# j5 R! G# p# G
                end if;7 e6 u7 g; ~# z4 ], `" ]
        end process;4 F) f9 A! w& x0 K% _
      
/ @% U( B# h% L" u) i) k        process(bcd10n,bcd1n,cin) is
& z9 q' a; K7 X; e( j        begin6 U5 `  ^  c7 n' |
                if((cin='1') and (bcd1n=9) and (bcd10n=5)) then4 E  n. N- K$ A6 v! U# ~, x* a2 X
                        co<='1';
4 p4 w9 h5 Q8 @; g                else: A3 P+ u5 v" O) C: V
                        co<='0';. t$ b- D- ]: r% Y
                end if;
/ A8 E1 M9 n* X7 _        end process;
! L, B( h, y) X6 A( j! oend rtl;9 w7 n  i% I$ w4 |" r* z
可以编译,但是仿真不合适,仿真不计数,请各位老师同仁指正,万分感谢

该用户从未签到

2#
发表于 2012-2-24 17:12 | 只看该作者
     把赋值放到前面去,怎么会变, bcd1<=bcd1n;7 U/ L" Z  p/ Q6 G. y% ?
        bcd10<=bcd10n;放在最后1 \2 _( e$ `9 {2 ~4 s, b
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-10-5 09:13 , Processed in 0.125000 second(s), 24 queries , Gzip On.

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

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

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