LiteX
litex
⭐⭐⭐☆☆ (3/5)
🧩 软硬件结合
已发布
项目简介
Build your hardware, easily!
LiteX 是一个基于 Python 的开源 FPGA SoC(片上系统)构建框架,由 Enjoy-Digital 团队开发并维护。它旨在为数字设计工程师和硬件爱好者提供一套高效、灵活且可扩展的基础设施,用于快速创建从简单 FPGA 内核到复杂完整系统的各类数字设计。
标签
项目特点
🚀 **高效的 SoC 构建**:通过 Python 脚本定义系统架构,自动生成 HDL 代码和互联逻辑,大幅缩短开发周期。
🔌 **丰富的核心生态**:集成 DRAM、PCIe、Ethernet、SATA、USB 等成熟 IP 核,可直接复用。
🧠 **多 CPU 支持**:兼容 VexRiscv、Rocket、LM32、Mor1kx、PicoRV32、BlackParrot 等多种软核 CPU。
🌐 **混合语言支持**:可无缝集成 VHDL/Verilog/SystemVerilog/nMigen/Spinal-HDL 等不同语言描述的模块。
🛠️ **强大的调试能力**:提供 Host Bridge 和 LiteScope 逻辑分析仪,方便系统调试和验证。
⚡ **快速仿真**:通过 Verilator 实现直接/快速仿真,加速开发迭代。
🔧 **多工具链后端**:支持开源(如 Yosys/nextpnr)和商业(Vivado、Quartus 等)FPGA 工具链。
📦 **板级支持**:通过 [LiteX-Boards](https://github.com/litex-hub/litex-boards) 项目支持大量 FPGA 开发板。
技术规格
| 开发语言 | |
|---|---|
| 底层 HDL | |
| 支持总线 | |
| 支持 CPU | |
| 支持外设 | |
| 仿真工具 | |
| 工具链后端 | |
| 许可证 | |
| 操作系统支持 |
项目资源
物料清单 (BOM)
| 物料名称 | 数量 | 参考价格 | 备注 |
|---|---|---|---|
| FPGA 开发板 | 1 | — | 需支持所选工具链,参考 LiteX-Boards 列表 |
| USB-JTAG 调试器 | 1 | — | 可选,用于调试 |
| 串口线 (UART) | 1 | — | 可选,用于控制台交互 |
| Python 3.6+ | 1 | — | 开发环境 |
| FPGA 厂商工具链 | 1 | — | 如 Vivado, Quartus, Yosys 等 |
| Verilator | 1 | — | 可选,用于仿真 |
所需工具
| 工具 | 用途 | 是否必需 |
|---|---|---|
| Python 3.6+ | 运行 LiteX 框架和脚本 | ✅ 是 |
| FPGA 厂商工具链 (Vivado/Quartus/Yosys 等) | 综合、布局布线、生成比特流 | ✅ 是 |
| Verilator | HDL 仿真加速 | ▢ 推荐 |
| Git | 版本控制和代码管理 | ✅ 是 |
| 文本编辑器/IDE | 编写 Python 和 HDL 代码 | ✅ 是 |
| USB-JTAG 调试器 | FPGA 编程和调试 | ▢ 推荐 |
| 串口终端 (如 minicom, PuTTY) | 与 SoC 控制台交互 | ▢ 推荐 |
能力画像
记忆与知识检索
2/5
逻辑推演
4/5
表达与交流
2/5
感知与观察
2/5
数理与计算
4/5
动手与操作
3/5
狂热与坚持
4/5
创造与创新
4/5
项目图库
视频
watch
watch
所需技能
🔧 **动手能力**:需要具备 FPGA 开发板的使用经验,包括连接调试器、烧录比特流、使用串口终端等基本硬件操作。
💻 **编程能力**:需要熟练掌握 Python 编程,了解硬件描述语言(Verilog/VHDL)基础,熟悉命令行操作和版本控制。
⚡ **电子电路**:需要理解数字电路基本概念(寄存器、时钟、总线协议),了解 FPGA 架构和时序约束基础。
适用场景
🎓 **FPGA 教学与学习**:作为数字系统设计课程的教学平台,学生可以通过 Python 快速理解 SoC 架构。
🔬 **学术研究**:用于快速原型验证新的数字电路架构、RISC-V 扩展或专用加速器。
💼 **工业产品开发**:快速构建定制化的 FPGA 系统,如视频处理、通信接口、数据采集等。
🛠️ **开源硬件项目**:社区爱好者可以利用 LiteX 为各种 FPGA 开发板创建和分享 SoC 设计。
🖥️ **嵌入式 Linux 系统**:在 FPGA 上构建完整的 RISC-V Linux 系统,用于边缘计算或嵌入式应用。