找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

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

六十进制计数器错误

[复制链接]

2

主题

18

帖子

-8983

积分

未知游客(0)

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

EDA365欢迎您!

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

x
六十进制计数器8 l$ R6 j' H; {) ~3 @+ Z
library ieee;( F9 a- \# l) r1 d( ~2 q' S
use ieee.std_logic_1164.all;# e2 F( C2 A$ c8 N9 I  h- Z. A
use ieee.std_logic_unsigned.all;! ]. ]" Q5 v/ T$ B2 F: k

% K+ |: F8 j8 [9 U5 s5 pentity counter_60 is: P: i& g4 D" O) e% @
        port(clk,bcd1wr,bcd10wr,cin:in std_logic;
+ J& _0 ^$ _- u# y% A                 co: out std_logic;$ @% H7 r/ s6 K+ f; m
                 datain: in std_logic_vector(3 downto 0);
5 J4 J; B5 v3 R7 o7 S                 bcd1: out std_logic_vector(3 downto 0);5 k1 u$ Z9 M( `0 M( h- C8 a' N' j( Q
                 bcd10: out std_logic_vector(2 downto 0));
8 y( h0 U- {: d* Jend counter_60;' k6 }0 i: @1 B& p( Q

3 u) x" s% X- Q9 D$ m  Marchitecture rtl of counter_60 is4 y6 U7 f3 U& K5 d
signal bcd1n:std_logic_vector(3 downto 0);5 Z: h3 R% U+ G7 K
signal bcd10n:std_logic_vector(2 downto 0);
6 y0 e3 G8 _: C" o9 ?/ }begin, {) O" M% k% o" K0 h6 U0 l& o
        bcd1<=bcd1n;
+ `8 j1 O1 J+ ?# S$ h5 V6 M$ f# p  \        bcd10<=bcd10n;
3 T- R" ~% x2 l. F        process(clk,bcd1wr,datain) is* g+ U) H, f) s1 w' V4 n# p3 n$ \
        begin
# F% z9 g: {: K2 K* G0 `. d0 u                if(bcd1wr='1') then
- J9 Q, K& Y8 }, d) C) Y; W8 [8 B! Q+ _                        bcd1n<=datain;
' @) J6 k' b5 l. k                elsif(clk'event and clk='1') then$ v7 ?$ N2 h2 [; e* j
                        if(cin='1') then7 E  Y. l7 @- H5 U/ W1 x
                                if(bcd1n=9) then
! d: W0 j; Z* e  z3 e                                        bcd1n<="0000";
7 [* w9 a' C$ ?                                else
: @. f+ G$ S5 j. y. f1 n: s( I! V                                        bcd1n<=bcd1n+'1';
; W. \& X- A/ r$ U2 `. S                                end if;
$ J, L: N( [! j7 w" {0 t                        end if;+ b9 q4 b- @# w% Y' C
                end if;
* C/ m0 B9 v- \. k7 S) M        end process;
% b/ {" u& T9 H      
$ Y: L2 F5 d  O' C2 i0 D        process(clk,bcd10wr,datain) is
' ~  {- r% [% E        begin
9 {; [; m/ I& m9 D, c+ ]) F                if(bcd10wr='1') then
& Z- F5 x$ ~0 W                        bcd10n<=datain(2 downto 0);
( h9 T' V4 A# p: Q% B) Z, D                elsif(clk'event and clk='1') then
! Q$ R, i- T' [4 `5 I$ x                        if(cin='1' and bcd1n=9) then" _- ]. d+ y2 `6 Q6 R4 r
                                if(bcd10n=5) then
' m) l$ C# V3 j- f+ U) p5 W2 h                                        bcd10n<="000";
7 P* Q' P+ X5 R- Q! x                                else
4 p& {6 H( ~8 C& p3 ~                                        bcd10n<=bcd10n+'1';
2 u( H8 w/ ?- Z' v7 Q                                end if;0 ?2 r3 \9 w! B
                        end if;- v6 m4 r- V0 ?4 X; R! `
                end if;
: ^2 ^# j5 K# b1 M* h( a, ~        end process;
- ^1 r( |. X/ P( G3 U       1 a- w& |0 ?( c5 w4 _) E0 w
        process(bcd10n,bcd1n,cin) is! J4 ]" t. Q. c0 R  T
        begin
& J3 @) M: a& r; O/ q: G: ]                if((cin='1') and (bcd1n=9) and (bcd10n=5)) then
5 v8 U& v) E: G                        co<='1';! k- h4 q4 Y" s) P
                else7 w, _# \+ Y/ J( s9 W' d- n6 x- ~
                        co<='0';
( h5 o9 i5 |% M  U/ h+ i. T& e+ M                end if;, |9 x4 J+ y( F- r5 V2 E. _
        end process;6 X+ V; X# j0 }7 ^' g
end rtl;
) D, y0 e" S5 i3 {* M2 S可以编译,但是仿真不合适,仿真不计数,请各位老师同仁指正,万分感谢
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 支持!支持! 反对!反对!

6

主题

30

帖子

144

积分

二级会员(20)

Rank: 2Rank: 2

积分
144
2#
发表于 2012-2-24 17:12 | 只看该作者
     把赋值放到前面去,怎么会变, bcd1<=bcd1n;- \# Q) }  W: Q/ L
        bcd10<=bcd10n;放在最后& g, J1 `8 i% `. }
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

巢课

技术风云榜

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

GMT+8, 2024-11-24 08:47 , Processed in 0.056933 second(s), 32 queries , Gzip On.

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

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

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