f32c - 可重定义 RISC-V 处理器核


BSD
跨平台
C/C++

软件简介

f32c是可重定向的,标量的,流水线的32位处理器核,其可以执行RISC-
V或MIPS指令集的子集。它在参数化VHDL中实现,其允许具有不同面积/速度权衡的合成,并且包括分支预测器,异常处理控制块和可选的直接映射高速缓存。
RTL代码还包括诸如多端口SDRAM和SRAM控制器,具有复合(PAL),HDMI,DVI和VGA输出的视频帧缓冲器,具有用于精灵和窗口的简单2D加速,浮点向量处理器,SPI,UART,PCM音频,GPIO,PWM输出和定时器,以及为各种制造商的众多流行FPGA开发板定制的胶合逻辑。

在合成整数基准中,内核以存储在片上块RAM中的代码和数据产生3.06 CoreMark / MHz和1.63 DMIPS / MHz(1.81 DMIPS
/ MHz,功能内联)。当配置为16 KB指令和4 KB数据高速缓存,并且代码和数据存储在外部SDRAM中时,内核产生2.78 CoreMark /
MHz和1.31 DMIPS / MHz。

包括定时器和UART的性能优化的f32c
SoC仅占用1048个6输入LUT,同时仍然能够在最紧凑配置(仅消耗697(649个逻辑加48个存储器)LUT)下合成时执行gcc生成的代码。

可配置选项包括:

  1. C_arch RISC-V或MIPS ISA

  2. C_big_endian总线端

  3. C_mult_enable合成乘法单位

  4. C_branch_likely支持分支延迟时隙取消

  5. C_sign_extend支持符号扩展指令

  6. C_movn_movz支持条件移动指令

  7. C_ll_sc支持原子读 - 修改 - 写构造

  8. C_branch_prediction合成分支预测器

  9. C_bp_global_depth全局分支历史跟踪大小

  10. C_result_forwarding合成结果旁路

  11. C_load_aligner合成加载对齐器

  12. C_full_shifter pipelined而不是迭代移位器

  13. C_icache_size指令高速缓存大小(0到64 KB)

  14. C_dcache_size数据高速缓存大小(0到64 KB)

  15. C_debug综合单步调试模块