找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

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

六十进制计数器错误

[复制链接]

2

主题

18

帖子

-8983

积分

未知游客(0)

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

EDA365欢迎您!

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

x
六十进制计数器
2 j3 g$ _( U* m" Llibrary ieee;
3 x4 h5 K5 l2 ?7 {use ieee.std_logic_1164.all;8 x* L/ j9 J; K) Q$ y
use ieee.std_logic_unsigned.all;
3 y0 a" l7 h$ J- N1 v! F1 Z( v
entity counter_60 is5 Z6 _- z: U0 U- P3 c
        port(clk,bcd1wr,bcd10wr,cin:in std_logic;
: F7 j3 n9 }% n0 J! A                 co: out std_logic;2 M% r+ s9 ?% M9 R
                 datain: in std_logic_vector(3 downto 0);# v: f: T$ G3 i# ]/ u  W5 @
                 bcd1: out std_logic_vector(3 downto 0);+ G$ q+ p$ k3 q4 Z6 y% q
                 bcd10: out std_logic_vector(2 downto 0));
( R# {6 e5 e# P8 {* x9 h# jend counter_60;
" A$ `, z- c; s2 O8 l3 a, t, U/ [+ }" V. X4 r, [$ N5 P1 O& }
architecture rtl of counter_60 is( d0 s4 v1 H, m
signal bcd1n:std_logic_vector(3 downto 0);
$ q  k0 r- T, g9 I: R7 ~/ v$ e; e5 Csignal bcd10n:std_logic_vector(2 downto 0);) l. T6 x4 F6 L/ u4 h0 X4 `
begin
: S9 W$ I* @7 W' }3 ?        bcd1<=bcd1n;  x: i" s2 p2 G& g' G8 }$ ?8 o
        bcd10<=bcd10n;+ b& V5 {1 a& G- O$ s$ j
        process(clk,bcd1wr,datain) is
+ i! \4 U5 ]/ b2 U2 h( C        begin  A$ G, Q  U* n# T
                if(bcd1wr='1') then5 ]4 U1 O6 D  Z
                        bcd1n<=datain;1 c' y3 ~1 z1 c) e' s8 p" i8 i
                elsif(clk'event and clk='1') then5 ^1 U/ f2 X/ u' A8 A) Z1 |
                        if(cin='1') then
; r9 l0 Z; t  q* ~1 L                                if(bcd1n=9) then
8 h7 c; }5 S+ x                                        bcd1n<="0000";
" D; o2 K7 Z" M3 s/ ~' U                                else
) p7 U8 ~  Y  H                                        bcd1n<=bcd1n+'1';8 ~. }5 h3 r$ O1 g4 S6 W% c) e. ]
                                end if;; |& P9 s& G" [$ Z; T7 e7 R
                        end if;4 w8 E: r; l4 ?7 q/ }
                end if;
: Y1 _! ?: N- W  s        end process;! L7 S& ?+ E! p
      
" o5 y! L0 v$ X+ c9 [) A        process(clk,bcd10wr,datain) is
& C1 O7 ^) F# ?  V. C6 E. R  `        begin
. T; n. J/ F; _2 \# N                if(bcd10wr='1') then
, D- ?1 C/ O  f# k                        bcd10n<=datain(2 downto 0);
0 Y' Z5 z' M$ Y5 Z& P2 p9 Q& B2 d                elsif(clk'event and clk='1') then2 _# B2 F6 u- k  w$ a+ k
                        if(cin='1' and bcd1n=9) then! l% m& B: C+ j4 q
                                if(bcd10n=5) then
- A9 }- d% k1 S                                        bcd10n<="000";' W% F* v! A5 V8 G& V4 u+ q% W
                                else
; C* w4 \' r! v$ U5 r( z! d) |                                        bcd10n<=bcd10n+'1';7 d8 i% g6 e8 d$ z4 S' j
                                end if;  p1 ]1 {) M  _; {5 H  B
                        end if;
! K8 \- B2 v& M, l& l                end if;
- ~4 C. C( I* Y6 w        end process;6 S$ i: f6 t: ~+ a  |
       * K, ]( @4 k- t: _/ Q- {8 ^1 V- _
        process(bcd10n,bcd1n,cin) is
& e9 L( q3 X2 x        begin
, F$ i" W3 v1 Y! J                if((cin='1') and (bcd1n=9) and (bcd10n=5)) then3 v+ D/ @! U+ P$ Y# K1 h
                        co<='1';* @& e  k0 Z  M3 Z. G
                else
* s/ O0 O( R9 e1 C5 r                        co<='0';
1 c6 S! q- z$ C. I                end if;7 X/ a% K+ K& G6 K  W' a" b3 u. _9 F
        end process;8 _/ r6 J, r7 I# x2 c
end rtl;1 ~0 X$ Y; i% g: x
可以编译,但是仿真不合适,仿真不计数,请各位老师同仁指正,万分感谢
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 支持!支持! 反对!反对!

6

主题

30

帖子

144

积分

二级会员(20)

Rank: 2Rank: 2

积分
144
2#
发表于 2012-2-24 17:12 | 只看该作者
     把赋值放到前面去,怎么会变, bcd1<=bcd1n;
6 C6 e; R3 t7 t- ~$ _# [        bcd10<=bcd10n;放在最后
/ C" J+ V; d  C( M' _
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

巢课

技术风云榜

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

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

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

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

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