3807|4

6892

帖子

0

TA的资源

五彩晶圆(高级)

楼主
 

一个二进制转BCD的问题,请大家分析 [复制链接]

把一个二进制转成BCD码,使用逻辑分析仪抓的数据,输入的数据最大为189975,加个60000后最大249975,平时这个数据是不断变化的,最大会有正负1000左右的跳动。现在的问题是:假如输入为100000,那么正确的输出应该是1、6、0,让我想不明白的是,最终输出的三个数据很不固定,会来回变。另外,程序中明明将count5限制到最大是9,怎么跑出来个13呀?还有count6,有时候居然会冒出个15,求大牛们给看下,这程序的问题在哪?
附上这一块的程序:
architecture behave of D_BCD is
signal count1,count2,count3,count4,count5,count6: integer range 0 to 9:=0;
signal cnt:integer range 0 to 3500000:=0;
begin
     process(datain,clk)
--      variable cnt:integer range 0 to 350000;
     begin
         if clk'event and clk='1' then
            
              if  cnt<=conv_integer(datain)+60000 then
                     cnt<=cnt+1;
                     if count1=9 then
                             count1<=0;  
                             if  count2=9 then
                                  count2<=0;
                                  if count3=9 then
                                     count3<=0;
                                     if count4=9 then
                                        count4<=0;
                                        if count5=9 then
                                           count5<=0;
                                           count6<=count6+1;
                                        else
                                            count5<=count5+1;
                                         end if;
                                     else
                                        count4<=count4+1;
                                      end if;
                                   else
                                      count3<=count3+1;                                       
                                    end if;
                              else
                                  count2<=count2+1;
                                end if;
                      else
                             count1<=count1+1;
                       end if;
               else
                    dataout3<=conv_std_logic_vector(count6,4);
                    dataout2<=conv_std_logic_vector(count5,4);
                    dataout1<=conv_std_logic_vector(count4,4);
                    cnt<=0;
                    count1<=0;
                    count2<=0;
                    count3<=0;
                    count4<=0;
                    count5<=0;
                    count6<=0;
                 end if;
            end if;      
     end process;
此帖出自FPGA/CPLD论坛

最新回复

https://bbs.eeworld.com.cn/viewt ... 80&page=1#pid688035  详情 回复 发表于 2010-9-14 19:10
点赞 关注
个人签名一个为理想不懈前进的人,一个永不言败人!
http://shop57496282.taobao.com/
欢迎光临网上店铺!
 

回复
举报

202

帖子

0

TA的资源

一粒金砂(高级)

沙发
 

上次你贴过吧

我回过了
此帖出自FPGA/CPLD论坛
 
 

回复

2万

帖子

74

TA的资源

管理员

板凳
 

回复 沙发 mr.king 的帖子

恩 在这里:https://bbs.eeworld.com.cn/viewthread.php?tid=155709 供楼主参考
此帖出自FPGA/CPLD论坛
加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身
个人签名

加油!在电子行业默默贡献自己的力量!:)

 
 
 

回复

202

帖子

0

TA的资源

一粒金砂(高级)

4
 

不是SOSO链接的

另外一个,我当时说楼主没有复位寄存器,上电可能随机
此帖出自FPGA/CPLD论坛
 
 
 

回复

202

帖子

0

TA的资源

一粒金砂(高级)

5
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表