enjoy-digital/litex
GitHub: enjoy-digital/litex
LiteX 是一个基于 Python 的 FPGA/SoC 构建框架,帮你用高效方式创建数字硬件原型。
Stars: 3837 | Forks: 702

```
Copyright 2012-2026 / Enjoy-Digital & LiteX developers
```
[](https://github.com/enjoy-digital/litex/actions)
 [](https://deepwiki.com/enjoy-digital/litex)
# 欢迎使用 LiteX!
LiteX 框架提供了一个方便且高效的基础设施,用于创建 FPGA 核心/SoC,探索各种数字设计架构,并创建[全 FPGA 基础系统](https://github.com/enjoy-digital/litex/wiki/Projects)。
**LiteX SoC 构建器框架快速入门/概述:[幻灯片](https://docs.google.com/presentation/d/1mQOWqgmyQxpjLAzFwCulqgkp0TuxmaIDYp5iUfPqqIk/edit?usp=sharing)**
**想开始学习或寻找文档?请务必访问 [Wiki](https://github.com/enjoy-digital/litex/wiki)!**
**有问题或想联系?加入我们的 [Discord](https://discord.gg/PkJwjDbxeG) 或 IRC 频道:[#litex at irc.libera.chat]**。
LiteX 提供了创建 FPGA 核心/SoC 所需的所有通用组件:
- :heavy_check_mark: 总线与流(Wishbone、AXI、Avalon-ST)及其互联。
- :heavy_check_mark: 简单核心:RAM、ROM、定时器、UART、JTAG 等。
- :heavy_check_mark: 通过核心生态系统实现复杂核心:[LiteDRAM](https://github.com/enjoy-digital/litedram)、[LitePCIe](https://github.com/enjoy-digital/litepcie)、[LiteEth](https://github.com/enjoy-digital/liteeth)、[LiteSATA](https://github.com/enjoy-digital/litesata) 等。
- :heavy_check_mark: 各种 CPU 与指令集架构:RISC-V、OpenRISC、LM32、Zynq、X86(通过 PCIe)等。
- :heavy_check_mark: 对 VHDL/Verilog/(n)Migen/Spinal-HDL 等混合语言的支持与集成能力。
- :heavy_check_mark: 通过多种 [桥接器](https://github.com/enjoy-digital/litex/wiki/Use-Host-Bridge-to-control-debug-a-SoC) 和 [Litescope](https://github.com/enjoy-digital/litescope) 提供的强大调试基础设施。
- :heavy_check_mark: 通过 [Verilator](https://www.veripool.org/verilator/) 进行直接/快速仿真。
- :heavy_check_mark: 为开源和供应商工具链构建后端。
- :heavy_check_mark: 等等… :)
通过将 LiteX 与核心生态系统结合,创建复杂的 SoC 比传统方法更加容易,同时提供了更好的可移植性和灵活性。例如,以下是一个基于 VexRiscv-SMP CPU、LiteDRAM、LiteSATA 构建并集成到 LiteX 中、在廉价改造的 [Acorn CLE215+ 挖矿板](https://github.com/enjoy-digital/litex/wiki/Use-LiteX-on-the-Acorn-CLE-215) 上运行 Linux 的多核 Linux 能力 SoC:

更多信息请参考 [Linux-on-LiteX-Vexriscv](https://github.com/litex-hub/linux-on-litex-vexriscv) 项目,并尝试在您的 FPGA 板上运行 Linux!
LiteX 的数字逻辑目前使用 [Migen](https://github.com/m-labs/migen) 描述,这并不妨碍用户创建混合语言项目:
- 在 LiteX 中集成 VHDL/Verilog/SystemVerilog/nMigen/Spinal-HDL 代码非常常见且简单!
- 同样常见的是将 LiteX 设计生成为 Verilog 文件并集成到传统流程中。
LiteX 最初由 [Enjoy-Digital](http://enjoy-digital.fr/) 开发,用于为客户创建项目(我们仍在为此使用),并尝试考虑不同客户的需求/需求,我们认为该框架非常灵活:
- 有些用户只想用它来轻松连接他们现有的 VHDL/Verilog/SV 核心。
- 有些用户只对重用 PCIe/以太网/SATA 等核心感兴趣,并仅将它们集成到传统流程中。
- 有些具有硬件背景的用户从上述方法开始,随后切换到完整的 Python 流程,因为他们发现这样更高效。
- 有些具有软件背景且熟悉 Python 的用户,在接触 FPGA 之前就开始探索它 :)
- 等等…
我们深知每个人的背景都不同,因此由您选择适合您的 LiteX 方法!
为了开始,我们鼓励您阅读 [Wiki](https://github.com/enjoy-digital/litex/wiki)。
您已经有 FPGA 板了吗?请访问 [LiteX-Boards](https://github.com/litex-hub/litex-boards) 查看您的板子是否已得到支持!
该框架还远未完善,我们很乐意收到您的 [反馈和/或贡献](https://github.com/enjoy-digital/litex/wiki/Feedback-Contribution-Support)。
玩得开心!:wink:
我们以宽松的 BSD 2-Clause 许可证分享此项目,灵感来自我们出色的社区和支持客户。如果 LiteX 对您的研究、爱好或商业项目有益,我们恳请您给予积极的合作并尊重所付出的努力。
感谢您帮助改进 LiteX 并成为我们社区的一员!
# 典型的 LiteX 设计流程:
```
+---------------+
|FPGA toolchains|
+----^-----+----+
| |
+--+-----v--+
+-------+ | |
| Migen +--------> |
+-------+ | | Your design
| LiteX +---> ready to be used!
| |
+----------------------+ | |
|LiteX Cores Ecosystem +--> |
+----------------------+ +-^-------^-+
(Eth, SATA, DRAM, USB, | |
PCIe, Video, etc...) + +
board target
file file
```
LiteX 已经支持多种软核 CPU:VexRiscv、Rocket、LM32、Mor1kx、PicoRV32、BlackParrot,并且与 LiteX 的核心生态系统兼容:
| 名称 | 构建状态 | 描述 |
| ------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------- | ------------------------- |
| [LiteX-Boards](http://github.com/litex-hub/litex-boards) | [](https://github.com/litex-hub/litex-boards/actions) | 板卡支持 |
| [LiteDRAM](http://github.com/enjoy-digital/litedram) | [](https://github.com/enjoy-digital/litedram/actions) | DRAM |
| [LiteEth](http://github.com/enjoy-digital/liteeth) | [](https://github.com/enjoy-digital/liteeth/actions) | 以太网 |
| [LitePCIe](http://github.com/enjoy-digital/litepcie) | [](https://github.com/enjoy-digital/litepcie/actions) | PCIe |
| [LiteSATA](http://github.com/enjoy-digital/litesata) | [](https://github.com/enjoy-digital/litesata/actions) | SATA |
| [LiteSDCard](http://github.com/enjoy-digital/litesdcard) | [](https://github.com/enjoy-digital/litesdcard/actions) | SD 卡 |
| [LiteICLink](http://github.com/enjoy-digital/liteiclink) | [](https://github.com/enjoy-digital/liteiclink/actions) | 芯片间通信 |
| [LiteJESD204B](http://github.com/enjoy-digital/litejesd204b) | [](https://github.com/enjoy-digital/litejesd204b/actions) | JESD204B |
| [LiteSPI](http://github.com/litex-hub/litespi) | [](https://github.com/litex-hub/litespi/actions) | SPI/SPI-Flash |
| [LiteScope](http://github.com/enjoy-digital/litescope) | [](https://github.com/enjoy-digital/litescope/actions) | 逻辑分析仪 |
# 使用 LiteX 构建的设计示例:
基于 LitePCIe 和 LiteX 构建的定制 PCIe SDI 采集/回放板,实现对 SDI 流的完全控制和极低延迟。

适用于 SDS1104X-E 示波器的替代固件/门级配置:

Forest Kitten 33 上的 HBM2 测试基础设施:

要了解更多使用 LiteX 构建的产品/项目,请访问 Wiki 上的 [项目页面](https://github.com/enjoy-digital/litex/wiki/Projects)。
# 赞助商/合作伙伴:
向为我们提供了将最初为客户创建的某些开发直接整合到 LiteX 中的优秀工业客户致以巨大的感谢!这些创新的开发通常为更广泛的社区提供了构建模块,以便他们可以使用和改进这些功能。您的支持对项目至关重要,我们非常感激您的合作。感谢您!

# 论文、演示、教程、链接
**FPGA 课程/教程:**
- https://github.com/enjoy-digital/fpga_101
**Migen 教程:**
- https://m-labs.hk/migen/manual
**OSDA 2019 论文/幻灯片:**
- https://osda.gitlab.io/19/1.1.pdf
- https://osda.gitlab.io/19/1.1-slides.pdf
**Linux on LiteX-Vexriscv:**
- https://github.com/litex-hub/linux-on-litex-vexriscv
**RISC-V 入门指南:**
- https://risc-v-getting-started-guide.readthedocs.io/en/latest/
**LiteX 与 Vivado 初次接触:**
- https://www.bunniestudios.com/blog/?p=5018
**35C3 - Snakes and Rabbits - CCC 如何塑造一个开源硬件的成功:**
- https://www.youtube.com/watch?v=AlmVxR0417c
**Tim 的项目太多 - LatchUp 版本:**
https://www.youtube.com/watch?v=v7WrTmexod0
# 子包
**litex.gen**
提供用于生成 HDL 的特定或实验性模块,这些模块未集成在 Migen 中。
**litex.build:**
提供用于构建 FPGA 位流(与供应商工具链的接口)以及模拟 HDL 代码或完整 SoC 的工具。
**litex.soc:**
提供用于构建核心(总线、库、流程)的定义/模块,以及用于从这些核心构建 SoC 的核心和工具。
# 快速入门指南
1. 安装 Python 3.6+ 和 FPGA 供应商的开发工具以及/或 [Verilator](http://www.veripool.org/)。
2. 安装 Migen/LiteX 和 LiteX 的核心:
```
$ wget https://raw.githubusercontent.com/enjoy-digital/litex/master/litex_setup.py
$ chmod +x litex_setup.py
$ ./litex_setup.py --init --install --user (--user to install to user directory) --config=(minimal, standard, full)
```
稍后,如果需要更新所有仓库:
```
$ ./litex_setup.py --update
```
3. 安装 RISC-V 工具链(仅当您想测试/创建带有 CPU 的 SoC 时需要):
```
$ pip3 install meson ninja
$ ./litex_setup.py --gcc=riscv
```
4. 构建目标板:
进入 litex-boards/litex_boards/targets 并执行您想要构建的目标。
5. ... 和/或安装 [Verilator](http://www.veripool.org/) 并在计算机上直接测试 LiteX,无需任何 FPGA 板:
在 Linux(Ubuntu)上:
```
$ sudo apt install libevent-dev libjson-c-dev verilator
$ litex_sim --cpu-type=vexriscv
```
在 macOS 上:
```
$ brew install json-c verilator libevent
$ brew cask install tuntap
$ litex_sim --cpu-type=vexriscv
```
6. 在板的串口上运行终端程序,波特率为 115200,8-N-1。
您应该会看到如下所示的 BIOS 提示符。

# 社区

多年来,一个友好的社区围绕 LiteX 和核心生态系统不断发展。反馈和贡献已经极大地改进了该项目,EnjoyDigital 仍然主导开发,但现在它是一个社区项目,围绕/与 LiteX 创建的协作项目可以在 https://github.com/litex-hub 找到。
# 联系方式
电子邮件:florent@enjoy-digital.fr
标签:Avalon, AXI, BSD 许可, CI, debug, Discord, FPGA, FPGA SoC 框架, JTAG, LiteDRAM, LiteEth, LitePCIe, LiteSATA, LM32, Migen, OpenRISC, PCIe, RAM, RISC-V, ROM, SoC, SpinalHDL, Timer, UART, Verilog, VHDL, Wishbone, X86, Zynq, 客户端加密, 嵌入式系统, 开源硬件, 快速入门, 数字设计, 文档, 硬件加速, 硬件开发, 硬件构建, 系统构建, 调试, 逆向工具