使用LiteX快速创建FPGA SoC工程(1)-LiteX社区-FPGA CPLD-ChipDebug

使用LiteX快速创建FPGA SoC工程(1)

一、什么是LiteX

LiteX是一个基于Python的、用于快速创建FPGA工程的框架。LiteX提供了以下常见的组件:

  • 总线和总线之间的转换互联(WishBone, AXI, Avalon-ST等);

  • 简单的常用的模块:RAM、ROM、Timer、UART、JTAG等;

  • 复杂的常用的模块:LiteDRAM、LitePCIe、LiteEth、LiteSATA等;

  • 各种类型的CPU:OpenRISC、LM32、Zynq、X86(通过PCIe访问)等;

  • 支持几种硬件描述语言的混合使用:VHDL、Verilog、Migen、Spinal-HDL等;其中Migen是LiteX使用的硬件描述语言;

  • 提供了各种桥接器和Litescope等debug基础设施;

  • 可以使用Verilator直接仿真;

  • ……

二、典型的LiteX的设计流程

这里贴一张来自官方的图,可以看到要创建一个可用的FPGA工程,通常可能包含以下组件:

  • FPGA toolchains:即Vivado等FPGA厂商提供的EDA工具;为了保持与传统工作流程兼容,LiteX最终输出的其实是Verilog等标准硬件描述语言文件

  • Migen:使用Python版本的硬件描述语言Migen编写的模块;

  • LiteX Cores Ecosystem:LiteX提供的与各种CPU兼容的核心模块;可以直接调用;

  • board file和target file:针对具体的板卡所编写的、描述该板卡的详细信息的文件,包含了板卡上各种组件及这些组件对应的引脚约束等,通常也为Python文件;如果LiteX的官方库中不存在自己的板卡型号,则需要手动编写新的文件

图片[1]-使用LiteX快速创建FPGA SoC工程(1)-LiteX社区-FPGA CPLD-ChipDebug

LiteX库包含了三个子包:

  1. litex.gen:提供了Python库Migen中没有集成的、某些特定的或实验性质的HDL模块;

  2. litex.build:提供了编译生成Bitstream、仿真HDL代码的工具;实际上是调用了第三方EDA工具;

  3. litex.soc:提供了基础模块和相关工具以构建SoC,即上述的LiteDRAM等模块;

三、LiteX的安装

LiteX的安装教程可点击文章末尾的原文链接查看,如下图所示,这里仅给出几点注意事项:

  • 需要自行安装Vivado或Quartus等EDA工具,并且在终端中能启动该工具;

  • 我安装选择了full配置,不清楚配置之前的区别;

  • RISC-V编译器最好安装一下,LiteX支持的很多CPU都是RISC-V的;

图片[2]-使用LiteX快速创建FPGA SoC工程(1)-LiteX社区-FPGA CPLD-ChipDebug

请登录后发表评论

    没有回复内容