关于zynq引脚编号、bank以及封装的一些理解

本文详细解释了ZYNQ中GPIO的Bank概念,包括MIO和EMIO在bank0、bank1、bank2、bank3的分布,以及硬件上的bank500、bank501等与实际引脚的对应。还介绍了MIO和EMIO的编号系统及其与bank的关联。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

学习zynq已经有一段时间了,之前不论是用gpio使用MIO0这样的引脚还是在PL端将引出的端口约束到AB9这样的位置,用的时候也挺正常,但仔细一想又感觉云里雾里,还有bank0、bank1、bank500、bank501这样的分组,一直没有弄明白他们之间具体的关系,今天就来梳理一下。

首先是bank之间的关系。我们都知道ZYNQ有118个GPIO,其中MIO54个,EMIO64个,再细分一下就是32个MIO(Bank0)+22个MIO(Bank1)+32个EMIO(Bank2)+32个EMIO(Bank3)。

所以PS端MIO有bank0、bank1两个分组,PL端EMIO有bank2、bank3两个分组,而这些分组的依据是电压的不同。

 bank0、bank1、bank2、bank3这些分组是概念上的。就是说硬件上没有这样的分组。虽然zedboard原理图上有一个bank0,但是和我们说的这些是没有关系的,我们也用不上这个bank0,忽视它。

bank500、bank501、bank502、bank13、bank33、bank34、bank35这些是硬件上的分组。我们可以在原理图上找到这些分组,bank500、bank501、bank502是PS端的分组,bank13、bank33、bank34、bank35是PL端的分组。此外7010好像没有bank33。

通过原理图我们可以看出bank500和bank501基本可以与bank0和bank1画等号,不过还是要注意一个是概念上的分组,一个是硬件上的分组。

再来看MIO0~53、EMIO0~63和AB9这样的编号与bank之间的关系。

通过前面的学习我们可以知道MIO0~53分别分布在bank0与bank1上,有具体的硬件引脚对应,比如我们可以看到zedboard的MIO7引脚对应的是一个LED,那么我们就可以通过控制读写MIO7来点亮这个LED。

而EMIO0~63没有具体的硬件对应位置,需要通过约束文件与具体的引脚如AB9这样的位置绑定。比如我们希望通过EMIO0来控制zedboard上的LED0(T22),那么就需要先将EMIO0约束到T22位置,然后就可以通过读写EMIO0来控制LED0。

最后,通过下面的bank分布图,我们可以看出具体的对应关系。

以上均是个人理解,如有错误欢迎指正。

### Vivado 中 Zynq 器件的引脚分配方法 #### 配置 Zynq 处理器系统 (PS) 在 Vivado 中创建一个新的工程并添加 Zynq7 Processing System IP 后,该 PS 是完全未配置的状态。为了使 PS 正常工作,需要对其进行适当配置: - 添加 `zynq7 Processing System` IP 到设计中[^1]。 - 右键单击 `FIXED_IO` 和 `DDR` 接口选项,选择 `Make External` 将其连接至芯片外部。 #### 设置 MIO 和 EMIO 引脚 对于 Zynq 设备而言,存在两种类型的 I/O 资源用于外设通信:MIO(Multiplexed IO)和 EMIO(Extended Multiplexed IO)。前者是固定的 54 条信号线,后者则是通过 PL(可编程逻辑区域)实现更多数量的 GPIO 功能。 当涉及到具体的引脚映射时,需要注意不同 bank 的划分方式及其供电电压的要求。例如,在某些封装下,Bank 0 和 Bank 1 支持 LVCMOS18/LVCMOS25/SLVS_400 等标准;而其他 banks 如 Bank 50 或者更高编号则可能支持不同的电气特性[^3]。 #### 使用 XDC 文件定义物理约束 要完成详细的引脚分配操作,通常会利用 `.xdc` 文件来指定实际硬件上的管脚位置。这可以通过手动编辑或者借助 Vivado 提供的 Constraints Editor 工具来进行。确保所选引脚符合目标板卡的设计规格,并考虑到相邻引脚之间的干扰等因素。 如果遇到因 PS 引脚约束而导致的编译警告问题,则可以尝试重置输出产品再重新生成顶层 HDL 包裹的方法加以解决[^4]。 ```tcl # 示例 Tcl 命令用于设置特定引脚属性 set_property PACKAGE_PIN AB9 [get_ports {my_signal}] set_property IOSTANDARD LVCMOS33 [get_ports {my_signal}] ``` #### 自动生成与验证 最后一步是在 Block Design 完成之后运行自动布局布线工具,它将会根据当前设定好的参数来自动生成相应的网表文件以及其他必要的文档资料。同时也可以利用 Simulation Libraries 对整个项目进行功能测试以确认一切按预期运作良好。
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值