0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何在可编程逻辑中实现MCU内核设计

FPGA设计论坛 来源:FPGA设计论坛 作者:FPGA设计论坛 2023-04-01 13:20 次阅读

有时,微控制器本身可以完全满足设计的所有功能要求。对于大多数嵌入式系统设计,编程良好、高度集成的嵌入式处理器是工程师可用的最具成本效益、最节能、最快的解决方案。

当原始性能至关重要时,专用硬件中捕获的逻辑可以实现最高水平的性能。例如,定序器可以比在软件中实现的相同逻辑快一个数量级。

由于分立逻辑器件占用大量空间和功率,添加 FPGA 可能是一种可行的替代方案;在许多情况下,FPGA 和微控制器的组合是一个很好的解决方案。当微在 FPGA 的逻辑中实现时,更密集的解决方案是可能的。作为硬编码宏,或在每个新设计中被替换和路由的软宏,将整个微控制器吸收到 FPGA 内部不仅可以产生最高的密度,而且可以产生最大的灵活性,特别是如果你有足够的勇气去实际修改核心以提高性能。

本文着眼于在现成的 FPGA 中愉快地运行的微内核。这些可从各种来源获得,包括开放式和封闭式、免费和 IP 许可的。

比原来的更好

遗留和专有架构都可以使用,并且各有优势。旧版内核与旧版 micros 兼容,并提供熟悉的架构。然后,您公司生产的产品可以使用已经过测试和验证的代码。当需要下一代产品甚至新的改进模型时,组织良好且可靠的代码库的可重用性可以节省大量时间。

几个流行的内核已经以原始逻辑形式用于各种 FPGA 系列,包括处理器,例如Microchip PIC、英特尔 8051、Atmel AVR、摩托罗拉 6502、英特尔 8080 和Zilog Z80 微控制器,仅举几例。

一个不那么明显的优点是能够改进初始架构。如果时间和资源允许,可以克服缺点,因为您可以修改设计。例如,非常流行的 8051 架构最初是采用顺序架构引入的,每条指令需要 12 个时钟周期。精确的遗留实现可以反映初始功能,或者可以实现更现代的风格,减少每条指令的时钟周期数。

8051 的改进 IP 内核也可用于跨平台开发。R8051XC2-BF 内核¹可用于 ASIC 或Xilinx和Altera FPGA;它通过添加第二个数据指针(初始设计的一个缺点)和 JTAG 调试接口(图 1)对初始设计进行了改进。

73ae8a88-d04c-11ed-bfe3-dac502259ad0.png

图 1:传统内核的商用实现通常会改进最初的分立设计。这个 8051 内核每条指令运行一个时钟,并添加了 JTAG 和第二个数据指针。

ARM内核

虽然许多设计可以使用 8 位内核,但现代功能可能需要更高的总线宽度来简化处理。如果您正在处理 24 位宽的图形数据,则单个 32 位传输比三个 8 位传输更有效。

也许最流行的 32 位架构是 ARM Cortex,毫无疑问,它已成为流行且得到良好支持的 FPGA 实现架构。从面积和功耗的角度来看,ARM Cortex 非常高效。众多工具和开发套件以及用于外围设备、内存管理、数学和 DSP 功能的开源代码都很好地支持可扩展架构。

ARM 内核的一个很好的特性是它们不是某个 FPGA 制造商专有的,并且可以在不同制造商的设备上实现。这意味着随着设计的发展或需求的变化,您不会被锁定在一个供应商中。

另一个好处是架构从更简单、功能更弱的Cortex M0扩展而来高达非常高端的多核A8和A9口味。这还带来了经过轨道验证的驱动程序和堆栈的好处,这些驱动程序和堆栈适用于 USB以太网Wi-FiZigBee蓝牙等高端外围设备。

Xilinx 系列器件是嵌入式微核的大力支持者,ARM 架构也不例外。XC5VLX50-1FFG676C等部件是流行的 Xilinx Virtex 5的一部分系列,并且是可以在芯片上容纳快速和密集系统的非常大、密集和高端 FPGA 的示例。550 MHz 部件具有 440 个 I/O 和超过 46,000 个逻辑块,不仅支持 ARM 内核功能,还支持高达 72 位宽的存储器宽度、流水线操作、FIFO、具有高达 16.4 Mb 内部块存储器的双端口存储器和 DSP 功能。

Microsemi是另一家提供 ARM 内核支持的 FPGA 制造商,ProASIC3系列是一个很好的目标技术,具有令人印象深刻的低端到高端逻辑、I/O、RAM 和 15,000 到 3,000,000 门数。一个很好的例子是具有 341 I/O 和 516 Kb 内部 RAM 的A3PE3000-FGG484 。

