共克时艰 | 来自各系主任的假期专业指导

来源:信息科学与技术学院  作者:马琼  日期:2020-02-08  点击数:220

亲爱的信息科学与技术学院的同学们,延长的假期却不能延迟你的学习与进步,学院老师们对你们成长的关注与关爱通过小in传递到身处全国各地的你,每个系的系主任们代表全系的老师给你的假期专业指导,请查收:


信息学院计算机基础教学中心主任 戴克俭

信息科学与技术学院的全体同学:

目前疫情还在继续中,为了战胜病毒,给大家一个安全的学习环境,学校将延迟开学,希望同学们安心在家中,保护好自己,等待学校的开学通知。在家等待的时间里,作为学生,老师们期待各位同学应以学习为主,在防护好自己的同时多花时间学习。作为信息学院的学生,编程能力是我们每一位同学必须具备的一项基本技能,大家要努力提高自己编程能力,如何提高编程能力呢?在此,给大家一点建议,供同学们参考。

1、 培养兴趣,兴趣是最好的老师。

2、 多读、多编程,重视实践。多看经典案例,掌握其算法思想。

3、 要有耐心。调试过程可能有一些错误很难发现,不要灰心要耐心查找,学习调试技巧。

4、 多看教材和参考书,熟练掌握基本语法和编程技巧。

5、 在对所学的语言熟悉后,最好找一个难道不大、规模适中的项目,实际动手,编写程序,调试通过。这样你的编程能力就会大幅度提高。

6、 我们在编写软件时,要充分考虑用户的使用习惯,如果你编写的软件,不符合用户的使用习惯,用户也不会使用。例如:我们在使用浏览器浏览网上消息时,需要等待几分钟,如果浏览器的窗口中没有任何提示,你会怎么想?是死机了还是什么情况?如果一个进度条来表示链接进度,是不是就不会有死机的想法了。


通信工程系副系主任 刘刚

通信工程的同学们:

在这场“战疫”中,相信大家都看到了基于5G通信的远程诊疗、大数据等技术正在通信保障、疫情分析与控制、医疗资源均衡等方面发挥着重要支撑作用。这个假期虽然 “单调”却也很纯粹,大家可利用假期宝贵的时间,基于丰富的网络资源和在线课程平台(如学堂在线,MOOCCoursera等)推进咱们专业知识的学习与提升。大一可强化编程(如CC++, Python等)和数学基础;大二可以预习《信号与系统》;大三可巩固《通信原理》,自学《移动通信》等专业课程;大四抓紧推进毕业设计进度,保持与指导教师的联系;大家也可基于知网(假期免费开放)等学术搜索工具,学习与了解通信前沿技术,如5G6G,以及通信技术与人工智能、大数据、垂直行业的融合技术等。


计算机科学与技术系副系主任 叶佳

信息学院计算机系的同学们:

新年好!

这是一个“特殊”的新年,一场突如其来的疫情让所有学生都曾有过的期盼“假期延长”变成了现实,但当它真正实现的时候,我们才发现,没有任何惊喜比得过“一切依旧”四个字。我们多希望没有这场疫情,能依旧在大街小巷感受熙熙攘攘,能依旧在来往高铁上体会挨挨挤挤,能依旧在学校宿舍间享受喧喧闹闹。

但现在是信息时代,距离不再等于隔阂。计算机技术的爆炸发展带来了购物、物流、教育等领域的网络化变革,足以保障我们能平安地坚守家中。这里我由衷地希望大家不论面对何种困难,生活依旧保持前进。几点建议:

1.  不要把过多的精力浪费在微博与朋友圈中,除了把握基本的防疫知识与情况外,错综混杂的各类信息只会带给你你忧虑与不安;

2.  制定每日计划,起码大致分配好每天学习与放松的时间。CourseraEdx,网易公开课,学堂在线,中国大学MOOC,慕课网等一系列国内外平台都能提供完善的计算机类课程,一台电脑,一部手机就能让你不用虚度;

3.  临近毕业的学生,请把准备做在前面,保持和导师的交流与沟通,尽量完成能在家完成的工作,顺利毕业依旧是你人生中任何外力都无法撼动的追求之一;

4.  对同胞保持一份善意,不论是哪个地区,哪种职业,是否染病,身体上可以保持距离,但心不用。

加油各位,愿疫情过后,这个国家以及这个国家的你我,依旧强大!


软件工程系系主任 李天瑞

软件工程专业学生的学习建议

亲爱的软件工程系的全体同学:

宅在家里的生活是否有点枯燥,那就来好好夯实一下我们的专业基本功,从大一到大四,老师们都期盼着你们各有精进:

大一:夯实基础学科的知识。把主要的精力放在基础学科的知识强化上,尤其是高数、线代和物理,注重观察、比较、分析、综合、抽象、概括、判断、推理的能力培养,切实提升逻辑思维能力。

