如何在可编程逻辑中实现 MCU 内核设计_第1页
如何在可编程逻辑中实现 MCU 内核设计_第2页
如何在可编程逻辑中实现 MCU 内核设计_第3页
如何在可编程逻辑中实现 MCU 内核设计_第4页
如何在可编程逻辑中实现 MCU 内核设计_第5页
已阅读5页,还剩1页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

如何在可编程逻辑中实现MCU内核设计有时,微控制器本身可以完全满足设计的所有功能要求。对于大多数嵌入式系统设计,编程良好、高度集成的嵌入式处理器是工程师可用的最具成本效益、最节能、​​最快的解决方案。当原始性能至关重要时,专用硬件中捕获的逻辑可以实现最高水平的性能。例如,定序器可以比在软件中实现的相同逻辑快一个数量级。由于分立逻辑器件占用大量空间和功率,添加FPGA可能是一种可行的替代方案;在许多情况下,FPGA和微控制器的组合是一个很好的解决方案。当微在FPGA的逻辑中实现时,更密集的解决方案是可能的。作为硬编码宏,或在每个新设计中被替换和路由的软宏,将整个微控制器吸收到FPGA内部不仅可以产生最高的密度,而且可以产生最大的灵活性,特别是如果你有足够的勇气去实际修改核心以提高性能。本文着眼于在现成的FPGA中愉快地运行的微内核。这些可从各种来源获得,包括开放式和封闭式、免费和IP许可的。比原来的更好遗留和专有架构都可以使用,并且各有优势。旧版内核与旧版micros兼容,并提供熟悉的架构。然后,您公司生产的产品可以使用已经过测试和验证的代码。当需要下一代产品甚至新的改进模型时,组织良好且可靠的代码库的可重用性可以节省大量时间。几个流行的内核已经以原始逻辑形式用于各种FPGA系列,包括处理器,例如MicrochipPIC、英特尔8051、AtmelAVR、摩托罗拉6502、英特尔8080和ZilogZ80微控制器,仅举几例。一个不那么明显的优点是能够改进初始架构。如果时间和资源允许,可以克服缺点,因为您可以修改设计。例如,非常流行的8051架构最初是采用顺序架构引入的,每条指令需要12个时钟周期。精确的遗留实现可以反映初始功能,或者可以实现更现代的风格,减少每条指令的时钟周期数。8051的改进IP内核也可用于跨平台开发。R8051XC2-BF内核¹可用于ASIC或Xilinx和AlteraFPGA;它通过添加第二个数据指针(初始设计的一个缺点)和JTAG调试接口(图1)对初始设计进行了改进。图1:传统内核的商用实现通常会改进最初的分立设计。这个8051内核每条指令运行一个时钟,并添加了JTAG和第二个数据指针。ARM内核虽然许多设计可以使用8位内核,但现代功能可能需要更高的总线宽度来简化处理。如果您正在处理24位宽的图形数据,则单个32位传输比三个8位传输更有效。也许最流行的32位架构是ARM®Cortex™,毫无疑问,它已成为流行且得到良好支持的FPGA实现架构。从面积和功耗的角度来看,ARMCortex非常高效。众多工具和开发套件以及用于外围设备、内存管理、数学和DSP功能的开源代码都很好地支持可扩展架构。ARM内核的一个很好的特性是它们不是某个FPGA制造商专有的,并且可以在不同制造商的设备上实现。这意味着随着设计的发展或需求的变化,您不会被锁定在一个供应商中。另一个好处是架构从更简单、功能更弱的CortexM0扩展而来高达非常高端的多核A8和A9口味。这还带来了经过轨道验证的驱动程序和堆栈的好处,这些驱动程序和堆栈适用于USB、以太网、Wi-Fi、ZigBee、蓝牙等高端外围设备。Xilinx系列器件是嵌入式微核的大力支持者,ARM架构也不例外。XC5VLX50-1FFG676C等部件是流行的XilinxVirtex®5的一部分系列,并且是可以在芯片上容纳快速和密集系统的非常大、密集和高端FPGA的示例。550MHz部件具有440个I/O和超过46,000个逻辑块,不仅支持ARM内核功能,还支持高达72位宽的存储器宽度、流水线操作、FIFO、具有高达16.4Mb内部块存储器的双端口存储器和DSP功能。Microsemi是另一家提供ARM内核支持的FPGA制造商,ProASIC3系列是一个很好的目标技术,具有令人印象深刻的低端到高端逻辑、I/O、RAM和15,000到3,000,000门数。一个很好的例子是具有341I/O和516Kb内部RAM的A3PE3000-FGG484。Altera有类似的部件,如EP3SL50F780C4N,它同样支持ARM核心处理器,还为DDR、DDR2、DDR3、SDRAM等提供内存支持,最多可在24个模块化I/Obank上使用448个I/O(该系列中最多744个)。作为Stratix®III系列的一员,Altera提供对AlteraMega-FunctionPartnerProgram(AMPP)的访问,以获得可用的外设、内核和支持。Altera还通过其AlteraMegaCore功能支持多种知识产权(图2)。图2:高端32位ARM架构是许多FPGA的流行内核。这个Altera版本增加了多核调试和跟踪功能,简化了单个FPGA内多个实例化处理器内核的设计。专有内核除了行业标准的微控制器内核之外,FPGA制造商还提供专有内核,这些内核逻辑效率非常高,可扩展至8至32位性能级别。这些供应商的关键是不要在不需要的功能和外围设备上浪费逻辑;如此经常缩减,实现了准系统处理单元,以提供基本的可编程性和与FPGA内部大型逻辑池的接口。这不仅可以让内核快速运行,还可以让它们足够小,以便在您的SoC内创建您自己的双核、四核甚至八核处理器。Xilinx将此类内核指定为Blaze,提供PicoBlaze和MicroBlaze两种风格。PicoBlaze是一种8位RISC架构,具有高达240MHz的性能。它主要设计用于VHDL设计流程,并作为VHDL源文件提供。一旦在13个不同的Xilinx系列之一中实现,它就不需要外部组件,并且完全在主机部分内运行。支持的系列包括Kinetex-7、Artix-7、Virtex(4、5、6、7、II-Pro)和Spartan®(3和6)。从资源和复杂性的角度来看,PicoBlaze相当斯巴达(双关语)。它具有一个16x字节宽的通用数据寄存器、1K的可编程片上程序存储(在FPGA配置期间自动加载)、一个字节宽的算术逻辑单元(ALU),带有CARRY和ZERO指示标志,64字节内部暂存器RAM,以及256个输入和256个输出端口,便于扩展和增强。另一方面,它具有可预测的性能,每条指令总是两个时钟周期,最高可达240MHz(或在Virtex-4FPGA中为100MIPS)和88MHz(或在Spartan-3FPGA中为44MIPS)。PicoBlaze对Xilinx用户免费,并附带一个汇编程序和VHDL源代码。高端的是XilinxMicroBlaze。这是一个32位RISC哈佛架构软处理器内核,具有32个通用32位寄存器、ALU、针对嵌入式应用程序优化的丰富指令集、三级MMU/MPU支持等。该内核的灵活性(图3)允许您选择性能优化的五级流水线,通过Kinetix-7系列(如XC7K70T-1FBG676C)或3级流水线区域可实现高达317DMIPS在Kintex-7或Virtex-6和7系列部件(如XC6VLX130T-1FFG784C)上仍可实现可观的264DMIPS的优化版本。图3:XilinxFPGA的专有32位MicroBlaze内核具有条件编译指令,允许您添加所需的模块并删除不需要的模块,以节省逻辑并提高密度。Altera还提供了一个称为NIOS的专有内核,现在是第二代NIOSII版本(图4)。它被誉为业内使用最广泛的软处理器,具有实时性能、功率灵敏度和安全关键(DO-254)合规性。图4:Altera的第二代NIOSII内核被吹捧为FPGA使用和支持最广泛的IP内核,并带来了许多开发和调试功能。六级流水线NIOS内核可以用少至600个逻辑元件和特征向量中断控制、紧密的内存和DSP耦合以及添加自定义指令(最多256个)的能力来实现。它可以使用内存管理单元(MMU),并支持开源和商业支持版本的嵌入式Linux。可行的替代方案您的设计细节将决定您应该选择硬宏还是软宏。硬宏占用FPGA内部的特定位置和资源,但硬编码宏具有更好的特性,可以实现更好的性能。软宏也可以实现良好的性能,特别是如果您有足够的勇气修改、改进或并行它

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论