4. Lattice FPGA IO标准与电气特性
在Lattice FPGA的板级接口设计中,IO标准的选择直接决定了信号能否与外部器件正确互连、能否在目标速率下保持完整波形,以及是否需要在PCB上额外放置端接电阻。Lattice器件(如ECP5、MachXO3、CrossLink-NX、Certus-NX等)的IO Bank通常支持多种单端与差分标准,但每个Bank的供电电压(VCCIO)和可用标准是受限的,不能随意混用。理解各标准的电平定义、驱动强度、片内端接(On-Die Termination, ODT)以及配置方法,是接口设计的第一步。
一、常见IO标准的电平与适用场景
LVCMOS是最基础的单端标准,按VCCIO分为LVCMOS33、LVCMOS25、LVCMOS18、LVCMOS15、LVCMOS12等。其逻辑高电平门限通常为0.7×VCCIO,低电平门限为0.3×VCCIO。例如LVCMOS33在3.3V供电下,VOH≥2.4V、VOL≤0.4V(带负载时),适合连接MCU、Flash、普通逻辑器件。LVCMOS的驱动强度可配置,Lattice常见档位为2mA、4mA、8mA、12mA、16mA,驱动越强边沿越快,但过冲和EMI也越明显。
LVDS是低压差分信号,典型共模约1.2V,差分摆幅约350mV,接收端差分门限约±100mV。它适合高速、低噪声的点对点链路,如视频、ADC数据、背板连接。Lattice部分器件支持LVDS25、LVDS18等,差分对必须落在同一Bank且VCCIO匹配。LVDS通常需要100Ω差分端接,Lattice多数器件支持片内差分端接,可省去外部电阻。
SSTL(Stub Series Terminated Logic)常见SSTL15、SSTL135、SSTL18,主要用于DDR2/DDR3存储接口。其特点是参考电压VREF约为VCCIO/2,接收端以VREF为判决门限,输出为推挽结构,通常配合50Ω到VTT的端接。SSTL对VREF和VTT的稳定性要求高,PCB上需单独处理。
HSTL(High-Speed Transceiver Logic)常见HSTL15、HSTL18,VREF同样约为VCCIO/2,但输出摆幅和端接方式与SSTL略有差异,常用于高速SRAM、QDR等接口。HSTL的输入门限更严格,对噪声容限要求更高。
二、驱动强度与片内端接的选择
驱动强度决定输出级能提供的电流,也影响上升/下降时间。以LVCMOS33驱动一个10pF负载为例,若驱动设为4mA,边沿约3~5ns;若设为12mA,边沿可缩短到1~2ns,但振铃更明显。工程上应优先满足时序,再通过串阻或降低驱动来抑制过冲。Lattice的IO配置中,驱动强度通常以“Drive Strength”字段出现,单位mA。
片内端接分为两类:单端ODT和差分端接。单端ODT常见于SSTL/HSTL,可配置为50Ω、75Ω等,用于替代外部并联端接;差分端接用于LVDS等,典型100Ω,可显著简化PCB布局。需要注意的是,片内端接会消耗静态功耗,且并非所有Bank都支持,配置前应查阅对应器件的Pinout与IO Bank手册。
三、在Lattice工具中的配置方法
以Lattice Diamond为例,配置IO标准的主要入口是Spreadsheet View。打开工程后,在Process栏双击“Spreadsheet View”,切换到“Port”页,可看到每个端口对应的Pin、IO Standard、Drive、Termination等列。例如将某输出端口设为LVCMOS33、Drive=8mA、Termination=None;将差分对设为LVDS25、Termination=100Ω。配置完成后需运行“Place & Route”,工具会检查Bank电压与标准是否冲突,若冲突会在Log中报错。
在Radiant中,对应入口为Device Constraint Editor的Pin Constraint页,或直接编辑.pdc约束文件。例如:
ldc_set_port -iobuf {IO_TYPE=LVCMOS33 DRIVE=8} [get_ports {led_out}]
ldc_set_port -iobuf {IO_TYPE=LVDS25 TERMINATION=100} [get_ports {lvds_tx_p}]
ldc_set_port -iobuf {IO_TYPE=SSTL15 TERMINATION=50} [get_ports {ddr_dq[*]}]
配置后应重点检查三点:一是Bank的VCCIO是否与IO标准一致;二是差分对是否在同一Bank且引脚配对正确;三是端接设置是否与PCB实际端接重复。若片内已开100Ω差分端接,PCB上就不应再放100Ω电阻,否则等效端接变为50Ω,摆幅会明显下降。
四、配置检查与常见问题
完成IO配置后,建议按以下顺序核对:先看Bank电压与标准是否匹配,再看驱动强度是否与负载和时序匹配,最后确认端接是否与PCB一致。常见问题包括:LVDS差分对跨Bank导致无法布线;SSTL的VREF未连接或电压偏差过大;片内端接与外部端接重复导致信号摆幅不足。遇到这些情况,应回到Spreadsheet View或.pdc中逐项修正,并重新运行布局布线与时序分析。
总之,Lattice FPGA的IO标准选择不是孤立的软件设置,而是与Bank供电、PCB端接、负载特性和时序预算紧密耦合的系统决策。掌握各标准的电平、驱动与端接选项,并熟练使用Diamond/Radiant的约束入口,才能把接口设计一次做对。