特权同学

《爱上FPGA开发——特权和你一起学NIOS II》新书预售优惠

0
阅读(3448)

《爱上FPGA开发——特权和你一起学NIOS II》新书预售优惠

 

       为答谢广大网友的支持和厚爱,特权同学决定做一些新书预售以及套件优惠的活动。先到先得,数量有限,望大家抓住机会。

 

优惠1

       预订新书前13位网友,可获赠SF-NIOS2(书中配套开发板)的空PCB板一块。

新书7折优惠,出版后第一时间发货(比当当、卓越、China-pub等知名网站上架还快),预计最晚在10.10前能发货。

       价格:45*70%=31.5(头13位网友可以同时拍下1元PCB板赠送链接,获赠PCB

       购书链接:http://item.taobao.com/item.htm?id=12806537449

       PCB链接:http://item.taobao.com/item.htm?id=13454848378

 

优惠2

       在2011年10月31日前购买SF-NIOS2开发套件的朋友,加10元可获赠新书一本。

       开发套件购买链接:http://item.taobao.com/item.htm?id=8861290763

 

       注意:由于新书在这两周内会完成印刷,所以这里提供淘宝链接购广大网友提前预订。拍下后请耐心等待,预计最晚能够在10月10日前发货。

 

内容简介

本书结合一款基于Altera公司Cyclone II系列FPGA的开发板,从一些嵌入式开发的基本术语和概念入手,到手把手第一个工程的构建;再从一个稳定的SOPC平台设计,到NIOS II软件编程的入门;最后软硬件结合,像模像样地搭建了一些有实用价值的工程。本书内容可谓由浅入深,为在其他嵌入式平台上已有一定开发基础的NIOS II初学者量身打造。字里行间,不仅透露出一个年轻工程师对技术的执着和认真,而且很多诙谐幽默的文字和真实的感悟伴随着知识也传递给读者,相信一定能够带给读者更多耳目一新的感觉。本书配套DVD光盘,内含程序源码和20课时视频教程,方便读者学习。

本书的主要读者对象为电子、计算机、控制及信息等相关专业的在校学生,从事FPGA开发设计的电子工程师以及所有电子设计制作的爱好者们。

 

前言

特权同学在《深入浅出玩转FPGA》出版之后,并不像某一些博文丛书的作者就此销声匿迹了(前辈们若不小心看到此文别拍砖,那就说明你们和特权同学一样依然活跃在这个领域)。特权同学每天依然忙碌地工作着,没有离开热爱着的FPGA开发设计工作。因为年轻,所以依然在追寻着年少时的梦想。特权同学的博客(http://blog.ednchina.com/ilove314/、http://blog.chinaaet.com/ilove314/和http://www.eefocus.com/ilove314/blog/)也时常更新,工作中新的感悟和体会都会在第一时间和工程师网友们分享。当然,也许因为这本《爱上FPGA开发——特权和你一起学NIOS II》的整理和编写,BLOG会更新的慢一些。

之所以给这本书起名《爱上FPGA开发——特权和你一起学NIOS II》,是因为特权同学个人感觉书名表达很形象,也很贴切。特权同学在FPGA逻辑设计方面的学习有一段时间了,《深入浅出玩转FPGA》一书的出版是对特权同学付出的一个很好的回报,也听到了很多支持的声音(不仅在“生我养我”的EDN如此,甚至在电子工程专辑、ourdev、当当、电驴等各种网站)。一方面特权同学觉得很欣慰,能够将自己的所学所悟分享给大家,并且得到大家的认可,也确确实实能够对大家的学习起到一个不错的促进作用;但是另一方面,也深深觉得自己才疏学浅,工作年日不长,经验还不够丰富,项目做得不够多、不够深、不够广,所以在很多方面仍然有所欠缺,对有些问题的看法和见解还不够全面和深入。尤其在写完《深入浅出玩转FPGA》一书之前,对SOPC这个很时髦的FPGA应用领域还没有太多主观的认识和亲身实践。庆幸的是,经过最近半年多以来新项目在NIOS II平台上的应用,特权同学对SOPC的整个架构和应用有了更深层次的理解和认识。因此,也算是“现学现卖”吧。

那天,tengjingshu网友通过EDN的娜娜姐询问特权是否可以推荐一些写得好的verilog语法或是相关书籍,特权同学正思考着罗列一些书名,忽然记起能想到的好书应该都列在自己新书的参考文献中,还有就是建议多看Altera和Xilinx官方的handbook和application note。于是娜娜妹就回了一句“我哥的回答越来越官方了”。作为读者的你是不是也会担忧这本书可能很“官方”?虽然特权同学可以很坦白地告诉各位看将:本书中出现的所有官方的说法基本都应该是来自http://www.altera.com.cn/literature/litnio2.jsp上的9.1版本的NIOS II处理器的主要文档。但是,也请大家放心,特权没有“特权”,也是平民一个,绝对没有官腔官调,因此所有官方的东西只可能在必要的时候引用,但凡不需要太“官方”的地方绝对会以最通俗易懂的方式并以自己的理解来透析也许对初学者仍有些生涩难懂的知识点。前面说过,特权同学要和您一起学,所以,我们的距离只是高级初学者和低级初学者。很多时候,请记住,特权同学会尽量不把大家落得太远,因为我们要一起学,所以我们才可以名副其实亲切地互称“同学”。

另外,光搞理论不是办法,我们都学了至少9+3+n年的理论了,很多时候会感觉理论就像是一个忽悠人的幌子。如果大家看看市面上和NIOS II相关的书就会发现,基本上(当然不是绝对的),很多高校某某大牌教授写的XXX教程都是由一大帮学生在那里翻译的Altera文档,而且特权同学还看到过有些被翻译的甚至风马牛不相及。哎,只觉得这类书不明确标明“XXX.pdf翻译”字样也就罢了,如果漏洞百出让大家学得晕头转向就真的不应该了。所以,特权同学会保持以往的风格,继续让大家有机会在实践的基础上学习理论。其实早在2010年初的时候,特权同学就曾借EDN的助学小组推出了SFNIOS2学习板的第一版,写了一些和以往风格迥异的“傻瓜”教程,承认当时做事有些浮躁了,只希望早点推出这个套件以弥补小组里SOPC方面学习板的空白,自己当时也是一个“傻瓜”初学者,那个“傻瓜”板子虽然和市面上的同类板子比起来足够便宜,但是缺乏实质性的一些可操作的DIY工程。俗话说,玩也要玩得有技术含量一些嘛,深深的内疚更是催促特权同学下决心要好好花一些时间和精力在NIOS II上,编写教程的过程是艰辛的(就像当初我写书);但是,在这个过程中同样也是不断地督促自己再学习,帮助他人进步的同时自己也在进步。如果最后能获得大家的拍手叫好那肯定是最开心最有成就感的事情了。还想提一点,为这本书量身打造的第二版NIOS II学习板还叫SFNIOS2,但是整个风格乃至板子的外设方面都会有较大的变动。读者也不用担心自己买到的会是第一版的学习板,如果您看到了这里的文字,那么市面上就只有第二版的SFNIOS2了。

特权是做硬件出身的,画原理图、画PCB,甚至焊接和编程都不在话下。这年头,全能战士可能不太值钱,因为老板会说“你什么都会,说明你什么都不精”。不过依个人之见,也算是给大家一点建议,如果你是个还处于上升阶段的电子专业学生或是电子行业的初级工程师(偶当年刚毕业的时候,在国企那套体制里,半年后才称得上“助理工程师”),我想说什么?哦,“不要什么都不会,最好什么都会点;还有就是不要什么都不精,至少要在某一方面有点过人之处。如果,那个‘点’字换成‘些’字就更好了。”呵呵,仔细想想这句话,也许对任何人在任何行业的职业发展都适用吧!因为每个正常人的智商都是差不多的,如果又发现了一个爱因斯坦式的天才,我想肯定不会是你,也不会是我。所以,对于每一个人而言,其时间和精力都是相对有限的,而如何利用这些有限的时间来最大化地展现自己的能力,就是成功和失败的关键了。话扯远了,忽然发现这个“前言”老是扯得有些文不对题,其实特权同学也只是希望在这里说一些技术本身之外的、大家也许比较关心的东西,再借着这篇文章或许能够拉近我们的距离,因为,我们都要成为“同学”了嘛。

不过谦虚点说,也许特权同学在软件编程方面不是强项,甚至最多也还是只能算“菜鸟”一个。所以,纯粹想来学习NIOS II软件编程方面知识的朋友可能会有些失望了(可以这么说,如果你本来就是一个C高手,那么要成为一个NIOS II软件高手也是很容易的。所以,希望不在特权身上,也不在这本书上,完全在于你自己)。但是,特权同学想说的是,如果你希望在SOPC的整个硬件架构上,甚至系统的架构上有多一些的了解和实践,那么我们可以轻松上路。这本书的重点是硬件架构和设计思想,软件也是实现一个完整系统必不可缺的部分,所以,特权同学还是会竭尽所能地让它们“和谐”地揉和在一块。

总之,套用《圣经》里的一句话,就是“一切智慧和知识的宝藏,都藏在里面”。所以,读《圣经》吧,相信能带给你许多意外的收获。

 

致谢…

细细算来,在EDN开博已3年有余了(2008年3月17日写下第一篇博文),按照yulzhu兄的说法,特权同学也算是为数不多几个能够能迈过2年这道坎,并且已经走过3年的博主。几年下来,虽然博文的数量算不上高产,但这里不是夸口,质量还可称得上是有所保证的,毕竟写出一篇让人拍手叫好的加“酷”博文都是要费些脑细胞的。

看着一不小心点击量都已经迈过百万大关了,确实有些感慨万千。记得很久很久以前,写了一些懵懵懂懂的入门性质的技术文章,扔在了那时非常流行的qq空间里“炫耀”,那时我才刚大四。之后忽然有一天,在找寻参考代码的过程中Google把我带到了EDNChina,忘记了是哪位博主的文章,加上一些自我鼓励的文字,就一下子把我吸引住了,于是就和这里有种“一见钟情,相见恨晚”的感觉,便决心扎根此地,而后,正可谓“一发而不可收拾”。

但是,3年说长也长,道短也短,真可谓稍不留神,时间转眼即逝,往事便如飞而去。其实这里不是要感慨自己走过的所谓“风风雨雨”,不喜欢做个“矫揉造作,无病呻吟”的人,所以一直只是在博客里坚持尽可能原创的技术性文字,而非太多个人的见解、看法甚至怨恨和牢骚。只想说,EDN这个平台在不知不觉中赋予了我太多太多,我其实非常非常爱这里的一切。我的几位挚友是在EDN结识的,我现在的这份工作从某种意义上也是EDN论坛里某个“广告贴”成就的,《深入浅出玩转FPGA》完全就是EDN博客的“翻版”。当然,我也不会忘记你们曾经慷慨的banner。可以说,网友们的信任和支持,很大一部分是因为你们。所以,在这里我势必要发自心底地再次对EDNChina网站的工作人员以及所有活跃在这个平台上的战友们道声“谢谢”!

在这里,我尤其要感谢EDN的社区专员黄娜美眉,这两年来有你的支持和帮助,才使得FPGA/CPLD助学小组始终处于长盛不衰、人气高涨的态势。虽然在本书出版之时,也许你已经离开了职业生涯开始的地方——EDNChina,但无论你走到哪里,我们这帮兄弟们依然会为你加油、为你喝彩。我们也坚信,你的下一站会比这里更精彩。

除了EDN,特权同学也应邀在ChinaAET、EETChina和EEFOCUS开博,拓宽了与广大工程师网友们交流互动的平台。在这里也对三位资深媒体人敬荣强、张迎辉和贺潇荃表示感谢。

在浩如烟海的网络中,意外结识的两位阳光向上的“奥特拉师弟”张亚峰和韩彬,谢谢你们给了特权同学很多创作的灵感和动力,也很感激你们提出的许多宝贵建议与想法。

同样,特权同学能有时间和精力完成第二本书,家人的功劳是最大的,尤其是我的妻子。这本书同样是献给我所有的亲朋好友,祝福你们都有一个光辉灿烂的前程。

最后,特权同学也很想对所有参与本书编辑和整理校对的工作人员道一声“你们辛苦了,谢谢你们”!

篇幅所限,还有很多需要感激的人和事,这里却无法一一罗列。只想送上同样作为特权同学邮件签名的一句引自《圣经》的祝福语:

“愿主耶稣基督的恩,神的爱,圣灵的交通,与你们众人同在。”

特权同学

2011年5月于上海

 

目录

第1章海阔天空聊概念1

1.1CPU之软核与硬核1

1.2SOPC是什么2

1.3NIOS II的优势6

第2章开发流程7

2.1流程7

2.2执行流程的必要性8

2.3SOPC开发的流程9

第3章流程实践案例——手把手第一个工程13

3.1硬件平台13

3.2软件平台16

3.3手把手硬件工程18

3.3.1新建Quartus II工程18

3.3.2SOPC Builder配置20

3.3.3例化NIOS II工程32

3.3.4分配引脚与编译下载34

3.4手把手软件工程35

3.4.1新建软件模板工程35

3.4.2设置软件编译属性38

3.4.3软件编译和下载40

第4章实战演练之存储控制器44

4.1嵌入式存储系统45

4.2基于FPGA的嵌入式存储解决方案46

4.2.1片内存储器47

4.2.2外部SRAM49

4.2.3Flash50

4.2.4SDRAM51

4.3第二个系统准备工作53

4.4SDRAM控制器组件添加与配置54

4.5EPCS控制器组件添加与配置57

4.6PLL组件添加与配置59

4.7其他SOPC Builder配置63

4.8编辑顶层文件与引脚分配64

4.9软件工程调试与下载67

第5章实战演练之时序收敛71

5.1时序设计四部曲72

5.2一部曲——时序分析74

5.2.1系统内部时钟时序分析75

5.2.2SDRAM接口时序分析76

5.3二部曲——时序约束81

5.3.1全局时钟约束84

5.3.2I/O接口约束之virtual clock生成与约束85

5.3.3I/O接口约束之理论推导87

5.3.4I/O接口约束之output delay约束90

5.3.5I/O接口约束之input delay约束96

5.3.6SDRAM时钟频率与相移更改99

5.4三部曲——时序报告100

5.4.1寻找PLL相移值100

5.4.2查看关键路径105

5.5四部曲——时序收敛112

5.6时序最优化114

第6章实战演练之玩转NIOS II118

6.1第三个SOPC系统硬件架构118

6.1.1添加新组件119

6.1.2例化新系统与引脚分配123

6.1.3时序约束与收敛126

6.2熟悉NIOS EDS软件开发平台130

6.2.1加载和关闭工程131

6.2.2新建工程134

6.3软件例程1——蜂鸣器实验135

6.4软件例程2——流水灯实验141

6.5软件例程3——数码管定时器实验143

6.6软件例程4——串口收发实验147

6.7软件例程5——看门狗定时器实验154

6.8软件例程6——按键中断实验158

6.9软件例程7——SD卡SPI通信实验161

第7章实战演练之自定义外设组件176

7.1总线177

7.1.1AvalonMM总线181

7.1.2AvalonST总线185

7.2Avalon组件集成之TLC549186

7.2.1准备工作186

7.2.2模块源码设计187

7.2.3组件封装191

7.2.4集成新组件到系统中196

7.2.5工程例化与编译197

7.2.6软件调试200

7.3Avalon组件集成之DAC5571201

7.3.1模块源码设计201

7.3.2组件封装207

7.3.3集成新组件到系统中209

7.3.4工程例化与编译209

7.3.5软件调试212

第8章实战演练之USB通信214

8.1硬件系统架构214

8.1.1CH376芯片概述214

8.1.2准备工作216

8.1.3集成组件217

8.1.4工程例化与引脚分配218

8.1.5编译与时序收敛220

8.2软件编程222

8.2.1数据/指令读写222

8.2.2指令功能描述227

8.2.3芯片寄存器读/写测试230

8.2.4作为USB从机与PC连调233

8.2.5U盘扇区读/写操作241

8.2.6基于U盘的TXT文本创建252

8.2.7基于U盘的A/D采集数据存储258

8.3改进的CH376并口控制方式266

第9章实战演练之显示控制器DIY273

9.1液晶驱动组件设计274

9.1.1LCD显示驱动模块274

9.1.2自定义外设模块283

9.2SOPC系统硬件架构285

9.2.1准备工作285

9.2.2集成组件285

9.2.3工程例化与引脚分配288

9.2.4编译与时序收敛294

9.3图片取模配置299

9.4软件程序301

9.5串口下发板级测试307

第10章网络杂文309

10.1设计资源最大化309

10.1.1何谓设计资源309

10.1.2设计资源就在您身边310

10.1.3设计资源的案例310

10.1.4设计资源,无处不在311

10.1.5总结——积攒设计资源311

10.1.6设计思想,来源于生活312

10.1.7结束语314

10.22010——成长,在路上314

10.3好书从比喻开始314

参考文献316