VerilogHDLCPLD-FPGA.pdf
《VerilogHDLCPLD-FPGA.pdf》由会员分享,可在线阅读,更多相关《VerilogHDLCPLD-FPGA.pdf(82页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、 Verilog-HDL 与与 CPLD/FPGA 设 计 应 用 设 计 应 用 2005 年 11 月 第 1 讲 Verilog-HDL 与 CPLD/FPGA 设计 1.1 从模拟世界到数字世界 1.2 数字电路的不同设计过程 1.3 用 HDL 描述数字电路 1.4 HDL 有几种?1.5 硬件实现的承担者-CPLD/FPGA 1.6 Xilinx 公司的 CPLD-XC9500 系列 1.7 结语 1.1 从模拟世界到数字世界 1.1 从模拟世界到数字世界 在 70 年代初期,家用电子产品末过于晶体管收音机、电唱机、扩大器了。那时,笔者所在的一个小城市销售 3 管晶体管收音机。她一
2、上市就优先供应农村,为的是让中央人民广播电台的声音直达有线广播不能到达的山区。开始时城市人是较难得到这样的家电产品的。笔者当时常出差于上海,为了自己能装一台梦寐以求的收音机,节省每天的 2 角钱出差补助,吃的是阳春面,用节省的钱去买晶体管等元器件。当时的元件市场可以说是 一片模拟世界。到了 1974 年前后,笔者所在的电信单位搞技术革新,用晶体管代替继电器,研制晶体管交换机。当时我对豆粒大的晶体管能代替形如打火机大的继电器而震撼不已,加之没有震动声音、耗电低等优点,更是使我着迷。当时,看到老技术员用晶体管搭建门电路,实现与或等功能。业余时间自己也自费购买元件,搭建一些功能电路。到了 1975
3、年以后,中小规模集成电路逐步上市。之后的几年,在大学里也开始讲授集成电路的课程。1979 年以后,日本的荧光显示式计算器开始在中国市场出现;1983 年前后,微处理器的学习形成高潮。1986 年,在数字技术的进步与微处理器技术的影响下,笔者开始动手制作 Z80 单片机。在不用任何调试设备的情况下,自己编写机器代码,组装编程器,直到制作出第一台最简单的单板机。第一次感受数字技术和微处理器,使笔者兴奋不已。近几年来,随着 IT 业的高速发展,整个电子世界都朝着数字化、小型化、多功能化、低耗电的方向发展,学习数字电路的条件与过去相比也发生了巨大的变化。1.2 数字电路的不同设计过程 1.2 数字电路
4、的不同设计过程 随着大规模 IC 的出现和成本的急剧降低,随着软件技术及各方面技术的进步,数字电路的设计方法与过程发生了巨大的变化,用传统的思维方式和设计方法已经不能适应时代的需要。作为一个数字电路设计的工程师,仅有过去的传统设计方法就无法适应时代需要。要跟上时代的需要,就必须学会使用硬件描述语言 HDL(Hardware Description Language)。HDL 可以描述数字电路或系统,还可以通过仿真等手段来验证设计的正确性。利用仿真的手段,可以大大减小设计失败的概率,缩短研发周期。图 1 给出了数字电路或系统的不同设计过程。图 1(a)是传统的设计过程,在这种过程中采用分立的功能
5、逻辑电路,设计过程大致可分为 4 个步骤。在这种设计过程中,进行了功能设计后,便用分立元件搭建电路。这种情况下,由于是靠经验和许多主观因素的影响,故很难保证电路的正确性。当系统较为复杂时,需要在搭建电路之前做一些局部性的实验,以降低失败的概率。电路搭建完毕后,便是硬件系统调试,这是一个较为艰苦的过程。在这个过程中,往往会发现在设计阶段犯下了许多不该犯的错误,甚至是致命性的错误。在经过反复的系统调试、修改错误后,才终于能形成一个满足设计的系统。(a)传统设计过程 (b)采用 HDL 的设计过程 图 1 数字电路的不同设计过程 图 1(b)是采用 HDL 的设计过程,在这种过程中,硬件的实现用可编
6、程逻辑器件。仅从过程上看,它似乎需要更多的步骤,其实如 STEP5 等步骤仅是一项简单的操作,系统实现的成功率很高。成功率高的原因在于:在 STEP4 之前,是对逻辑电路或系统进行逻辑描述和仿真,这些都是在计算机上进行的,其特点是有很大的可修改性,又不会发生硬件上的成本投入。在这个阶段得到满意的仿真结果后,便可设计硬件电路。而这时的硬件设计可以说已经有较大的把握,所实现的系统也将容易调试。除此之外,硬件也容易设计成兼容性较好的系统,使一个硬件电路在写入不同的 HDL 目标代码后可有相应的功能,有些方面就像一个 CPU 在不同的软件支持下表现出不同的功能一样,这也是采用可编程逻辑器件的很大优越之
7、处。1.3 用 HDL 描述数字电路 1.3 用 HDL 描述数字电路 现在,让我们通过一个简单的例子来看两种设计过程。一个如图 2 所示的电路。图 2 一个简单的逻辑电路 其逻辑表达式为 F=/A*(B+C)(1)就是这样一个简单的逻辑电路,如果用传统的硬件电路实现方法,要用到 74LS04、74LS08 和74LS32 三个功能集成电路,做如图 3 的连接。从图中可以看出,仅仅为了实现一个简单的逻辑关系,就需要有 3 个集成电路,而且许多个门(此例中有 11 个)白白被浪费掉。图 3 传统的逻辑电路的硬件实现方法 但是,如果用可编程逻辑器件来实现的话,只要用一片集成电路就可以实现了,例如可
8、以用Xilinx 公司的可编程逻辑器件 XC9572,如图 4 所示。用可编程逻辑器件实现式(1)所示的逻辑功能时,只要将逻辑表达式按规定的语法进行描述,经过仿真、编译等过程,最后下载到可编程逻辑器件中,就可以完成所设计的逻辑功能。逻辑电路的设计越复杂,可编程逻辑器件就越能显示出其优越性。不仅如此,有许多逻辑功能用可编程逻辑器件可以很容易地实现,而要用普通的功能特定的集成电路就很难实现。图 4 Xilinx 的可编程逻辑器件 XC9572 图 5 Xilinx 的可编程逻辑器件 XC9572 对于式(1)所示的逻辑功能,用 Verilog-HDL 可描述如下:modulemodule AND_
9、G2(A,B,C,F);input input A,B,C;output output F;assign assign F=A&(B|C);endmoduleendmodule 将上述的 Verilog-HDL 经过仿真确认逻辑关系正确后,就可以编译、下载到可编程逻辑器件中。这种情况下,一片可编程逻辑器件就具有了图 3 所示的 3 片集成电路所构建的电路功能,如图 5 所示。图中,逻辑门之间的连线是在芯片内部自动完成的。由此可见,它与传统的逻辑电路设计相比,设计过程很简单。1.4 HDL 有几种?1.4 HDL 有几种?在计算机软件方面,程序设计语言有 C、VC、VB 等语言。要设计一个软件系
10、统,或许用这些语言中的某一种都可以实现,但是各自又有其特点。HDL 也是一样,有若干种语言,最有代表性的是Verilog-HDL、VHDL(Very high speed integrated circuit Hardware Description Language)和 ABEL-HDL 等。VHDL 在美国较为流行,而 Verilog-HDL 在日本则为主流。VHDL 是最早标准化的 HDL,语法丰富且严谨。Verilog-HDL 具有类似于 C 语言的语法体系,库文件丰富,十分便于具有一些 C语言基础的人学习。本讲座采用 Verilog-HDL 来描述数字系统。1.5 硬件实现的承担者-
11、CPLD/FPGA 1.5 硬件实现的承担者-CPLD/FPGA 用 HDL 描述的功能,最终要由硬件来实现,就好象计算机软件的功能要在计算机硬件这个平台上实现是一样的。更形象地说,计算机的软件代码要装到计算机着个硬件中去,HDL 的目标代码也需要装到一个硬件-可编程逻辑器件中去,可编程逻辑器件有 CPLD(Complex Programmable Logic Device)和 FPGA(Field Programmable Gate Array)之分。CPLD 与 FPGA 都是大规模集成电路,两者在结构上完全不同,但它们都具有可编程的特性,对器件的编程是通过称为 JTAG 的接口来实现的。
12、对 CPLD 的编程可多次进行,如 Xilinx 公司的 XC9500系列就可以多次编程达 10,000 次以上。CPLD 是在 PLD(Programmable Logic Device)的基础上发展起来的。可编程逻辑器件端子间的关系用语言来描述,并通过计算机将目标代码写入器件。PLD的出现,省去了用通用逻辑 IC(如 74 系列)来搭建电路,使得逻辑设计的自由度大大提高。CPLD是复杂化了的 PLD,完整地讲应该称为复杂可编程逻辑器件。在逻辑门的数量方面,CPLD 与 FPGA 有很大的不同,CPLD 的逻辑门有几百到 1 万个,而 FPGA 有1 万至 25 万个逻辑门。Xilinx 公
13、司的 XC9536,有 36 个宏单元,800 个逻辑门;XC95108 有 108 个宏单元,2400 个逻辑门。由于结构上的原因,CPLD 在大型复杂设计的情况下,其运行速度可以预测,也很可靠,且修改设计也很容易,软件编译速度也快。在应用方面,CPLD 更适合于逻辑密集型的应用,如状态机和地址解码器逻辑等。而 FPGA 则更适合于 CPU 和 DSP 等寄存器密集型的设计。而在功耗方面,与同样密度的 FPGA 相比,CPLD 的待机功耗更低。因此,CPLD 特别适合那些要求低功耗和低温度的电池供电应用,如移动设备等。1.6 Xilinx 公司的 CPLD-XC9500 系列 1.6 Xil
14、inx 公司的 CPLD-XC9500 系列 XC9500 系列是 Xilinx 公司生产的 CPLD。图 6 给出了 XC9536 和 XC9572 的外形图。(a)器件正面 (b)器件反面 图 6 XC9572 及 XC9536 的外形 上述的封装形式称为 PLCC(Plastic Leaded Chip Carrier)封装,该芯片的插座及芯片插入后的情形如图 7 所示。插座管脚的间距为 0.1 英寸(2.54mm),与普通的 IC 管脚的间距相同。图 6 的(a)给出了 44 脚和 84 脚的插座,其外形大小分别约为 23mm23mm 和 37mm37mm。(a)插座的底部 (b)放入
15、插座的芯片 图 7 XC9572 及 XC9536 的插座 图 8 为 PLCC 封装形式的 44 及 84 脚的插座底视图。(a)44 脚 PLCC 插座底视图 (b)84 脚 PLCC 插座底视图 图 8 PLCC 封装插座底视图 对芯片的起拔需要专用的工具,图 9 示出了起拔工具和使用方法。(a)起拔工具 (b)起拔工具的用法 图 9 XC9572 及 XC9536 的起拔工具 1.7 结语 1.7 结语 本讲叙述了数字电路和系统的两种不同设计过程,介绍了用可编程逻辑器件实现数字系统的优点,简述了 HDL 在逻辑设计中的作用。HDL 有多种,本讲座采用 Verilog-HDL,它类似于
16、C 语言的语法体系,库文件丰富,十分便于具有一些 C 语言基础的人学习。Xilinx 公司的 CPLD 器件有 XC9500系列,本文介绍了该芯片的外形及管脚分布,为后续的学习建立了一个感性认识。第 2 讲 构筑 Verilog-HDL 设计所需要的环境 2.1 进行 Verilog-HDL 设计需要什么样的环境?2.2 软件的获取与安装 2.3 下载电缆与目标板 2.4 目标板 2.5 结语 2.1 进行 Verilog-HDL 设计需要什么样的环境?2.1 进行 Verilog-HDL 设计需要什么样的环境?2.1.1 硬件环境 要进行 Verilog-HDL 设计,首要的环境就是硬件环境
17、。图 1 给出了进行 Verilog-HDL 设计所需的硬件环境。在仿真阶段,可以只用 PC 机进行,对 PC 机没有什么特殊的要求,只要能安装和运行所需的软件即可;而在将目标代码下载到芯片时,就需要有下载电缆和目标板。下载电缆的售价通常在 200 元左右,目标板可以自己制作或购买实验板等。图 1 Verilog-HDL 设计所需的硬件环境 2.1.2 软件环境 在此介绍 Xiling 公司的软件。(1)仿真软件:Xilinx 公司的 ISE WebPACK ModelSim XE 仿真软件是一个功能强大的 Verilog-HDL 开发设计平台。(2)编译软件:Xilinx 公司提供了 Web
18、PACK Project Navigator,用该软件可以将仿真结果编译成目标代码,并下载到芯片中去。上述软件可以运行在 W98 至 Win200XP 的环境下,图 2 给出了仿真软件和编译软件的图标。图 2 Verilog-HDL 设计所需的软件 2.2 软件的获取与安装 2.2 软件的获取与安装 通过以下方法,可以免费得到 Verilog-HDL 设计所需的软件。1)访问以下网站,可以与国内的分销商取得联系,获得免费的 ISE WebPACK CD 光盘。http:/www.xilinx- 2)从 Xilinx 公司的网站下载该软件。Xilinx 公司的网址是 http:/www.xili
19、nx- 3 为 Xilinx 公司主页的部分画面。图 3 Xilinx 主页的部分画面 计算机所联的网如果是宽带网,则下载不会花很长时间。所下载软件中的仿真软件 ISE WebPACK ModelSim XE,需要通过网上取得 Xilinx 的许可证文件 license.dat,才可以正常运行。注意:为取得许可证文件 license.dat,计算机必须有网卡,以便得到识别。如果在使用计算机过程中,由于某种原因更换了网卡,就需要重新申请许可证文件 license.dat 件并安装。2.3 下载电缆与目标板 2.3 下载电缆与目标板 Xilinx 公司的下载电缆中的接口电路是公开的。其结构十分简单
20、,自己完全可以动手制做,成本只需十几元。如果条件不备,购买一个则需要 150-200 元。图 4 给出了下载电缆电路图,图 4 为笔者自制的下载电缆。图 4 下载电缆电路图 (a)下载电缆内部 (b)完成后的下载电缆 图 5 自制的下载电缆 电路中有两片 74HC125,芯片的供电电源来自图 6.3 中的 VDD。电路的供电来自目标板,由 JTAG HEADER 的 VCC 引入。连接打印机一侧的电缆可适当长些,本例的长度为 60cm。连接目标板一侧的电缆不可太长,否则将出现下载错误,本例的长度为 25cm。另外,二极管要使用肖特基管。2.4 目标板 2.4 目标板 如果仅是学习 Verilo
21、g-HDL,那么只要用仿真软件进行仿真,就可以在一定程度上理解 CPLD 设计了。但是,如果希望在硬件上实现所设计的功能,则必须有一个目标板。图 6 所示的目标板是笔者设计的一种多功能板,用于学习和掌握 CPLD 设计。图 6 用于 CPLD 开发的目标板 图 7 所示为目标板的功能框图,用该板可实现计数器、可编程单脉冲发生器、脉冲宽度测量、逻辑测试、串行数据发生器等功能。该目标板的面积不大,只有 9.5*6 cm2,PCB 板的成本不足 10元(如读者需要,笔者可与加工长家疏通,只按 0.16/cm2 元以下收取成本费)。其它元件的成本也不高,较适合于 Verilog-HDL 学习的初学者。
22、有该目标板的一些简单应用,可参看笔者的拙著(北航出版社)。Xilinx 的 XC9500 系列也很容易买到,在北京中发电子大厦 XC9572(44 脚)的零售价格为 22元/只,XC9572(84 脚)的零售价格为 25 元/只。图 7 目标板的功能框图 2.5 结语 2.5 结语 要进行 Verilog-HDL 的学习,必须具备软件和硬件的环境。软件环境可以免费得到;硬件环境需要计算机、下载电缆和目标板。下载电缆可以自制,目标板也不需要投入多的资金就可以得到。如果仅仅是学习 Verilog-HDL,没有下载电缆和目标板也是可以的,但是,要将仿真的结果用硬件实现的话,就需要下载电缆和目标板。第
23、 3 讲 Verilog-HDL 的基本概念 3.1 与门的描述 3.2 与非门的描述 3.3 非门的描述 3.4 或门的描述 3.5 或非门的描述 3.6 缓冲器的描述 3.7 逻辑仿真与测试模块 3.1 与门的描述 3.1 与门的描述 让我们通过最简单的例子来认识一下 Verilog-HDL 的基本用法。(1)模块的定义 用 Verilog-HDL 做数字电路描述,一开始所要做的就是模块(module)定义。所谓模块可以理解为是Verilog-HDL的基本描述单位。我们以图1为例来说明。这是一个二与门,设其模块名为AND_G2,输入为A和B,输出为F。图 1 二与门模块定义 (2)模块 模
24、块的结构如图 2 所示,module 与 endmodule 总是成对出现的。此外,还有端口参数定义、寄存器定义、线网定义和行为功能调用及定义等。图 2 模块的结构 我们用 Verilog-HDL 来描述图 2,可以有如下两种描述方法。例 1 二与门逻辑电路的描述 /*AND_G2*/modulemodule AND_G2(A,B,F);inputinput A,B;/输入端口定义 output output F;/输出端口定义 andand U1(F,A,B);endmoduleendmodule 或 /*AND_G2*/modulemodule AND_G2(A,B,F);inputinp
25、ut A,B;/输入端口定义 outputoutput F;/输出端口定义 assignassign F=A&B;endmoduleendmodule 例 1 中的第一个例子称为门级描述方式(1)或结构级的建模,第二个例子称为数据流描述方式或数据流级的建模。对一个逻辑电路,用硬件描述语言对其进行描述,或者说对其用一个模型来说明,这个过程称为建模。(3)门级描述方式 例 2 示出了一个门级描述方式的 Verilog-HDL 结构,这是一个二与门逻辑的实例。例 2 门级描述方式 语句 1:/*AND_G2*/注释 语句 2:modulemodule AND_G2(A,B,F);模块名 端口参数 语
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VerilogHDLCPLD FPGA
限制150内