Altera 有类似的部件,如EP3SL50F780C4N,它同样支持 ARM 核心处理器,还为 DDR、DDR2、DDR3、SDRAM 等提供内存支持,最多可在 24 个模块化 I/O bank 上使用 448 个 I/O(该系列中最多 744 个)。作为Stratix III系列的一员,Altera 提供对 Altera Mega-Function Partner Program (AMPP) 的访问,以获得可用的外设、内核和支持。Altera 还通过其 Altera MegaCore 功能支持多种知识产权(图 2)。

73e92152-d04c-11ed-bfe3-dac502259ad0.png

图 2:高端 32 位 ARM 架构是许多 FPGA 的流行内核。这个 Altera 版本增加了多核调试和跟踪功能,简化了单个 FPGA 内多个实例化处理器内核的设计。

专有内核

除了行业标准的微控制器内核之外,FPGA 制造商还提供专有内核,这些内核逻辑效率非常高,可扩展至 8 至 32 位性能级别。这些供应商的关键是不要在不需要的功能和外围设备上浪费逻辑;如此经常缩减,实现了准系统处理单元,以提供基本的可编程性和与 FPGA 内部大型逻辑池的接口。这不仅可以让内核快速运行,还可以让它们足够小,以便在您的 SoC 内创建您自己的双核、四核甚至八核处理器。

Xilinx 将此类内核指定为 Blaze,提供 PicoBlaze 和 MicroBlaze 两种风格。PicoBlaze 是一种 8 位 RISC 架构,具有高达 240 MHz 的性能。它主要设计用于 VHDL 设计流程,并作为 VHDL 源文件提供。一旦在 13 个不同的 Xilinx 系列之一中实现,它就不需要外部组件,并且完全在主机部分内运行。

支持的系列包括Kinetex-7、Artix-7、Virtex(4、5、6、7、II-Pro)和Spartan(3 和 6)。

从资源和复杂性的角度来看,PicoBlaze 相当斯巴达(双关语)。它具有一个 16 x 字节宽的通用数据寄存器、1K 的可编程片上程序存储(在 FPGA 配置期间自动加载)、一个字节宽的算术逻辑单元 (ALU),带有 CARRY 和 ZERO 指示标志,64 字节内部暂存器 RAM,以及 256 个输入和 256 个输出端口,便于扩展和增强。

另一方面,它具有可预测的性能,每条指令总是两个时钟周期,最高可达 240 MHz(或在 Virtex-4 FPGA 中为 100 MIPS)和 88 MHz(或在 Spartan-3 FPGA 中为 44 MIPS)。PicoBlaze 对 Xilinx 用户免费,并附带一个汇编程序和 VHDL 源代码。

高端的是 Xilinx MicroBlaze。这是一个 32 位 RISC 哈佛架构软处理器内核,具有 32 个通用 32 位寄存器、ALU、针对嵌入式应用程序优化的丰富指令集、三级 MMU/MPU 支持等。

该内核的灵活性(图 3)允许您选择性能优化的五级流水线,通过 Kinetix-7 系列(如XC7K70T-1FBG676C)或 3 级流水线区域可实现高达 317 DMIPS在 Kintex-7 或 Virtex-6 和 7 系列部件(如XC6VLX130T-1FFG784C)上仍可实现可观的 264 DMIPS 的优化版本。

740c1a54-d04c-11ed-bfe3-dac502259ad0.png

图 3:Xilinx FPGA 的专有 32 位 MicroBlaze 内核具有条件编译指令,允许您添加所需的模块并删除不需要的模块,以节省逻辑并提高密度。

Altera 还提供了一个称为 NIOS 的专有内核,现在是第二代NIOS II版本(图 4)。它被誉为业内使用最广泛的软处理器,具有实时性能、功率灵敏度和安全关键 (DO-254) 合规性。

742c3712-d04c-11ed-bfe3-dac502259ad0.png

图 4:Altera 的第二代 NIOS II 内核被吹捧为 FPGA 使用和支持最广泛的 IP 内核,并带来了许多开发和调试功能。

六级流水线 NIOS 内核可以用少至 600 个逻辑元件和特征向量中断控制、紧密的内存和 DSP 耦合以及添加自定义指令(最多 256 个)的能力来实现。它可以使用内存管理单元 (MMU),并支持开源和商业支持版本的嵌入式 Linux

可行的替代方案

您的设计细节将决定您应该选择硬宏还是软宏。硬宏占用 FPGA 内部的特定位置和资源,但硬编码宏具有更好的特性,可以实现更好的性能。

软宏也可以实现良好的性能,特别是如果您有足够的勇气修改、改进或并行它们。与往常一样,良好的设计实践将产生最佳结果。

总之,当需要尽可能高的密度和/或性能时,选择 FPGA 内部的软处理器而不是传统的微控制器及其所有支持电路在灵活性、效率、性能、功率、和空间。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 微控制器
    +关注

    关注

    48

    文章

    7490

    浏览量

    151056
  • FPGA
    +关注

    关注

    1626

    文章

    21670

    浏览量

    601877
  • mcu
    mcu
    +关注

    关注

    146

    文章

    16999

    浏览量

    350321
  • 可编程逻辑
    +关注

    关注

    7

    文章

    514

    浏览量

    44072
  • 微内核
    +关注

    关注

    0

    文章

    57

    浏览量

    13422