大二:深入编程语言的学习。根据自己的兴趣和未来工作的要求,选择 1-2 门编程语言来深入学习,注意一定要亲手敲代码,并认真理解与领会代码的作用,同时做到温故而知新。

大三:加强工程能力的培养。有针对性地进行规范化软件工程项目分析、设计、实现、测试、维护及项目管理各环节的工程训练。

大四:按计划开展毕业设计。在前期的开题基础上,完成项目方案设计。同时,与指导教师保持密切沟通,每周一次按时在线汇报毕业设计进展。

期盼着你们身体健康!期盼着你们学业进步!


自动化系系主任 闫飞

亲爱的同学们,这个冬天我们迎来了一个不一样的春节。在这个延长了的寒假里,作为学生的我们,除了按照要求积极做好防护外,是不是可以在家利用这段时间给自己的学习充充电,加加油呢?

比如我们大一、大二和大三的同学们可以利用这段时间把自己学过的数学类基础课、英语、专业课等课程的内容进一步的巩固(可以结合网上精品在线课程学习);大四的同学可以在家开展自己的毕业设计研究工作(知网针对高校师生提供了校外漫游服务);

研究生同学则可以多看文献,多思考。争取在我们度过这次疫情后,大家在学习上也能更进一步!

最后,我还是提醒大家,随时关注学校和辅导员关于开学、补考、返校等事宜的通知,祝大家假期愉快,平安健康、学习进步!


电子工程系系主任 王平

亲爱的微电子科学与技术的同学们:

由于众所周知的原因,学校延迟开学。这个前所未有的长假期也是大家整理反思和学习的一个好机会。大学与中小学不同有更多属于自己的时间和空间,如何用好这个也许是独一无二的长假?

1、小时候父母养育我们,为我们服务。慢慢地大家长大了,在这难得的与父母终日相守的日子里,多做一点家务,陪父母面对面聊聊天,享受一些天伦之乐吧。

2、有挂科的同学,这个长假是你奋起直追查漏补缺的绝佳机会。只要你有信心,做好规划并能切实地付诸于行动,找一些mooc课程,再加上找老师多答疑,相信补考成绩一定不会辜负努力的人。

3、理工科学生不只是专业知识过硬就好,没有人文艺术参与的精神世界是乏味的,我们更需要理解学术之外担负的社会责任。大家可以看一些好书、把自己的爱好捡起来练一练也让这个被“禁足”的假期也多姿多彩。



铁道信息工程系副主任黄高勇

亲爱的同学们,新年好!

今年大家都经历了一个“特殊”的寒假,甚至可能是一个延长的假期,目前全国上下“战疫”行动仍在继续,想必大家现在都乖乖的“宅”在家里吧。生活依然要继续,这里就给小伙伴们提几点小小的建议,希望大家能够过一个充实的、有意义的假期:

1)务必要做好自我防护,同时要多提醒身边的亲友做好防护。爱自己就是爱家人、爱国家,就是在为这场“战疫”作贡献;

2)合理规划每天的安排,做到松弛有度,不荒废学业。推荐大家充分利用网络资源平台(如:中国大学MOOC、网易公开课、学堂在线、有道精品课、腾讯课堂等)开展自主专业学习和自我提升,做到“假期延期、学习不延期”;

