我是FPGA新手,当我尝试在zynq-7000 clg484上实现我的解码器时,出现错误,说:
Bitgen:342 - 此设计包含具有位置(LOC)的引脚 不是用户分配的用户分配或I / O标准(IOSTANDARD)。 这可能会导致I / O争用或与电路板电源不兼容或 连接影响性能,信号完整性或在极端情况下 导致设备或其连接的组件受损。至 防止此错误,强烈建议指定所有引脚位置和 I / O标准,以避免潜在的争用或冲突,并允许正确 比特流创建。将此错误降级为警告并允许比特流 使用未指定的I / O位置或标准创建,您可以应用 跟随bitgen切换:-g UnconstrainedPins:允许
我试图添加-g UnconstrainedPins:允许,仍然没有工作,说' clk'引脚不是最佳的,但严重的是,我不知道哪个引脚号是通用时钟引脚号!
在哪里可以找到文件说明电路板的引脚号?我无法找到它,所以我不知道电路板上的哪个按钮映射到哪个号码,所以在PlanAhead(I / O引脚规划)中,我总是不知道要找到哪个号码。
答案 0 :(得分:0)
你的主板是ZedBoard,而不是XC7Z020-clg484,它是你主板的Zynq核心(黑色散热器下面的芯片)。 ZedBoard的原理图可在网站上找到。首先检查您的电路板版本:查看Zynq核心和FMC连接器之间的条形码标签。在下面你应该看到绿色标签上的“REV C”或“REV D”白色。接下来,转到http://zedboard.org/,支持 - >文档 - > ZedBoard - >原理图并下载修订版的原理图。你需要的就是那里。如果您想知道Zynq的哪个引脚驱动LD0(8个开关附近的8个用户LED的最右侧),请搜索LD0。您将看到它由Zynq组33的引脚T22驱动,并且该组具有3.3V电压。为了自动将I / O映射到Zynq的引脚,您可以使用像这样的TCL脚本:
array set ios {
"gpi[0]" { "F22" "LVCMOS25" }
"gpi[1]" { "G22" "LVCMOS25" }
"gpi[2]" { "H22" "LVCMOS25" }
"gpi[3]" { "F21" "LVCMOS25" }
"gpi[4]" { "H19" "LVCMOS25" }
"gpi[5]" { "H18" "LVCMOS25" }
"gpi[6]" { "H17" "LVCMOS25" }
"gpi[7]" { "M15" "LVCMOS25" }
"gpo[0]" { "T22" "LVCMOS33" }
"gpo[1]" { "T21" "LVCMOS33" }
"gpo[2]" { "U22" "LVCMOS33" }
"gpo[3]" { "U21" "LVCMOS33" }
"gpo[4]" { "V22" "LVCMOS33" }
"gpo[5]" { "W22" "LVCMOS33" }
"gpo[6]" { "U19" "LVCMOS33" }
"gpo[7]" { "U14" "LVCMOS33" }
"srst" { "P16" "LVCMOS25" }
}
foreach io [ array names ios ] {
set pin [ lindex $ios($io) 0 ]
set std [ lindex $ios($io) 1 ]
set_property package_pin $pin [get_ports $io]
set_property iostandard $std [get_ports [list $io]]
}
在本例中,我们有一个8位输入总线(GPI),一个8位输出总线(GPO)和一个单位输入(SRST)。 GPI映射到ZedBoad的8个开关,GPO到8个LED,SRST到5个按钮板的中心按钮。正如您所看到的,gpo[0]
已映射到T22
,我上面提到的LED及其iostandard
属性为LVCMOS33
(3.3 V)。适应您自己的I / O名称和功能。保存TCL脚本(foo.tcl
)并在合成设计之后和实现之前运行它:菜单Tools -> Run TCL script...
如果您使用GUI,否则您已经知道了。玩得开心。