QuartusII中FPGA管脚的分配策略Word格式.docx
《QuartusII中FPGA管脚的分配策略Word格式.docx》由会员分享,可在线阅读,更多相关《QuartusII中FPGA管脚的分配策略Word格式.docx(15页珍藏版)》请在冰豆网上搜索。
图中不同颜色的区域代表不同的Bank,整个芯片主要分为8个Bank,FPGA的各个管脚分布在不同的Bank中。
其中,三角形标记的管脚为电源管脚,正三角表示VCC,倒三角表示GND,三角内部的O表示I/O管脚电源,I表示内核电源。
圆形标记的管脚为普通用户I/O管脚,可以由用户随意使用。
正方形标记且内部有时钟沿符号的管脚为全局时钟管脚。
五边形标记的管脚为配置管脚。
图1WireBond
1.1.电源管脚
FPGA通常需要两个电压才能运行,一个是内核电压,另一个是I/O电压。
每个电压通过独立的电源管脚来提供。
内核电压是用来给FPGA内部的逻辑门和触发器供电。
随着FPGA的发展,内核电压从5V、3.3V、2.5V、1.8V到1.5V,变得越来越低。
I/O电压用来给各个Bank供电,每个Bank都有独立的I/O电压输入。
一般情况下,内核电压会比I/O电压低。
图1中的VCCINT是内核电压管脚,VCCIO是I/O电压管脚。
1.2.配置管脚
每个FPGA都需要配置管脚,以支持多种配置方式,例如JTAG、从串、从并、主串、主并等。
对于配置管脚的控制信号来说,是专用管脚,不能作为普通的I/O管脚。
而其数据信号可以作为普通的I/O管脚使用。
图1中的MSEL为配置模式选择信号,即选择AS模式、PS模式或FASTAS模式。
MSEL[1:
0]为00表示用AS模式,10表示用PS模式,01表示用FASTAS模式。
如果用JTAG模式,MSEL[1:
0]置00,JTAG模式和MSEL无关,即用JTAG模式时,MSEL会被忽略,但是因为MSEL不能浮空,所以置00。
图1中的TMS、TCK、TDI和TDO为JTAG接口的4根线,分别为模式选择、时钟、数据输入和数据输出线。
常用的为AS模式和JTAG模式。
1.3.普通I/O管脚
FPGA的I/O管脚是FPGA上较为丰富的资源,也是做管脚约束时最常用的资源。
对于FPGA的普通I/O管脚,可以设定电平类型(TTL、LVTTL、LVCOMS、ECL等)、驱动电流、摆率等参数。
1.4.时钟管脚
FPGA内部的时钟都需要通过专用时钟管脚连接内部PLL或者DCM等专用时钟处理单元,从而接入内部高速时钟网络。
对于一些外部同步信号的输入,如果时钟只用于采样当前的同步信号,其时钟可以不用连接到专用时钟管脚上,即不用接入全局时钟网络,但需要约束其管脚不使用全局时钟资源。
否者,EDA工具会报错,提示其作为时钟输入而没有接在专用时钟管脚上。
更多的管脚类型说明见附录。
2.FPGA管脚分配方法
FPGA管脚分配常用的有3种方式,分别为PinPlanner方式、ImportAssignments方式和Tclscripts方式。
2.1.PinPlanner方式
步骤1:
在QuartusII软件中,选择“Assignments→PinPlanner”,或者按快捷键“Ctrl+Shirt+N”,出现如图2所示的画面。
图2PinPlanner
图2主要包含了7个选择项,分别为Location、I/OBank、VREFGroup、I/OStandard、Reserved、CurrentStrength和SlewRate。
Location里可以选择所需要的芯片管脚,管脚确定后I/OBank中的Bank数会自动填充,VREFGroup也会自动填充。
I/OStandard是每个Bank对应的电压标准,一个Bank只能有一种电压标准,一般情况下选择默认值就好。
Reserved是对管脚内部的I/O逻辑进行约束,有6个选择项供选择,例AsSignalProbeoutput、Asbidirectional等。
CurrentStrength是驱动电流强度,一般选择默认值,如果需要驱动大功率的电路,一般在FPGA外围加驱动电路。
SlewRate是电压转换速率,跟信号跳变时间有关,一般选择默认值。
在管脚分配的过程中,我们主要关心Location这一选项,其他选项采用默认值就可。
步骤2:
在Location中选择管脚。
所有管脚配置完成后关闭当前界面。
2.2.ImportAssignments方式
新建一个txt文件(或csv文件),按图3格式编写管脚分配内容。
(编写格式有多种,但这种格式最简单。
)
【注】To和Location两个关键字中间有一个半角逗。
图3管脚分配格式
在QuartusII软件中,选择“Assignments
→ImportAssignments”,出现如图4所示的画面,导入xxx.txt或者xxx.csv文件。
图4ImportAssginments
导入后QuartusII软件的Message信息栏会弹出如图5所示的内容,显示ImportCompleted,表示文件没有语法错误。
图5Message
步骤3:
在QuartusII软件中,选择“Assignments→PinPlanner”,验证管脚是否分配正确。
如图6所示。
图6验证管脚是否分配正确
常见错误1:
分配的管脚不属于FPGA芯片。
如果分配的管脚不属于FPGA芯片,在PinPlanner中会出现如图7所示的错误提示,表示管脚PIN_GC21不属于该FPGA芯片,找不到对应的I/OBank和VREFGroup。
图7管脚不属于FPGA
若信号比较多,人工不能发现存在的错误,可以通过EnableLiveI/OCheck工具检查I/O分配情况。
点击PinPlanner工具栏中的I/OCheck图标,如图8所示。
图8EnableLiveI/OCheck
执行Check后,在Message窗口中会弹出检查结果,如图9所示,提示PIN_GC21是非法的管脚定义。
图9Check检查管脚不属于FPGA
常见错误2:
多个信号公用一个管脚,即分配管脚冲突。
如果分配的管脚冲突,通过肉眼的方式很难发现,通过EnableLiveI/OCheck工具可以有效的发现存在的问题,如图10所示,提示fpga_rst_n定义的管脚G21已经被phy_clk50m信号占用。
图10Check检查管脚冲突
2.3.TclScripts方式
在QuartusII软件中,选择“Assignments→RemoveAssignments”,出现如图11所示的画面。
此步骤用来移除已经存在的管脚分配内容,以确保分配的管脚没有因为覆盖而出现错误的情况。
【注】在执行没有管脚分配的新工程中,可跳过步骤1。
图11RemoveAssignments
新建一个tcl文件,按图12格式编写管脚分配内容。
注意关键字set_location_assignment和-to的用法。
图12管脚分配格式
执行xxx.tcl文件。
方法1:
(1)在QuartusII软件中,选择“View
→UtilityWindows
→TclConsole”,打开QuartusIITclConsole,如图13所示。
图13TclConsole
(2)将tcl文件中的内容复制到TclConsole对话框中,如图14所示。
图14执行管脚分配语句
方法2:
(1)将tcl文件添加到工程中,如图15所示。
图15添加Tcl文件
(2)在QuartusII软件中,选择“Tools→TclScripts”,出现如图16所示的画面。
图16TclScripts
选择“Run”,执行Tcl文件。
步骤4:
检查的方法同ImportAssignments方式中的EnableLiveI/OCheck。
2.4.项目组统一使用方式
为了统一代码风格,便于项目管理,FPGA项目组统一使用2.3的TclScript方式。
在2.3的步骤3中也使用方法2,即添加Tcl文件,而非命令行。
3.编写FPGA管脚分配文件
在上文提到的3种管脚分配方法中主要包含了2种文件格式,即txt和tcl。
无论那种格式的文件都是为了阐明信号与管脚的对应关系。
编写FPGA管脚分配文件的主要任务就是要快速定位工程TOP文件中各个信号与FPGA管脚的对应关系。
通过2种方式可以定位这种关系,一种是通过查看对外PDF格式的原理图,另一种是通过查看PrjPCB格式的原理图。
推荐使用PrjPCB格式的原理图。
3.1.查看PDF格式的原理图
通过SVN下载相应工程,在工程路径中可以找到对应的原理图,如图17所示。
由于PDF格式的原理图没有目录,如图18所示,查找各个模块比较费时费力,所以不推荐这种方式。
图17原理图路径
图18PDF格式原理图
3.2.查看PrjPCB格式的原理图
查看原理图的软件有多种,我司主要使用AltiumDesigner软件。
通过SVN下载相应工程,在工程路径中可以找到对应的原理图,如图19所示。
图19原理图路径
用AD软件打开图15中的xxx.PrjPCB文件,打开后如图20所示。
左侧文件预览窗口罗列了整个板件各个模块的原理图,最后两个EP4CE30F23C8N-1.SchDoc和EP4CE30F23C8N-2.SchDoc就是FPGA部分的原理图。
图20PrjPCB格式原理图
通过快捷键“Ctrl+F”可以查看所需要的信号或管脚,如图21所示。
其中,TextToFind中可以定义需要查看信号或管脚的名称,SheetScope中可以定义查看的范围。
图21Ctrl+F快捷键
4.保存FPGA管脚分配文件
使用已有工程时,可能会找不到相应的管脚文件,可以把已经绑定好的管脚保存下来,输出到文件里。
保存的文件主要包含3种格式,分别为Tcl格式、CSV格式和QSF格式。
其中,Tcl格式只包含已分配管脚信息;
CSV格式包含芯片所有管脚信息,包括分配的和未分配的;
QSF格式包含已分配管脚信息和芯片信息。
4.1.Tcl格式或CSV格式
在QuartusII软件中,选择“Assignments→PinPlanner”,打开FPGA管脚分配界面,如图22所示。
图22管脚分配界面
在图13的管脚分配界面中选择“file→Export”,文件可以保存为Tcl格式或者CSV格式(表格格式)。
4.2.QSF格式
在QuartusII软件中,选择“Assignments→ExportAssignments”,文件保存为qsf格式。
4.3.项目组统一使用格式
为了统一代码风格,便于项目管理,FPGA项目组统一使用4.1中的Tcl格式。
附录管脚类型说明
信号名称
释义
DEV_OE
I/O使能脚,在QII中可以使能DEV_OE选项。
如果使能了这个功能,当DEV_OE置低时,所有