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生成的代码。
可配置选项包括:
C_arch RISC-V或MIPS ISA
C_big_endian总线端
C_mult_enable合成乘法单位
C_branch_likely支持分支延迟时隙取消
C_sign_extend支持符号扩展指令
C_movn_movz支持条件移动指令
C_ll_sc支持原子读 - 修改 - 写构造
C_branch_prediction合成分支预测器
C_bp_global_depth全局分支历史跟踪大小
C_result_forwarding合成结果旁路
C_load_aligner合成加载对齐器
C_full_shifter pipelined而不是迭代移位器
C_icache_size指令高速缓存大小(0到64 KB)
C_dcache_size数据高速缓存大小(0到64 KB)
C_debug综合单步调试模块