“揭秘” Xilinx FPGA 的 ECO 功能

欲观原文,请君移步

ECO 指的是 Engineering Change Order ,即工程变更指令。目的是为了在设计的后期,快速灵活地做小范围修改,从而尽可能的保持已经验证的功能和时序。ECO 是从 IC 设计领域继承而来,ECO 便相当于 ISE 上的 FPGA Editor。本文可以对于一些FPGA疑难杂症文件排查,或者对于一些加密 IP 进行破解,请读者自行琢磨,不予公开。【如有兴趣,请联系作者】

1.ECO的用途

  • 修改 ILA 或者 VIO 的调试探针

  • 将一个内部网络路由到外部探针

  • 修复逻辑错误等

2.ECO 流程

打开已经实现的设计,修改网表后,如果设计未完全布局,请运行“增量布局”。否则,可以直接跳至增量布线。然后可以保存更改到新的检查点并编写新的编程和调试探针文件,打开
硬件管理器对设备进行编程。

在这里插入图片描述

3.ECO 工程实例

打开 dcp ,在 vivado 中一个工程在生成bit流过程中会产生 implementation 阶段产生三个 dcp 文件,分别是 *_opt.dcp, *_place.dcp, *_route.dcp中添加,如果需要固定布线,只是微调一下某些net,则使用, *_route.dcp, 对应不同的阶段,如果工程需要添加一些 cell ,可以在*_place.dcp中添加,如果需要固定布线,只是微调某些net,则使用*_route.dcp

3.1 修改 ila 信号

本次实例采用*_route.dcp

3.1.1 断开 net

在这里插入图片描述

disconnect_net -net u_ila_0_axis_rx_tlast -objects [list {u_ila_0/probe8}]
  • u_ila_0_axis_rx_tlast 的 net 名

  • Objects 后面的 pin 脚

该命令是为了将某一 net 断开

在这里插入图片描述

3.1.2 连接新的net

connect_net -hierarchical -net {u_ila_0_axis_rx_tdata[47]} -objects [list {u_ila_0/probe8}]

该命令是为了将某一 net 连接到某一 object

在这里插入图片描述

3.1.3 将原来的 net 布线 unroute

route_design -unroute -net [get_nets u_ila_0_axis_rx_tlast]

在这里插入图片描述

3.1.4 重新 route 新的 net

route_design -net [get_nets {u_ila_0_axis_rx_tdata[47]}]

在这里插入图片描述

3.1.5 重新 route 新的 net

route_design -net [get_nets {u_ila_0_axis_rx_tdata[47]}]

查看布线状态

report_route_status

在这里插入图片描述

3.1.5 生成 bit 流

write_bitstream aurora_test_route.bit -force

在这里插入图片描述

3.2 将内部网络布线到另一个cell

本次实例采用*_place.dcp

3.2.1 断开 net

disconnect_net -net u_ila_0_axis_rx_tlast -objects [list {u_ila_0/probe8}]

3.2.2 创建 cell

startgroup
create_cell -reference LUT1 {LUT1}
set_property init 2'h3 [get_cells { {LUT1}}]
endgroup
create_cell -reference VCC {VCC}

在这里插入图片描述

在这里插入图片描述

3.2.3 创建 net

startgroup
create_net {LUT1_IO}
LUT1_IO
connect_net -hierarchical -net {LUT1_IO} -objects [list {LUT1/I0}]
endgroup
startgroup
create_net {LUT1_O}
LUT1_O
connect_net -hierarchical -net {LUT1_O} -objects [list {LUT1/O}]
endgroup

在这里插入图片描述

3.2.4 连接 net

将LUT1的输入连接到 VCC ,输出连接到 ila 的 probe8。

connect_net -hierarchical -net {LUT1_IO} -objects [list {VCC/P}]
connect_net -hierarchical -net {LUT1_O} -objects [list {u_ila_0/probe8}]

在这里插入图片描述

3.2.5 implementation & bitstream