原文标题:如何在可编程逻辑中实现 MCU 内核设计

文章出处:【微信号:gh_9d70b445f494,微信公众号:FPGA设计论坛】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    何在可编程逻辑实现 MCU 内核设计

    六级流水线 NIOS 内核可以用少至 600 个逻辑元件和特征向量中断控制、紧密的内存和 DSP 耦合以及添加自定义指令(最多 256 个)的能力来实现。它可以使用内存管理单元 (MMU),并支持开源和商业支持版本的嵌入式 Li
    发表于 08-09 10:45 771次阅读
    如<b class='flag-5'>何在</b><b class='flag-5'>可编程</b><b class='flag-5'>逻辑</b><b class='flag-5'>中</b><b class='flag-5'>实现</b> <b class='flag-5'>MCU</b> <b class='flag-5'>内核</b>设计

    什么是可编程逻辑

    。事实上,由于有了可编程逻辑器件,一些设备制造商现在正在尝试为已经安装在现场的产品增加新功能或者进行升级。要实现这一点,只需要通过因特网将新的编程文件上载到PLD就可以在系统创建出新
    发表于 05-29 11:36

    可编程逻辑器件

    可编程逻辑器件到底是干什么用的呢,简单的说,就是通过重新写程序,重新注入到这个器件达到实现其它的功能。最常见的当属电脑了。电脑本身除了加法,减法和简单的逻辑运算四种。比如要是想
    发表于 04-15 10:02

    什么是可编程逻辑控制器?可编程逻辑控制器有哪些特点?

    什么是可编程逻辑控制器?可编程逻辑控制器主要有哪些特点?可编程逻辑控制器主要有哪些应用领域?
    发表于 07-05 06:00

    可编程逻辑基础电子书

    可编程逻辑基础电子书
    发表于 03-23 16:48 0次下载

    可编程逻辑器件基础及应用实验指导书

    可编程逻辑器件基础及应用实验指导书 《可编程逻辑器件基础及应用》是一门侧重掌握可编程逻辑器件的基本结构和原理的课程。重点是使学生掌握基于可编程
    发表于 03-24 14:22 29次下载

    什么是PLD(可编程逻辑器件)

    什么是PLD(可编程逻辑器件) PLD是可编程逻辑器件(Programable Logic Device)的简称,FPGA是现场可编程门阵列(Field Programable Gate Array)
    发表于 06-20 10:32 2.5w次阅读
    什么是PLD(<b class='flag-5'>可编程逻辑</b>器件)

    可编程阵列逻辑(Programmable Array Log

    可编程阵列逻辑(Programmable Array Logic) 可编程阵列逻辑(PAL)是一种与项可编程、或项固定结构的
    发表于 09-18 09:13 2028次阅读

    EDA技术与应用(可编程逻辑器件)

    7.1 可编程逻辑器件的基本原理 7.2 可编程逻辑器件的设计技术 7.3 可编程逻辑器件的编程与配置
    发表于 05-23 10:46 142次下载
    EDA技术与应用(<b class='flag-5'>可编程逻辑</b>器件)

    基于可编程逻辑的SDRAM控制方法设计

    基于可编程逻辑的SDRAM控制方法设计
    发表于 06-30 10:16 8次下载

    可编程逻辑控制继电器

    可编程逻辑控制继电器 可编程逻辑控制继电器是一种“可编程序”、“通用”、“智能化”控制继电器,不同厂商的产品有不同的名称,如,德国金钟-默勒
    发表于 11-01 13:16 1152次阅读

    可编程逻辑器件测试

    可编程逻辑器件 (Programmable Loeie Device,PLD)是一种用户编程实现某种逻辑功能的逻辑器件,主要由
    发表于 06-06 15:37 659次阅读
    <b class='flag-5'>可编程逻辑</b>器件测试

    什么叫可编程逻辑器件 可编程逻辑器件有哪些特征和优势?

    可编程逻辑器件(Programmable Logic Device,PLD)是一类集成电路器件,可以根据用户的需求进行编程和配置,以实现特定的逻辑功能。它们具有
    发表于 09-14 15:25 2677次阅读

    可编程逻辑器件的特征及优势科普

    可编程逻辑器件是一种集成电路,具有可编程功能的特性。它们可以根据用户的需求进行编程,从而实现不同的逻辑功能。
    的头像 发表于 02-26 18:24 1080次阅读

    什么是现场可编程逻辑阵列?它有哪些特点和应用?

    可编程逻辑元件和可编程互连,实现逻辑电路的设计和配置。FPLA在电子系统设计、数字信号处理、网络通信等多个领域都有广泛应用。本文将对现场
    的头像 发表于 05-23 16:25 811次阅读