世纪电源网社区logo
社区
Datasheet
标题
返回顶部
讨论

【龙腾原创】"差不多了"心态要不得的

[复制链接]
查看: 2451 |回复: 22
1
仔细看36350893
  • 积分:166
  • |
  • 主题:3
  • |
  • 帖子:24
积分:166
LV2
本网技师
  • 2014-6-24 14:22:12
大家都在聊电源,聊技术,今天我想和大家探讨一下“个人习惯”。

这是前段时间玩FPGA时候发生的事。

在玩数码管&数字钟的时候出了点小插曲。


发现问题:

晶振频率为50M,经过50M分频后,理论上应该输出1HZ的,可实际输出的有4HZ左右(粗略估计),而用50K*1K分频后结果却是1HZ,想来想去,这50K*1K应该是50M,什么原因呢?你猜,什么原因?


提出假设:

软件不支持这么大的数?24999999。

硬件不支持这么大的数?那这芯片岂不弱爆了。

晶振误差?都差4倍了还叫误差,这种错误在伊拉克战场上就该枪毙5分钟了。

RP问题?这个绝对没有问题!


后来经多方会诊,诊断结果如下:(对关键部位进行了注释,如果对VHDL语言不了解,请直接无视代码)



ARCHITECTURE ONE OF CLKDIV IS

SIGNAL COUNT:STD_LOGIC_VECTOR(22 DOWNTO 0);

--设置一个位宽为23的信号 COUNT

SIGNAL CLK_DIV_TEMP:STD_LOGIC;

BEGIN

PROCESS(CLK)

BEGIN

