Xilinx可编程逻辑器件设计与开发(基础篇)连载41:Spartan

Xilinx可编程逻辑器件设计与开发(基础篇)连载41:Spartan,第1张

设计者可以在【Clock Regions】窗口、【I/O Ports】窗口或者【Package Pins】窗口选择一个或多个对象,或者单击按钮取消所有选择,再运行【Tools】→【Clear Placement Constraints】命令,打开图10-48所示窗口,其中有三个选项,【Instance placement】清除实例的布局规划,【I/O port placement】清除I/O端口布局规划,【Both】上述两种对象均清除。

在这个例子中,我们在【Package Pins】窗口选中一个指定的Pin脚,以选择【I/O port placement】为例。

Xilinx可编程逻辑器件设计与开发(基础篇)连载41:Spartan,【Clear Placement Constraints】窗口,第2张

图10-48 【Clear Placement Constraints】窗口

单击【Next】按钮,打开图10-49所示对话框。选择【Unplace selected port】选项,单击【Next】,打开图10-50所示对话框,选中【Unplace one fixed port】,单击【Next】按钮,在出现的窗口单击【Finish】,清除一个I/O约束。
需要注意的是,这里的 *** 作过程会随着设计者是否选择了对象,选择了几个对象, *** 作界面稍微有所不同。

Xilinx可编程逻辑器件设计与开发(基础篇)连载41:Spartan,指定要被清除的I/O约束,第3张

图10-49 指定要被清除的I/O约束

Xilinx可编程逻辑器件设计与开发(基础篇)连载41:Spartan,提示要清除一个Fixed类型的端口,第4张

图10-50 提示要清除一个Fixed类型的端口

六、 建立、配置I/O端口

在【I/O ports】窗口的右键菜单中选择【Create I/O Ports…】,d出图10-51所示对话框,输入端口名如port_1,可以更改端口属性,也可以建立总线类型的端口。单击【OK】按钮,可以看到【I/O ports】窗口增加了一个端口。

Xilinx可编程逻辑器件设计与开发(基础篇)连载41:Spartan,建立I/O端口,第5张

图10-51 建立I/O端口

配置I/O端口的 *** 作方式与此类似,在右键菜单中选择【Configure I/O Ports…】即可。

七、 建立I/O端口的管理接口

最大化【I/O Ports】窗口,选择所有*USB_0*的端口,运行右键菜单命令【Create I/O Port Interface…】,在d出的对话框中输入usb0_interafce,如图10-52,单击【OK】,可以看到,这些*USB_0*端口有了一个管理接口,名为usb0_interface,如图10-53。使用这个方法,可以方便PCB管理。

Xilinx可编程逻辑器件设计与开发(基础篇)连载41:Spartan,建立I/O端口接口,第6张

图10-52 建立I/O端口接口

Xilinx可编程逻辑器件设计与开发(基础篇)连载41:Spartan,建立好的I/O端口窗口,第7张

图10-53 建立好的I/O端口窗口

八、 分配I/O端口

PlanAhead提供了多种分配I/O端口的方法,可以自动分配,也有几种半自动分配方式,如将I/O端口分配到一个I/O Bank中【Place I/O Ports in an I/O Bank】,将I/O端口分配到一个指定的区域【Place I/OPorts in an Area】,和顺序分配I/O端口【Place I/O Ports SequenTIally】。

需要注意,为了保证I/O分配的正确性,需要在执行I/O分配之前,打开I/O分配自动DRCs校验功能。执行【Tools】→【OpTIons】→【General】,打开【AutomaTIcally enforce legal I/O placement】功能。

1. 自动分配I/O端口。

运行【Tools】→ 【Autoplace I/O Ports】即可完成I/O端口的自动分配。

2. 将I/O端口放置到一个I/O Bank中。

在图10-53所示的【I/O ports】窗口选择usb0_interface端口,在右键菜单中运行【Place I/O Ports in an I/O Bank】,或者在【Package】窗口单击按钮,可以看到与usb0_interafce相关的引脚都粘贴到鼠标上,在【Package】窗口拖动鼠标,找到合适的位置后单击鼠标左键,就可以完成I/O 端口的分配。

清除对usb0_interface 端口的分配,以方便进行下面的 *** 作。

3. 将I/O 端口放置到一个区域中。

在图10-53 所示的【I/O ports】窗口选择usb0_interface 端口,在右键菜单中运行【Place I/O Ports in an Area】,或者在【Package】窗口单击按钮,这时可以在【Package】窗口拖动鼠标,画出一个适合放置所有I/O 端口的矩形框,释放鼠标,即可完成I/O 端口的分配。

清除对usb0_interface 端口的分配,以方便进行下面的 *** 作。

4. 顺序放置I/O 端口。

在图10-53 所示的【I/O ports】窗口选择usb0_interface 端口,在右键菜单中运行【Place I/O Ports SequenTIally】,或者在【Package】窗口单击按钮,这时可以在【Package】窗口拖动鼠标,按顺序放置所有I/O 端口,直到分配完所有的I/O 端口。需要说明的是,这里描述的是综合前I/O 端口分配,应用的是CSV 文件,没有综合网表,时钟引脚、高速收发器和差分对不会被工具自动处理,因此,进行此类引脚分配时需要特别注意。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/2582503.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-08
下一篇 2022-08-08

发表评论

登录后才能评论

评论列表(0条)

保存