ports软件包删除工具pkg_cutleaves

本文介绍了一个有用的FreeBSD工具——pkg_cutleaves,它可以帮助用户清理系统中不再需要的软件包,通过列出所有未被依赖的软件包来实现系统瘦身。
FreeBSD
用pkg_cutleaves会列出所有不被依赖的软件包,是一个很好的系统多余软件包删除工具。
set_property PACKAGE_PIN V4 [get_ports {led_tri_o[0]}] set_property IOSTANDARD LVCMOS33 [get_ports {led_tri_o[0]}] set_property PACKAGE_PIN U6 [get_ports {led_tri_o[1]}] set_property IOSTANDARD LVCMOS33 [get_ports {led_tri_o[1]}] set_property PACKAGE_PIN U5 [get_ports {led_tri_o[2]}] set_property IOSTANDARD LVCMOS33 [get_ports {led_tri_o[2]}] set_property PACKAGE_PIN V7 [get_ports {led_tri_o[3]}] set_property IOSTANDARD LVCMOS33 [get_ports {led_tri_o[3]}] set_property PACKAGE_PIN W7 [get_ports {led_tri_o[4]}] set_property IOSTANDARD LVCMOS33 [get_ports {led_tri_o[4]}] set_property PACKAGE_PIN W6 [get_ports {led_tri_o[5]}] set_property IOSTANDARD LVCMOS33 [get_ports {led_tri_o[5]}] set_property PACKAGE_PIN W5 [get_ports {led_tri_o[6]}] set_property IOSTANDARD LVCMOS33 [get_ports {led_tri_o[6]}] set_property IOSTANDARD LVCMOS33 [get_ports {led_tri_o[7]}] set_property PACKAGE_PIN U7 [get_ports {led_tri_o[7]}] set_property PACKAGE_PIN AB6 [get_ports {sw_tri_i[0]}] set_property IOSTANDARD LVCMOS33 [get_ports {sw_tri_i[0]}] set_property PACKAGE_PIN Y4 [get_ports {sw_tri_i[1]}] set_property IOSTANDARD LVCMOS33 [get_ports {sw_tri_i[1]}] set_property PACKAGE_PIN AA4 [get_ports {sw_tri_i[2]}] set_property IOSTANDARD LVCMOS33 [get_ports {sw_tri_i[2]}] set_property PACKAGE_PIN R6 [get_ports {sw_tri_i[3]}] set_property IOSTANDARD LVCMOS33 [get_ports {sw_tri_i[3]}] set_property PACKAGE_PIN T6 [get_ports {sw_tri_i[4]}] set_property IOSTANDARD LVCMOS33 [get_ports {sw_tri_i[4]}] set_property PACKAGE_PIN T4 [get_ports {sw_tri_i[5]}] set_property IOSTANDARD LVCMOS33 [get_ports {sw_tri_i[5]}] set_property PACKAGE_PIN U4 [get_ports {sw_tri_i[6]}] set_property IOSTANDARD LVCMOS33 [get_ports {sw_tri_i[6]}] set_property PACKAGE_PIN V5 [get_ports {sw_tri_i[7]}] set_property IOSTANDARD LVCMOS33 [get_ports {sw_tri_i[7]}]所以这个要怎么改
09-25
# 代码分析与修改建议 ## 代码概述 你提供的是 Xilinx Vivado 工具中用于约束 FPGA 引脚分配和电平标准的 TCL 脚本。其目的是将设计中的输入输出端口(如 `sw_tri_i[7:0]` 和 `led_tri_o[7:0]`)绑定到具体的物理引脚并设置 I/O 标准。 当前脚本已基本正确配置所有 16 个端口,但存在一个关键问题:**大小写不一致导致端口匹配失败**。 --- ## 代码解析 观察你的原始报错信息: > Problem ports: SW_tri_i[7:0], LED_tri_o[7:0] 注意:报错中提到的端口名为 `SW_tri_i` 和 `LED_tri_o` —— 使用的是大写字母开头。 而你在 TCL 脚本中写的是: ```tcl [get_ports {sw_tri_i[0]}] ← 小写 sw_tri_i [get_ports {led_tri_o[0]}] ← 小写 led_tri_o ``` Vivado 中的 `get_ports` 命令默认是**区分大小写的**。如果你的顶层模块定义的端口是 `SW_tri_i`,但你在约束中查找 `sw_tri_i`,则无法找到对应端口,导致约束未生效,仍然报错。 --- ### ✅ 正确做法:统一端口名称大小写 你需要将脚本中的端口名改为与设计中完全一致的形式。假设你的 HDL 模块(Verilog/VHDL)中声明的是: ```verilog input wire [7:0] SW_tri_i, output wire [7:0] LED_tri_o ``` 那么在 XDC/TCL 约束中也应使用相同命名: ```tcl set_property PACKAGE_PIN AB6 [get_ports {SW_tri_i[0]}] set_property IOSTANDARD LVCMOS33 [get_ports {SW_tri_i[0]}] set_property PACKAGE_PIN Y4 [get_ports {SW_tri_i[1]}] set_property IOSTANDARD LVCMOS33 [get_ports {SW_tri_i[1]}] set_property PACKAGE_PIN AA4 [get_ports {SW_tri_i[2]}] set_property IOSTANDARD LVCMOS33 [get_ports {SW_tri_i[2]}] set_property PACKAGE_PIN R6 [get_ports {SW_tri_i[3]}] set_property IOSTANDARD LVCMOS33 [get_ports {SW_tri_i[3]}] set_property PACKAGE_PIN T6 [get_ports {SW_tri_i[4]}] set_property IOSTANDARD LVCMOS33 [get_ports {SW_tri_i[4]}] set_property PACKAGE_PIN T4 [get_ports {SW_tri_i[5]}] set_property IOSTANDARD LVCMOS33 [get_ports {SW_tri_i[5]}] set_property PACKAGE_PIN U4 [get_ports {SW_tri_i[6]}] set_property IOSTANDARD LVCMOS33 [get_ports {SW_tri_i[6]}] set_property PACKAGE_PIN V5 [get_ports {SW_tri_i[7]}] set_property IOSTANDARD LVCMOS33 [get_ports {SW_tri_i[7]}] set_property PACKAGE_PIN V4 [get_ports {LED_tri_o[0]}] set_property IOSTANDARD LVCMOS33 [get_ports {LED_tri_o[0]}] set_property PACKAGE_PIN U6 [get_ports {LED_tri_o[1]}] set_property IOSTANDARD LVCMOS33 [get_ports {LED_tri_o[1]}] set_property PACKAGE_PIN U5 [get_ports {LED_tri_o[2]}] set_property IOSTANDARD LVCMOS33 [get_ports {LED_tri_o[2]}] set_property PACKAGE_PIN V7 [get_ports {LED_tri_o[3]}] set_property IOSTANDARD LVCMOS33 [get_ports {LED_tri_o[3]}] set_property PACKAGE_PIN W7 [get_ports {LED_tri_o[4]}] set_property IOSTANDARD LVCMOS33 [get_ports {LED_tri_o[4]}] set_property PACKAGE_PIN W6 [get_ports {LED_tri_o[5]}] set_property IOSTANDARD LVCMOS33 [get_ports {LED_tri_o[5]}] set_property PACKAGE_PIN W5 [get_ports {LED_tri_o[6]}] set_property IOSTANDARD LVCMOS33 [get_ports {LED_tri_o[6]}] set_property PACKAGE_PIN U7 [get_ports {LED_tri_o[7]}] set_property IOSTANDARD LVCMOS33 [get_ports {LED_tri_o[7]}] ``` > 🔍 注意:所有端口名从 `sw_tri_i` / `led_tri_o` 改为 `SW_tri_i` / `LED_tri_o`(首字母大写)。 --- ### 💡 补充说明:关于 `LVCMOS33` 写法 - `LVCMOS33` 是合法写法,等价于 `LVCMOS3.3`(Vivado 自动识别)。 - 推荐使用标准格式 `LVCMOS3.3` 提高可读性: ```tcl set_property IOSTANDARD LVCMOS3.3 [get_ports {SW_tri_i[0]}] ``` --- ## 知识点(列出该代码中遇到的知识点) 1. **TCL 脚本中的大小写敏感性** Vivado 的 `get_ports` 默认区分大小写,名称不匹配会导致约束失效。 2. **XDC 引脚约束语法** 使用 `set_property PACKAGE_PIN xxx [get_ports {...}]` 绑定逻辑端口到物理引脚。 3. **IOSTANDARD 设置规范** 必须为每个 I/O 端口指定电平标准(如 LVCMOS3.3),避免电气不兼容风险。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值