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

六十进制计数器错误

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
六十进制计数器
1 ?* ~' d( p; z5 e4 Q) _1 _library ieee;% `: G( p# h7 f9 f7 _
use ieee.std_logic_1164.all;1 O) M. M' z8 y# X$ B( t% r
use ieee.std_logic_unsigned.all;0 H6 A+ Y  i) t) k

9 w% d; E, Z. ]8 Hentity counter_60 is
' p+ K1 z* u* K  Y. v8 F0 `        port(clk,bcd1wr,bcd10wr,cin:in std_logic;
7 V: n, f/ K+ w  H' p' W0 k                 co: out std_logic;0 ]8 L. {; P3 X/ T' a' [
                 datain: in std_logic_vector(3 downto 0);" _9 b. u2 e7 A& T; T
                 bcd1: out std_logic_vector(3 downto 0);
) ~8 J6 J  z  x# z6 w- {                 bcd10: out std_logic_vector(2 downto 0));
" W* o$ ]6 I5 X# f" C5 N6 [end counter_60;
- Q, @; n4 n1 _: g' K
$ Y0 ?1 f9 B, m; E* Larchitecture rtl of counter_60 is0 m) M1 R6 V2 s5 u" `
signal bcd1n:std_logic_vector(3 downto 0);' a/ P9 c2 g7 R% C  p
signal bcd10n:std_logic_vector(2 downto 0);
" R( b4 E! p, m# \/ H9 ~- pbegin
# E2 s' w% u' t; N; J        bcd1<=bcd1n;( x1 x" K/ @% L9 d
        bcd10<=bcd10n;4 Z# J2 P) ?& P6 d. v+ g6 L
        process(clk,bcd1wr,datain) is
- C: t. R6 L; g& ]        begin
9 o6 ~4 c3 L. y8 G* o                if(bcd1wr='1') then
% r# K* t& L# H3 H8 J                        bcd1n<=datain;
- ]9 {* `6 p  L4 _0 ?1 r: G& X                elsif(clk'event and clk='1') then! ?# |9 s" ]# F6 k/ Z2 L
                        if(cin='1') then
. r6 ~( [- `/ h) l                                if(bcd1n=9) then
4 k$ _% @7 s5 X  x2 O. e: S% Q) l& S                                        bcd1n<="0000";- s  a, g  P- g5 L8 k4 _
                                else
* v$ @2 `0 R; j* s                                        bcd1n<=bcd1n+'1';
& G/ l. L  `$ h) ~+ g' d                                end if;6 ^! {) c. X" ~# ~+ i: K
                        end if;& x- m3 Y9 D+ ^4 m
                end if;
; s0 u( m' v. v+ j( ]        end process;
# ~1 U7 C+ D1 I1 L4 w: ~      
1 S! I( g* T0 y1 J$ e/ P# S        process(clk,bcd10wr,datain) is  r: Z2 p% n- \% j5 U
        begin
* H( K4 C, Z! [. z, \                if(bcd10wr='1') then2 a7 Q$ Q9 F; s# S
                        bcd10n<=datain(2 downto 0);, X! g, H3 x5 V
                elsif(clk'event and clk='1') then, I# t6 B6 N% S- j$ B3 b7 F! u& P/ V
                        if(cin='1' and bcd1n=9) then
# z1 {8 V* s7 y! s                                if(bcd10n=5) then
6 J# V& T7 \' u; }! Q" b" d' f; b, R                                        bcd10n<="000";4 R) l# Z1 b) e* M$ V
                                else6 K' q3 h- b+ C6 o
                                        bcd10n<=bcd10n+'1';6 Y7 a  p* n! S+ s2 [1 Z
                                end if;: H! x9 N6 F8 [/ x
                        end if;
. I4 u- M' y" a                end if;
/ V! {" `" A9 t2 d2 X" \/ l        end process;
/ `" X, `- x. o3 Q' y' y7 }* A1 z      
2 X7 k1 D- o0 d6 J  x1 Q) O! I- U        process(bcd10n,bcd1n,cin) is
6 v( p# ^! l7 C( Y7 E9 y7 E        begin
0 K! m( z3 B7 A                if((cin='1') and (bcd1n=9) and (bcd10n=5)) then
8 ~8 {+ D2 ]) F" d' z/ c                        co<='1';
; {, Q, C# U3 }- S* K                else
' y- P9 E) e) B5 c8 V                        co<='0';
, Z  K6 c$ L$ K; t; I0 D" v* u                end if;9 Z; E8 l& w) k4 t+ S% A- E. Z, Y; E
        end process;
, `) a  n- A* B- B! \end rtl;
1 \+ \' R6 ?( U, L可以编译,但是仿真不合适,仿真不计数,请各位老师同仁指正,万分感谢

该用户从未签到

2#
发表于 2012-2-24 17:12 | 只看该作者
     把赋值放到前面去,怎么会变, bcd1<=bcd1n;; Z7 r1 w9 \* K; p9 o
        bcd10<=bcd10n;放在最后+ V$ u+ j7 l9 P# L, B4 a$ ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

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

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

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

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