3)大四的同学现在正是做毕业设计的时候,可能会为查阅文献资料发愁,不过大家不用担心,为了应对疫情,学校也专门开放了图书馆数字资源,小伙伴们可以待在家里免费查阅文献资料啦(操作指南:http://www.lib.swjtu.edu.cn/news/newsdetail/5840),不过也提醒大家,一定要保持和指导老师之间的沟通哦。

疫情无情人有情,坚信依靠国家的力量,咱们每个人做好自己,一定能够取得此次“战疫”的最终胜利!冬天过去了,春暖花开的日子就会快到了,让我们一起加油吧!



电子工程系副系主任 邸志雄

留守在家,如何提升和精进FPGA设计能力?

信息学院的同学们:

特别为大家撰写一篇如何掌握FPGA设计能力的分享,不仅仅是微电子的同学可以学习,信息学院全体同学都可以来学习!

工欲善其事,必先利其器,代码可综合设计能力、电路设计方法学、领域特定架构和算法理论,是提升和精进FPGA技能的必要基础。不需要FPGA开发板实物,也能够在家学习和夯实这些基础知识。

0FPGA入门基础

具备基本数字逻辑基础、基本VerilogHDL编写能力。

此处推荐东南大学汤勇明老师编写的《搭建你的数字积木——数字电路与逻辑设计》。这本书将Xilinx Vivado集成设计开发环境在第1章中就呈现给读者,让读者从一开始就能利用该开发工具学习具体逻辑设计。这本书的优点是采用了电路设计加VerilogHDL编写的方法,重点突出模块化编程思想并详细介绍了IP设计、封装和调用方法,并在书中给出了VGA控制器、数字图像处理设计等实际案例。

如果已经具备了数字电路+FPGA”基础,可从如下内容开始学习。

1VerilogHDL和电路设计能力提升

经常碰到学生问类似“VerilogHDL不会编,如何提升编程能力等等的问题,其实这个问题一开始就是错误的。VerilogHDL是硬件编程语言,与C语言等软件编程语言有着非常大的差异,如果使用C语言的书写思维去学习Verilog,那就完全错了。Verilog HDL语言是对已知硬件电路的文本描述,因此必须理解其可综合特性。

编写Verilog HDL前:

  1. 应对所需实现的硬件电路胸有成竹

  2. 牢记可综合Verilog HDL与电路结构一一对应的关系;

  3. 确认电路指标是什么:性能?面积?

  4. 硬件思维方式,代码不再是一行行的代码而是一块一块的硬件模块;

真正理解以上几点,才可以理解电路设计的思想,写出行云流水般的高质量代码。关于如何实现高质量的VerilogHDL代码书写的内容、如何理解数字电路的设计思想,可以在家学习我在中国大学MOOC”网站的慕课《芯动力——硬件加速设计方法》第二章和第三章。目前该课程在线学习人数已经超过1200人。在中国大学MOOC”搜索课程名称即可参与,或者访问该短链接https://url.cn/57pFUkB,免费收看。第四章和第五章重点讲数字芯片的逻辑综合和静态时序分析方法,但是与FPGA的综合和时序约束很接近,也可以学习。

参考书推荐:

  1. 《轻松成为设计高手:Verilog HDL实用精解》。EDA先锋工作室编写,目前市面上的中文书籍里,少有的几本能够从VerilogHDL硬件本质来阐述的书。(ps:该书的前一版书名为:设计与验证。两版内容基本上一样,看哪个都可以)
  2. Altera FPGA/CPLD设计(高级篇)》。EDA先锋工作室编写,人民邮电出版社. ps:一定要注意是高级篇。该系列还有一本基础篇,不建议阅读)
  3. SoC设计方法与实现(3)》,郭炜 等编写. 电子工业出版社。
  4. FPGA深度解析》,樊继明,陆锦宏 著. 北京航空航天大学出版社. 2015年。(ps:以上两本对电路设计的相关知识点做了详细阐释)

2、选择好的FPGA案例,提升设计能力

FPAG的优势是硬件加速,其能效比远高于传统的CPUGPU。因此,FPGA在对算力有极致需求的领域有着非常广泛的应用,如人工智能、图像视频处理、密码安全、数据中心、航天航空、高频量化交易等。

那么,什么案例适用于FPGA教学?这是一个很有意思,也值得思考的问题。是流水灯?I2C串口传输?我认为不是,这些案例完全没有体现出FPGA应用的特点,反而因为FPGA上手和调试较难的原因,劝退了一部分本来有兴趣学习FPGA的学生。这些案例的特点是系统更关注“控制”而不是“计算”,且I/O、存储数量要求非常小。一方面,无法体现FPGA带来的硬件加速效果;另一方面,用单片机、MCU来实现流水灯、串口等系统,上手简单,又快又好,为什么要用FPGA来做这些?

个人认为最适合学习FPGA的案例有以下几种:

  1. 处理器原型设计与实现。例如,在FPGA上完成一颗小型RISC CPU的设计,如果手上开发板,还可以进一步完成操作系统的移植和应用程序编写。也可以在FPAG上完成AI处理器的设计,最终在开发板上实现诸如图像检测、人脸识别等系统功能。
  2. 高性能算法加速。例如,在FPAG上完成数字信号处理算法、图像视频处理算法等单片机无法实现的系统。

同学们可以充分利用参考书、公众号、B站、github等各种网络资源,从应用领域的架构、算法等基础学起。如果没有开发板,可以完成电路设计、代码编写、FPGA的验证和实现流程。

参考书与案例推荐:

  1. 《搭建你的数字积木——数字电路与逻辑设计》。汤勇明等编著,清华大学出版社,2017年。(ps:书中最后几章有很多FPGA案例)
  2. 《手把手教你设计CPU——RISC-V处理器篇 》。胡振波编著,人民邮电出版社,2018年。(psgithub上面有该CPU的源码)
  3. pynq.io,这是一个网站。Xilinx PYNQ开发板的开源的开发者社区,有很多使用PYNQ的开发案例,如AI处理器、视频图像处理等等。

    l  Parallel Programming for FPGAs。本书有中文版和英文版,书和案例都可以在github下载。网址为https://xupsh.github.io/pp4fpgas-cn/。(ps:本书中所有案例都采用HLS C编写完成,如果对使用C++/C语言开发FPGA感兴趣,可以学习这本书)

  4. 《VLSI数字信号处理系统设计与实现》(作者:Keshab K.Parhi)与《数字信号处理的FPGA实现》(作者:Uwe Meyer-Baese)。(ps:这两本仅限有数字信号处理基础的同学学习。不建议初学者学习)

  5. 斯坦福开设的一门机器学习硬件加速器的课程,“Hardware Accelerators for Machine Learning (CS 217)”ps:仅限有机器学习和FPGA开发能力的同学学习。不建议初学者学习)

