作者:HongHan,来源:Xilinx中国社区论坛,有时我们需要根据什么逻辑微调设计网表,从而无需修改代码,不需要重新集成到设计调试中可以节省时间同时保持其他逻辑上的任何更改。在这里,我将带大家体验Vivado的ECO过程。以vivado随附的ExampleDesign为例,直接使用TCL命令修改网表,并在普通寄存器路径之间添加一个LUT级别。 1.打开Vivado界面。2.打开ExampleDesign“ Wavegen”:File-> Project-> OpenExample选择Wavegen(HDL),然后设备选择xcku0353。单击左侧FlowNavigator窗口中的RunImplementation按钮以完成集成实现。 4.打开ImplementedDesign(单击左侧的FlowNavigator窗口中的OpenImplementedDesign按钮)。5.选择两个寄存器之间的路径,运行以下命令,选择打印路径,双击以查看时序报告,用F4键打开原理图此路径的图表%report_timing-from [get_cellsclkx_spd_i0 / meta_harden_bus_new_i0 / signal_meta_reg]-到[get_cellsclkx_spd_i0 / meta_harden_bus_new_i0 / signal_dst_reg] -delay_type最大延迟名称为1的数据布线。路径的示意图6.断开目标寄存器的D端与目标寄存器的D端的连接x_net_spd_neti0x_net_d_0%/ signal_meta_reg_n_0-objects {clkx_spd_i0 / meta_harden_bus_new_i0 / signal_dst_reg / D}(在这里,如何获取操作对象,请参见引脚):在原理图中选择对象,然后检查下角“属性”窗口中的NAME属性引脚是否与网络断开连接。此后,原理图上将显示n / c7。创建一个LUT1并设置LUT%create_cell-referenceLUT1clkx_spd_i0 / meta_harden_bus_new_i0 / my_lut1%set_propertyINIT2' h1 [get_cellsclkx_lud_i0 / meta_lut1所有浮动(Pin)端口的INIT属性。下一步是将这些引脚连接到适当的网络。 8.将LUT1的输入端口连接到先前断开的网络。 %connect_net-netclkx_spd_i0 / meta_harden_bus_new_i0 / s ignal_meta_reg_n_0-objects {clkx_spd_i0 / meta_harden_bus_new_i0 / my_lut1 / I0} 9.创建一个新的网络以连接LUT1的输出引脚和先前断开连接的寄存器D_Cent__Pin LUT_net10.0注册DPIN到新创建的净%connect_net-netclkx_spd_i0 / meta_harden_bus_new_i0 / my_net对象{clkx_spd_i0 / meta_harden_bus_new_i0 / my_lut1 / Oclkx_spd_i0 / meta_harden / Regal在中空sliceLUTbel相应的命令:place_cellclkx_spd_i0 / meta_harden_bus_new_i0 / my_lut1SLICE_X52Y83 / B6LUT12。在新的LUT1%route_design-nets [get_nets-of [get_pinsclkx_lut_i0]]的两端布线。没有布线错误%report_route_status14。使用步骤5中的命令再次报告计时。 15.生成位文件%write_bitstreamtest.bit原始标题:[干货共享]使用ECO脚本将LUT1插入网表中文章来源:[微信公众号:FPGA开发圈]欢迎关注!请指出转载文章的来源。