基于FPGA的开源项目:FOC/SHA/USB/JPEG等

本文分享几个王轩(wangxuan95.github.io)大佬的几个FPGA开源项目,对于FPGA深入学习、项目应用、算法应用等都有参考价值。以下是从大佬的GitHub主页按Star排名挑选的一些项目,分享给大家参考学习。

如果以下项目的地址无法访问,可以把github换成gitee国内镜像试试。

如有侵权,请联系我删除。

1. USB 1.1控制器

可在 FPGA 上实现各种 USB 设备。比如 USB扬声器和麦克风、USB摄像头、U盘、USB键盘、USB串口 。

为了在 FPGA 上实现 USB 设备,通常的技术路线是使用 USB 芯片 (例如 Cypress CY7C68013),导致电路和软件的开发成本较高。本库用 FPGA 实现一个通用的 USB 1.1 (Full Speed) device 控制器,可以像 STM32 单片机那样,用非常简单的电路来实现 USB 设备,而不依赖额外的 USB 芯片。

开源地址:https://github.com/WangXuan95/FPGA-USB-Device

2. FOC控制算法

基于 FPGA 的磁场定向控制 (FOC),用于驱动永磁同步电机 (PMSM) 或无刷直流电机 (BLDC),FOC控制算法对传感器采样速率和处理器算力提出了一定的要求,使用 FPGA 实现的 FOC 可以获得更好的实时性,并且更方便进行多路扩展和多路反馈协同。

本库实现了基于角度传感器(也就是磁编码器)的有感 FOC,即一个完整的电流环,可以进行扭矩控制。借助本库,你可以进一步使用 纯FPGA 或 MCU+FPGA 的方式实现更复杂的电机应用。

开源地址:https://github.com/WangXuan95/FPGA-FOC

3. BSV高级硬件描述语言入门指南

首个中文 Bluespec SystemVerilog (BSV) 教程。BSV 是一门高级硬件描述语言(High-Level Hardware Description Language, HL-HDL),与 Verilog 一样,被用于 FPGA 或 ASIC 的设计和验证。BSV 于 2003 年被 Bluespec 公司开发,期间是商业收费工具,到 2020 年它的编译器才开源,这才给了我们接触它的机会。

开源地址:https://github.com/WangXuan95/BSV_Tutorial_cn

4. 基于XDMA的PCIe核

PCIe-XDMA (DMA Subsystem for PCIe) 是 Xilinx 提供给 FPGA 开发者的一种免费的、便于使用的 PCIe 通信 IP 核。

开源地址:https://github.com/WangXuan95/Xilinx-FPGA-PCIe-XDMA-Tutorial

5. 基于SystemVerilog的RISC-V SoC

一个 SystemVerilog 编写的,以一个 RISC-V CPU 为核心的,普林斯顿结构的 SoC ,可作为 MCU 使用。

  • CPU:5段流水线 RISC-V ,支持 RV32I 指令集(除了 CSR 指令)。
  • 总线:具有握手机制,32-bit地址,32-bit数据。
  • 总线交叉开关 (bus router):可使用参数修改总线主从接口的数量和从接口占用的地址空间,以方便拓展外设。
  • 交互式 UART 调试:可使用PC上的 Putty、minicom、超级终端等软件进行在线系统复位**、上传程序、**查看内存。
  • 完全使用 SystemVerilog 实现,不调用IP核,便于移植和仿真。

开源地址:https://github.com/WangXuan95/USTC-RVSoC

6. FTDI芯片在245模式的FIFO控制器

sync-245-fifo 模式 是 FTDI 公司的 USB 系列芯片的最高速的传输模式。本库将 sync-245-fifo 控制器封装成 Verilog 模块 (IP顶层模块名为 ftdi_245fifo_top ),它具有标准 AXI-stream 收发接口 ,供 Verilog 开发者调用。

开源地址:https://github.com/WangXuan95/FPGA-ftdi245fifo

7. SD卡文件读取器

