一、什么是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的官方库中不存在自己的板卡型号,则需要手动编写新的文件;
LiteX库包含了三个子包:
-
litex.gen:提供了Python库Migen中没有集成的、某些特定的或实验性质的HDL模块;
-
litex.build:提供了编译生成Bitstream、仿真HDL代码的工具;实际上是调用了第三方EDA工具;
-
litex.soc:提供了基础模块和相关工具以构建SoC,即上述的LiteDRAM等模块;
三、LiteX的安装
LiteX的安装教程可点击文章末尾的原文链接查看,如下图所示,这里仅给出几点注意事项:
-
需要自行安装Vivado或Quartus等EDA工具,并且在终端中能启动该工具;
-
我安装选择了full配置,不清楚配置之前的区别;
-
RISC-V编译器最好安装一下,LiteX支持的很多CPU都是RISC-V的;
没有回复内容