您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 电子设计/PCB > VerilogHDLCPLD-FPGA
Verilog-HDL与CPLD/FPGA设计应用2005年11月第1讲Verilog-HDL与CPLD/FPGA设计1.1从模拟世界到数字世界1.2数字电路的不同设计过程1.3用HDL描述数字电路1.4HDL有几种?1.5硬件实现的承担者---CPLD/FPGA1.6Xilinx公司的CPLD--XC9500系列1.7结语1.1从模拟世界到数字世界在70年代初期,家用电子产品末过于晶体管收音机、电唱机、扩大器了。那时,笔者所在的一个小城市销售3管晶体管收音机。她一上市就优先供应农村,为的是让中央人民广播电台的声音直达有线广播不能到达的山区。开始时城市人是较难得到这样的家电产品的。笔者当时常出差于上海,为了自己能装一台梦寐以求的收音机,节省每天的2角钱出差补助,吃的是阳春面,用节省的钱去买晶体管等元器件。当时的元件市场可以说是一片模拟世界。到了1974年前后,笔者所在的电信单位搞技术革新,用晶体管代替继电器,研制晶体管交换机。当时我对豆粒大的晶体管能代替形如打火机大的继电器而震撼不已,加之没有震动声音、耗电低等优点,更是使我着迷。当时,看到老技术员用晶体管搭建门电路,实现与或等功能。业余时间自己也自费购买元件,搭建一些功能电路。到了1975年以后,中小规模集成电路逐步上市。之后的几年,在大学里也开始讲授集成电路的课程。1979年以后,日本的荧光显示式计算器开始在中国市场出现;1983年前后,微处理器的学习形成高潮。1986年,在数字技术的进步与微处理器技术的影响下,笔者开始动手制作Z80单片机。在不用任何调试设备的情况下,自己编写机器代码,组装编程器,……直到制作出第一台昀简单的单板机。第一次感受数字技术和微处理器,使笔者兴奋不已。近几年来,随着IT业的高速发展,整个电子世界都朝着数字化、小型化、多功能化、低耗电的方向发展,学习数字电路的条件与过去相比也发生了巨大的变化。1.2数字电路的不同设计过程随着大规模IC的出现和成本的急剧降低,随着软件技术及各方面技术的进步,数字电路的设计方法与过程发生了巨大的变化,用传统的思维方式和设计方法已经不能适应时代的需要。作为一个数字电路设计的工程师,仅有过去的传统设计方法就无法适应时代需要。要跟上时代的需要,就必须学会使用硬件描述语言HDL(HardwareDescriptionLanguage)。HDL可以描述数字电路或系统,还可以通过仿真等手段来验证设计的正确性。利用仿真的手段,可以大大减小设计失败的概率,缩短研发周期。图1给出了数字电路或系统的不同设计过程。图1(a)是传统的设计过程,在这种过程中采用分立的功能逻辑电路,设计过程大致可分为4个步骤。在这种设计过程中,进行了功能设计后,便用分立元件搭建电路。这种情况下,由于是靠经验和许多主观因素的影响,故很难保证电路的正确性。当系统较为复杂时,需要在搭建电路之前做一些局部性的实验,以降低失败的概率。电路搭建完毕后,便是硬件系统调试,这是一个较为艰苦的过程。在这个过程中,往往会发现在设计阶段犯下了许多不该犯的错误,甚至是致命性的错误。在经过反复的系统调试、修改错误后,才终于能形成一个满足设计的系统。(a)传统设计过程(b)采用HDL的设计过程图1数字电路的不同设计过程图1(b)是采用HDL的设计过程,在这种过程中,硬件的实现用可编程逻辑器件。仅从过程上看,它似乎需要更多的步骤,其实如STEP5等步骤仅是一项简单的操作,系统实现的成功率很高。成功率高的原因在于:在STEP4之前,是对逻辑电路或系统进行逻辑描述和仿真,这些都是在计算机上进行的,其特点是有很大的可修改性,又不会发生硬件上的成本投入。在这个阶段得到满意的仿真结果后,便可设计硬件电路。而这时的硬件设计可以说已经有较大的把握,所实现的系统也将容易调试。除此之外,硬件也容易设计成兼容性较好的系统,使一个硬件电路在写入不同的HDL目标代码后可有相应的功能,有些方面就像一个CPU在不同的软件支持下表现出不同的功能一样,这也是采用可编程逻辑器件的很大优越之处。1.3用HDL描述数字电路现在,让我们通过一个简单的例子来看两种设计过程。一个如图2所示的电路。图2一个简单的逻辑电路其逻辑表达式为F=/A*(B+C)(1)就是这样一个简单的逻辑电路,如果用传统的硬件电路实现方法,要用到74LS04、74LS08和74LS32三个功能集成电路,做如图3的连接。从图中可以看出,仅仅为了实现一个简单的逻辑关系,就需要有3个集成电路,而且许多个门(此例中有11个)白白被浪费掉。图3传统的逻辑电路的硬件实现方法但是,如果用可编程逻辑器件来实现的话,只要用一片集成电路就可以实现了,例如可以用Xilinx公司的可编程逻辑器件XC9572,如图4所示。用可编程逻辑器件实现式(1)所示的逻辑功能时,只要将逻辑表达式按规定的语法进行描述,经过仿真、编译等过程,昀后下载到可编程逻辑器件中,就可以完成所设计的逻辑功能。逻辑电路的设计越复杂,可编程逻辑器件就越能显示出其优越性。不仅如此,有许多逻辑功能用可编程逻辑器件可以很容易地实现,而要用普通的功能特定的集成电路就很难实现。图4Xilinx的可编程逻辑器件XC9572图5Xilinx的可编程逻辑器件XC9572对于式(1)所示的逻辑功能,用Verilog-HDL可描述如下:moduleAND_G2(A,B,C,F);inputA,B,C;outputF;assignF=~A&(B|C);endmodule将上述的Verilog-HDL经过仿真确认逻辑关系正确后,就可以编译、下载到可编程逻辑器件中。这种情况下,一片可编程逻辑器件就具有了图3所示的3片集成电路所构建的电路功能,如图5所示。图中,逻辑门之间的连线是在芯片内部自动完成的。由此可见,它与传统的逻辑电路设计相比,设计过程很简单。1.4HDL有几种?在计算机软件方面,程序设计语言有C、VC、VB等语言。要设计一个软件系统,或许用这些语言中的某一种都可以实现,但是各自又有其特点。HDL也是一样,有若干种语言,昀有代表性的是Verilog-HDL、VHDL(VeryhighspeedintegratedcircuitHardwareDescriptionLanguage)和ABEL-HDL等。VHDL在美国较为流行,而Verilog-HDL在日本则为主流。VHDL是昀早标准化的HDL,语法丰富且严谨。Verilog-HDL具有类似于C语言的语法体系,库文件丰富,十分便于具有一些C语言基础的人学习。本讲座采用Verilog-HDL来描述数字系统。1.5硬件实现的承担者---CPLD/FPGA用HDL描述的功能,昀终要由硬件来实现,就好象计算机软件的功能要在计算机硬件这个平台上实现是一样的。更形象地说,计算机的软件代码要装到计算机着个硬件中去,HDL的目标代码也需要装到一个硬件------可编程逻辑器件中去,可编程逻辑器件有CPLD(ComplexProgrammableLogicDevice)和FPGA(FieldProgrammableGateArray)之分。CPLD与FPGA都是大规模集成电路,两者在结构上完全不同,但它们都具有可编程的特性,对器件的编程是通过称为JTAG的接口来实现的。对CPLD的编程可多次进行,如Xilinx公司的XC9500系列就可以多次编程达10,000次以上。CPLD是在PLD(ProgrammableLogicDevice)的基础上发展起来的。可编程逻辑器件端子间的关系用语言来描述,并通过计算机将目标代码写入器件。PLD的出现,省去了用通用逻辑IC(如74系列)来搭建电路,使得逻辑设计的自由度大大提高。CPLD是复杂化了的PLD,完整地讲应该称为复杂可编程逻辑器件。在逻辑门的数量方面,CPLD与FPGA有很大的不同,CPLD的逻辑门有几百到1万个,而FPGA有1万至25万个逻辑门。Xilinx公司的XC9536,有36个宏单元,800个逻辑门;XC95108有108个宏单元,2400个逻辑门。由于结构上的原因,CPLD在大型复杂设计的情况下,其运行速度可以预测,也很可靠,且修改设计也很容易,软件编译速度也快。在应用方面,CPLD更适合于逻辑密集型的应用,如状态机和地址解码器逻辑等。而FPGA则更适合于CPU和DSP等寄存器密集型的设计。而在功耗方面,与同样密度的FPGA相比,CPLD的待机功耗更低。因此,CPLD特别适合那些要求低功耗和低温度的电池供电应用,如移动设备等。1.6Xilinx公司的CPLD--XC9500系列XC9500系列是Xilinx公司生产的CPLD。图6给出了XC9536和XC9572的外形图。(a)器件正面(b)器件反面图6XC9572及XC9536的外形上述的封装形式称为PLCC(PlasticLeadedChipCarrier)封装,该芯片的插座及芯片插入后的情形如图7所示。插座管脚的间距为0.1英寸(2.54mm),与普通的IC管脚的间距相同。图6的(a)给出了44脚和84脚的插座,其外形大小分别约为23mm×23mm和37mm×37mm。(a)插座的底部(b)放入插座的芯片图7XC9572及XC9536的插座图8为PLCC封装形式的44及84脚的插座底视图。(a)44脚PLCC插座底视图(b)84脚PLCC插座底视图图8PLCC封装插座底视图对芯片的起拔需要专用的工具,图9示出了起拔工具和使用方法。(a)起拔工具(b)起拔工具的用法图9XC9572及XC9536的起拔工具1.7结语本讲叙述了数字电路和系统的两种不同设计过程,介绍了用可编程逻辑器件实现数字系统的优点,简述了HDL在逻辑设计中的作用。HDL有多种,本讲座采用Verilog-HDL,它类似于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.1硬件环境要进行Verilog-HDL设计,首要的环境就是硬件环境。图1给出了进行Verilog-HDL设计所需的硬件环境。在仿真阶段,可以只用PC机进行,对PC机没有什么特殊的要求,只要能安装和运行所需的软件即可;而在将目标代码下载到芯片时,就需要有下载电缆和目标板。下载电缆的售价通常在200元左右,目标板可以自己制作或购买实验板等。图1Verilog-HDL设计所需的硬件环境2.1.2软件环境在此介绍Xiling公司的软件。(1)仿真软件:Xilinx公司的ISEWebPACKModelSimXE仿真软件是一个功能强大的Verilog-HDL开发设计平台。(2)编译软件:Xilinx公司提供了WebPACKProjectNavigator,用该软件可以将仿真结果编译成目标代码,并下载到芯片中去。上述软件可以运行在W98至Win200XP的环境下,图2给出了仿真软件和编译软件的图标。图2Verilog-HDL设计所需的软件2.2软件的获取与安装通过以下方法,可以免费得到Verilog-HDL设计所需的软件。1)访问以下网站,可以与国内的分销商取得联系,获得免费的ISEWebPACKCD光盘。)从Xilinx公司的网站下载该软件。Xilinx公司的网址是。图3为Xilinx公司主页的部分画面。图3Xilinx主页的部分画面计算机所联的网如果是宽带网,则下载不会花很长时间。所下载软件中的仿真软件ISEWebPACKModelSimXE,需要通过网上取得Xilinx的许可证文件license.dat,才可以正常运行。注意:
本文标题:VerilogHDLCPLD-FPGA
链接地址:https://www.777doc.com/doc-50846 .html