QuartusFlow

编译流是Altera定义的命令序列,这些命令使用命令行可执行文件的组合。完整的编译流会按顺序启动所有的编译器模块,进行综合、拟合、最终时序分析,并生成设备编程文件。

此文件 中的工具会帮助您消除冗余的Quartus GUI。

对于单个rtl文件

对象 spinal.lib.eda.altera.QuartusFlow 可以自动报告单个rtl文件的使用面积和最大频率。

示例

val report = QuartusFlow(
   quartusPath="/eda/intelFPGA_lite/17.0/quartus/bin/",
   workspacePath="/home/spinalvm/tmp",
   toplevelPath="TopLevel.vhd",
   family="Cyclone V",
   device="5CSEMA5F31C6",
   frequencyTarget = 1 MHz
)
println(report)

上面的代码将使用 TopLevel.vhd 创建一个新的 Quartus 项目。

警告

此操作将删除文件夹 workspacePath

备注

familydevice 值作为参数直接传递到Quartus CLI。请检查Quartus文档以确定在您的项目中使用的正确值。

小贴士

为了测试具有太多引脚的组件,请将它们设置为 VIRTUAL_PIN

val miaou: Vec[Flow[Bool]] = Vec(master(Flow(Bool())), 666)
miaou.addAttribute("altera_attribute", "-name VIRTUAL_PIN ON")

对于一个现有项目

spinal.lib.eda.altera.QuartusProject 可以自动查找现有项目中的配置文件。它们用于对设备进行编译和编程。

示例

指定包含项目文件的路径,例如 .qpf.cdf

val prj = new QuartusProject(
   quartusPath = "F:/intelFPGA_lite/20.1/quartus/bin64/",
   workspacePath = "G:/"
)
prj.compile()
prj.program()  // automatically find Chain Description File of the project

重要

请记住在调用 prj.program() 之前保存项目的 .cdf 文件。