IF(CLK'EVENT AND CLK='1')

THEN

IF(COUNT= 24999999)

--count计数到24999999后CLK_DIV_TEMP反转一次,计数50000000后是一个周期

THEN

COUNT<=(OTHERS =>'0');

CLK_DIV_TEMP<=NOT CLK_DIV_TEMP;

ELSE

COUNT <= COUNT + 1;

END IF;

END IF;

END PROCESS;

CLK_DIV<=CLK_DIV_TEMP;

END ONE;


解决问题:

下面通过一系列的计算来说明问题

2^23=8388608,

24999999转换为二进制是1011111010111100000111111,位宽为25,

2^25=33554432,

也就是说count最大只能加到8388608,而不是所想要的24999999,

这一句SIGNAL COUNT:STD_LOGIC_VECTOR(22 DOWNTO 0);

要改成SIGNAL COUNT:STD_LOGIC_VECTOR(24 DOWNTO 0);

之后就正常了



想想开始做的时候没有计算,觉得23的位宽已经够大了,事实证明,万事要脚踏实地啊,否则会经常吃“差不多了”的亏。

xbadx
  • xbadx
  • 离线
  • LV4
  • 初级工程师
  • 积分:311
  • |
  • 主题:5
  • |
  • 帖子:52
积分:311
LV4
初级工程师
  • 2014-6-24 14:29:41
 
一语惊醒梦中人
仔细看36350893
  • 积分:166
  • |
  • 主题:3
  • |
  • 帖子:24
积分:166
LV2
本网技师
  • 2014-6-24 14:41:58
 
太好了,醒了就准备吃饭吧
潇湘夜雨
  • 积分:1233
  • |
  • 主题:7
  • |
  • 帖子:480
积分:1233
LV6
高级工程师
  • 2014-6-24 22:13:56
 
记得小时候学过一篇文章叫《差不多先生》
天涯
  • 天涯
  • 离线
  • LV6
  • 高级工程师
  • 积分:555
  • |
  • 主题:30
  • |
  • 帖子:134
积分:555
LV6
高级工程师
  • 2014-6-25 07:46:45
 
很喜欢楼主这种工作态度,“差不多”实际上差多了去了,
工作中也有一些同事对不是特别清楚地问题喜欢用: 差不多,也许,大概.....之类的词汇,
这个也许就是一种人生的态度吧,
不过楼主,请教你个事情,权当聊天,不必放在心上:
平时有没有人说你性格太直?
我就是,大家说我太“轴”了(上海话), 不过工作上我还是很喜欢的,对于只需要定性分析的部分或者是模型很难简单构建的(因为能力有限),至少要计算出一个范围,能够说明问题,
对于需要详细计算的问题,一定不能接受“差不多”的态度,虽然我也不知道怎么计算,嘿嘿...
上班去鸟, 给楼主点个赞!
胡庄主
  • 积分:2313
  • |
  • 主题:34
  • |
  • 帖子:568
积分:2313
版主
  • 2014-6-29 22:16:52
 
有的人说差不多,意味着没问题。
有的人说差不多,意味着根本没搞清楚。
仔细看36350893
  • 积分:166
  • |
  • 主题:3
  • |
  • 帖子:24
积分:166
LV2
本网技师
  • 2014-6-30 01:27:03
 
其实我喜欢把问题推给别人,写软件的说我的硬件有问题,我会直接用一个汇编程序把硬件侧一遍,然后说,“看,没有问题,问题不在我这”,当然,有时候也会测出来在我这的,这时候我会多想想,上面这个就是出现在我身上的问题,其实,很多人都有这毛病,能坐下来仔细想想确实也是很有意思的事情。我觉得我应该是比较狡猾的,不会有人说我直
cxm3141
  • 积分:1183
  • |
  • 主题:41
  • |
  • 帖子:516
积分:1183
LV6
高级工程师
  • 2014-6-28 12:29:47
 
搞技术就要一是一,二是二,不能不三不四
a157670740
  • 积分:1370
  • |
  • 主题:31
  • |
  • 帖子:305
积分:1370
LV6
高级工程师
  • 2014-6-28 14:31:40
 
确实,要不到头来害的还是自己。
ope8363744
  • 积分:4111
  • |
  • 主题:257
  • |
  • 帖子:1745
积分:4111
LV8
副总工程师
  • 2014-6-28 14:58:42
 
俺以前一看到很大的数字,第一反应就是先检查这个芯片支不支持这么大数字的。
仔细看36350893
  • 积分:166
  • |
  • 主题:3
  • |
  • 帖子:24
积分:166
LV2
本网技师
  • 2014-6-30 01:28:35
 
其实正是因为知道这个芯片支持一个足够大的数字,于是顺手敲一个自认为“足够大”的数字,如果真的资源有限,肯定会提前计算好,就不会出这种情况了
ope8363744
  • 积分:4111
  • |
  • 主题:257
  • |
  • 帖子:1745
积分:4111
LV8
副总工程师
  • 2014-6-30 14:55:59
  • 倒数8
 
还有就是这个变量前面的单位 支不支持这么大 不如unsingle char 跟char 什么的
zhaohua2764
  • 积分:11183
  • |
  • 主题:40
  • |
  • 帖子:3774
积分:11183
LV10
总工程师
  • 2014-6-28 20:36:33
 
[size=14.399999618530273px]21电源网,还能冒出个VHDL来,太不容易了。
仔细看36350893
  • 积分:166
  • |
  • 主题:3
  • |
  • 帖子:24
积分:166
LV2
本网技师
  • 2014-6-30 01:29:19
  • 倒数10
 
适当的调剂调剂,再说了,数控电源不也要FPGA来控制吗
zhaohua2764
  • 积分:11183
  • |
  • 主题:40
  • |
  • 帖子:3774
积分:11183
LV10
总工程师
  • 2014-6-30 07:29:40
  • 倒数9
 
[size=14.166666030883789px]是的,不过一般是DSP。
铁板牛柳
  • 积分:406
  • |
  • 主题:8
  • |
  • 帖子:134
积分:406
LV6
高级工程师
  • 2014-6-29 22:31:29
 
支持一个,就要这么严谨!
虎仔
  • 虎仔
  • 离线
  • LV6
  • 高级工程师
  • 积分:686
  • |
  • 主题:14
  • |
  • 帖子:122
积分:686
LV6
高级工程师
  • 2014-6-30 15:55:04
  • 倒数7
 
什么情況,這是什么 程序,有點看不懂了
仔细看36350893
  • 积分:166
  • |
  • 主题:3
  • |
  • 帖子:24
积分:166
LV2
本网技师
  • 2014-8-19 10:11:05
  • 倒数6
 
可编程逻辑器件
hwx-555
  • 积分:21188
  • |
  • 主题:55
  • |
  • 帖子:5814
积分:21188
LV10
总工程师
  • 2014-8-19 10:56:06
  • 倒数5
 
肯定的,凡事一是一、二是二,用差不多心态对待事情,不管在那方面,成就都有限。
垦丁太鲁阁
  • 积分:1999
  • |
  • 主题:7
  • |
  • 帖子:469
积分:1999
LV6
高级工程师
  • 2014-8-31 20:00:08
  • 倒数2
 
差就是差,差多少都是差。
zhangguosong4
  • 积分:940
  • |
  • 主题:34
  • |
  • 帖子:197
积分:940
LV6
高级工程师
  • 2014-8-19 12:12:49
  • 倒数4
 
不错,来学习了。。。
tingting2013
  • 积分:2835
  • |
  • 主题:20
  • |
  • 帖子:784
积分:2835
LV8
副总工程师
  • 2014-8-31 11:32:54
  • 倒数3
 
唉,,这只是个人理解问题,,,,
Coming.Lu
  • 积分:50193
  • |
  • 主题:39
  • |
  • 帖子:16001
积分:50193
版主
最新回复
  • 2014-9-1 08:51:24
  • 倒数1
 
这个,这个……
热门技术、经典电源设计资源推荐

世纪电源网总部

地 址:天津市南开区黄河道大通大厦8层

电 话:400-022-5587

传 真:(022)27690960

邮 编:300110

E-mail:21dy#21dianyuan.com(#换成@)

世纪电源网分部

广 东:(0755)82437996 /(138 2356 2357)

北 京:(010)69525295 /(15901552591)

上 海:(021)24200688 /(13585599008)

香 港:HK(852)92121212

China(86)15220029145

网站简介 | 网站帮助 | 意见反馈 | 联系我们 | 广告服务 | 法律声明 | 友情链接 | 清除Cookie | 小黑屋 | 不良信息举报 | 网站举报

Copyright 2008-2024 21dianyuan.com All Rights Reserved    备案许可证号为:津ICP备10002348号-2   津公网安备 12010402000296号