IT十八般武艺之嵌入式电子设计软件之我见
IT产业如今在中国发展得如火如荼,IT专业年年扩招,人数越来越多。如今的IT相关的本科专业包括电子信息工程、通信工程、电子信息与技术、自动化与控制专业、计算机专业、机械与电子工程、信息安全工程、电气自动化专业等等。
但我个人觉得其中IT的核心专业当属电子信息工程和通信工程两个专业,因为这两个专业的学习内容真正涉及了IT——InformationTechnology,以电路原理、模拟电路(低频和高频两部分)、数字电路、信号与系统、数字信号处理、计算机硬件基础、随机信号分析、通信原理为基础,向上学习了单片机技术、DSP技术、EDA技术、嵌入式操作系统、数字图像处理、交换技术、现代通信系统、微波技术基础、射频电路设计、传感器技术、医学电子和集成电路IC技术等等。而我,就是一个电子信息工程专业的学生,现在大四了,即将毕业成为IT业真正的一员,我为此而感到无比的光荣和自豪。
回顾自己这四年的专业学习,感由心生。我们专业如上所说,课程多而难,非有志者,我觉得不大可能把它们都学好。而且真是一门实践性很强的工程学科,实验和经验与理论知识同样重要,有些时候经验甚至胜于理论,常见的就是模拟电路这门课的学习了。如果你照顾学习理论,恐怕学完了模拟电路这门课你连最基础的晶体管长啥模样都还不清楚吧?更不用说怎么用了,O(∩_∩)O~呵呵!另外,在很多人看来,就凭本科四年的学习,能够掌握这些课程的部分内容已经是相当不错的了,如果全部都掌握了,那可真算是全才、奇才了!
别的,我暂且不说,在这里我先说一下我大学这四年学习我们专业所遇到的、用到的和掌握的专业软件吧!要知道,毕竟现在已经不再是X86时代了,Intel的酷睿2双核甚至4核处理器加上2GB的DDR2-800内存条和独立显卡都早已经平民化了,大众化了,整个IT产业作为信息产业的核心,在产品设计和制作方面也早已进入了信息化、智能化时代,学习电子的,决不能不掌握计算机这门技术,就像电工必须懂得如何使用电罗铁一样。而运行于Windows或者Linux平台上的电子设计软件也早已成为电子工程师的左膀右臂。因而,有必要在此介绍一下这些电子IT产业发展的幕后英雄们----电子设计EDA工具软件。
一、电路基础仿真与设计软件
①Pispice9.2
基于Spice仿真模型,是业内公认的模拟器件仿真工具,具有仿真效率高,与实际结果80%以上的接近。但是工具箱众多,操作略显复杂。
②Mutisum10.0(也叫EWbench)
属于美国国家仪器公司(NI)。整个软件实现基于虚拟仪器,而且仪器种类齐全,所有的仿真结果均以现实实验室中的仪器界面呈现,感觉十分自然,操作也与设计仪器操作相当,是一个相当不错的工具,所见即所得,是学习模拟电路的软件首选,在它最新的10.0版本中还加入了PCB设计和8位单片机仿真功能。
③protel99SE
电路设计的入门级工具软件,在中国大部分硬件工程师对它绝对都不陌生,整个器件短小精干,完整安装所需硬盘空间不到300M,具有1-2层PCB板的设计和仿真能力。适于作为硬件电路设计EDA软件的入门学习用。
④AltiumDesigner2009
AltiumDesigner软件为protel软件的升级版本,先后经历了2004,2006到现在的2009,软件功能越来越强大了,现在此软件还具有设计FPGA和仿真C语言和HDL语言的能力,但是它也变得比protel更加的庞大了,安装文件近1.5个G,完整安装所占磁盘空间近3G。运行时所占系统资源也不少,内存至少在200M以上,算的是是个庞大大物了。
不过,AltiumDesigner2009虽然经历了这么多次升级,它现在依然不能胜任多层高速PCB的设计,说到底也就是它的高速信号完整性分析仿真能力太弱了。所以,要设计多层高速PCB的同志们还是应当选择专业一些的工具,如Mentor公司和Cadence公司的软件。
⑤CadenceAllegro16.2
此软件为Cadence公司的最新高速PCB设计软件,我是在上学期学习《高速电路分析与设计》这门课是略有接触,仅学习了它的原理图绘制,和PCB布局布线,它还有许多其他的强大功能,十分的复杂。由于Allegro是在Linux下开发的,它的许多操作与LINUX相近,对于习惯了Windows的人来说,刚开始都会感觉有些不适应。不过,没有关系,慢慢的就会适应的,毕竟它在高速电路设计方面是够专业、够强大的,在国内大的公司做硬件设计几乎无一例外的采用了它,学好了它就业不愁呀,呵呵!。
最后,用Allegro进行高速电路设计大量的工作集中于布局布线规则的设置上。所以,学习Allegro耐心是必不可少的。
⑥Proteus7.4(现在最新版本为7.6)
Proteus软件也是基于Spice模型的一类及原理图设计,系统级电路仿真和PCB设计制作为主的EDA工具。它的强大之处为可以对单片机及其外围电路进行软件模拟仿真。也就是说它可以在没有任何硬件成本投资的情况下先对整个数字模拟电路系统进行硬件评估。这种观念无疑是创新和实用的。
目前Proteus所支持的软件模拟仿真MCU包括大多数51单片机和LPC的ARM7系列单片机。从自己使用的感受来讲,Protus确实让我耳目一新。不过,希望它能够继续发展,支持更多的MCU和外围数字模拟器件的软件仿真。期待。。。。。。
二、MCU设计软件
①Keil7.6(即uVision2)
这个软件是我接触的最早的单片机设计软件,德国Keil公司的得意之作,支持90%以上的51内核单片机,集51汇编编译器(A51),C语言编译器(C5)以及51连接器和调试器于一身,可以进行51的汇编语言,C语言程序编写和调试,也可以进行软件仿真,使用界面非常友好,操作简单,十分实用。实为学习MCU的入门首选和必备。
②KeiluVision3
uVision3是keil的设计产品,增加了对32为MCU的支持,主要针对ARM7/ARM9/Cortex等系列ARM芯片的汇编及C语言编程,调试。使用流程和操作界面与uV2保持一致,是现在许多公司开发ARM芯片的首选。
③ADS1.2(升级版本为CodeWarrior4.x)
ADS1.2为摩托罗拉公司的软件,现在它的半导体部已经独立出来,成为飞思卡尔(freescale)半导体公司,ADS1.2为ARM芯片的开发集成环境,大三的时候做课程设计时有用过感觉不错。只是它的操作和软件设置稍比keil要复杂些。至于它的升级版本CodeWarrior4.x则为freescale8位/16位/32位单片机的集成开发环境,我在学习《freescale16位单片机技术》这门课很去年电子竞赛培训师时有接触过,感觉也还不错!
④IAR
至于IAR,据说是目前最优秀的MCU开发工具,具有功能强大,编译代码效率高,支持MCU种类多等特点,是学习NEC78xx系列单片机和TI16位单片机MSP430的首选软件设计和编译工具,我只是短暂的学习过一点,原因是使用网上申请的MAX2000单片机。感觉是很与众不同,只是感觉它的资料比较少,软件也不易获得,感兴趣的朋友也可以去试用一下。
三、DSP设计软件
至于DSP的学习,我仅限于上课时老师所讲所以中用过TI的DSP——STM54XX,其编程设计软件为CCS3.1,最新版本为CCS3.3.至于ADI和Atmel的DSP我就都没有用过,据说还是不错的!
四、FPGA设计软件
①LiberoIDE8.3(最新版本为LIbero8.6)
LiberoIDE为ACTELFPGA的设计软件。ACTEL的FPGA是基于Flash的,掉电配置信息部丢失,上电即可运行,具有高可靠性和低成本,高安全性,低功耗等特点广泛应用于航天领域,民用领域较少见,其FPGA内部集成有模拟数字IP模块和8051核,芯片性能还是不错的!但是它的这个LiberoIDE集成开发环境确实不够好用,至少与Altera的QuartusII和Xilinx的ISE相比,我个人是这样认为的,因为09年初的时候曾因为参加ZLG举办的ACTELFPGA设计大赛而使用它近4个月,对它也是有所了解的。
②QuartusII4.2/5.1/6.0/8.0/9.0
对于QuartusII这个软件,我有说不出的亲切感因为它是我使用最多的FPGA软件了,这个软件的操作界面十分友好,集成了包括SOPCBuilder、DSPBulilder、MegaCore、ProgrammerandSignalTapII等软件在内的众多AlteraFPGA开发设计工具。其中SOPCBuilder为它的嵌入式系统硬件集成和设计工具,可以完成NIOSII32bit软核与外设IP或用户模块的集成;DSPBuilder为AlteraFPGA的DSP设计工具,需要安装对应的Matlab版本(比如最新的QuartusII9.0对应的Matlab软件版本为Matlab2008a或更高),其实质为在Matlab的Simulink工具中加入了Altera的FPGADSP设计工具组件,从而实现由浮点数工具来设计定点数的HDL硬件设计;MegaCore为AlteraFPGA的IP核例化工具,可以完成各种IP核的参数设置和例化工作;而SignalTapII则是Altera的基于JTAG和FPGA内核的低成本嵌入式逻辑分析仪,可以观察FPGA内部的和外部的任意信号(但是占用FPGA的片上RAM资源,RAM使用多少与观察信号数量和存储深度成正比)非常实用,是我平时解决AlteraFPGA设计调试问题的必备工具。
③NIOSIIIDE6.0/9.0
NIOSIIIDE是AlteraFPGA的嵌入式软核32bit-NIOSII的软件集成开发环境,采用流行的gcc编译器,支持NIOS的汇编、C和C++编译,链接,下载及调试,是学习基于AlteraFPGA嵌入式系统开发的必备软件。整个软件对工程文件的管理清晰明了,操作十分容易。
④ISE8.2i/9.1/10.x/11.3
不用多说的是现在XilinxFPGA在市场上所占的绝对优势。至于它的ISE开发工具也是业内出了名的优秀EDA软件,它的设计效率极高,操作流程简单。ISE也和QuartusII一样集成了众多的Xilinx其自己FPGA开发所需的工具,包括IP生成工具CoreGenerator、时序分析工具TimingAnalyzer、设计约束工具ConstraintsEditor、管脚分配和时序约束工具FloorplanEditorandPACE、智能分析工具SmartXplorer(LinuxOnly)、映射和布局布线工具MAPandPAR、XilinxFPGA综合工具XST、ISE集成仿真工具ISESimulator(ISIM)、Xilinx在线调试嵌入式逻辑分析仪ChipScopePro(相对于Altera的SignalTapII)以及XILINX工程导航器ProjectNavigator等等。
ISE功能强大,是实现XilinxFPGA逻辑功能设计的必备工具。ISE带给使用者的不只是强大还有更多的是创新的概念。
⑤EDK10.x/11.3
EDK为Xilinx的嵌入式系统设计和开发提供了强有力的软件保障。它包括XPS和SDK两部分,分别对应于XilinxFPGA嵌入式系统设计中的硬件系统集成和软件设计。
目前,Xilinx共有3个自己的嵌入式内核——8bit-PicoBlaze、32bit-MicroBlaze、和32bit-PowerPC405/440。前两种为嵌入式软核,后者为嵌入式硬核。在XPS中可以以图形化的方式直观的完成MicroBlaze和PowerPC内核的硬件设计和简单的应用工程软件设计(包括软件编辑、编译、链接、下载和调试)。包括可裁剪内核的配置和其与众多外设IP的连接,并且XPS工具还可以工具系统集成,自动生成对应外设的驱动函数和系统的板级支撑包BSP,使用起来时相当的方便。
SDK是XilinxFPGA嵌入式系统软件设计的高级工具,支持带操作系统的软件编辑,编译,链接,下载和调试。目前SDK支持的操作系统有Standalone、Xilkernel、Linux2.6和第三方提供的Vxworks。另外,SDK还自动检测并更新XSP中的硬件更改,从而使得SDK成为Xilinx嵌入式系统软件设计的理想解决方案。
⑥SystemGenerator10.x/11.3
SystemGenerator(简称Sygen)和Altera的DSPBuilder一样,都是基于Matlab和FPGA设计软件,运用浮点数工具来设计定点数的FPGA硬件。在使用Sygen之前必须安装ISE和其对应版本的Matlab软件(比如ISE10.x支持的Matlab版本为Matlab2007a和Matlab2007b,而ISE11.x则支持Matlab2008a以上的版本)。在Sysgen软件中可以调用Simulink工具中集成的XilinxDSP工具箱中的模块以图形化的方式实现FPGA的DSP设计。Sysgen工具会自动生成相应的ISE工程、HDL语言文件和Modelsim仿真文件。注意:每一个Sysgen设计模块model中必须包括一个XilinxGenerator图标,用以设置工程属性和调用ISE工具生成设计网表文件(ngc)等。
⑦ModelsimSE6.1/6.5
Modelsim是Mentor公司推出的功能强大的图形化仿真工具,是目前业内公认的最优秀的EDA仿真工具。它支持多种FPGA器件(需要安装相应的仿真库,因为其自带的只有少数几个常用的仿真库),VHDL与VerilogHDL混合仿真,以及多种输入方式和操作模式,可以以模拟量的形式观察数字信号,十分好用,且功能强大,推荐大家使用。
⑧Synplify/SynplifyPro8.6/9.6.2
Synplify工具为业内最专业的EDA综合工具,支持众多厂商的FPGA和CPLD器件及多种混合语言输入,可以生成对应的网表文件和查看RTL图及逻辑资源使用情况,从我实践使用的体会来说与网上人们所说的其综合效率高的特点并无不一致,可以在综合室进行多种优化,它的软件界面也做得相当好,非常的专业和实用。
五、系统级算法设计软件
①Matlab6.5/2007a/2008a(最新版本最2009b(下载有)/2010a(据说而已))
Matlab的大名相信每一个工科学生都不会陌生,它是基于矩阵运算的浮点数计算工具,目前它强大的数学计算能力已被广泛的运用于社会生产工作的各个领域、各个学科和工程领域。全世界使用Matlab的工程师数以万计。这一点,你只需要看看它的Simulink工具箱就知道了。
②Labview8.x(最新版本为Labview9.0)
Labview是NI公司的主力软件之一,它基于图形化编程语言——G语言实现,开创一种全新的电子设计和测量方法。使得现在的电子工程师们得以从发杂的编程语言中解脱出来,能够系统级上以图形化直观的方式,用所见即所得的观点进行工程设计和管理。其基于Labview实现的虚拟仪器,利用强大的PC功能实现数据采集和测量,以低成本和灵活性取代传统测量仪器,我觉得这势必会成为未来电子测量和仪器仪表发展的主流趋势。所以,Labview是非常值得我们学习的一个功能强大的软件。
③PSoCDesigner5.0
这是Cypress(中文赛普拉斯)公司的PSoC开发环境。所谓PSoC即ProgrammableSystemonChip,可编程片上系统。PSoC的概念与20世界90年代提出,随后即成为微电子技术发展的热点,他集成了包括MCU核在内的模拟和数字混合系统。目前,Cypress公司的PSoC3系列芯片内置M8C内核MCU,PSoC5系列芯片内置Cortex32bitARMMCU,其丰富的可编程模拟数字外设包括ADC,PGA,滤波器、比较器、DAC、PWM、定时器timer、UART、I2C、SPI,USB2.0控制器,无线收发器等。
而这里所提到的PSoCDesigner5.0正是Cypress公司推出的PSoC最新设计软件,可以在系统级上以图形化的方式完成整个可编程系统的配置、构建和连接。并为相应的外设模块提供驱动和API,方便系统软件的编写和设计。虽然现在只是初接触,但是,它给我留下了极为深刻的影响。
以上就是我这四年电子信息工程专业学习中所遇到过和学习过的电子设计EDA软件,以及我对他们的一些个人评价,希望能对大家有所帮助。另外,由于时间仓促和精力有限,一些软件并为深入学习,所以难免有评价不妥之处,因而,还望大家见谅。