|
首先说IO standard:这个是用于支持对应不同的电平标准。FPGA IO口的电压由IO bank上的VCC引入。1 s* y2 J1 r G- b' f
[9 X( d+ c' L* y/ h. K6 Q( g8 A一个bank上引入3.3V TTL电平,那么此时整个bank上输出3.3V的TTL电平。设置这个第一是为了和current
. D& F* ~+ L. o
6 u( o5 y, |# |. W- j4 M; Wstrength一起计算功率。第二个是用于在IO口上加载正确的上拉/下拉电阻。
4 ^" M2 r2 D F. W* C# Q. b
: Q- l" C/ A$ R6 f& i1 N只要你设置完成,Quartus会按照你的电平标准自动布线。 , W a1 i+ T- G( a! ]
: B8 X! ?' \) I. Y: k第二是IO Bank:你在quartus pin planner 的top view下右键然后点击 show IO banks,这个时候就会
2 ^4 R) b p, ]; k; E7 K' g$ ~/ z
% `0 Y: L4 U, g* o1 n) i. T$ o看到FPGA的管脚被几种颜色划分开了。一种颜色下的IO口代表一组bank。你在吧管脚的location约束完成以后。- Q0 M" ]8 _* S7 N( w3 M0 ~
8 A/ s% i* y. e: o4 n
IO Bank会自动填充完毕的。
/ u5 H* _: p( R" }* t
( q( m$ d @5 J第三是Group:Group就是你所输出的信号的名字啦。比如你有一组信号叫cnt。你对cnt的某一根赋值,那么。。9 V& A6 G1 m1 R/ g6 c
2 [4 r& o" U' s4 {) v% N
这里的Group会自动填充为cnt 。
% Z' P! ]* \7 P' x! h# u/ a0 b! a2 J
: ]& e8 s% b7 |; n S第四是Reserved:这个是对管脚内部的IO逻辑进行约束的,你在下面可以看到一些值。介绍几个吧。& p0 q' h. F! ~6 R& s1 W( `. d
. V2 t4 _" G1 ^8 V8 Ebidrectional:双向,tri-state:三态等等。这个约束的是FPGA在IO端的输入输出区域的逻辑。
& o3 \+ v" f7 z
: O- M" r9 c& \2 |% h+ Z( |比如你选择tri-state。那么这个时候,在你IO口前部的IO区,quartus会自动给你生成一个三态门。
* J) {+ e5 Q1 {5 j) b, k; c
5 h7 p# e- G6 e! B' ]- R9 k第五个是Vref Group:这个Group是bank内部的细分区域,因为一个bank可能多达60个脚。9 h' y# f2 A7 v% a2 d( o6 s
( X& D2 v4 D5 R' {7 `! R为了快速定位,你可以利用这个vref group来找到某个管脚。(这个是非修改属性)无法修改。4 p/ k! m& {5 g; B
/ x* Q1 |/ g8 t/ O, `你的理解是正确的,另外,跨越IO bank的信号没有问题。只是注意跨bank的电平是否一致即可。; @8 `) V7 k6 N) @
8 K& s: b5 P$ c9 e
对于跨IO bank的延迟对于FPGA而言没有多少延迟。
7 t, e, Z1 H" v8 f9 d* @( H- K- d% e" v% {: q. ~
管脚分配呢,你可以看一下quartus里面pin planner内部那张 top view对于每个管脚的说明。
/ ?5 F% v( F+ z0 V$ ~3 R! T
# c/ n8 K9 q4 M2 J! f6 N大多数管脚是可以当做普通IO使用的。只是有些特殊要求的时候。只可以使用对应的IO,比如差/ T) l; P' C- e" J
9 } m( L1 s* j& ~, t- K6 R
分输入,高时钟输入等等。这个是要参照对应器件的IO 手册来决定的。而且对应的设计大多数的
. x T1 V. C; a2 g( \9 r0 G. J
& l6 \6 {; l: y; t9 R3 ]器件生产商都会给出参考设计。里面包括了IO的设计,pcb的设计以及内部程序端口的约束。所以' `) n" x" O+ x
8 k& C3 X6 W& l% E) ^6 E: b$ S具体问题具体分析。% K+ q- v: L) E {' G* a) z9 j
" w% ]" j# C8 r1 t
|
|