iCE40UP5K由于其独特的性能得到海外创客们的热捧,尤其是其支持开源的开发工具链。不少RISC-V软核都是运行在iCE40UP5K上,基于这个大背景我们开发了一款FPGA核心模块,主要特点:
- 兼容树莓派基金会刚推出的Pico模块的管脚定义,Pico的GPIO性能比较强大,因此玩家可以对比Pico和FPGA IO管脚的使用,另外也可以借助位PICO推出的各种外设模块(本模块没有串行ADC的功能,只能支持数字端口的模块);
- 板上集成了基于DAPLink下载功能的STEPLINK功能,可以直接通过USB端口对FPGA的串行Flash进行配置,并可以通过同一个USB端口支持UART通信;
- 有开源的RISC-V可以移植使用,进而学习在FPGA上完成软核+FPGA的异构设计
本设计基于Lattice的ICE40UP5K FPGA,板载LPC11U35下载器,可以通过USB-C接口进行FPGA的配置,支持在ICE40UP5K上对RISC-V软核的移植以及开源的FPGA开发工具链,板上RGB三色LED灯用于简单的调试,总计28个IO用于扩展使用。
板卡适用范围:
- 适用于大二学生、FPGA学习者、2022年电赛参与者
- 掌握HDL编程语言以及FPGA的应用
- 电赛 - 控制、显示、测试测量、数据采集、软件定义无线电通信等
提升的技能:
- FPGA编程
- 协议原理 - SPI、I2C、UART
- 图形化显示 - OLED
- DDS产生任意波形、高速DAC的构成及使用
- 串行ADC的应用及数据采集
- 温度传感器数据采集及显示
- PWM的工作原理,应用及音乐播放
扩展板板上有:
-
2个按键输入
-
4个单色LED
-
12个WS2812B RGB三色灯
-
1个姿态传感器
-
1个128*64 OLED显示屏
-
1个蜂鸣器
-
1个可调电位计(用于电压表)
-
1路音频信号输入(用于示波器)
-
8位R-2R电阻网络构成的DAC(用于DDS信号发生器)
核心板主要功能特性:
- 基于Lattice的FPGA - ICE40UP5K
- 通过LPC11U35进行下载及UART配置/通信
- 板上一颗R、G、B三色LED,分别连接FPGA的三根专用于驱动LED的管脚39、40、41,可以用于状态显示及数字逻辑实验
- 一个RESET按键,用于对RISC-V系统进行复位
- 总计28根输入/输出可用于扩展
- 同USB直接连接的5V输出以及经板上LDO产生的3.3V直流电压输出,可以给扩展板供电,电流为200mA
- 板上晶体振荡器时钟产生12MHz供FPGA和LPC11U35工作,FPGA可以通过内部锁相环工作于48MHz。
参考资源:
- 在Linux上构建iCE40 FPGA工具链
- Changyi Gu在iCE40UP5K上实现的RISC-V软核
- 与ICE40UP5K相关的IP和参考设计
- 基于iCE40UP5K相关项目
- SGM6012 - 1.6MHz、800mA 同步降压转换器
- DS18B20- 温度传感器
- TP1961 - 7ns、1/2/4、超高速、+3V/+5V、超轨比较器
- UPDuino 3.0 - 基于ICE40UP5K、支持RISC-V
- 基于ICE40 UP5K的视觉FPGA 模块上系统
- 很多用UP5K实现的功能案例参考
iCE40UP5K内部的乘法器
几种开源的RISC-V软核:
- PicoRV32 - A Size-Optimized RISC-V CPU
- SERV - 一个获奖的RISC-V软核,最小的RISC-V软核
- 在ICE40 FPGA上构建自己的RISC-V处理器
- biriscv和VexRiscv - 支持Linux的比较快的软核
- ICE-V
- FEMTORV32 / FEMTOSOC: a minimalistic RISC-V CPU
- 基于FPGA与RISC-V的嵌入式系统设计使用文档:https://www.eetree.cn/wiki/fpga_risc-v
- 开源RISC-V 核Reindeer源代码:
链接:https://pan.baidu.com/s/1Z5IBRCaxYElLFrS46wuOIw
提取码:u13n
9. RISC-V资源汇总:https://www.eetree.cn/doc/detail/1126
基于树莓派的嵌入式系统学习板,搭配ICE40UP5K Pico核心板
关于核心的FPGA器件 - ICE40UP5K
ICE40 UltraPlus - 增强互连,拥抱智能。构建即时量产、低功耗,接口灵活的ML/AI解决方案
- 低功耗互连与计算 —— 运用于智能家居、智能工厂和智慧城市的各类系统正变得日趋复杂,而iCE40 UltraPlus则能有效解决互连难题,通过各类广泛的接口和协议,提供低功耗的计算资源实现更高级别的智能。
- 网络边缘智能FPGA —— 拥有5K LUT的iCE40 UltraPlus FPGA可实现网络边缘实时在线的智能应用所需的神经网络模式匹配。其功耗优化遥遥领先,并且设计人员消除了云端智能应用带来的延迟,降低了整个系统解决方案的成本。
- 灵活的封装选择 —— 为满足各类应用的需求,可提供多种封装选项,从专为电子消费品和IoT设备优化的超小尺寸2.15 mm x 2.50 mm x 0.45 mm WLCSP封装到低成本应用的0.5mm间距7x7mm QFN封装,不一而足。
- 灵活的逻辑架构,拥有2800或5280个4输入LUT、自定义I/O、多达80 Kb和1Mb的嵌入式存储器
- 超低功耗的先进工艺,睡眠电流低至75 uA,工作电流仅为1-10mA
- 使用DSP模块实现高性能信号处理,支持乘法和累加功能
- 神经网络软IP和编译器实现灵活的机器学习/人工智能应用
- FPGA设计工具、演示示例和参考设助力您的设计
直播课程(免费,现已可观看回放):
点击链接直接进入课程,观看直播:https://class.eetree.cn/detail/p_61cd7945e4b05006f9c3d275/6
硬禾开源代码库:
https://gitee.com/eetree-git/ICE40_Training