另外,如果有同学对FPGA芯片本身感兴趣,可以阅读这本书:《FPGA原理和结构》,[] 天野英晴 著,赵谦 译,人民邮电出版社。尽管已经有很多书籍和课程来讲授如何应用FPGA来搭建电子系统、实现硬件加速,但是几乎没有一本中文入门教材来讲授FPGA内部的设计原理和结构。《FPGA原理和结构》一书集结了日本FPGA和可重构计算领域的多位权威和专家,译者老师也长期从事FPGA和可重构计算研究,在FPLFPGA顶级学术会议发表多篇论文。本书不仅对FPGA内部结构做了引人入胜的分析和讲解,而且对FPGA CAD工具和算法也进行了详细深入的阐述。更惊喜的是,本书还介绍了FPGA在超算、基因科学、金融、人工智能、高频交易等方面的应用,可以让读者看到一个当下和未来更大的FPGA世界。本书写作风格浅显易懂,严谨求实,非常适合本科生和研究生作为FPGA结构与原理的入门教材,本书日文原作在日本可重构领域几乎人手一本。

如果有同学在阅读《FPGA原理和结构》一书后对FPGA开发工具的设计原理刚兴趣,可以研究下学术界经常用的FPGA开源工具VTRhttps://vtr.readthedocs.io/en/latest/

3、开发工具推荐

Xilinx vivado 2018.3。注意版本号2018.3,版本号要正确,不建议下载比2018.3更早的版本。官网就可以完成下载,由于该工具体积很大(约18G),所以要耐心等待。

使用Xilinx vivado 或者Intel Qurtus Ⅱ都可以完成FPGA开发全流程。如果觉得其中内嵌的工具不好用,还可以使用如下工具代替:


  1. VS code编辑器(要安装Verilog插件),完成代码编辑;编辑器还有notepad++UltraeditVim等,看个人编程习惯。Vim学习曲线比较陡峭,熟练之后效率非常高。
  2. Modelsim,完成代码仿真。(去eetop论坛找)


4、开发板推荐

目前情况看,网购基本上还不影响。如果有同学确实觉得需要一个实体开发板来落实系统设计,推荐以下几款,都可以在淘宝购入:


  1. Spartan Edge Accelerator(SEA)。采用了Xilinx Spartan7器件,价格<300元,适合入门的初学者完成一些轻量级的系统加速。SEA可以支持外插arduino作为其扩展板,如果熟悉arduino,可以采用这款开发板入门。
  2. Xilinx PYNQ Z2。该系列FPGA中嵌入了一颗双核ARM,既能发挥FPGA的定制特性,也能发挥处理器的通用特性,而且两个部分之间接口丰富、官方文档齐全,可玩性极高。用户可以使用Python语言编程开发ARM端,并且代码可直接在PYNQ-Z2上进行开发和测试。当引入Python后,就可以使用一些Python中强大的第三方库了例如NumpyMatplotlib等。注意:PYNQFPGA端仍需使用VerilogHDL或者HLS进行编程实现。


5、扩展知识

以上是FPAG的必备知识。但是,随着FPAG技术的快速发展,当下的FPGA已经与传统的FPGA硬件开发有了天壤之别。尤其是集成SoCFPGA推出之后,更加注重软、硬结合的复合能力。从两大厂商FPGA推陈出新的技术来看,软件开发能力已经被提到前所未有的高度。如果同学们学有余力,可以学习如下扩展知识和技能:


  1. Python。PYNQ就是一个非常好的例子。从最近三年全国大学生FPGA创新竞赛的获奖作品可以看出,使用Python可以快速完成一个复杂FPGA系统的搭建。
  2. HLS C。C++/C非常适用于将复杂算法放到FPGA上,开发效率远胜VerilogHDL好几倍,如果同学们感兴趣的话,可以参考上述第三部分推荐的参考书《Parallel Programming for FPGAs》。


6、其他相关学习材料推荐

APP:西梅(英文新闻和文章,可语音播放)、不背单词。

行业相关公众号:半导体行业观察、矽说

另外,我建了一个FPGA的学习讨论QQ群,如果同学们感兴趣的话,可以加入。QQ群号:784347148QQ群二维码: