全网首创ISE入门级教程

   转眼间我已经大三了,现在成为了实验室的负责人,对于下一届学生的纳新重任就交到了我的手上,想采取不同的方法暑假尽可能对他们进行一些培训,所以制作了此教程,说实话,在网上还没有找到关于ISE的入门级使用教程呢!可谓是全网首创啊!话不多说,我们赶紧看看我的处女视频教程吧!

  互联网是最好的学习平台,让贫富之间的教育资源差距减小,对于FPGA来说晚上的教学资料、视频非常多,但是多数为Altera的QuartusII开发套件使用,而Vidado的使用貌似这两年也多了起来,那么ISE被抛弃了吗?之前有过一个前辈做过关于ISE的使用教程,但那都涉及到摄像头驱动的FPGA进阶阶段了,所以今天这套FPGA入门第一课的视频教程,可真谓是全网首创关于ISE软件的使用教程。这是西邮电院FPGA创新小组的纳新公开课,FPGA入门第一课一位全加器的设计(ISE使用教程的百度云盘链接在文章第五部分)。

一、 FPGA创新小组纳新公告

  FPGA创新实验室处于西安邮电大学2号实验楼(电子工程学院实验楼)107实验室。主要学习方向为数字集成电路设计(FPGA),每年九月份中旬进行纳新,主要面向微电子系(集成电路和微电子专业)的16级学生。为了使纳新结束后大家能够快速进入学习状态,我们暑假会针对纳新考核进行相应的培训,让大家提前有一个对FPGA的认识并且能设计出一些简单的电路。群文件有相关资料,请大家自行下载学习。前期需要大家将软件下载安装(链接如下),学习一些数电基础知识(群文件有数电电子书康华光版),Verilog基本语法(请看群文件),后面的线上课程会再通知。大家有什么疑问可以直接在群里提出。

二、 FPGA是什么

  FPGA(Field-ProgrammableGate Array),即现场可编程门阵列,使用Verilog HDL(Hardware Description Language)进行描述,FPGA可以理解为把数字电路的元器件都集成到FPGA芯片内部,与门、或门、选择器、D触发器。实际上它内部构造是用FPGA利用小型查找表(LUT)来实现组合逻辑,每个查找表连接到一个D触发器的输入端,触发器再来驱动其他逻辑电路或驱动I/O(input/output),由此构成了既可实现组合逻辑功能又可实现时序逻辑功能的基本逻辑单元模块,这些模块间利用金属连线互相连接或连接到I/O模块。

图 - LUT实现原理图

图 – D触发器

         总的来说,它是利用verilogHDL硬件描述语言来描述数字电路,你所写的代码,映射到板子上实际上就是一些数字电路。

         FPGA公司主要是两个Xilinx和Altera(现intel PSG),我们目前用的ISE是Xilinx的开发套件,现在ISE更新到14.7已经不更新了,换成了另一款开发套件Vivado,也是Xilinx的产品,intel的开发套件是Quartus II系列,我们实验室这两款公司的开发板都有,不用对于入门来说,选择ISE有两个原因,一是它比Vivado快多了,二是它和Quartus II相比不用自己写测试文件(激励)。实验室的板子这两个公司都有,代码都是可以移植的,学习的话都要学的,软件不是问题,重点是FPGA的设计思想。

三、 FPGA与单片机的区别

  对于单片机和FPGA的主要区别。单片机可以理解为跑程序的微型电脑,麻雀虽小五脏俱全,所以写的代码相当于程序,应该属于软件范畴。单片机写出来程序,用编译器编译后实际上是一条条指令,控制单片机去控制它的外围器件。

FPGA则应该理解为可编程的数字逻辑电路集成芯片,所以写的代码其实是在描绘一个数字逻辑电路。

两者最大的区别应该是在速度上的区别,FPGA内部是并行的,所有的电路逻辑都是在同一个时钟触发下工作的,而单片机属于单线程,内部属于顺序执行,一个执行完了再执行下一个。速度肯定要慢。

  FPGA主要用于通信、图像处理等领域,ASIC的设计验证,就在去年到今年还有一个新的领域AI,用FPGA加速深度学习算法,BAT也都部署了FPGA云服务器。因为其速度快的优点,所以用来处理数字信号是所擅长的。最经典的是2008年北京奥运会开幕式的画卷显示屏用的就是Altera Cyclone II FPGA驱动的。

在初学FPGA的时候容易的是把VerilogHDL当C语言来写,把FPGA但单片机来用。写的代码不能称之为程序,应该称之为代码,以区别和软件的不同。

图 – CPU与FPGA

四、 一位全加器的设计

需要基础知识:二进制的加法运算、真值表、卡诺图、Verilog HDL基本语法

1 + 1 =1 0; 1 + 0 = 1; 0 + 0 = 0;

全加器(Full Adder)

图 - 一位全加器真值表

上图是数电书上的全加器真值表,下图是我自己画的。

A和B为两个加数,CI表示低位向本位的进位,CO本位向高位的进位。我们在这里设计中用不到CI,设计超前进位加法器会用到。所以看右边的图就可以了。

Verilog有四种描述风格:晶体开关级描述风格、门级描述风格、数据流风格、行为级描述风格。

开关级描述风格太老我们不学。门级描述风格也太原始,交给你们数电老师去教。数据流描述风格虽然不常用,但是为了更加深刻理解组合逻辑的设计,所以后续课程在进行讲解。今天我们就用最简单,最迅捷的行为级描述来描述这一个一位加法器。

五、 ISE14.7使用流程

  1. FPGA创新小组纳新公开课class1:百度云链接:http://pan.baidu.com/s/1bpAgmtD  密码:psx2

视频中有详解

  1. ISE14.7与Notepad++级联:http://www.cnblogs.com/ninghechuan/p/6172237.html
  2. 注意

(1)      Wire型数据只能能在assign语句里赋值

(2)Reg型数据只能在initial块,always块,for赋值

六、 课后练习

  1. 重新新建一个工程,自主设计一个四位全加器,要求有仿真。最终将工程打包发送至我的邮箱ninghechuan@foxmail.com,可以编写一份文档对设计进行概述和说明,附加学习心得和感想

七、 你能得到什么

  1. 首先是提高动手能力,很多东西自己动手做一遍和你从课本上学理论的感受是不一样的。
  2. 我们实验室每年都会组织参加各类电子竞赛,增强项目实践能力。
  3. 增加考研就业竞争力,
  4. 实验室有空调,有空调,空调,调。

转载请注明出处:NingHeChuan(宁河川)

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏java一日一条

59条令人捧腹但真实的程序员编程语录

我收集了很多关于软件开发者的编程语录。这些语录和软件开发维护、调试、软件bug、软件设计和文档、代码质量、测试和管理等相关。下面这59条编程语录虽然令人捧腹但也...

1034
来自专栏Java架构师进阶

JAVA程序员面试总结,整理加强版

我认为三年对于程序员来说是第一个门槛,这个阶段将会淘汰掉一批不适合写代码的人。这一阶段,我们走出校园,迈入社会,成为一名程序员,正式从书本 上的内容迈向真正的企...

924
来自专栏企鹅号快讯

程序员的噩梦有哪些?除了改需求,还有这些…

编译:伯乐在线 - 陈舸 http://blog.jobbole.com/80724/ 有国外程序员在 Quora 上提了一个问题:“程序员的最大噩梦是什么?”...

19910
来自专栏cmazxiaoma的架构师之路

一场让我持续懵比的面试

2044
来自专栏大数据挖掘DT机器学习

coursera上有哪些值得学习的Python数据分析的课程?

作者:程刚 链接:http://www.zhihu.com/question/36254617/answer/83998273 下面就讲讲我在course...

3595
来自专栏程序人生

那些年,我追过的语言

程序君也年轻过,年轻的代价就是盲目追随。 从MS-DOS6.0开始,程序君就是微软的狂热拥趸。 这种狂热自win95走上高潮(有谁还记得win95光盘里带的Go...

3535
来自专栏张灿树的专栏

【腾讯云的1001种玩法】从一个云服务器到一款十年后的游戏之第一年

作者是QQ三国的一名铁杆粉丝,有着满腔对这游戏未来发展的热情,希望十年后该游戏的策划组愿意倾听。本文中,作者分享如何建设一个帮助某游戏新玩家快速熟悉游戏,让老玩...

2.8K1
来自专栏纯洁的微笑

我来告诉你,一个草根程序员如何进入BAT

1414
来自专栏牛客网

头条前端offer

我也忘记什么时候投的了,正规校招流程,3次笔试5题中最好成绩都是a了80%,应该和笔试关系不大。我平时看掘金,看见有那些招人的邮箱都会投一下,虽然投了很多,不过...

1133
来自专栏*坤的Blog

『电子书』分享一波码农必备编程开发类书籍[转]

2672

扫码关注云+社区