找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

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

六十进制计数器错误

[复制链接]

2

主题

18

帖子

-8983

积分

未知游客(0)

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

EDA365欢迎您!

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

x
六十进制计数器, M! y2 G0 [+ [8 D8 y
library ieee;3 U8 |3 e! V' G2 a: v
use ieee.std_logic_1164.all;1 f. u. |8 W3 |3 w/ z( P! A/ V4 C
use ieee.std_logic_unsigned.all;: q- T( ~, |+ V9 J4 o9 T9 n0 v7 E# P  x

! S: E6 Y" M2 Ientity counter_60 is
7 C9 e4 p" R3 B  g- A) T        port(clk,bcd1wr,bcd10wr,cin:in std_logic;
( `% t  G3 L) O/ T                 co: out std_logic;
2 f/ S% L! e# U& d. N                 datain: in std_logic_vector(3 downto 0);
" O. z" K$ N8 u8 ^/ W+ S& f' z                 bcd1: out std_logic_vector(3 downto 0);
1 C0 t# ~" c, O                 bcd10: out std_logic_vector(2 downto 0));6 ]! I; A# E' G$ \$ |1 J" {) I' W5 C
end counter_60;
9 r. r3 U- T# l: \7 v- F
* A. v( s" `1 k7 r& ]. Tarchitecture rtl of counter_60 is
8 ]) z% M0 a$ m9 S* q4 usignal bcd1n:std_logic_vector(3 downto 0);9 d$ _  U4 W& z
signal bcd10n:std_logic_vector(2 downto 0);
6 K5 m* R+ q) f- Pbegin
8 o  T. R  I4 s% Y7 ]8 K        bcd1<=bcd1n;" ]5 z" \, E$ |
        bcd10<=bcd10n;
4 m  ~! J+ _7 c5 A; z        process(clk,bcd1wr,datain) is# ?# ]/ A& J1 D: z# ^$ E
        begin
1 ~8 ^" ^% e+ s' h5 ]7 y( w                if(bcd1wr='1') then9 u  F7 _. P( O% H+ B; P: d
                        bcd1n<=datain;
, Y0 S6 n  V# o                elsif(clk'event and clk='1') then5 t. [5 F6 ~% M% o! p" u  e
                        if(cin='1') then$ X# N* E" ]5 `' |: o$ c
                                if(bcd1n=9) then# ?  t9 _! Q3 _8 i
                                        bcd1n<="0000";) B, l( A6 `' b& ^$ t2 [4 g
                                else* z7 u3 j1 N4 X0 F
                                        bcd1n<=bcd1n+'1';" L1 [1 |3 r) v3 z2 H
                                end if;; O4 h& X) i/ E: ~3 o: y4 A6 z. N
                        end if;7 U( u. k+ F+ d# W6 e$ A; w# z/ k$ q  v
                end if;9 n6 f) V% U3 m7 y( s
        end process;
; r; W2 g0 q7 l0 ]$ I: P      
: y& t) F$ b, X( d# P8 N& `        process(clk,bcd10wr,datain) is) ^# B& Z0 ~* ?) j
        begin
5 \# ^) R3 T. I& {9 C                if(bcd10wr='1') then" _+ Z* V  q( \/ H# m3 o
                        bcd10n<=datain(2 downto 0);
8 p' f6 T) w: Z8 {3 {                elsif(clk'event and clk='1') then7 g: O3 v6 H! d9 w' Z" f3 I3 ?1 H
                        if(cin='1' and bcd1n=9) then
2 c6 P! Z3 ]) B: C                                if(bcd10n=5) then8 y2 I, w  M# J
                                        bcd10n<="000";5 w. w8 @' M* W5 b, _; `% n# Y& P
                                else
/ |/ R3 x, W; R1 L                                        bcd10n<=bcd10n+'1';
. A, A4 Q$ `3 y& S( ]0 `                                end if;4 ~" G2 A+ r; ?8 R
                        end if;  O) S3 a0 G9 E3 m8 u& S8 @6 \
                end if;
* E- ?$ ?5 c0 c, a) y9 W; h; m) o        end process;- F6 I: I9 ]9 T
       8 S8 F! o' Q" M/ \5 [
        process(bcd10n,bcd1n,cin) is8 d0 U, x# E4 G$ n* A+ V
        begin
+ ^9 {8 d4 b1 Z/ p! B* i                if((cin='1') and (bcd1n=9) and (bcd10n=5)) then3 I. V5 z: c/ @) X
                        co<='1';
6 p$ B( F+ u9 `8 [' m                else
. ?. }. D% M4 n$ q0 U0 ^                        co<='0';
- _$ u  R' T6 h2 N. U                end if;
9 ^$ ~% B1 g- M7 |        end process;* {8 K( C& O; W# n" v, B
end rtl;
: O5 T: M$ S( P8 m3 S+ v, s可以编译,但是仿真不合适,仿真不计数,请各位老师同仁指正,万分感谢
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 支持!支持! 反对!反对!

6

主题

30

帖子

144

积分

二级会员(20)

Rank: 2Rank: 2

积分
144
2#
发表于 2012-2-24 17:12 | 只看该作者
     把赋值放到前面去,怎么会变, bcd1<=bcd1n;
  ?- S6 _: B1 u        bcd10<=bcd10n;放在最后' P2 Z, Y3 a5 u0 M% B# `
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

巢课

技术风云榜

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

GMT+8, 2025-2-19 06:50 , Processed in 0.056222 second(s), 33 queries , Gzip On.

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

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

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