尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

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

使用TCL脚本快速创建Quartus工程
📅 发布时间:2026/6/20 8:41:08

在刚开始学习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

相关新闻

  • 真家宽IP vs 数据中心IP:Cliproxy为何成为跨境电商首选? - 详解
  • 为什么笔记本电脑突然变得很卡?固态硬盘突然变慢是什么原因?
  • 用 Uni-app 开发 C3 继续教育题库系统:静态资源导入、响应式交互与考试逻辑实现全解析

最新新闻

  • 3步掌握终极Mac清理方案:彻底告别应用残留释放磁盘空间
  • 嵌入式GUI开发:SEGGER emWin 2D图形库核心技术与实战指南
  • 降AIGC平台红黑榜:实测3款热门工具,剖析实用程度与常见陷阱,文末附妙招
  • Sunshine游戏串流实用配置指南:7个高效解决方案与进阶技巧
  • M68HC08电机控制SDK:从硬件抽象到工业级代码的嵌入式开发实践
  • Qwen3 MOE架构与Reasoning RL技术解析及本地部署实战

日新闻

  • Visual C++运行库修复终极指南:5分钟快速解决Windows软件启动错误
  • 手把手教你构建统计局地区经济数据爬虫:从环境搭建到数据持久化全指南
  • 2026多Agent深度解析:用AI团队替代单一模型,四种架构实战落地

周新闻

  • Visual C++运行库修复终极指南:5分钟快速解决Windows软件启动错误
  • 手把手教你构建统计局地区经济数据爬虫:从环境搭建到数据持久化全指南
  • 2026多Agent深度解析:用AI团队替代单一模型,四种架构实战落地

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号