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
!
备注
family
和 device
值作为参数直接传递到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
文件。