找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

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

六十进制计数器错误

[复制链接]

2

主题

18

帖子

-8983

积分

未知游客(0)

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

EDA365欢迎您!

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

x
六十进制计数器9 Q0 }$ C; i+ d. N9 ?  B
library ieee;; b# ~( n) Q4 \6 j. {" I
use ieee.std_logic_1164.all;9 j7 k' O% G3 y4 n5 x" E
use ieee.std_logic_unsigned.all;
" \* l  J3 h& ~, i9 U) ^) X) r4 b8 _
entity counter_60 is
: \$ R5 J0 l& C5 N9 x5 T5 |3 y        port(clk,bcd1wr,bcd10wr,cin:in std_logic;
# w' I& ~/ N4 A) X& ~) O2 b- s                 co: out std_logic;$ b9 A8 B6 {: b+ L$ a" A+ v9 J
                 datain: in std_logic_vector(3 downto 0);4 d0 `. b/ ]( H6 G5 r
                 bcd1: out std_logic_vector(3 downto 0);
; j+ o  s8 `$ ?; ?  ]                 bcd10: out std_logic_vector(2 downto 0));1 j$ u$ P* Q8 J& n6 w
end counter_60;
5 R2 {/ i4 W5 Y+ z' @8 Q& \" l  o$ [3 r* e
architecture rtl of counter_60 is! P! Z0 S2 c; c! s6 D1 ?% N9 W
signal bcd1n:std_logic_vector(3 downto 0);& D( R' Q! u' G# L4 V& u9 w2 I
signal bcd10n:std_logic_vector(2 downto 0);3 i* D- L. A6 o1 }# \' J# P
begin
! |, R6 T" G0 z& A" I" ^        bcd1<=bcd1n;
& L& n/ n" d2 u- }        bcd10<=bcd10n;% r  A8 k6 d  w1 w* W1 J
        process(clk,bcd1wr,datain) is
: h+ M% x; X" V! x1 U8 C8 W        begin
+ y% y/ m, l! j4 L* }                if(bcd1wr='1') then
+ b$ X! s6 d' _1 k+ g8 s: U4 g* d                        bcd1n<=datain;
2 r+ l. o9 e7 Z2 L                elsif(clk'event and clk='1') then
* M# j1 e" H- _. F3 e                        if(cin='1') then
, x8 e+ _4 _, a% W/ L) D/ h3 o                                if(bcd1n=9) then6 k: I' g5 Y4 T! P
                                        bcd1n<="0000";0 K+ e. Q9 c' J: s. E& \
                                else" y  q! j# d6 a/ S1 l: S( a
                                        bcd1n<=bcd1n+'1';
$ u5 u3 V/ d9 p* m% x                                end if;
5 [1 W; T0 R9 y- g' t                        end if;* \3 M  H4 x2 Z/ D" b; }
                end if;$ P2 E- Q- D, H
        end process;8 c3 b. @& T# i. j% x
       : D  t+ M. k, H4 ^, C, D9 L
        process(clk,bcd10wr,datain) is
7 u: x0 }! _1 J$ m! m0 Y        begin
" n5 ?, h3 I& h4 G" w                if(bcd10wr='1') then$ h: B# z; I7 L7 j
                        bcd10n<=datain(2 downto 0);
" J% D; T" `. k                elsif(clk'event and clk='1') then7 z7 k5 k5 J( Z
                        if(cin='1' and bcd1n=9) then$ F/ }$ ~, y. D, Q) W, [" z
                                if(bcd10n=5) then
' G. I7 X9 S9 r3 @; p* f3 H                                        bcd10n<="000";
  `; e* {1 K8 V6 [) b) k% k# E) Z                                else
4 S3 H8 G: E! C  W) R8 u9 c! J                                        bcd10n<=bcd10n+'1';
# B6 `% f0 k- x2 L5 z- z                                end if;6 B- s& E0 b5 M5 l
                        end if;
, Y9 m! l5 |" R9 R9 g                end if;- H! F' W8 c" G( d% Q6 a
        end process;
4 E& a% l% o6 W, o8 P# b      
# L" e- U8 {5 a7 q+ V# r* o; p& Z        process(bcd10n,bcd1n,cin) is4 S, |. p2 L! t9 k+ \
        begin
. x4 ^  o0 A  P) F, }- h                if((cin='1') and (bcd1n=9) and (bcd10n=5)) then  t4 h) |! \3 c& X
                        co<='1';
. z  e: }8 d# r3 j2 B. D* i* r                else- N: P7 L, r  e, R/ J
                        co<='0';
; d+ s% ~- y7 G: ?9 V                end if;0 G+ U/ v! ?4 G; _' R. F/ Y# l; D
        end process;, L0 o0 f. z# b
end rtl;
2 i. E7 h1 D$ T5 }+ Q6 I可以编译,但是仿真不合适,仿真不计数,请各位老师同仁指正,万分感谢
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 支持!支持! 反对!反对!

6

主题

30

帖子

144

积分

二级会员(20)

Rank: 2Rank: 2

积分
144
2#
发表于 2012-2-24 17:12 | 只看该作者
     把赋值放到前面去,怎么会变, bcd1<=bcd1n;9 F& U4 y: J2 T, r: T3 W( a! z0 s
        bcd10<=bcd10n;放在最后: ~5 S) f% p3 T; }
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

巢课

技术风云榜

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

GMT+8, 2025-2-20 16:35 , Processed in 0.053320 second(s), 32 queries , Gzip On.

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

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

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