place_design
route_design 
write_bitstream aurora_test_place.bit -force

在这里插入图片描述

4.参考文献

1.《ug904-Vivado Design Suite User Guide P-143:Vivado ECO Flow》

chrome-extension://ibllepbpahcoppkjjllbabhnigcbffpi/https://www.xilinx.com/support/documentation/sw_manuals/xilinx2016_1/ug904-vivado-implementation.pdf

2.《ug835- Vivado Design Suite Tcl Command Reference Guide》

chrome-extension://ibllepbpahcoppkjjllbabhnigcbffpi/https://www.xilinx.com/support/documentation/sw_manuals/xilinx2012_2/ug835-vivado-tcl-commands.pdf
  • 4
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Xilinx FPGA是一种可编程逻辑器件,称为现场可编程门阵列。它的引脚功能可以根据应用的需要进行灵活的配置和编程。 Xilinx FPGA的引脚功能主要包括输入引脚、输出引脚和双向引脚。 输入引脚用于接收来自外部设备或其他模块的信号。这些信号可以是来自传感器、开关、按钮等的输入信号。输入引脚通常用于读取外部数据并将其输入到FPGA内部。 输出引脚用于向外部设备或其他模块发送信号。这些信号可以是用于控制LED灯、驱动电机或其他外部设备的信号。输出引脚通常用于将FPGA内部处理完的数据或控制信号发送到外部。 双向引脚是可以同时作为输入和输出使用的引脚。这些引脚可以接收外部信号,同时也可以将处理后的数据输出到外部。这使得双向引脚非常适用于双向通信,例如在通信接口中用于发送和接收数据。 除了输入、输出和双向引脚之外,还有一些特殊功能的引脚。例如,时钟引脚用于同步FPGA内部的各个模块,以确保它们以同步的方式运行。复位引脚用于初始化FPGA并将其返回到初始状态。配置引脚用于FPGA的启动和重新配置。 总结起来,Xilinx FPGA的引脚功能非常丰富多样,可以根据具体的应用需求来配置和使用。输入引脚用于接收外部信号,输出引脚用于向外部发送信号,双向引脚可以同时作为输入和输出使用。此外,还有一些特殊功能的引脚,如时钟引脚、复位引脚和配置引脚,用于控制FPGA的运行和配置。 ### 回答2: Xilinx FPGA的引脚功能是指FPGA芯片上的引脚的用途和功能。根据不同的型号和系列,Xilinx FPGA芯片上的引脚可以分为多种类型: 1. 输入引脚(Input Pins):用于接收来自外部设备或其他模块的信号。这些信号可以是控制信号、数据信号等。输入引脚通常与FPGA内部逻辑进行交互,参与系统的输入和处理。 2. 输出引脚(Output Pins):用于将经过FPGA内部逻辑处理后的信号发送到外部设备或其他模块。输出引脚用于提供处理结果或传递控制信号,使得FPGA能够与其他模块进行通信,并驱动其他设备执行相应的操作。 3. 双向引脚(Bidirectional Pins):具有输入和输出功能的引脚。这些引脚可以同时用于接收和发送信号,可以实现双向的数据传输。 4. 输入输出通用引脚(IO Pins):这些引脚既可以作为输入引脚,也可以作为输出引脚使用。IO引脚通常用于与外部设备进行数据交换,如内存、处理器、外围接口等。 除了基本的引脚类型,Xilinx FPGA还提供了一些特殊功能的引脚,如时钟引脚、重置引脚等。 5. 时钟引脚(Clock Pins):用于接收外部时钟信号,以驱动FPGA内部逻辑的操作和计时。 6. 重置引脚(Reset Pins):用于对FPGA进行清零或重启操作,使得FPGA在特定条件下能够重新初始化。 总之,Xilinx FPGA的引脚功能非常丰富,可以方便地与其他外部设备进行通信,并实现各种功能。根据具体的应用需求和设计要求,我们可以合理配置和使用Xilinx FPGA的引脚,以实现各种复杂的功能和应用。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值