当前位置: 首页 > news >正文

使用TCL脚本快速创建Quartus工程

在刚开始学习FPGA的时候,使用Quartus Prime的GUI界面创建工程是一个再平常不过的事儿,但是随着项目的增多,有很多项目可能会用到之前项目的代码,如果用GUI界面添加代码也可以,但是总觉得这种方法效率太低(点击New Project Wizard->选择工程目录,输入工程名,顶层文件名->添加工程代码及所需的IP文件->选择器件型号->管脚约束……)。

后面在网上找相关的更高效的方法,最终找到了一种使用TCL脚本快速创建Quartus工程的方法,这里直接贴TCL脚本的一个示例:

点击查看代码
# 创建工程
project_new -revision TGLV26 -overwrite TGLV26# 添加源码文件# 顶层文件
set_global_assignment -name VERILOG_FILE ../src/TGTop.v
# a文件夹
set_global_assignment -name VERILOG_FILE ../src/a/xxx.v
set_global_assignment -name VERILOG_FILE ../src/a/xxx.v
set_global_assignment -name VERILOG_FILE ../src/a/xxx.v
set_global_assignment -name VERILOG_FILE ../src/a/xxx.v
set_global_assignment -name VERILOG_FILE ../src/a/xxx.v
set_global_assignment -name VERILOG_FILE ../src/a/xxx.v
set_global_assignment -name VERILOG_FILE ../src/a/xxx.v
set_global_assignment -name VERILOG_FILE ../src/a/xxx.v
set_global_assignment -name VERILOG_FILE ../src/a/xxx.v
# b文件夹
set_global_assignment -name VERILOG_FILE ../src/b/xxx.v
set_global_assignment -name VERILOG_FILE ../src/b/xxx.v
set_global_assignment -name VERILOG_FILE ../src/b/xxx.v
set_global_assignment -name VERILOG_FILE ../src/b/xxx.v
set_global_assignment -name VERILOG_FILE ../src/b/xxx.v
set_global_assignment -name VERILOG_FILE ../src/b/xxx.v
set_global_assignment -name VERILOG_FILE ../src/b/xxx.v
set_global_assignment -name VERILOG_FILE ../src/b/xxx.v
set_global_assignment -name VERILOG_FILE ../src/b/xxx.v
# Position文件夹
set_global_assignment -name VERILOG_FILE ../src/c/xxx.v
set_global_assignment -name VERILOG_FILE ../src/c/xxx.v
set_global_assignment -name VERILOG_FILE ../src/c/xxx.v
set_global_assignment -name VERILOG_FILE ../src/c/xxx.v
set_global_assignment -name VERILOG_FILE ../src/c/xxx.v
set_global_assignment -name VERILOG_FILE ../src/c/xxx.v
set_global_assignment -name VERILOG_FILE ../src/c/xxx.v
set_global_assignment -name VERILOG_FILE ../src/c/xxx.v
set_global_assignment -name VERILOG_FILE ../src/c/xxx.v
set_global_assignment -name VERILOG_FILE ../src/c/xxx.v
set_global_assignment -name VERILOG_FILE ../src/c/xxx.v
set_global_assignment -name VERILOG_FILE ../src/c/xxx.v
set_global_assignment -name VERILOG_FILE ../src/c/xxx.v
set_global_assignment -name VERILOG_FILE ../src/c/xxx.v
# TransportCtr文件夹
set_global_assignment -name VERILOG_FILE ../src/d/xxx.v
set_global_assignment -name VERILOG_FILE ../src/d/xxx.v
set_global_assignment -name VERILOG_FILE ../src/d/xxx.v
set_global_assignment -name VERILOG_FILE ../src/d/xxx.v
set_global_assignment -name VERILOG_FILE ../src/d/xxx.v
set_global_assignment -name VERILOG_FILE ../src/d/xxx.v
set_global_assignment -name QXP_FILE ../src/d/xxx.qxp
set_global_assignment -name VERILOG_FILE ../src/d/xxx.v
set_global_assignment -name VERILOG_FILE ../src/d/xxx.v# 添加IP核
set_global_assignment -name QSYS_FILE ../ip/xxx.qsys
set_global_assignment -name QIP_FILE ../ip/RAM/xxx.qip
set_global_assignment -name QIP_FILE ../ip/ID/xxx.qip
set_global_assignment -name QIP_FILE ../ip/PLL/xxx.qip
set_global_assignment -name QSYS_FILE ../ip/DUALBOOT/xxx.qsys
# 头文件
set_global_assignment -name SOURCE_FILE ../src/xxx.h
set_global_assignment -name SOURCE_FILE ../src/xxx.h# 添加时序约束文件
set_global_assignment -name SDC_FILE ../src/xxx.sdc# TCL脚本
set_global_assignment -name TCL_SCRIPT_FILE ../src/xxx.tcl
set_global_assignment -name TCL_SCRIPT_FILE ../src/xxx.tcl
set_global_assignment -name TCL_SCRIPT_FILE ../src/xxx.tcl# 设置工程的顶层模块
set_global_assignment -name TOP_LEVEL_ENTITY TGTop
#------------------GLOBAL--------------------#
set_global_assignment -name FAMILY "MAX 10"
set_global_assignment -name DEVICE 10M16SAU169I7G
set_global_assignment -name EXTERNAL_FLASH_FALLBACK_ADDRESS 00000000
set_global_assignment -name USE_CONFIGURATION_DEVICE OFF
set_global_assignment -name INTERNAL_FLASH_UPDATE_MODE "DUAL IMAGES"
set_global_assignment -name FLOW_ENABLE_POWER_ANALYZER ON# 输出bitstream文件夹
set_global_assignment -name PROJECT_OUTPUT_DIRECTORY output_files
set_global_assignment -name VERILOG_INPUT_VERSION SYSTEMVERILOG_2005
# 设置seed值
set_global_assignment -name SEED 7
# 预处理脚本
set_global_assignment -name PRE_FLOW_SCRIPT_FILE "quartus_sh:../src/VersionGen.tcl"
# 后处理脚本
set_global_assignment -name POST_FLOW_SCRIPT_FILE "quartus_sh:../src/BitstreamGen.tcl"
# 并行编译可使用的最大处理器数
set_global_assignment -name NUM_PARALLEL_PROCESSORS ALL#------------------ 引脚约束 --------------------#source "../src/xxx.tcl"#--------------------------------------------#
# 将所有约束写入qsf文件
export_assignments# 关闭工程
# project_close

