当前位置:文档之家› Quartus II中FPGA管脚的分配策略

Quartus II中FPGA管脚的分配策略

Quartus II中FPGA管脚分配策略Quartus II中FPGA管脚的分配策略编写:***校核:审核:二〇一年月日目录目录目录 (I)QUARTUS II中FPGA管脚分配策略 (1)1.FPGA管脚介绍 (1)1.1.电源管脚 (1)1.2.配置管脚 (2)1.3.普通I/O管脚 (2)1.4.时钟管脚 (2)2.FPGA管脚分配方法 (3)2.1.P IN P LANNER方式 (3)2.2.I MPORT A SSIGNMENTS方式 (3)2.3.T CL S CRIPTS方式 (6)2.4.项目组统一使用方式 (8)3.编写FPGA管脚分配文件 (9)3.1.查看PDF格式的原理图 (9)3.2.查看P RJ PCB格式的原理图 (10)4.保存FPGA管脚分配文件 (11)4.1.T CL格式或CSV格式 (11)4.2.QSF格式 (11)4.3.项目组统一使用格式 (11)附录管脚类型说明 (12)Quartus II中FPGA管脚分配策略1. FPGA管脚介绍FPGA的管脚从使用对象来说可分为两大类:专用管脚和用户自定义管脚。

一般情况下,专用管脚大概占FPGA管脚数的20% ~ 30%,剩下的70% ~ 80%为用户自定义管脚。

从功能上来说可分为电源管脚、配置管脚、时钟管脚、普通I/O管脚等。

下面以Altera公司的Cyclone IV E系列芯片EP4CE30F23C8为例,如图1所示,芯片总共包含484个芯片管脚。

图中不同颜色的区域代表不同的Bank,整个芯片主要分为8个Bank,FPGA的各个管脚分布在不同的Bank中。

其中,三角形标记的管脚为电源管脚,正三角表示VCC,倒三角表示GND,三角内部的O表示I/O管脚电源,I表示内核电源。

圆形标记的管脚为普通用户I/O管脚,可以由用户随意使用。

正方形标记且内部有时钟沿符号的管脚为全局时钟管脚。

五边形标记的管脚为配置管脚。

图1 Wire Bond1.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模式或FAST AS模式。

MSEL[1:0]为00表示用AS模式,10表示用PS模式,01表示用FAST AS模式。

如果用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种方式,分别为Pin Planner方式、Import Assignments方式和Tcl scripts 方式。

2.1. Pin Planner方式步骤1:在Quartus II软件中,选择“Assignments Pin Planner”,或者按快捷键“Ctrl+Shirt+N”,出现如图2所示的画面。

通过下拉菜单可以选择需要的管脚在Location选择了管脚后I/O Bank自动填充Bank内部的细分区域,非修改属性用于支持对应不同的电平标准,即VCCIO。

每个Bank只能有一种电压标准对管脚内部的I/O逻辑进行约束驱动电流强度电压转换速率,表示单位时间内电压升高的幅值图2 Pin Planner图2主要包含了7个选择项,分别为Location、I/O Bank、VREF Group、I/O Standard、Reserved、Current Strength和Slew Rate。

Location里可以选择所需要的芯片管脚,管脚确定后I/O Bank中的Bank数会自动填充,VREF Group也会自动填充。

I/O Standard是每个Bank对应的电压标准,一个Bank只能有一种电压标准,一般情况下选择默认值就好。

Reserved是对管脚内部的I/O逻辑进行约束,有6个选择项供选择,例As SignalProbe output、As bidirectional等。

Current Strength是驱动电流强度,一般选择默认值,如果需要驱动大功率的电路,一般在FPGA外围加驱动电路。

Slew Rate 是电压转换速率,跟信号跳变时间有关,一般选择默认值。

在管脚分配的过程中,我们主要关心Location这一选项,其他选项采用默认值就可。

步骤2:在Location中选择管脚。

所有管脚配置完成后关闭当前界面。

2.2. Import Assignments方式步骤1:新建一个txt文件(或csv文件),按图3格式编写管脚分配内容。

(编写格式有多种,但这种格式最简单。

)【注】To和Location两个关键字中间有一个半角逗。

图3 管脚分配格式步骤2:在Quartus II软件中,选择“Assignments → Import Assignments”,出现如图4所示的画面,导入xxx.txt或者xxx.csv文件。

图4 Import Assginments导入后Quartus II软件的Message信息栏会弹出如图5所示的内容,显示Import Completed,表示文件没有语法错误。

图5 Message步骤3:在Quartus II软件中,选择“Assignments → Pin Planner”,验证管脚是否分配正确。

如图6所示。

图6 验证管脚是否分配正确常见错误1:分配的管脚不属于FPGA芯片。

如果分配的管脚不属于FPGA芯片,在Pin Planner中会出现如图7所示的错误提示,表示管脚PIN_GC21不属于该FPGA芯片,找不到对应的I/O Bank和VREF Group。

图7 管脚不属于FPGA若信号比较多,人工不能发现存在的错误,可以通过Enable Live I/O Check工具检查I/O分配情况。

点击Pin Planner工具栏中的I/O Check图标,如图8所示。

图8 Enable Live I/O Check执行Check后,在Message窗口中会弹出检查结果,如图9所示,提示PIN_GC21是非法的管脚定义。

图9 Check检查管脚不属于FPGA常见错误2:多个信号公用一个管脚,即分配管脚冲突。

如果分配的管脚冲突,通过肉眼的方式很难发现,通过Enable Live I/O Check工具可以有效的发现存在的问题,如图10所示,提示fpga_rst_n定义的管脚G21已经被phy_clk50m信号占用。

图10 Check检查管脚冲突2.3. Tcl Scripts方式步骤1:在Quartus II软件中,选择“Assignments Remove Assignments”,出现如图11所示的画面。

此步骤用来移除已经存在的管脚分配内容,以确保分配的管脚没有因为覆盖而出现错误的情况。

【注】在执行没有管脚分配的新工程中,可跳过步骤1。

图11 Remove Assignments步骤2:新建一个tcl文件,按图12格式编写管脚分配内容。

注意关键字set_location_assignment 和-to的用法。

图12管脚分配格式步骤3:执行xxx.tcl文件。

方法1:(1)在Quartus II软件中,选择“View → Utility Windows → Tcl Console”,打开Quartus II Tcl Console,如图13所示。

图13 Tcl Console(2)将tcl文件中的内容复制到Tcl Console对话框中,如图14所示。

图14 执行管脚分配语句方法2:(1)将tcl文件添加到工程中,如图15所示。

图15 添加Tcl文件(2)在Quartus II软件中,选择“Tools → Tcl Scripts”,出现如图16所示的画面。

图16 Tcl Scripts选择“Run”,执行Tcl文件。

步骤4:在Quartus II软件中,选择“Assignments → Pin Planner”,验证管脚是否分配正确。

检查的方法同Import Assignments方式中的Enable Live I/O Check。

2.4. 项目组统一使用方式为了统一代码风格,便于项目管理,FPGA项目组统一使用2.3的Tcl Script方式。

在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 原理图路径图18 PDF格式原理图3.2. 查看PrjPCB格式的原理图查看原理图的软件有多种,我司主要使用Altium Designer软件。

相关主题