clk90_bufg的输出要代替由原interface_clk驱动的IOB上的时钟。要将IOB从原来的时钟域中移开,需要定位IOB,标注时钟输入端衰减器并按下Delete键移除这一连接。这样我们就可以将新的clk90_bufg时钟连接到这儿,从而完成整个补丁。要连接BUFG (clk90_bufg)的输出,按住Ctrl键不放,在窗口Array2中标注BUFG的输出端衰减器并在Array1窗口中选择IOB的时钟输入。松开Ctrl键,点击鼠标右键显示选项菜单并选择Add。这样就最终完成了BUFG输出和IOB之间的连接,而IOB则用来驱动下游ASIC的新建接口,利用interface_clk90时钟就可以正确地捕获传输的数据。
这样就完成了ASIC的补丁。现在重新运行设计规则(DRC)检查器,确保没有引入任何新的错误。在菜单条中点击Tools →DRC →Run。
脚本完成并且没有错误的情况下,就可以回到菜单选择Tool →Script →End Recording。这将停止并关闭脚本记录过程,下次需要这一ASIC补丁时你还可以重新利用这一脚本。一个不错的方法是在文本编辑器中打开脚本文件,将所有GUI Post 和 Unpost命令去除。这些命令并不是必要的,而且留着它们还让脚本难于阅读。下面的文本就是我们ASCI补丁的脚本。 如前面所述,内容非常直接,易于读取。
unselect -all
setattr main edit-mode Read-Write
add -s “BUFGCTRL_X0Y28” comp
clk90_bufg ;
setattr comp clk90_bufg type BUFG
unselect -all
select pin ‘BUFGCTRL_X0Y28.I0’
select pin ‘DCM_ADV_X0Y11.CLK90’
add
post attr net $NET_0
setattr net $NET_0 name
DCM_clk90_out
unselect -all
select pin ‘OLOGIC_X0Y2.CLK’
delete
unselect -all
select pin ‘ILOGIC_X0Y3.CLK’
delete
unselect -all
select pin ‘ILOGIC_X0Y3.CLK’
select pin ‘OLOGIC_X0Y2.CLK’
select pin ‘BUFGCTRL_X0Y28.O’
add
post attr net $NET_1
setattr net $NET_1 name
clk90_bufg_out
unselect -all
drc
save -w design “patch.ncd”
“patch.pcf”
exit
end
仔细看看脚本内容,看能否分辨出对应GUI中做的动作。
很重要的是,可以从GUI(在菜单条 Tool →Scripts →Playback下)中或命令行回放这一脚本。 要在编译脚本中加入补丁,只需要增加下面一条命令就可以了:
fpga_edline yourdesign.ncd
yourdesign.pcf -p yourscript.scr
应当在布局布线(PAR)完成后再执行这一命令,即当NCD和PCF文件完成后。
FPGA Editor真的是一项强大的用户工具,尽管并非每个人都希望或需要在设计过程中用到它。 但当需要一些特殊处理或需要在某些地方突破规则以使设计功能更强时,没有其它工具能够像FPGA Editor一样提供如此强大的能力。你的FAE能够向你展示其功能,展示FPGA Editor如何帮助你完成设计调试和验证,当然还包括对规则的突破。