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

FPGA|Quartus II 中使用TCL文件进行引脚一键分配

  在FPGA设计过程中,合理的引脚分配是确保硬件功能正确实现的关键步骤之一。Quartus II 提供了通过 TCL(Tool Command Language)脚本自动化引脚分配的功能,这不仅可以大大提高设计效率,还能够确保引脚分配的精确性和可重复性。本文将详细介绍如何在 Quartus II 中使用 TCL 文件进行引脚一键分配,提高设计流程的自动化程度。

1 导出tcl文件

1.1 查看要导出的引脚

在这里插入图片描述

如下图所示,导出的引脚为下图所示的引脚:
在这里插入图片描述

1.2 导出tcl文件步骤

在这里插入图片描述
这里选择tcl保存位置:
在这里插入图片描述
在这里插入图片描述
导出成功应该是这样的:
在这里插入图片描述
其实我们只需要自己需要的配置文件就可以了,比如只取set_location_assignment和set_instance_assignment:

	set_location_assignment PIN_P3 -to EnPrintset_location_assignment PIN_L7 -to PowerOnset_location_assignment PIN_E1 -to in_clkset_location_assignment PIN_M16 -to in_rstset_location_assignment PIN_D3 -to inkjet_A1set_location_assignment PIN_D1 -to inkjet_A2set_location_assignment PIN_F5 -to inkjet_A3set_location_assignment PIN_G2 -to inkjet_A4set_location_assignment PIN_F3 -to inkjet_A5set_location_assignment PIN_J6 -to inkjet_A6set_location_assignment PIN_L4 -to inkjet_A7set_location_assignment PIN_C2 -to inkjet_CEset_location_assignment PIN_D5 -to inkjet_CKset_location_assignment PIN_J1 -to inkjet_D1set_location_assignment PIN_K1 -to inkjet_D2set_location_assignment PIN_L1 -to inkjet_D3set_location_assignment PIN_P2 -to inkjet_D4set_location_assignment PIN_K2 -to inkjet_S1set_location_assignment PIN_L2 -to inkjet_S2set_location_assignment PIN_N2 -to inkjet_S3set_location_assignment PIN_R1 -to inkjet_S4set_location_assignment PIN_C3 -to inkjet_SHset_location_assignment PIN_G1 -to inkjet_VLset_location_assignment PIN_G5 -to inkjet_VPCset_location_assignment PIN_K6 -to inkjet_VPKset_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to EnPrintset_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to PowerOnset_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to in_clkset_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to in_rstset_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to inkjet_A1set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to inkjet_A2set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to inkjet_A3set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to inkjet_A4set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to inkjet_A5set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to inkjet_A6set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to inkjet_A7set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to inkjet_CEset_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to inkjet_CKset_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to inkjet_D1set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to inkjet_D2set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to inkjet_D3set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to inkjet_D4set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to inkjet_S1set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to inkjet_S2set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to inkjet_S3set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to inkjet_S4set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to inkjet_SHset_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to inkjet_VLset_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to inkjet_VPCset_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to inkjet_VPKset_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to temp_clk

1.3 tcl语法介绍

  • set_location_assignment
    功能:该命令用于将特定的逻辑元素(如FPGA中的输入/输出引脚、存储器块等)分配到特定的物理位置(引脚、块)上。
    语法:
    set_location_assignment location -to instance
    location: 指定要分配的物理位置(例如,具体的引脚编号)。
    instance: 指定要进行位置分配的设计实例或信号。
    用途:通常用于在FPGA设计中强制特定的模块或引脚占用特定的硬件位置,确保信号的正确路由和时序要求。通过合理的引脚分配,可以减少信号延迟和电路拥塞。

  • set_instance_assignment
    功能:该命令用于设置特定实例的属性或约束,可能包括配置信息、实现方式或特定的制造工艺选择。
    语法:
    set_instance_assignment property value -to instance
    property: 指定要设置的属性,例如速度等级、功耗模式等。
    value: 给定属性的值,例如可以是“FAST”或“SLOW”等。
    instance: 指定要更改属性的设计实例。

2 导入tcl文件

2.1 将tcl文件添加到项目里

这里右键添加tcl文件到项目里面
在这里插入图片描述
在这里插入图片描述
这里选择tcl所在位置
在这里插入图片描述
在这里插入图片描述
这里一定要选add,不然添加不进去。
在这里插入图片描述

2.2 运行tcl文件

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这里就表示已经将tcl文件设置完成,可以直接查看:
在这里插入图片描述

总结

  在FPGA设计过程中,合理的引脚分配至关重要,它确保了硬件功能的正确实现。使用TCL脚本进行引脚分配不仅节省了手动配置的时间,还减少了人为错误的风险,使得设计流程更加流畅。通过设置具体的引脚位置和实例属性,可以快速实现符合设计需求的配置。组合set_location_assignment和set_instance_assignment等命令,我可以有条不紊地管理引脚和实例,确保逻辑与物理的有效匹配。

http://www.xdnf.cn/news/19354.html

相关文章:

  • 深入理解零拷贝:本地IO与网络IO的性能优化利器
  • Docker基本介绍
  • MySQL 慢查询 debug:索引没生效的三重陷阱
  • 深度学习框架与工具使用心得:从入门到实战优化
  • 动作指令活体检测通过动态交互验证真实活人,保障安全
  • 数字后端tap cell:新老工艺tap cell区别
  • 软考中级数据库系统工程师学习专篇(67、数据库恢复)
  • Linux网络socket套接字(中)
  • AI人工智能大模型应用如何落地
  • DriveDreamer-2
  • C++ 模板全览:从“非特化”到“全特化 / 偏特化”的完整原理与区别
  • CUDA与图形API的深度互操作:解锁GPU硬件接口的真正潜力
  • Linux 系统都有哪些
  • Playwright Python 教程:实战篇
  • docker中的命令(四)
  • Coze源码分析-工作空间-项目开发-前端源码
  • 如何重置SVN被保存的用户名和密码
  • 【pve】
  • 轻量化注意力+脉冲机制,Transformer在低功耗AI中再度进化
  • 吴恩达机器学习作业十 PCA主成分分析
  • 基于单片机智能大棚/温室大棚/智慧农业/智能栽培种植系统/温湿度控制
  • LeetCode 37.解数独
  • k8s三阶段项目
  • 狂神说--Nginx--通俗易懂
  • 线程池八股文
  • 从零开始写个deer-flow-mvp-第一天
  • 拆分TypeScript项目的学习收获:处理编译缓存和包缓存,引用本地项目,使用相对路径
  • 粗糙表面接触模型MATLAB代码
  • 多租户配额与预算:限额、配额周期与突发桶的结算模型(Final)
  • 【机械故障】使用扭矩计算物体重量