跳转到主要内容

用于构建基于FPGA系统的Python SoC/核心构建器。

项目描述

             Copyright 2012-2023 / Enjoy-Digital & LiteX developers

License

欢迎使用LiteX!

LiteX框架提供了一个方便且高效的架构,用于创建FPGA Core/SoC,探索各种数字设计架构,并创建基于FPGA的完整系统

LiteX SoC构建器框架快速游览/概述: 幻灯片

想要开始并/或寻找文档?请确保访问Wiki

有问题或想要联系?加入我们吧,在Discord或我们的IRC频道:[#litex at irc.libera.chat].

LiteX提供了创建FPGA Core/SoC所需的全部常见组件

  • :heavy_check_mark: 总线和流(Wishbone、AXI、Avalon-ST)及其互连。
  • :heavy_check_mark: 简单核心:RAM、ROM、定时器、UART、JTAG等...
  • :heavy_check_mark: 通过核心生态系统创建复杂核心:LiteDRAMLitePCIeLiteEthLiteSATA等...
  • :heavy_check_mark: 各种CPU & ISAs:RISC-V、OpenRISC、LM32、Zynq、X86(通过PCIe)等...
  • :heavy_check_mark: 支持多种语言与VHDL/Verilog/(n)Migen/Spinal-HDL等...集成。
  • :heavy_check_mark: 通过各种桥接器Litescope,提供了强大的调试基础设施。
  • :heavy_check_mark: 通过Verilator进行直接/快速仿真。
  • :heavy_check_mark: 为开源和供应商的工具链构建后端。
  • :heavy_check_mark: 以及更多... :)

通过将LiteX与核心生态系统相结合,与传统的做法相比,创建复杂的SoC变得容易得多,同时提供更好的可移植性和灵活性:例如,这是一个基于VexRiscv-SMP CPU、LiteDRAM、LiteSATA的、由LiteX构建和集成的多核Linux Capable SoC,运行在廉价的Acorn CLE215+ Mining Board上: 更多信息,请查看Linux-on-LiteX-Vexriscv项目,并尝试在您的FPGA板上运行Linux!

目前,LiteX的数字逻辑使用Migen进行描述,这并不阻止用户创建混合语言项目。

  • 在LiteX中集成VHDL/Verilog/SystemVerilog/nMigen/Spinal-HDL代码非常普遍且简单。
  • 也很常见,反过来将LiteX设计作为verilog文件生成,并将其集成到传统的流程中。

LiteX最初由Enjoy-Digital开发,用于为客户创建项目(并且我们仍在为此目的使用它 :))。考虑到不同客户的需求/需求,我们认为该框架非常灵活。

  • 一些用户只想用它轻松连接他们现有的VHDL/Verilog/SV核心。
  • 一些用户只对重新使用PCIe/Ethernet/SATA等核心作为常规核心,并将其集成到他们的传统流程中感兴趣。
  • 一些具有硬件背景的用户从上述方法开始,然后稍后切换到完整的Python流程,因为觉得它更有效。
  • 一些具有软件背景并且精通Python的用户在接触FPGA时开始玩,否则他们可能永远不会接触FPGA :)
  • 等等...

我们深知每个人都有不同的背景,所以选择适合您的LiteX方法由您自己决定!

要开始,我们鼓励您阅读wiki

您已经有了FPGA板吗?访问LiteX-Boards查看您的板是否已受支持!

该框架也远非完美,我们很乐意接受您的反馈或/和贡献

祝您玩得开心! :wink

道德上的精确性:该项目以BSD 2-Clause许可证共享,我们鼓励继续以这种方式共享,多亏了出色的社区和愿意支持项目的客户!如果该项目对您的研究、爱好或商业项目有用,我们只是要求您保持一致并行为端正:不要期待免费支持或社区会欢迎那些在项目上抱怨(然后不尊重开发者)或未支付您要求的定制开发的人...(虽然这可能对99%的用户/客户来说是自然的,但似乎有必要为剩余的1%添加这一点,他们消耗了我们大量的精力和时间)。

典型的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 板支持
LiteDRAM DRAM
LiteEth 以太网
LitePCIe PCIe
LiteSATA SATA
LiteSDCard SD卡
LiteICLink 片间通信
LiteJESD204B JESD204B
LiteSPI SPI/SPI-Flash
LiteScope 逻辑分析仪

使用LiteX构建的设计示例

基于LitePCIe和集成LiteX的自定义PCIe SDI捕获/回放板,允许完全控制SDI流和极低延迟。为SDS1104X-E示波器提供的替代固件/门控软件:输入图片描述在Forest Kitten 33上的HBM2测试基础设施:输入图片描述

要发现更多使用LiteX构建的产品/项目,请访问Wiki上的项目页面

赞助商/合作伙伴

向我们的出色工业客户提供大力支持,他们允许我们将最初为他们创建的一些发展直接集成到LiteX中!这些创新的发展往往为更广泛社区使用的功能提供构建块。您的支持对该项目至关重要,我们非常感谢您的合作。谢谢!

论文、演讲、教程、链接

FPGA课程/教程

Migen教程

OSDA 2019论文/幻灯片

LiteX-Vexriscv上的Linux

RISC-V入门指南

LiteX与Vivado第一印象

35C3 - 蛇和兔子 - 如何CCC塑造了一个开源硬件的成功

Tim的项目太多 - LatchUp版本: https://www.youtube.com/watch?v=v7WrTmexod0

子包

litex.gen提供特定或实验性模块,用于生成Migen中未集成的HDL。

litex.build提供构建FPGA位流(接口到供应商工具链)和模拟HDL代码或全SoC的工具。

litex.soc提供构建核心(总线、存储器、流)的定义/模块,以及构建SoC的核心和工具。

快速入门指南

  1. 安装Python 3.6+和FPGA供应商的开发工具和/或Verilator
  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

注意:在MacOS上,请确保您已安装HomeBrew。然后执行,brew install wget

注意:在Windows上,您可能需要将SHELL环境变量设置为SHELL=cmd.exe

  1. 安装RISC-V工具链(如果您想测试/创建带有CPU的SoC)
$ pip3 install meson ninja
$ ./litex_setup.py --gcc=riscv
  1. 构建您的板卡的目标...

转到litex-boards/litex_boards/targets并执行您想要构建的目标。

  1. ...以及/或者安装Verilator,直接在您的计算机上测试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
  1. 在115200 8-N-1下运行板卡的串行端口终端程序。

您应该会得到以下BIOS提示。

社区

多年来,围绕LiteX和核心生态系统已经形成了一个友好的社区。反馈和贡献已经极大地提升了项目,EnjoyDigital仍然领导着开发,但现在它是一个社区项目,围绕/与LiteX创建的协作项目可以在https://github.com/litex-hub找到。

联系方式

电子邮件:florent@enjoy-digital.fr

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分布

litex-2023.12.tar.gz (2.7 MB 查看哈希值)

上传时间:

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面