基于FPGA的SD卡读取器,可以从FAT16或FAT32格式的SD卡中读取文件。

  • 功能 :FPGA作为 SD-host , 指定文件名读取文件内容;或指定扇区号读取扇区内容。
  • 性能 :使用 SD总线,而不是 SPI总线。读取速度更快。
  • 兼容性强 :自动适配 SD卡版本 ,自动适配 FAT16/FAT32文件系统。
  • 纯 Verilog 实现,便于移植和仿真。

开源地址:https://github.com/WangXuan95/FPGA-SDcard-Reader

8. 轻量级CAN控制器

本库实现了一个轻量化完备FPGA CAN总线控制器,特点如下:

  • 平台无关 :纯 Verilog 编写,可以在 Altera 和 Xilinx 等各种 FPGA 上运行。
  • 本地ID可固定配置为任意短ID
  • 发送 : 仅支持以本地ID发送数据长度为4Byte的帧。
  • 接收 : 支持接收短ID长ID的帧,接收帧的数据长度没有限制 (即支持 0~8Byte ) 。
  • 接收帧过滤 : 可针对短ID长ID独立设置过滤器,只接收和过滤器匹配的数据帧。
  • 自动响应远程帧 : 当收到的远程帧本地ID匹配时,自动将发送缓存中的下一个数据发送出去。若缓存为空,则重复发送上次发过的数据。

开源地址:https://github.com/WangXuan95/FPGA-CAN

9. JPEG-LS编码器

基于FPGA的JPEG-LS编码器,可实现高压缩率的无损/近无损图像压缩。

开源地址:https://github.com/WangXuan95/FPGA-JPEG-LS-encoder

10. DDR1控制器

基于FPGA的DDR1控制器,为低端FPGA嵌入式系统提供廉价、大容量的存储。

开源地址:https://github.com/WangXuan95/FPGA-DDR-SDRAM

11. 定点数运算库

一个Verilog定点数库,提供算术运算、与浮点数的互相转换,包含单周期和流水线两种实现。

开源地址:https://github.com/WangXuan95/FPGA-FixedPoint

12. MPEG2视频编码器

基于 FPGA高性能 MPEG2 视频编码器,可实现视频压缩。

开源地址:https://github.com/WangXuan95/FPGA-MPEG2-encoder

13. 使用FPGA模拟和伪装SD卡

FPGA 模拟 SDHCv2 版本的只读 SD 卡,依据 SDv2.0 规范编写,已在 绿联川宇飚王Realtek PCIe Card Reader 等读卡器上识别。

开源地址:https://github.com/WangXuan95/FPGA-SDfake

14. NFC(RFID)读卡器

用 FPGA 从底层开始搭建一个 NFC PCD (读卡器),支持 ISO14443A 标准。

开源地址:https://github.com/WangXuan95/FPGA-NFC

15. 基于FPGA的串口收发模块

开源地址:https://github.com/WangXuan95/FPGA-UART

16. 基于FPGA的gzip压缩器

基于 FPGA 的流式的 GZIP (deflate 算法) 压缩器。用于通用无损数据压缩:输入原始数据,输出标准的 GZIP 格式,即常见的 .gz / .tar.gz 文件的格式。

开源地址:https://github.com/WangXuan95/FPGA-Gzip-compressor

17. 基于FPGA的PNG解码器

基于FPGA的流式的 png 图象解码器,输入 png 码流,输出原始像素

开源地址:https://github.com/WangXuan95/FPGA-PNG-decoder

18. 超高性能的JPEG-LS编码器

基于 FPGA 的高性能 JPEG-LS 图像压缩器

  • 使用 Verilog 编写。
  • 用于无损压缩 8bit 的灰度图像。
  • 图像高度取值范围为 1~65536 ,宽度取值范围为 5~10240,宽度必须是 5 的倍数。
  • 使用动态乱序调度进行像素级并行。对于自然图像,输入吞吐率约为 4.5 个像素每时钟周期。

开源地址:https://github.com/WangXuan95/UH-JLS

19.SHA算法库

使用 FPGA 计算 SHA1/SHA224/SHA256/SHA384/SHA512

开源地址:https://github.com/WangXuan95/FPGA-SHA-Family

  • 21
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

whik1194

如果对你有帮助,欢迎打赏。谢谢

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值