《FPGA设计技巧与案例开发详解》-CrazyBingo序言 暨“我的奋斗”……
1赞决定写此书,执笔至此,已经有将近1年的光阴。时间过得太快,甚至都没来得及回味,却又得开始不停地追随。我们总是在不停地奔跑,却又没有时间停下来思索—我们,究竟在坚持什么?是因为兴趣使然,挡不住的诱惑?还是因为吃穿住行、柴米油盐酱醋?是因为歪打正着,稀里糊涂地过活?还是因为雄心壮志,不顾一切的追求……
也许我只是一个FPGA界的小人物而已,也许我还没有资格在数字界说三道四,也许我还不足以写出一本脍炙人口的好书,但仅此希望,我的点滴总结,我的肺腑之言,能够帮助一些曾经与我一样,在FPGA成长道路上迷茫、挣扎、徘徊的朋友,能让你们少走些学习FPGA的歪路,能让你们认清FPGA的真谛,能让你们掌握设计的精髓,能让你们从此有目标地奋斗前行。
我出生于浙江诸暨的一个小山区,远离都市的繁华,从小成长在大山的怀抱。在长辈们眼里,考上大学,是山区孩子唯一的出路。从小按部就班地读书,千篇一律地重复,很难有自己的追求,直到,高考的到来。高考,是我平凡命运的转折点,也是我跨出人生中的第一步。与大部分人一样,我并没有因为太多的了解、或者兴趣而选择专业,而是顺应时代的潮流。2008年9月份,我第一次朦胧的跨入了电子信息工程这个专业(当年很热门的一个专业)。
坐落于天堂杭州,杭州电子科技大学,是一所以电子专业著称的高校,也是一所改变我终生轨迹的大学。太多人因为电子梦,聚集到了这里;太多人满载着知识与梦想,挥手告别了这里。大学的四年,是我认清自己的净土,是我挣扎脱壳的摇篮,更是我梦想起航的地方。
作为一所以电科著称的高校,大部分学生都是赤裸裸的来追求技术的海洋。电子类学生对技术的狂热,尤其是大一学生的好奇,在入学开始表现的更淋漓尽致。电院有一个无线电爱好者协会,是30多年前几位老前辈,由于彼此对无线电设计的兴趣而建立的团队,继而发展成为一个研究并培养对电子开发有热情的一个协会。为了尊重创始人,一直没改名字,但实质上一直都是一所以电子开发著称的社团。协会是学校公认的一个以热情与激情,兴趣与责任结晶社团,坐落于电院2#中楼,在每一届会长的带领下,以阶梯式教育,在课外培养了一代又一代对技术有热情学习,同时每年均会选拔一部分愿意留任,担负培养下一代重任的学生。几十年来,协会培养了很多电子特长的学生,包括了很多留校的老师,尽管不停地更新换代,旧去新来,但却一直传承者发扬着协会。
每年一度的电子信息工程学院“震‘焊’人心焊接大赛”,是进入协会的敲门砖。为了能够进入协会,我想当年我从一个不认识烙铁、电阻电容的人,夜以继日的训练,恶补电子元器件知识,掌握焊接工具的使用,从当初的拿烙铁手发抖,到最后以时间与质量,在几分钟内(不记得了,应该5分钟内)焊接完一套5V直流稳压电压,荣获了一等奖。也许正是因此,我在大一第一学期就进入了协会,认识了几位对我大学四年有深远影响的学长,王凯与曾庆卿学长,在后续的日子里多次指点并教导过我,感谢他们的曾经才有了我的后续。
在随后的一段日子里,我由经常串门,升级到长期蜗居协会,我开始寻找,开始追求,开始如饥似渴地学习(在现在认为,是盲目追求,O(∩_∩)O~),在仅有半年时间内,我熟练了焊接技巧,手工焊接了多路直流稳压电源,并且自学了C语言,开始意识到拥有一台电脑,是多么的重要。一学期过得很快,但却过得很充实,学海无涯,突然发现大学就是该为自己的追求疯狂。
我真正开始学FPGA,是在大一的第二学期。那时候学校搞课程改革,由潘松老师负责的教学,将大三的数学、EDA课程提前到大一,好让学生们能更早的找到自己的目标,选择或者决定自己未来的方向。潘松老师是《EDA技术实用教程》、《EDA技术实用教程—VHDL版》、《EDA技术与Verilog HDL》等书的作者,同时是杭州康芯电子有限公司的创始人,开发了多套FPGA实验箱、开发套件,在杭电,甚至全国多所高校具有使用,开辟了国内高校FPGA教学的先锋。
记得当时课程改革,并没有针对所有学生进行试验,而是选取了180多个小白兔(据我所知我是最后幸存的唯一一只小白兔),而我有幸就是其中一个。一学期内,我们从最基本的数字电路开始学习,各种74系列、与非门芯片开始学习,在数电实验箱上用组合电路实现加法器、跑马灯、交通灯等实验。接着转场开始学习FPGA技术(当时认为牛逼哄哄的现场可编程门阵列),从原理图Block方式的数字电路设计,到从零开始的VHDL语言的学习,最后采用纯HDL代码的方式,完成了学期末的课程设计—可编程音乐播放器,及精准时分秒计数器。尽管在现在看来,这无非是切换2个ROM,按照一定的频率驱动蜂鸣器,以及简单的计数与数码管的驱动而已,但在当时,却被认为小有成就,学有所成。
大一暑假,我没有回家,而是抱着康芯的实验箱,将每一个模块都玩了一遍。我深入学习了VHDL语言,掌握了基本的FPGA设计思路,同时还未雨绸缪地学习使用Altium Designer 2009(当时DXP最新版本软件),绘制相关的PCB版图。康芯实验箱上还集成了8051单片机模块,总不能老师冷落了“她”,由于自己的反常规学习,赶紧逼迫自己在5天内看完了郭天祥的“10天学会51单片机的教程”,狠狠地把51单片机的知识恶补了一把。
记得教程中有郭天祥亲自编写的《郭天祥—我的大学六年》,极大的鼓舞了我。关于该文档我至少看过10遍,“晨昏三叩首,早晚一炷香”,我懂得了他所谓很多人因为游戏人生,荒废本科之后的悔恨;懂得了把握青春,为自己成就未来的珍贵;明确了自己该做什么,也许为自己的未来奋斗,才是真正的大学。
此外,我还深切体会到机遇的重要,机会总是会给有准备的人,对于整天抱怨没有人带,而不去寻找机遇的人,我只能说你还没有准备好。事实上当时在180个小白兔名单外的人,找老师说几句话也可以入围,重点在于你愿不愿意尝试(正如有人总结谈恋爱的精髓—胆大心细脸皮厚)。届时由于开始在QQ技术交流群活跃,我还认识了网友王会计(圈子里很多人认识),那时候对于前辈的他,与懵懂的我,给我的告诫是有幸我太早拥有了学习的机会,但这只是一个开始,学习基本靠自己,课程只能给你指路(我与12年8月份,在北京第一次膜拜了王会计真人)。
同年8月下旬,由于自己对技术的热情,外加在协会出色的表现,成为了无线电爱好者协会中,选拔去电院CAD研究所409实验室学习的一员(当时仅有3个人,其他两位分别是邓团飞、冀玮楠,这两个人是我未来的队友,一起浴血奋战的兄弟)。感谢409负责人,前协会会长,无线电爱好者协会名誉主席杨峰学长,给了我这个弥足珍贵的机会,伯乐识马,没有这个机遇,也不会有今天的我。杨峰学长一直带领并指导协会,在大学7年的他,培养了无数饱富真才实学的电子工程师,在师生界具有极大的影响力,是大家公认的“老大”。在CAD研究所的2年多,是我本科电子开发最充实、最富有激情、最值得回忆的时光,是我定向成长全方位塑造自己的摇篮,也是我后来选择FPGA专业开发的基石。
由于对FPGA的基础与激情,我分组并进入了实验室的FPGA小组。作为小白兔的FPGA学习基础,对于实验室的需求而言还远远不够。在刀哥(FPGA小组组长)的指点下,我开始加强锻炼,从HDL的设计到FPGA思维,从时序电路到功能开发,从头开始优化自己,作为一个小白兔产物,我还需要进化。也正是这一阶段,我从零开始研究VGA显示驱动设计,并对图像显示开发产生了极大的兴趣,这也正是后来一年我一直执迷于LCD显示开发的缘由。
年少无知,从串口程序设计,到SPI时序的研究,竟然想通过SD卡的SPI驱动,来实现VGA图像源的获取。且不管方案实现的可行性,正是因为对技术的热情,认识了网友黄娜(当时在EDN工作,后来去CSDN了),介绍并让我认识了特权同学。时值09年8月份,5年过去了,回头看看,特权同学在那个时候还没有出名,FPGA视频教程还没开始录制,仅有的只是开始在EDN网站写博客。有幸在平凡时期,认识了未来牛逼哄哄的特权同学,指点并且给研究看了他当年设计的SD卡的SPI驱动时序。不过首先是Verilog HDL语言,其次是人家上千行的精华代码,对当时的我来说,望尘莫及,几乎读不懂,这让小有成就的我开始自叹不足。虽然结果我还是没能驱动SD卡,但对SPI的时序还是深入了解了,更值得庆幸的是,认识了未来几年对FPGA界有巨大贡献,受无数人膜拜与尊重,出版了《深入浅出玩转FPGA》、《爱上FPGA—特权和你一起学SOPC》、永远忠于年轻时梦想的特权同学。特权同学的学习精神,以及出版的书,对我未来几年产生了深远的影响,源于DT,重在设计,在前辈的指领下,努力潜行。
大二开学了,而我由于对技术的热情,俨然对上课已毫无兴趣,大部分时间都是在实验室度过的。在那个年代,我们用的还是Quartus II 5.1,VHDL在高校依然很盛行,FPGA被认为是高功耗、高成本、开发周期长的方案,一块简单的EP2C8Q208C8N的开发板价值不菲,同时FPGA的学习资料,包括书或者网络资源,远没有现在那么多,前行,每一步都是那么的艰难。正当我徘徊VHDL与Verilog HDL,以及在研究SOPC时连个LED灯驱动都搞不定的低迷时刻,我认识了正在读大四的张亚峰,也就是网友当初的小时不识月、.COM张。
当初的张亚峰,专业研究Altera FPGA,并将学习心得整理成博文发布于cnblog,博客日产量甚至可能超过他的饭量,在他最疯狂的时刻,有幸认识了他,对我指点迷经,甚至远程协助。在我徘徊不定时,他以多种理由“说服”我学习Verilog HDL,幸好我有扎实的VHDL基础,我在一周内成功的从VHDL转向了Verilog HDL;在我停滞不前时,他不厌其烦的给我远程协助,指点我FPGA开发,尤其是SOPC方便的设计。最后,也正是他,多次“强迫”我作总结,写博客,对自己所做的事情负责,在2010年的5月份,我在博客园写下了人生中的第一篇博客,至此以后,一发而不可收拾,后来转场chinaaet,只要在不停地研究开发,就会有源源不断的博客,公诸于世。写博客,不仅仅是对自己设计的总结,对问题的记录与分析,甚至不仅仅是为了写给别人看,我曾无数次翻阅自己的博客,查阅自己的遇到过的问题,也曾因为同样的研究,或者说“遭遇”,认识了不少的同行。只有懂得总结的人,才能不断地成长,好记性不如烂笔头,呵呵。
同群还有前辈七哥(于12年9月份,在西安拜见了七哥),木头同学(于12年8月份,会见与我在深圳之旅)、查无此人(与13年7月份,在西安出差时会见)等,均是我们当时讨论FPGA开发时结交的挚友。FPGA行业是很大的一个圈子,况且09年还远没有现在这么火热呢!有志者事竟成,重在尝试。
作为网络上的交流学习而言,我一直认为QQ、博客平台是极其重要的交流方式。很多人言谈身边没有人指点,没有人一起学习,一个人的奋斗,坚持不了就放弃了。也有有很多人很在乎自己的学校的档次,或者说自己的专业级别,以为自己孤军奋战,或者身边鱼龙混杂,没有得天独厚的环境,即便感兴趣也怎么可能学得好,其实我想说,学不学得好真正意义上还是得取决自己。虽然我在电子氛围浓厚的杭电电院,但我同样认识很多专科类的职校学生,真正对此有兴趣的人,从来不会匮乏激情,因为这个世界远没你想象的那么小,在互联网越来越发达的年代,闭门造车,只有死路一条。在我后续的成长道路上,我认识太多太多的网友,指点或者给与指点,均是我不断尝试,不断地积累,从时间与空间上积累的网络技术交流圈。电子开发,互帮互助,技术是单纯的,也是兴趣与乐趣,很多人都愿意指点,并没有你想象的那么苛刻。我想说重点在于尝试,而不是在于埋怨,真正的物理意义上我也是一个人的学习,但从互联网角度考虑,却是无数人的奋斗。张亚峰就是对我有深远意义的一位网友之一,我们认识于腾龙前辈的SOPC技术交流群,他是我FPGA成长路线上极其重要,也是第一位互联网导师。没有张亚峰当初无私奋献,不厌其烦的指点江山,我不可能顺利地在每次碰壁的时候找到解决方案,也不会有那么多的信心与激情坚持到现在。张亚峰毕业不久后,就去了广州骏龙做了Altera的FAE,至今为止在业界享有盛誉。于12年8月份,张亚峰在广州请我吃鳄鱼,正式拜见了“导师”真身,感谢张亚峰当年的激情,以及给我的无限指点。
同年,我认识了一位生平故事传奇,以及同样在为这一行不懈努力的工程师—网名冲击波,人称波波,在此值得一说。曾在无数次通宵的深夜,与波波远程畅谈。那时候我还没有熟练读懂芯片时序图的能力,而波波则刚好由于项目需求转场FPGA,于是我帮波波FPGA设计支招,而波波则悉心的教我如何读芯片时序,如何正确驱动外设。此外,波波曾多次跟我讲述从修理工,到深圳做电子工程师的坎坷之路,传奇之路的不易让我感到了人生的艰难。波波自幼对电器十分感兴趣,不过家境贫寒,小时候的学费都是通过卖菜、修电视机积攒下来的(想想衣来伸手饭来张口,颜面何存)。成年后的波波,按部就班的过活,在镇上修并卖蓄电池。不过由于某些说不清楚的原因,一夜之间,所有资产在一场火灾中化为灰烬。钱财一无所有,女友也离开了他,伤心欲绝的波波,含泪卧床。沉睡了一个月后,由于不想就此向生命低头,毅然离开了老家,开始自行车的深圳之旅—既然上天把我逼上了绝路,那我也只能无法无天。由于口袋里面只有10块钱,沿途坎坷,风餐露宿,三两天在工地里打工,结算零丁的工钱后,继续上路。既然选择了深圳,便不顾风雨兼程,一路骑下去,最终终于抵达了深圳,那一年是2002年。刚到深圳的日子,无依无靠的游荡,波波有过白天搬砖头,晚上睡桥洞的含辛茹苦,也有各种杂活的兼职,以及制造厂的组装员工类的活。但是波波发愤图强,重新开始学习电子,不断地追求自己的归宿。多年来波波没有放弃,从打杂到工人,从机械劳作到工程设计,不断地努力升华,波波在2005年已经成为了某公司的总工(我2009年末认识的)。孤身深入深圳打拼,对不起青春,不能对不起梦想,11年时间内,波波没有回过家,没有对命运低过头,尽管无数次崩溃,尽管形单影只,尽管无限的思乡之愁,但发誓没有出息绝不回去;在11年时间内,从工地搬砖到公司的总工,辛酸累苦,无人能知。而今波波终于有了自己的事业,也有了自己的另一半,满怀着离乡11年的乡愁,以及无限难以启齿的感慨,在2013年春节,第一次踏上了回家的旅程。回想11年的奋斗,用血泪挣回了一个属于男人的尊严,换做谁都很难坚持到最后,波波是我生命中无比崇拜的前辈+楷模。于12年暑假,我在深圳第一次见到了传说中的波波,第一次膜拜了相识3年(现在5年多了)的大神,第一次有机会面对面促膝长谈,对我来说他就是一个传奇的故事。虽然上帝在为你关上一扇门的同时,总会用门夹一下你的头,但悲剧的背后,只要不懈的努力,总会有另一扇门等着你打开,也许转角处就是光明。
谁都有梦想有追求,谁都可以为未来付出血汗,但重点在于你是否能够战胜挫折,能不能坚持到最后。在此我想说,很多事情,并不是天赋的问题,而是看你愿不愿意为此付出,为此坚持。一份激情与执着,坚持与稳重,也许能换来一份应得的回报。我曾代表杭电游泳队,多次参加横渡钱塘江活动,也曾多次参加过长跑比赛,我深切的体会到很多事情并不在于天赋,而在于意志力,在于你能不能坚持,在于你敢不敢尝试。电子开发,无论是FPGA还是单片机、DSP等,抱怨没天赋,学不会的朋友,我只能得出2个结论,第一是你不适合做这行,兴趣不在于此;第二是你不够努力,你就没有努力尝试过。就像某种矿泉水一样,我们只是Datasheet的搬运工。天才需要99%的血汗+1%的灵感,我们并不是天才,用100%的血汗就可以。我一直认为我的智商明显不够用,但我花了常人很多倍的努力,才有了今天。我并不是拥有天赋,而是多于你几倍的付出。我所积累的经验,都是我用时间与汗水换来的,这绝对不是我的天赋,相信特权同学、张亚峰等都一样。所以,那些在成长路线抱怨的孩纸,请慎思,并不是你不行,而不是你的意志力不行。既然选择了电子,就要做好不顾风雨兼程的准备。只有经历过地狱般的磨练,才能达到天堂的力量。
10年暑假,是我本科阶段电子开发能力成长最快的一段时间。当时学校经过4天3夜的选拔赛,我们如愿以偿参加了暑期集训,为8月份的浙江省电子设计大赛做准备。电子设计大赛每年都举行,但省赛与国赛奇偶交替,那一天恰好是省赛。所谓集训,类似于夏令营,为了参加比赛,短时间内对学生进行数电、模电、单片机、软件设计,以及赛题设计技巧等方面的培训。在这两个月,我和我的队友邓团飞、冀玮楠围绕着可编程DDS信号发生器,从软件设计到430单片机的开发,辅助采用FPGA进行高速扫描,以及后续的模拟电路进行信号的整形及优化。我们花了将近2个月的时间巩固了软硬件设计能力,以及团队的协作能力,尽管我们那时候才大二,但众志成城,我们坚持到底。记得8月底的维期3天3夜的电子设计大赛,选择了宽带直流放大器,我们一起激辩过,一起研究过,一起扛过走过了,最后采用430+CPLD的处理架构,配合模拟完成了我们的作品。在这3天3夜,除了第一天睡了4小时,我们几乎没有睡觉,吃饭喝水基本靠吞。由于过度的劳累,头脑以及身体都受到了很大的负担,这期间几乎干掉了一箱红牛,以至于赛后我们喉咙已经嘶哑,同时感到整个身体的处于漂浮状态。第四天早上上交作品后,我们几乎一下子在沉睡了24小时,第一次感到床是多么的温暖,即便睡的是硬床板。醒来已是第二天,估计是被饿醒的。尽管最后的评测,我们只得了省二,但回首3天3夜的浴血奋战,我们用团队合作与意志力走到了最后,连续72小时不睡觉,充实而又精彩,成为了一段值得吹牛逼的故事。其实电子设计大赛,关系到各大高校的剩余,对于有些队而言,是三个人的比赛,而对于有些队而言,有可能是整个实验室甚至师资力量的较量,乃至由于完全我们靠自己的能力走到了最后,并没有因为没有的得省一而感到惋惜。同样大部分没得奖的人,都将这一次经历当做是美好的回忆,自己也曾为了梦想,与队友并肩作战,过程永远值得回忆,结果就不显得那么重要了。如果告诫后人,我会毫不犹豫的告诉你,即便比赛的规则、验收答辩是否值得质疑我不确定,但是电子设计大赛对于电科类学生而言,的确值得尝试,值得考验,值得参加。
有人说大学四年,大一:不知道自己不知道;大二,知道自己不知道;大三,不知道自己知道;大四,知道自己知道。不过我反而觉得我却是不停地处于发现自己不知道→让自己知道的过程。也许大三,是本科生涯头脑最清醒的时刻,是我最明确自己的做什么,在为什么坚持的阶段。这一年我荣幸担任了无线电爱好者协会的会长,指导并引领协会上了一个阶梯,培养了无数学子;这一年我继续与邓团飞、冀玮楠继续并肩作战,不懈的努力,参加了好多比赛并取得了优秀的成绩,。这一年我们在实验室继续浴血奋斗,继续深入学习,承担了实验室多个项目的开发设计。而我一直忠于最初的梦想,潜心研究FPGA设计,从Verilog HDL逻辑电路设计,到Nios II嵌入式系统设计,从Quartus II 5.1版本到Quartus II 10.0的跃迁(现在都Quartus II 13.1,估计14.0不远了,我们几乎不停地在追随),从Cyclone II到Cyclone III系列的升级(现在都C IV、C V了)知道的越多,就发现自己不知道的就越多,一直认为自己知道的只是冰山一角。感谢大罗哥与刀哥,在研究生阶段对我们的悉心辅导,也感谢409给予我们的机会,这是我们金蝉脱壳的地方。
长江后浪推前浪,有时候,前辈们看着我们成长起来,后生可畏,也会有莫名的喜悦。某电子应用群的群主NeverExist,工作的同时,将电子当做一种爱好,在业余酷爱指导网友,帮大家排疑解惑,是群里公认的老大。坛子都是靠凝聚力建立起来的,以至于NeverExist去日本深造多年后的今天,该群依然活跃如曾经。回想几年前在NeverExist的指导下茁壮成长的日子,感觉通宵都那么的带劲。同样还有电子工程师学堂的群主XiaomaGee,电子是他的生活,也是他的未来,乐于帮助刚入园的小白菜,激情调侃的同时,给予指点迷津。XiaomaGee设计了很多板卡,帮助了众多的网友成就电子设计之路,是电子界公认的前辈。我在2013年于洛阳拜见了XiaomaGee,正如传说中的一样,他是一个欢乐而又有卓识的前辈,听他讲述曾经在哈工大逆袭奋斗屌炸天的故事,胜吃一天饭。目前XiaomaGee已注册洛阳银杏科技有限公司,随着队伍的壮大,等待一个更美好的未来。
再说说我自己,曾经我也是白纸一张,但对技术如饥似渴,在艰难的泥泞中,由于激情热血,一直倍受多位网友的慷慨指导。我曾拜网友eBoy_eMan为师,他在我的小白成长道路上不断的矫正我的错误,并给予了我n多的指点。eBoy_eMan,又称壮壮,也属于IT界的一个传奇的人物,他从小就喜欢玩电器,自然喜欢了电子,小学时玩无线电,初高中时玩单片机,大学时更是无法无天,简直不能忍。99年上高中,02年上大学,毕业于南京航空大学。eBoy_eMan由于出色的能力,跨专业做了电院电子协会的会长;同时由于酷爱音乐,兼任学校吉他协会的会长;此外除了电子,德智体美劳,甚至写小说,eBoy_eMan简直是一个传说。事实上eBoy_eMan并不是电子信息学院的,但无法挡住与生俱来的使命与兴趣,放弃本专业的课而旁听电院的课程,凭自己对电子的浓厚兴趣与独到天赋,一个神级的大师就这样诞生了。毕业后eBoy_eMan去了苏州工作,随后在上海第一次创业,由于08年金融危机,事业受挫,去了深圳打拼,随后从设计师到CTO的蜕变之路,一晃6年过去了,而2014年对于eBoy_eMan而言又是不平凡的一年,他再次创业,立足智能电网,放眼未来,胸有成足,马到成功。09年下旬我认识了eBoy_eMan,12年我在深圳拜见了大师,此后一直保持有联系,技术上的交流与探讨,以及人生感悟的倾诉与分享,eBoy_eMan曾无数次指导并帮我排难解惑。也许他在我身上看到了曾经的自己,也许我是他所谓可造之材,但于己于人,我不能让师父失望,我会一如既往的努力,对得起众人的期待。
生命重在交流,走出狭小的铁笼子,放眼未来,永远会感到惊喜。我大部分的知识都是来源于网络,或者与网友的交流中学到的,多年来我深切感受到了交流的重要性,并且乐此不疲。庆幸的是很多网站都给我们提供了很好的一个平台,比如Chinaaet、电子发烧友、21IC、CSDN等。其中Chinaaet是我最熟悉的一个网络平台,它是面向电子工程界的专业信息服务与交易平台,网站经常开展电子新技术开发,尤其是FPGA方面的相关活动,通过与Altera、Xilinx等公司的合作,给广大网友提供了无限的机会。网站是以广告来运营的,因此其他的FPGA相关活动、博客等均是义务的,在此向各大“公益”论坛致敬。我在北京多次拜见过网站负责人coco本人,coco非常热心帮助网友,经常动用各种关系来帮助有需要的朋友,我本人就是一个典型的范例,多年来蜗居坛子,受益无穷。相比cnblog而言,自从转场chinaaet,发现在这里,FPGA博文将受到了更多的关注,同时接连不断的博客大赛,激励并资助了众多的网友。网站让很多人受益,也让很多人懂得了付出,期待更多的人加入,共创美好的未来。
2011年下旬,是我最纠结的半年。我没法说服自己考研,或者不考研。众多前辈认为我应该继续深造,毕竟即便文凭只是一张纸,但我的路依然很长。也有的前辈认为我没必要再在学校浪费青春,应该勇敢出来闯荡,打拼属于自己的一切。也有人想让我留在本校读研,继承实验室。最终,我以“3年换来30年不后悔”的理由说服了自己,同时不想固步自封,毅然决定出去看看,选择了西安电子科技大学。我以一个几乎逃课2年,考试完全靠突击的身份,在考研教室从零开始自学基础课与专业课,在仅有的2个月时间内,我强迫自己冷静了下来,考前还在医院睡了半个月,最后又看了6天上了战场,但竟然奇迹般地考上了,虽然考的很差。于是我选择了继续深造,我想给自己三年的光阴,去冷静的思考,去重新塑造自己,能更胸有成足的走进社会。
我的本科电子开发之旅,以我的毕设—基于FPGA的多画面视频叠加系统,划伤了一个句话。我的毕设结合了FPGA与SDRAM,采用OV7670摄像头作为视频源,实现了实时视频VGA显示的同时,完成了OSD、视频叠加等功能,最后评上了优秀论文。当然这一切都少不了我毕设导师—黄继业老师的指导。黄继业老师当年本科留校(当然后来在职读研了),负责EDA与电子设计培训等的教学,以实际技术能力与指导学生的激情,备受学生的欢迎与喜爱,是我当年的导师,也是我一生的导师。我有幸得到了黄老师的序言,给本书增添了光彩。同时黄继业还是潘松老师的《EDA技术实用教程》、《EDA技术实用教程—VHDL版》、《EDA技术与Verilog HDL》等书的第二或第三作者,指导并培养了无数电子开发能力卓越的学生。此外,我的毕设并不是一个结局,而是我未来充实图像行业的开端,是我后期开始研究各种摄像头,以及视频显示技术的起跑线,感谢黄继业老师的课题,让我有了目标与激情。
本科生活过的很快,毕业之际,各种伤别离,抱头大哭,我也曾流泪。怀念一起欢笑疯狂过的朋友,怀念一起在409跟我奋斗过的队友冀玮楠、邓团飞,以及同室、同班的许耀聪、张捷同学,我们一直是实验室的核心力量,我们一直走过太多欢乐与痛苦的光阴,我们将会有一辈子的时光去怀念。最后邓团飞考上了计算机学院读研深造,冀玮楠留学去了丹麦,许耀聪、张捷拿到了华为的offer深造,而我却带着一丝永远怀念的乡愁,离开了杭电,离开了浙江,去了遥远的西安,开始追求全新的生活。
很多人认为我早就工作,很多人不信我还是个学生,很多人确信我有多年的工作经验,但事实上我还真只是个学生,只不过我在成长的路线上,付出了多于大部分人几倍的时间,我不断地尝试与积累,才换来了今天。我经常写博文记录开发的点滴,同时在互联网上比较活跃,认识的同行比较多,平时也不乏有技术与人生的交流,因此我始终了解到自己所知的只是冰山一角,我远没有所谓的学富五车,也不是有些不明真相的人认为的前辈,我一直认为,知道的越多,就发现自己不知道的越多,既然选择了电子,只有不断的学习,才能跟上时代的脚步。
而如今不到一年的时间里,我研究生生涯就要结束了。时间过得太快,一晃而过,我来西安都快3年了。专业只是个在校的分支而已,我一直更在乎的是自己的研究方向。也许研究生时代给我的最大收获,就是让我有时间冷静而清醒的思考,对未来更加成熟稳重的计划,以及真正决定自己到底想做什么、能做什么、该做什么。
从12年开始,我对摄像头产生了极大的兴趣,我开始研究OmniVision、Micron等公司的相机,从底层DIY开发CMOS Senser的FPGA驱动及视频实时显示,我用纯逻辑开发实现FPGA加速运算的架构,同时我花了很大的精力提高图像的画质,我一直不懈地追求。当然我也并不是一开始就轻松地驾驭了Senser,我所尝试的第一款摄像头MT9M111,耗费了我3个月的精力,但最终还是以失败告终。转而拾起较简单的OV7670,力图挽回仅有的一点信心。在我几乎一无所知的时候,是在图像传感器领域有很深造诣的官哥,不厌其烦的指点了我,把他曾经的坎坷以及如何驱动设计的精髓,让我尽量少走了弯路。再次感谢官哥,让曾经的我脱离小白的苦海。随后我一直没有放弃我对摄像头的热情,从DVP到PAL、LVDS、MIPI,从30W到500W、1400W,从摄像头的逻辑驱动开发,硬件驱动板卡的设计,到FPGA视频图像算法的增强,我选择了这条路,因为我执迷于图像。
13年我曾在某公司每周2天实习了8个月,负责相机的驱动,以及图像算法的移植方面的工作。那一段时间我一直在摸索,同时我第一次发现外设的驱动只是个基础的架构而已,算法的实现才是图像开发的灵魂。因此我开始研究研究一些基础的图像算法,我希望我知道的不仅仅是外设。冈萨雷斯的《数字图像处理—Matlab版》,给予了我很大的帮助。那一段时间我几乎同时使用MATLAB、Quartus II、Modelsim,结合matlab语言、Verilog HDL代码、以及Testbench仿真程序,以算法验证→HDL设计→RTL功能仿真→FPGA硬件测试的流程,将基本的算法从书本移植到了FPGA中,我想我应该算是看到基于FPGA的图像算法应用的大门了吧。后期我又研究了非局部均匀、3D降噪、MSRCR、二维匹配等算法,尽管这些在DSP中都能实现,但由于FPGA的并行高速特性,采用流水线、乒乓操作、并行方式在FPGA中实现某些算法的加速,非其他处理器能攀比。我深刻认知我如果再将精力放在外设上,而不进行硬件图像算法实现的研究,那我简直是在浪费青春与灵魂。甚至FPGA都只是个工具而已,挑战我的将是维拉驾驭FPGA应用于图像处理的能力。如今Altera与Xilinx的28nm双核Cortex-A9 FPGA已经风生水起,FPGA的资源已经足够我们实现大部分图像算法架构,敢于尝试,释放自己的创造力,几乎没有不可能,这只是一个开始而已。
驱动显示摄像头可以说是很快乐的事情,但优化图像算法,实现各种硬件算法则是更灵魂的境界。在12年我编写了电子书《从零开始进入OV7670世界.pdf》,给广大网友第一次带来了摄像头FPGA开发的福利,后期我又一次编写了第二本电子书《基于VIP_Board Mini的FPGA视频图像算法(HDL-VIP)开发教程.pdf》,从HDL-Logic(逻辑开发)到HDL-VIP(硬件图像算法)的开蜕变,从底层基础到外设完整的阐述了OV7725摄像头的开发,以及10余种图像算法的设计指南,我希望能有更多的人加入FPGA图像算法处理的圈子。由于篇幅的有限,本书并未包含FPGA逻辑图像算法加速运算方面的内容,不过有兴趣的朋友可以互联网上或光盘中搜索,鄙人欢迎Email探讨FPGA算法的实现。
在IT高速发展的年代,摄像头智能化应用提高用户体验的同时,将辅助人工进行更高级别的安全维护。机器视觉、车载摄像头、工控应用等更多面向向人工智能的图像应用,将不断的开辟摄像头的新时代。我在摄像头的圈子,混的还不够久,但至少也有了2年,认识了很多开发并应用摄像头的同行,也了解到了众多的需求,永远满足不了客户的要求,目前的市场还是有很大一片空缺,等着我们去完善。上周我有幸接见了苏州智能汽车电子有限公司的冯工,这让我更贴近地了解到了摄像头在汽车电子行业的需求,再次看到了我们宽敞的未来。同行还有网友群里的卡帕、把肉卖给和商、故垒西边等手机摄像模组或相关厂家的工程师,一起探讨与研究,我总是受益匪浅。也许未来不久的某一天,3D摄像头会普及我们的生活,彩色低照度足以弥补人类夜视觉的不足,透雾、宽动态等算法的成熟将极大的降低交通事故,机器视觉终会进入我们的视野,我不知道未来自己具体会从事哪一方面的图像算法处理,但我知道我会为了这一方向,为了我的兴趣,结合FPGA开发应用,挑战不一样的未来,我相信这一行始终有一个璀璨的明天。
关于本书,经由kaiyun官方注册ChinaAET网站杨晖委托,我万般荣幸地联系上了Altera中国区大学计划经理陈卫中老师给,非常感谢陈老师在百忙之中抽出时间阅读我的手稿并写下宝贵的序言。同时感谢我母校导师、《EDA技术与Verilog HDL》等书的作者的黄继业老师(网友风翼),在繁忙的工作中不辞辛劳通宵帮我写完了本书的序。再者感谢仲恺农业工程学院的蔡肯老师(网友紫声月影)抽空帮我多次审阅了本书的内容,并提出了宝贵的意见,当然还有最后的序言。接着感谢本书第三作者、兼河南科技大学张雷鸣老师(网友i7)针对在校学生EDA课程及FPGA设计能力方便的不足,在序言中提出了改革的方案并指出了本书的亮点。最后,感谢本书第二作者,兼哈尔滨工业大学博士(网友湘雨潇潇),在我写完本书FPGA底层基础设计后,帮本书添加了FPGA的设计的进阶方便的内容介绍,完善了系统的介绍。正是这5位老师/朋友的大力支持,才有了本书的最终面世,在此鄙人对他们表示由衷的感谢。
想写一本书,很难;想写好一本好书,更难!最终我能将此书顺利编写完成,少不了众多网友对我的帮助与支持,在此感谢你们多年来对我的关照:风翼、紫声月影、i7、湘雨潇潇、eBoy_eMan、COM缺氧、凿树(发哥)、浪迹天涯(官哥)、七哥、DTFT&FFT、NeverExist、NIocni(泡泡)、电科031、九神、XiaomaGee、黎明、达克斯特、冲击波、陶心云、龍涂騰、up.Craftor、zusen、Bean、疾风之狼、豌豆-棒棒糖、Bob、Clark、WarMonkey、灵、YJ_CS-书剑、wangkj、Edward、☆莫上尘︶ㄣ小二马、把肉卖给和尚、卡斯帕尔、特权同学、查无此人、利利、独孤求败、Yesterday、日立、无为、Prince Liu、我心飞翔、美丽星空、HAOUMARU、Joseph.H、可可豆、木头同学、北燕残月、笨笨、家顶、coco、黄娜、空灵、鹏鹏、飞泉、子键、trust、chactor、龙腾★雾都溪风、戴鑫等(排名不分先后,如有缺失请见谅),是你们的出现,才让我的世界更精彩!
此外,感谢曾经生我养我的杭电,助我成长的CAD研究所409,给予我不一样的机会的杨峰,指导我奋斗路线的大罗哥、叨叨哥,凯哥、老不死机等,与我并肩作战的冀玮楠、邓团飞、徐耀聪、张捷,以及在研究生时代默默支持我的实验室。最后,我能坚持到今天,也少不了我女朋友,无尽耐心地在我背后默默支持,是你忍受了我苦恼时的不耐烦,接受了无奈时的犟脾气。总之,综上,从另一重层面上来说,此书能面世,得道于你们。
我花了将近1年时间,编写并多次修改本书的内容;我花了前后2个月时间(2个版本),针对本书设计了完全配套的FPGA实验板卡;最后我又花了1个月的时间,最后一次审稿,并邀请人完成了本书序的编写。在前后在1年的时间里,得道众生的支持,本书的编写终于走进了尾声,但此时梦想才刚刚开始;完美是没有极限的,稳定是没有终点的。既然选择了FPGA,便不顾风雨兼程,一路走下去……但愿本书能帮助与我一样,曾经在FPGA学习道路上,经受着坎坷泥泞,徘徊迷惘的朋友。如果在FPGA道路上你找不到方向,或者不知道如何开始,请选择此书;如果你厌倦了陈旧乏味的教科书,想从实践中掌握FPGA设计的精髓,请选择此书;如果你想系统地了解DUT架构,以软硬件结合的方式学习FPGA,请选择此书。有条件及需求的朋友,可在http://crazyfpga.taobao.com/页面购买本书完全配套的实验板卡—VIP_Board Full板卡,当然最终,我希望你能设计一套属于自己的架构,完全掌握FPGA的软硬件设计。
在序言的最后,我想说,请记住,无论选择了什么,永远相信自己,Just Try!!!
韩彬(网名CrazyBingo)
2014.6.30于西安电子科技大学