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

六十进制计数器错误

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
六十进制计数器
3 M- ^. b, J: m) ?* h3 h8 Clibrary ieee;" |7 D+ ]& U; H5 G* b1 a2 {
use ieee.std_logic_1164.all;
/ r& M: x# i; [& W; _! U$ x- M4 d3 _& euse ieee.std_logic_unsigned.all;. B! c0 H5 G: ]) t

& f; P6 F" G; Gentity counter_60 is
- e" ]( c5 [4 J6 D. ]7 T        port(clk,bcd1wr,bcd10wr,cin:in std_logic;& u3 Q+ W# k' N. d
                 co: out std_logic;. N- A+ z/ ~5 j8 O3 M8 ?1 \
                 datain: in std_logic_vector(3 downto 0);8 ~* G! ^: i7 o& ]6 p
                 bcd1: out std_logic_vector(3 downto 0);, h% {7 P1 g; j, V7 B% D
                 bcd10: out std_logic_vector(2 downto 0));) q% n% ~5 {+ ]* A
end counter_60;* X( y% A  H: ~! V* h5 e
& V% @$ Z8 Z% x1 K' \
architecture rtl of counter_60 is
9 }" s" Z+ ]9 ?* z+ ^/ ?- g( nsignal bcd1n:std_logic_vector(3 downto 0);6 [  ]$ T* J+ u. M$ _
signal bcd10n:std_logic_vector(2 downto 0);
7 E) `& ?, `) [6 X1 w2 Pbegin
1 Q% _8 S. K, C$ |  l        bcd1<=bcd1n;
# D8 b% T. ?3 ~" H+ A0 W5 T0 B3 N        bcd10<=bcd10n;
. I) [( p2 [4 Y" W' {        process(clk,bcd1wr,datain) is
2 N3 V! C! p* V! {* x- w1 I        begin
. _2 v5 V3 `8 D6 J1 c: ?4 C                if(bcd1wr='1') then
8 u; l2 g. n2 S/ q                        bcd1n<=datain;
/ a( x) _+ E( }                elsif(clk'event and clk='1') then0 a- E. d0 o# n$ u. E3 O: b( |
                        if(cin='1') then% j5 N2 D5 `9 B( v9 Q) n1 s; j  S0 e+ z
                                if(bcd1n=9) then2 W* D- _! F. `. I7 h/ `
                                        bcd1n<="0000";
; ]! E# u3 T( ?! J) M9 N                                else! s, q2 ?  K" [: U& z8 {5 M  E3 h
                                        bcd1n<=bcd1n+'1';9 ~  E/ d. ]4 O) K5 O. I: \) U
                                end if;
0 e$ A# G( @- C( C4 n                        end if;- c9 A, G; d9 n
                end if;/ U; u$ e/ v5 x! V
        end process;/ f6 p4 j( c% j( W- \1 w
      
' A2 @+ w0 y& F6 p1 ^/ W8 C        process(clk,bcd10wr,datain) is
$ v  o+ U, r3 ~& X& s+ C) v8 x# |        begin
1 @+ e  k$ p' K1 f/ H$ V4 ~                if(bcd10wr='1') then
! {7 m1 s" H$ f' }( i                        bcd10n<=datain(2 downto 0);/ ~' k( M6 w; I3 e, W( G4 |3 b, z
                elsif(clk'event and clk='1') then. G4 G- p$ B! }+ H! F
                        if(cin='1' and bcd1n=9) then7 L8 U. a$ a/ t; r; w1 U% ^
                                if(bcd10n=5) then4 u7 e$ C6 l4 `; \" p* e9 S
                                        bcd10n<="000";
3 c6 _8 o" l: v                                else
$ j( R, r: P) d# S( i4 Z0 B                                        bcd10n<=bcd10n+'1';
$ P7 s# l/ q2 j7 D# F* ?, \4 Y                                end if;; k5 G+ h1 |8 W- y4 f1 q' C3 Y
                        end if;- I4 `" X" `. I  Y" N" E
                end if;! A. c7 C" [+ ~
        end process;
# ~' ?) y  K4 H       / z% t, u" s# o$ Z/ l+ G
        process(bcd10n,bcd1n,cin) is+ X* ]7 g2 D+ ^$ z
        begin2 `* p3 O" K$ f% s
                if((cin='1') and (bcd1n=9) and (bcd10n=5)) then
  `3 R. l) s; ?& k6 R9 p                        co<='1';
- r$ t9 e1 L( ~+ {. o! e                else$ ~* h; l) I; u# f
                        co<='0';
, H$ U% s8 C% w+ {" {& x                end if;
0 T2 B) B" [; D: J# H% K        end process;- i; A# I$ p0 L0 }
end rtl;" e3 {5 j! i7 L+ O3 n3 ^
可以编译,但是仿真不合适,仿真不计数,请各位老师同仁指正,万分感谢

该用户从未签到

2#
发表于 2012-2-24 17:12 | 只看该作者
     把赋值放到前面去,怎么会变, bcd1<=bcd1n;' y1 j7 c2 C  F3 p4 N7 ?9 c2 f
        bcd10<=bcd10n;放在最后
9 @1 H' {. B* x5 R
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-7-20 20:16 , Processed in 0.109375 second(s), 24 queries , Gzip On.

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

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

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