【LiteX】使用Python实现FPGA SoC构建的开源工具-LiteX社区-FPGA CPLD-ChipDebug

【LiteX】使用Python实现FPGA SoC构建的开源工具

简介

LiteX的主要应用是对FPGA SoC进行自动化构建,可以通过一条指令完成所有构建步骤,使用的是Python脚本

在构建过程中会作做很多事情:

调用各种子模块
将各个模块互联,形成一个整体的SoC
每个模块都被封装成Python Class,像搭积木一样将所有模块连接起来
对于已有的Verilog IP,将其接口封装成Python Class,即可进行使用
生成BIOS(当SoC中包含CPU时)
BIOS本身是一个CPU运行的程序
集成了模块初始化驱动(如SDRAM、SPI Flash、SD Card等模块)
集成了命令行(可以实现内存读写、模块配置、设备重启等功能)
集成了Bootloader功能(借助串口、网口、PCIe等实现二阶段启动)
同步生成寄存器表或设备树等文件(以供其他调试工具、操作系统使用)
生成Verilog、约束文件
借助Migen工具,将Python代码转换成Verilog代码
将BIOS固件初始化到指定的RAM/ROM中
将Python中所有的约束进行整合并生成约束文件(包括IO管脚配置、时钟频率等)
综合、布局、布线
可以调用FPGA厂商的Vivado、Quartus等
可以调用开源的yosys、nextpnr等
生成FPGA bitstream
构建完成后,可以直接进行上板测试,会用到LiteX提供的一些调试工具(跳转查看工具介绍TODO):

litex_term
litex_server
litex_cli
litexscope_cli

典型设计流程

+---------------+
                                      |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

20250621202345343-image

LiteX生态

20250621202427269-image

环境安装

操作系统

推荐使用Ubuntu,原因(踩过的坑):

相比Windows下MinGW环境下的编译集成工具,Linux系统中运行速度会快很多
Windows版本LiteX脚本有概率将安装过的Vivado软件破坏,导致Vivado无法使用(原因未知)
LiteX的一些工具、脚本无法在Windows中运行(有的根本无法运行,有的库依赖较多)

Anaconda3

推荐使用conda虚拟环境,原因:

Ubuntu默认版本的一些软件、工具和库无法满足要求或有冲突
便于环境的分发
LiteX git仓库的submodule过多且更新频繁,偶尔会出现版本不匹配导致的Bug,自身也有可能多个项目使用不同版本的LiteX

依赖库

# 进入虚拟环境
conda activate <your conda env name>

# 编译工具
pip install meson ninja

litex_setup

LiteX提供了脚本,下载后直接运行即可实现LiteX开发环境的快速构建

cd <you work path>
mkdir litex_env
cd litex_env
wget https://raw.githubusercontent.com/enjoy-digital/litex/master/litex_setup.py
chmod +x litex_setup.py
./litex_setup.py --init --install --user --dev --tag 2024.04

仿真测试

TODO:跳转

硬件测试

TODO:跳转

常用工具

20250621203233337-image

 

请登录后发表评论

    没有回复内容