当你翻开任何智能电子设备(从旧式的电视遥控器到全球定位体系),会发现简直一切的设备都至少选用了一个微操控器(MCU),许多设备里还会有多个微操控器。MCU往往被用于专用的终端产品或设备中,它可以很好地完结特别任务。另一方面,PC的大脑,即微处理器被规划用于完结许多通用的功用。微操控器可用于下降本钱,加固工业和主动化运用,将其嵌入FPGA中时,还可以经过从头编程敏捷改动功用。这种灵敏性使得单个设备可运用于接口规范不同的多个商场。
在挑选微操控器时应考虑哪些要素?本文将首要讨论选用FPGA的嵌入式运用。不过,挑选任何微操控器的规范本质上都是相同的。规划者需求考虑下列要素:终端产品的本钱是多少?完结规划以及存储操控程序需求多少内存?对输入输出的要求?对寄存器的要求?怎么与其它器材集成?
传统的MCU已作为一种非定制的特别运用规范产品(ASSP)上市,每个供给商都供给了不同的功用以完结差异化并投合商场的各种需求。将FPGA与MCU IP结合可供给比传统MCU愈加灵敏的硬件渠道,并有助于完结前面列出的各项考虑要素。
尽管FPGA比单片MCU贵重,但其附加的功用(如嵌入式DSP、存储块以及灵敏的I/O环)可以抵消多个器材的本钱;FPGA供给了愈加灵敏的存储结构,一旦数据和指令需求改动,则用户可以调整硬件规划来与之匹配;现代体系中有各式各样的信号规范和接口协议,因而对输入输出的要求十分严厉,具有可编程片上缓冲器的FPGA在这个范畴具有共同优势。例如,Lattice MachXO器材可在各种电平下支撑单端LVCMOS/LVTTL和差分LVDS/LVPECL。就寄存器和暂存存储器资源而言,面向FPGA的MCU IP核所供给的灵敏性可改动装备以满意运用的需求;FPGA是处理器材集成问题的抱负计划。可编程查找表(LUT)、寄存器和存储器供给了额定的集成功用,一起灵敏的可编程I/O和专用接口(如双数据速率(DDR))使其与多个器材的握手愈加简略。
关于许多微操控器运用来说,FPGA是十分抱负的器材,由于其本钱相对低价,包括很多的嵌入式存储块,具有满意的I/O以应对简直一切操控器功用,具有丰厚的寄存器,并支撑包括LVCMOS、SSTL及差分LVDS信号传输在内的许多I/O规范。
依据闪存的非易失性FPGA
FPGA的制作工艺有多种,包括一次性编程(反熔丝)、易失性(依据SRAM),以及运用依据EE或闪存的非易失性工艺。
表1列出了器材密度、封装类型、可用I/O数、嵌入式和分布式存储器,以及PLL和嵌入式DSP块。例如,依据闪存的FPGA选用130nm和90nm工艺。广泛的挑选规模使得找出满意特别微操控器运用需求的器材更简略一些。
表1:依据闪存的非易失性FPGA产品
微操控器运用实例
FPGA的灵敏性使其适用于许多微操控器运用,以及包括微操控器的更杂乱的规划。
图1:马达操控运用
像家用电子设备、工业机器人以及正在增加的新式轿车运用(从GPS、引擎操控到制动体系)这些产品都包括图1、2和3中所示的微操控器。
图2:导航体系运用
图3:片上体系运用
在马达操控运用中,体系发送和接纳来自微操控器的信息,以调整步进电机的速度和方向。来自体系的输入奉告微操控器增大或减小马达和操控器的速度,微操控器再顺次奉告体系马达的实时速度和方向。
导航体系选用微操控器调整体系的图画显现器,依据微操控器的输入进步或下降分辨率。
图3中的规划展现了一个片上体系的完结,包括微操控器、外围总线和几种外设功用,以及用于显现寄存器文档、暂存存储器、调用栈、程序计数器、符号和盯梢列表的硬件盯梢调试器。一起还支撑微操控器的单步、多步和断点功用。
片上体系的比如可用来阐明规划东西流程和完结(图4)。
图4:片上体系的软件开发流程及硬件开发流程
微操控器东西和完结
FPGA微操控器的高功率和紧凑完结使得2280 LUT MachXO器材可用于阐明图3中片上体系的规划。
发动该规划的最简略办法是参阅“快速发动攻略”或项目导游一步一步地规划FPGA。一旦规划项目创立好,下一步便是编写微操控器程序。C或汇编言语是现在最盛行的MCU编程言语。图5显现了用汇编言语编写的I2C Slave程序块。
图5:汇编代码实例
有必要对微操控器的每个单元进行剖析以决定要履行的操作。如代码实例所示,I2C写循环具有5种操作:读状况、写器材地址、写数据、写字地址及回来。请注意代码都加上了注释。
尽管汇编言语的规范在各种MCU上大多是共同的,但规划者仍是应该查阅供给商的MCU指令集文档,以了解哪些操作是得到支撑的。将汇编源代码转换到ROM初始化文件的汇编程序是由指令行驱动的,和指令集仿真器相同,这可以经过汇编器供给商东西套件取得或许从网上下载。其间有些东西是作为开放源代码东西供给。例如,LatticeMico8微操控器IP(知识产权)便是作为开放源代码供给,这是完结嵌入式微操控器的一种共同有用途径,可运用户具有最大的灵敏性。
HDL调试和规划规矩查看
嵌入式微操控器IP可以描绘整个规划,或许作为一个大型规划的一部分与附加代码结合在一起。寻觅一种有助于规划HDL调试和规矩查看的东西是十分正确的。这种东西会生成该规划的分层结构和互连性的图形表明。用户可以经过各种图形和分层结构来调查规划,并运用智能东西交互勘探视图以发现各种问题。
图6:规划视图—HDL调试东西
这关于IP集成的保护和杂乱FPGA HDL规划的重规划都是很有用的,IP集成需求全面深化的途径进行规划剖析和办理。比较传统仿真器或归纳东西,这种东西可以完结规划结构的更高层笼统。这有助于创立并办理文档以及剖析规划结构,然后极大地减少了花费在这些项目上的规划时刻。
功用仿真
功用仿真首要创立一个作业库,规划被编译到该作业库中。仿真器经过图形用户接口、菜单或指令行使该进程愈加顺畅。这其间包括了规划文档和测验向量(test bench)。测验向量实例化该规划,并将数据加载到输入端。当运转规划时,测验向量被运用于该规划并显现成果(一般以波形的办法)进行剖析。
可运用各种仿真器完结规划的功用仿真。假如已对整个体系建模,则可以在体系级进行功用仿真,或许对单个规划单元进行仿真以保证正确的语法和功用已在RTL级建模。在这种特别情况下,有两家OEM的仿真器可供挑选。Aldec公司的Active-HDL Lattice Designer Edition Lite是一种附加的仿真环境。它不光供给混合言语VHDL和Verilog仿真,还可供给面向FPGA规划的可选规划流程。另一种挑选是Mentor Graphics的ModelSim,它可以供给VHDL和Verilog言语以及门级时序仿真,以对规划进行完好的仿真和剖析。
归纳
一旦完结功用仿真,下一步便是归纳。归纳可以用独立的办法完结,或许在供给商的项目导航东西中作为后台函数运转。归纳获取规划、进行逻辑优化并完结工艺映射。独立形式归纳的过程包括树立项目、参加源文件、设置束缚、运转规划和剖析成果。束缚是归纳的完结选项,例如扇出限制、运用大局置位/复位。特点则附归于方针,以操控其依靠的特定方针的优化、映射和剖析。现在可供给两种抢先的归纳东西。
Precision RTL归纳东西是Mentor Graphics公司的重要RTL归纳处理计划。运用Precision RTL界面可以很简略地获取有用的特性和东西,例如示意图(RTL/工艺)调查器、束缚剖析器、PreciseTime(用于高档时序剖析)、支撑时序调整(re-timing)等等。这些高档东西有助于改善功率并终究优化成果。
Synplicity公司的Synplify归纳东西是一款高性能、杂乱的逻辑归纳引擎,它运用专有的行为提取归纳技能(Behavior Extracting Synthesis Technology)供给快速、高效的FPGA和CPLD规划。简略的用户接口和强壮的归纳引擎结合在一起能敏捷供给优化的成果。
规划完结
面向映射、布局和布线(MPAR)的规划完结是运用供给商的东西套件完结。这一东西套件包括用于树立项目的项目导航器(Project Navigator),以及任何FPGA规划所必需的其它东西。在这种情况下,源文件被放置在左面的窗口,项目处理在右边的窗口进行,但一切的窗口都是可停靠的,以便用户定制任何视图。Log窗口记载一切的处理,并排出在处理进程中发生的悉数正告和过错信息。用户可以经过下拉菜单或许东西栏中的图标运用各种东西。图7为Lattice公司ispLEVER东西套件中的Project Navigator。
图7:ispLEVER项目导航器
完结东西(如Design Planner)可供给I/O和引脚设置、物理和逻辑视图以及平面布局。TCL/TK脚本可以运转屡次迭代以优化规划。Project Navigator中包括了静态时序、逻辑调试和功率核算东西。
编程软件
规划完结后,经过如图8所示的编程软件对硬件进行编程。这个东西将供给直观的用户界面GUI,可主动对体系主板进行扫描,挑选必需的编程文件并履行适宜的编程算法。经过供给商供给的SVF文件,该东西支撑契合IEEE 1149.1规范的器材编程。关于大多数体系内可编程器材来说,该东西还可以生成IEEE 1532 ISC数据文件。
图8:编程接口
调试接口
一旦完结了硬件,规划者将首要重视运转在嵌入式体系上的软件。ISS可用来确认原型功用以及评价对存储器资源的需求。当硬件集成、端口衔接以及查找过错均完结之后,一般不需求再更改代码。
在嵌入式体系的FPGA规划流程中,选用汇编器对更改的程序进行再编译,以树立FPGA片上指令或数据存储装备的新存储映像。然后经过一个简略的ECO将映像再次映射至FPGA的存储块。这样规划者就能越过耗时的归纳以及规划流程的布局布线阶段。存储器初始化东西将运用汇编器创立的新式16进制或许2进制映像重写存储器装备。
一旦post-PAR数据库被修正,则只需经过新的编程位流或许JEDEC对FPGA进行再编程。
可以操控内部寄存器以及在规划调试阶段完结寻址是十分有用的。为到达这一方针,OrCAstra或JLINK接口等东西(如图9和图10所示)供给了功用强壮、易于运用的办法。
图9:JLINK寄存器文件接口GUI
图10:JLINK Tap操控器接口GUI
本文小结
关于FPGA中的嵌入式微操控器规划而言,一个完好的体系规划需求一批强壮的东西。本文中的比如选用了共同的开放源代码微操控器汇编器和指令集仿真东西。抢先的第三方厂商可供给归纳和仿真东西。用于创立和优化规划的重要完结东西,以及有用的编程和规划调试形成了这一归纳规划套件,它是规划取得成功的要害。