只需创建一个工程文件夹,并在TCL脚本中描述所需的verilog源码文件和IP文件的路径,然后再打开quartus软件,并打开TCL Console窗口,在指令行中输入cd E:/Work/Project_Beta/TGTemp/prj(这里改为脚本所在文件路径),然后输入source xxx.tcl(xxx代表tcl脚本的文件名),即可快速创建工程,具体如下图:

微信图片_2025-10-13_194902_551-801x1024

http://www.hskmm.com/?act=detail&tid=31515

相关文章:

  • kv cache缓存
  • 为什么笔记本电脑突然变得很卡?固态硬盘突然变慢是什么原因?
  • 用 Uni-app 开发 C3 继续教育题库系统:静态资源导入、响应式交互与考试逻辑实现全解析
  • 2025年上海律师服务最新权威推荐榜:经侦律师,民事/刑事律师,经济/婚姻律师,法务律师,负债律师事务所专业解析
  • 2025 年永磁电机厂家推荐台州市台成机电,单相永磁电机,三相永磁电机,变频永磁电机,稀土永磁电机,直流永磁电机,无刷永磁电机,风机永磁电机,节能永磁电机,高效永磁电机公司推荐
  • 2025年实验室净化/手术室净化/洁净室工程厂家最新权威推荐榜:专业建设与无尘车间装修一站式解决方案
  • 深入理解 `itertools`:分类解析常用函数 (Effective Python 第36条) - 教程
  • linux配置环境变量
  • assert的基本用法
  • 1688代发铺货规格匹配设置
  • 2025年整平机厂家最新推荐排行榜,精密整平机,数控整平机,自动整平机,板材整平机源头厂家专业选购指南
  • task2
  • KiloCode 与 Claude Code 在长上下文文件写入操作中的稳定性差异深度解析
  • 2025年机械加工厂家最新权威推荐榜:钣金/焊接/零件/非标自动化/精密金属加工,专业定制与技术创新实力解析
  • 2025年10月15号随笔
  • Ubuntu20.04安装NVIDIA显卡驱动、CUDA Toolkit、cuDNN步骤(二) - 指南
  • java基础8-ArrayList
  • 两个用于从B站下载视频的Shell脚本
  • 2025年冲压件厂家最新权威推荐榜:新能源/光伏/精密/异形/五金/铝/汽配/不锈钢/家具冲压件源头厂商深度解析
  • P3800 Power 收集和单调队列优化dp小总结
  • 微信群机器人接口
  • 2025 年杭州品牌策划公司机构推荐榜:餐饮品牌策划/家电品牌策划聚焦实战力与适配性,这家杭州本土机构值得关注
  • 2025 年土工格栅厂家推荐榜:聚焦工程适配与品质保障,优选山东大成工程材料有限公司
  • 2025年液压阀块厂家最新权威推荐榜:液压阀/阀块加工/阀块零件机加工专业制造商,技术实力与市场口碑深度解析
  • logging模块用法
  • 软件服务行业,被玩坏了的阿米巴
  • 实用指南:WordPress提速指南:Memcached+Super Static Cache+CDN缓存网站内容
  • AI元人文中价值原语博弈系统的理论建构与实践意义探析
  • LGP3201 [HNOI 2009] 梦幻布丁 学习笔记
  • 2025年石头纸设备/吹塑机厂家最新权威推荐榜:环保石头纸、碳酸钙石头纸、固废石头纸及挤出吹塑机、注射吹塑机、半导体清洗液瓶子吹塑机专业选购指南