两忘而化其道

读书笔记——CrazyBingo大作(1)

0
阅读(3551)

读书笔记——CrazyBingo大作(1

——两忘而化其道(fei199311



既然选择了远方,便不顾风雨兼程,一路走下去......

完美是没有极限的,稳定是没有终点的......


拿到彬哥的书已经一周了,好快啊。。。收获很多,下面慢慢道来。

那天(20141018日)拿到书的第一时间,很激动,很认真的读了起来,不愿错过每一个字、每一幅图。

看到七个序言,很振奋,尤其是看到了彬哥自己的序言,让我瞬间想到了郭天祥那本书的序言,让人感觉热血沸腾!记得那是大一暑假时,看到了郭天祥的书的序言,读了好多遍,从那时起,踏上了电子的“不归路”。。。彬哥这篇序言,有经历、有坚持、有信念!我想,如果有一天我在FPGA电子设计这条道路上坚持不下去了,从新看看这篇彬哥的序言,我会继续走下去的。我希望更多的能看到彬哥和郭天祥的序言部分,然后燃起对电子设计的兴趣。


下边是我一周读书的书摘,和一些自己的理解:

    1.FPGA+DSP+ARM架构是一种趋势(P25

正所谓扬长避短,FPGADSPARM各有所长,且各有所短,作为设计者,我们应该理解其优势,并尽量发挥,而不是一直在争谁会取代谁,毕竟,这些FPGADSP或是ARM都只是工具,我们用来实现想法的工具而已。我想,协同工作应该能很好的提高系统工作的效率。

XilinxAltera的相继推出了FPGA+DSP+ARM架构的SoC,这很好的说明了其存在着巨大的潜力,这也是一个很好的发展方向。

    2.善用网络资源,不断总结自我!(P26

正如彬哥所说“学习FPGA,互联网是我们最好、最直接、最有效的途径”,我们需要任何资料只需轻轻一点。资料很多,剩下的就是自己去学习啦。

说到自我总结,我觉得很有必要,因为很多人说很有必要且很重要,但我不知道对不对,所以开始在chinaaet上学习写博客,写一写自己的学习、思考,亲身体验一下,这个写文档、自我总结到底有没有必要,必不必须。这一切的答案需要我自己实践之后才能给出我的答案。

    3.代码风格就像其人,爱整洁的人必然不会写出邋遢的代码!(P45

我一直很注意自己的代码风格,因为我觉得写出来的规定格式的代码很好看^_^。我觉得代码风格是一种坚持,对美的坚持,只需一种规范,从头到尾。

不同人有不同的代码风格,不需要全学会,只需要选择一种适合自己的,坚持下去就行了,例如我在编写C语言时,我就喜欢那种带下划线式的命名方式,不喜欢驼峰式命名方法,所以我的代码中的函数名和变量名都是下划线式的命名。

    4.DUTDesign Under Test)(P51

刚开始学FPGA时,感觉编写完代码,然后在ISE中生成.bit后下载到板子上,结果正常,OK啦。不过很快就发现,这样做太局限了。之后学习了TestBench的编写,发现真的很好用,而且感觉哪个模块不去测试一下,就感觉心里没底,所以之后我写的代码基本都有相应的TestBench,当然有些太难写了,我就没写了。

关于测试工具的选择,彬哥推荐的是ModelSim,但是我基本没用过。当时刚开始时学习FPGA用的是ISE,自带ISim仿真器,个人感觉还是不错的,不过不稳定,有时候还是有各种各样的小bug,这两天初步学习了用ISim看后仿真,感觉还行。现在在Linux下编程,我用的是iverilog+gtkwave,个人感觉很好用,而且特别小,惟一的缺点就是看不了RTL图。

TestBench的编写是有大学问的,可以认真看一下《编写测试平台》这本书。

正如彬哥所说“DUT设计流程是FPGA最基本的设计思路”,以后我的每段代码都争取测试后再使用。

彬哥说“想学好FPGA,必须先学好ModelSim”,开始好好学ModelSim吧。

    5.FPGA难就难在设计流程的复杂、时序电路设计的精要,以及并行思维的设计能力(P54

设计流程的复杂性我觉得在于其流程不是顺序的,而是循环的,而且不知道循环多少次,正所谓“完美是没有极限的,稳定是没有终点的......”

至于时序设计的精要,我涉及的不多,不是特别能够理解,但是隐约感觉到关于那个逻辑门延时很难设计。看了看ISim的后仿真,感觉自己太年轻。

并行化是未来设计的趋势,所以FPGA是未来的趋势,哈哈。

    6.我们不是在设计代码,而是在设计电路!(P56

这个概念对于初学者来说很难理解,我学了半年,勉强能够理解一二,但是有时候写出来的代码还是有一些软件风格。以前看过一篇文章,说是对于初学者,学习C语言不利于学习Verilog,还真是。

    7.任何一个警告都必须慎重对待(P125

一个真实的案例:我的一个学长改一个Verilog代码,花了三天找了问题,最后发现这个问题看一下警告就能很快解决了,这个足以说明看看警告的重要性。

我写完代码都看警告,而且每条都看,但是,悲剧的是不是每条都会改......应该是自己编写代码时的问题吧,尽量提高吧。

    8.养成看RTL的习惯,有助于未来对复杂电路的设计及电路框架的理解(P176

RTL,即寄存器传输级电路。看看RTL,感觉自己在设计电路,而不是设计代码。ISERTL视图看不太懂,还是Quartus IIRTL图看起来清晰。

    9.状态机是时序电路的万能钥匙(P202

我只想说,状态机很重要,但是我写得不好,所以继续好好学吧。

    10.异步复位,同步释放机制(P258

同步电路可以尽可能减少电路中的竞争-冒险,注意是尽可能减少,因为这是一个概率的问题。

之所以在复位时采用异步机制,是因为同步复位机制一方面增加两个D触发器之间的门延时,另一方面增加了组合逻辑的使用,异步复位可以解决这两个同步机制的问题;但是异步复位机制存在释放竞争的问题,所以采用同步释放机制解决这一问题。这个“异步复位,同步释放机制”是一种折中的设计,既减少了逻辑门的使用,又减小了释放竞争的概率,一举两得。

    11.永远记住“好的电路是写出来的,不是约束出来的”(P292

没写过时序约束文件,所以不懂约束,但是以前看书,书上有一句话和这句话有异曲同工之妙——“好的电路不是设计出来的,而是调试出来的”,忘记了是哪本书了,但是对这句话印象深刻。


在电路设计的道路上我还有很长一段路要走啊。

看彬哥的每一个例子,感觉他都尽量做到尽善尽美,可以从任何一个例子中看到彬哥追求完美的精神!要好好向彬哥学习^_^

看了一周,还没看到彬哥大作的精华部分——图像采集系统,继续努力吧^_^