微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > MCU和DSP > 一个针对FPGA的完全可配置嵌入式32位RISC处理器

一个针对FPGA的完全可配置嵌入式32位RISC处理器

时间:11-27 来源:互联网 点击:
可扩展性

由于处理器代码是可读的Verilog RTL代码,用户可以轻松识别IP功能块,诸如取指令单元,指令译码或ALU,以及各种流水线阶段。因此,通过定制指令,这些也可以修改和增强。用户也可以执行操作码。因此,在指令字中,LatticeMico32提供了备用的操作码域。

遵照以下一些基本的步骤,可以构建自定义指令:
  • 增强的指令译码器。这是一个简单的情况,提取内部操作码的功能,并生成需要整合此命令至LatticeMico32的所有必须的控制信号。
  • 写功能的实现并将其整合至LatticeMico32 的ALU。
  • 对于多周期命令,构建必要的拖延信号,以便妥善处理处理器流水线。
  • 如果需要其他的专门逻辑(例如额外的专用寄存器),这可以单独的添加到核。


通过定制指令和添加定制外设,扩展处理器核是一个非常有效的方式,用来定制处理器的核以便实现系统的性能要求。通常情况下,一些专门的功能用硬件实现比软件更好。或并行处理可以获得额外的性能。这种机制能够无缝集成硬件加速模块至处理器架构。这将保持用同样的方式处理这些部件的功能,如同正常的软件代码或使用标准外设。

对于需要数据/信号处理功能的应用,往往需要组合RISC处理器的功能和DSP,以达到系统的性能和吞吐量。添加扩展和定制元件还可以包括信号处理单元。可以用硬件非常有效地实现,使用专用的DSP块,诸如乘/累加,用各种FPGA的硬件都可以实现这些功能。

设计环境

LatticeMico32系统拥有三个集成工具:
  • MicoSystem Builder(MSB)


针对硬件实现,MSB产生平台描述和相关的硬件描述语言(HDL)代码。设计人员可以选择连接到微处理器的外围组件,以及指定它们之间的连接。
  • C/C++软件工程环境(SPE)


C/C++ SPE调用编译器,汇编器和连接器,使代码的开发针对运行于用MSB构建的平台。可以通过C/C++ SPE来完成,用MSB构建的平台可以作为参考。 
  • 调试器和Reveal逻辑分析器


在C/C + +源代码调试器提供汇编中的调试功能,并能够观察处理器的寄存器和存储器。设计人员还可以使用莱迪思的Reveal逻辑分析器观察和控制硬件中代码的执行情况。

所有的工具和IP已完全纳入莱迪思的ispLEVER FPGA软件设计环境,这使得通过整个FPGA设计流程快速的进行设计。这些工具也有利于有效地使用FPGA的资源。

在构建过程中,用完全可读的RTL Verilog源代码创建处理器的代码及其外围设备。提供用于综合和仿真的脚本,约束文件关注硬件的设置和引脚。

目前有3种操作系统: Theobroma Systems的uClinux 和U-Boot、Micriμm的μC/OS-II RTOS和TOPPERS/JSP的μITRON RTOS。

LatticeMico32提供了一个开放源码许可证。莱迪思的开放IP核许可协议将与MSB工具生成的HDL代码一起使用。大部分图形用户界面将在Eclipse的授权许可下使用,同时对软件的内部运作,如编译器、汇编器,连接器和调试器,许可协议将遵循GNU-GPL。

因为这是开放源码软IP,这个处理器的IP核还可以免费迁移到其他技术并加以实现。

性能和资源利用

LatticeMico32提供高性能和尽可能高的资源利用率。对于关心资源的设计人员,基本配置不使用任何指令或数据高速缓存,单周期移位器,也没有乘法器。对于那些更关注性能的设计人员,全配置使用8KB的指令高速缓存,8K字节的数据高速缓存,3个周期的移位器和一个乘法器。对于需要采用折衷方法的用户,标准配置类似于完整的配置,但没有8K字节的高速数据缓存。表1展示了针对LatticeECP3 FPGA的资源利用率和性能。

表1 LatticeMico32资源利用率和使用LatticeECP3的性能



总结

LatticeMico32是一个完整的嵌入式微处理器设计方案。它提供了一个灵活的架构,并允许用户定制处理器系统以满足系统的要求(性能、成本、功耗)。处理器的IP和专用硬件的密切配合提供了一个易于使用的环境,这也可显著提升系统的性能,使设计拥有很大的灵活性。

LatticeMico32开发工具可以很容易地在FPGA中实现一个微处理器和与之连接的外围元件。易用性确保最少的设计时间,从而使得产品能够更快的上市。 

根据开放源代码许可证和软件开发工具各自的开放源代码许可证,如Eclipse和GNU - GPL,提供生成的HDL,莱迪思可以让用户完全控制其设计。开放源代码为设计人员提供所需要的可视性,灵活性和便携性。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top