QuartusII中FPGA管脚的分配策略
FPGA管脚问题
FPGA管脚问题1、【问题】Pin Planner 的使⽤问题:在QuartusII 7.2 ,时序仿真都通过,但是,⼀旦使⽤Pin Planner设定引脚后,时序仿真就发⽣变化,与功能仿真结果不⼀致,不是理想的结果。
使⽤Pin Planner时要注意些什么问题呢?【解答】如果在没有设定引脚时就进⾏时序仿真,那么在后仿真就会不准确。
因为当设定引脚以后,需要重新进⾏布局布线,这和没有设定引脚是不同的,因此,布线的改变⾃然会影响到时序的改变。
通常的做法是:先做好所有的设定,⽣成⽹表⽂件和延时⽂件,再加上激励⽂件进⾏仿真,这个时候的仿真结果是最接近实际情况的。
通常的pin设定没有特定要求,差分信号是成对的。
所以请不要搞错。
时钟信号尽量使⽤专⽤的时钟引脚;普通I/O没有什么限制,做好时序约束就可以了。
2、【问题】怎样配置cyclone FPGA的管脚功能?【解答】FPGA芯⽚的引脚分为好多类,有通⽤IO,有时钟⽹络,有复位⽹络,这些引脚的具体功能是在布线时由⽤户选择的。
你可以⾃由的配置这些引脚的功能,但最好根据芯⽚的数据⼿册进⾏选择,如将时钟配置到专⽤时钟引脚上,将复位配置到专⽤复位引脚上,否则会影响最终的布线结果。
3、【问题】分配fpga管脚时该怎么选择,引脚有什么属性需要考虑,quartus2中引脚有⼏个属性:Reserved,Group,I/O Bank,Vref Group,I/O standard( 3.3-V LVTTL(default) )分别是什么意思,要怎么设置?【解答】⾸先说IO standard:这个是⽤于⽀持对应不同的电平标准。
FPGA IO⼝的电压由IO bank上的VCC引⼊。
⼀个bank上引⼊3.3V TTL电平,那么此时整个bank上输出3.3V 的TTL电平。
设置这个第⼀是为了和current strength⼀起计算功率。
第⼆个是⽤于在IO⼝上加载正确的上拉/下拉电阻。
数字实验箱与QuartusII使用
选择 ,单击左键、右键可 以调整时间轴单位
用鼠标选择一段波形, 单击工具栏可以将选定波形设置为1、0 等
Quartus II 的使用 (4)设计文件的仿真
设置周期波形
单击
,分别将a, b, cin
的时间周期(Period)设置
成20, 40, 80(ms)。
从全加器真值表可以看出,a,b,cin具有二倍 关系,可以选中其中一个输入管脚
拨码开关拨到上方,对应的发光管 点亮,电路送给FPGA高电平
拨码开关
EP2C5 I/O管脚
BM1 95
BM2 96
BM3 BM4 BM5 BM6
97
99 101 102
BM7 103
BM8 104
数字电路实验箱的使用 (3)彩灯电路与EP2C5管脚连接对照表
行 红(R) 黄(Y) 绿(G)
EP2C5的I/O管脚 列 EP2C5的I/O管脚
如:在Name栏输入xor 点击OK
S = A XOR B XOR Cin Co = A XOR B Cin + A B
Quartus II 的使用 (2) 建立图形文件 …
双击空白处后分别输入
xor
异或门
and2
与门
or2
或门
input
输入管脚
output
输出管脚
注:输入与门/或门时要注明 有几个输入管脚
S
0
0
0
0
0
0
0
1
0
1
0
1
0
0
1
0
1
1
1
0
1
0
0
0
1
《FPGA系统设计》实验报告》QuartusII软件入门并设计1位半加器
《FPGA系统设计》实验报告》QuartusII软件入门并设计1位半加器
一、设计任务
1、熟悉ALTERA公司EDA设计工具软件QuartusII。
2、熟悉EDA实验箱。
3、学习QuartusII软件。
4、在QuartusII软件中使用原理图输入法设计并实现一个1位半加器。
二、设计过程
1、半加器的设计:电路是指对两个输入数据位相加,输出一个结果位和进位,没有进位输入的加法器电路。
是实现两个一位二进制数的加法运算电路。
2、半加器表达式:进位:co=a and b
和:so=a xnor (not b)
3、半加器原理图、如下:
图1.1 半加器原理图
1.行为描述程序
2.数据流描述程序
3.结构体描述程序
图1.2 半加器实验操作图4、真值表
表1.1 半加器真值表
5、引脚分配图
图1.3 引脚分配图
6、调试过程
将99脚和98脚接到拨码开关,87脚和86脚接发光二极管,当开关全拨至1或全拨至0不亮,反之会亮。
三、总结
通过这次实验,我学会了用VHDL语言实现半加器功能,掌握Quartus‖软件输入设计流程,本次实验我分别用实验箱上的开关K1、K2作为半加器两输入A、B;分别用LED灯LED1、LED2作为半加器的两个输出端S、C。
实验时将实验箱的拨动开关拨向下时为低电平“0”。
拨向上时为高电平“1”,LED高电平时灯亮,低电平时灯灭。
其结果均符合半加器的真值表。
QuartusII中FPGA的管脚分配保存方法
Quartus II中FPGA的管脚分配保存方法一、摘要将Quartus II中FPGA管脚的分配及保存方法做一个汇总。
二、管脚分配方法FPGA 的管脚分配,除了在QII软件中,选择“Assignments ->Pin”标签(或者点击按钮),打开Pin Planner,分配管脚外,还有以下2种方法。
方法一:Import Assignments步骤1:使用记事本或类似软件新建一个txt文件(或csv文件),按如下格式编写管脚分配内容(不同的开发版,其内容也不同,本文以我使用的DIY_DE2开发板为范例)。
【这种方式格式最为简单】注意:To和Location两个关键字中间有一个半角逗号。
图1 pin.txt步骤2:在QII软件中,选择“Assignments -> Import Assignments”。
如图所示,导入xxx.txt或者xxx.csv文件即可图2 导入pin.txt步骤3:在QII软件中,选择“Assignments -> Pin”标签(或者点击按钮),打开Pin Planner,验证管脚是否分配正确。
图3 验证管脚是否分配正确方法二:导入source xxx.tcl文件步骤1:在QII软件中,使用“Assignments -> Remove Assignments”标签,移除管脚分配内容,以确保此次操作,分配的管脚没有因为覆盖而出现错误的情况。
图4 Remove Assignments注:在未执行任何管脚分配操作新工程中,可跳过步骤1。
步骤2:使用记事本或类似软件新建一个tcl文件,按如下格式编写管脚分配内容(不同的开发版,其内容也不同,本文以我使用的DIY_DE2开发板为范例)。
注意关键字set_location_assignment和-to的用法。
图5 pin.tcl步骤3:执行pin.tcl方法1:在QII软件中,使用“View -> Utility Windows -> Tcl Console”标签,打开Quartus II Tcl Console。
Quartus-II中FPGA管脚的分配策略
Quartus II中FPGA管脚的分配策略编写:***校核:审核:二〇一年月日目录目录 (I)QUARTUS II中FPGA管脚分配策略 (1)1.FPGA管脚介绍 (1).电源管脚 (1).配置管脚 (2).普通I/O管脚 (2).时钟管脚 (2)2.FPGA管脚分配方法 (3).P IN P LANNER方式 (3).I MPORT A SSIGNMENTS方式 (3).T CL S CRIPTS方式 (6).项目组统一使用方式 (8)3.编写FPGA管脚分配文件 (9).查看PDF格式的原理图 (9).查看P RJ PCB格式的原理图 (10)4.保存FPGA管脚分配文件 (11).T CL格式或CSV格式 (11).QSF格式 (11).项目组统一使用格式 (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电压。
每个电压通过独立的电源管脚来提供。
基于Quartus II的电路设计过程图文详解
基于Quartus II 7.2 的数字电路设计操作过程图解一.Quartus II 7.2 启动方法一、直接双击桌面上的图标,可以打开Quartus II 7.2 软件;方法二、执行:【开始】→【程序】→【Altera】→【Quartus II 7.2】→【Quartus II 7.2 TalkBack Install】菜单命令,可以打开软件。
启动软件后,若你的电脑没有连接到Internet互联网,会出现如下图所示的提示,提示你没有连接到Altera的官方网站,将无法获得更新的资源。
点击〖确定〗继续,因为这不影响软件的正常使用。
若你的电脑已经正常连接到Internet互联网,则在打开软件时就不会出现以上的提示,并且可以通过软件界面右下方的两个图标:,直接连接到Altera公司的官方网站,以便获取更多的信息和资源。
二.Quartus II 7.2软件界面Quartus II 7.2软件的默认启动界面如下图所示,由标题栏、菜单栏、常用工具栏、资源管理窗口、程序编译或仿真运行状态的显示窗口、程序编译或仿真的结果显示窗口和工程编辑工作区组成。
三.Quartus II 7.2软件使用1. 新建项目工程使用QuartusII7.2设计一个数字逻辑电路,并用时序波形图对电路的功能进行仿真,同时还可以将设计正确的电路下载到可编程的逻辑器件(CPLD、FPGA)中。
因软件在完成整个设计、编译、仿真和下载等这些工作过程中,会有很多相关的文件产生,为了便于管理这些设计文件,我们在设计电路之前,先要建立一个项目工程(New Project),并设置好这个工程能正常工作的相关条件和环境。
建立工程的方法和步骤如下:(1)先建一个文件夹。
就在电脑本地硬盘找个地方注意:文件夹的命名及其保存的路径中不能有中文字符。
(2)再开始建立新项目工程,方法如右图点击:【File】菜单,选择下拉列表中的【New Project Wizard...】命令,打开建立新项目工程的向导对话框。
FPGA入门及Quartus II使用教程(内部资料)
FPGA入门及Quartus II使用教程FPGA是英文Field Programmable Gate Array的缩写,即现场可编程门阵列,它是在可编程阵列逻辑PAL(Programmable Array Logic)、门阵列逻辑GAL(Gate Array Logic)等可编程器件的基础上上进一步发展的产物。
可以这样讲,ASIC(Application Specific Integrated Circuit )内部的所有资源,是用积木堆积起来的小房子,可以是一个欧美风情的房子,还可以是一个北京四合院…….而FPGA内部就可以说是一个个小积木,也就是内部有大量的资源提供给我们,根据我们的需求进行内部的设计。
并且可以通过软件仿真,我们可以事先验证设计的正确性。
第一章FPGA的基本开发流程下面我们基于Altera 公司的QuantusII 软件来说明FPGA 的开发流程。
下图是一个典型的基于Quartus II的FPGA开发整体流程框图。
1、建立工程师每个开发过程的开始,Quartus II以工程为单位对设计过程进行管理。
2、建立顶层图。
可以这样理解,顶层图是一个容器,将整个工程的各个模块包容在里边,编译的时候就将这些模块整合在一起。
也可以理解为它是一个大元件,比如一个单片机,内部包含各个模块,编译的时候就是生成一个这样的大元件。
3、采用ALTERA公司提供的LPM功能模块。
Quartus软件环境包含了大量的常用功能模块,比如计数器、累加器、比较器等等。
4、自己建立模块。
由于有些设计中现有的模块功能不能满足具体设计的要求,那就只能自己设计。
使用硬件描述语言,当然也可以用原理图的输入方法,可以独立的把它们当成一个工程来设计,并且生成一个模块符号(Symbol),类似于那些LPM功能模块。
这里可以理解为,如果我们需求的滤波器,没有现成的合适的,那我们可以通过LC自己来搭建一个滤波器。
5、将顶层图的各个功能模块连线起来。
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方式 (4)2.3.T CL S CRIPTS方式 (6)2.4.项目组统一使用方式 (9)3.编写FPGA管脚分配文件 (10)3.1.查看PDF格式的原理图 (10)3.2.查看P RJ PCB格式的原理图 (11)4.保存FPGA管脚分配文件 (12)4.1.T CL格式或CSV格式 (12)4.2.QSF格式 (12)4.3.项目组统一使用格式 (12)附录管脚类型说明 (13)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引脚分配方法
第二种:建立TCL文件进行管脚分配。
这种方法比较灵活,是比较常用的。
这种方法具有分配灵活,方便快捷,可重用性等多方面优点。
方法如下:选择Projects菜单项,并选择Generate tcl file for project选项,系统会为你自动生成相应文件,然后你只要向其中添加你的分配内容就可以了。
还有一种方法就是直接用new ,新建一个TCL文件即可,具体不再细讲。
下面是我分配的内容一部分,可供大家参考。
set_global_assignment -name FAMILY Cycloneset_global_assignment -name DEVICE EP1C3T144C8set_global_assignment -name ORIGINAL_QUARTUS_VERSION 8.0 set_global_assignment -name PROJECT_CREATION_TIME_DATE "19:14:58 JANUARY 06, 2009"set_global_assignment -name LAST_QUARTUS_VERSION 8.0set_global_assignment -nameUSE_GENERATED_PHYSICAL_CONSTRAINTS OFF -section_ideda_palaceset_global_assignment -name DEVICE_FILTER_PACKAGE "ANY QFP" set_global_assignment -name LL_ROOT_REGION ON -section_id "Root Region"set_global_assignment -name LL_MEMBER_STATE LOCKED-section_id "Root Region"set_global_assignment -name DEVICE_FILTER_PIN_COUNT 144 set_global_assignment -name DEVICE_FILTER_SPEED_GRADE 8 set_global_assignment -name FITTER_EFFORT "STANDARD FIT" set_global_assignment -name BDF_FILE topDesign.bdfset_global_assignment -name QIP_FILE nios.qipset_global_assignment -name QIP_FILE altpll0.qipset_global_assignment -name USE_CONFIGURATION_DEVICE ON set_global_assignment -name STRATIX_DEVICE_IO_STANDARD "3.3-V LVTTL"set_global_assignment -name PARTITION_NETLIST_TYPE SOURCE -section_id Topset_global_assignment -name PARTITION_COLOR 14622752-section_id Topset_location_assignment PIN_72 -to addr[7]set_location_assignment PIN_69 -to addr[6]set_location_assignment PIN_70 -to addr[5]set_location_assignment PIN_67 -to addr[4]set_location_assignment PIN_68 -to addr[3]set_location_assignment PIN_42 -to addr[2]set_location_assignment PIN_39 -to addr[1]set_location_assignment PIN_40 -to addr[0]set_location_assignment PIN_48 -to data[15]set_location_assignment PIN_47 -to data[14]set_location_assignment PIN_50 -to data[13]set_location_assignment PIN_49 -to data[12]set_location_assignment PIN_56 -to data[11]set_location_assignment PIN_55 -to data[10]set_location_assignment PIN_58 -to data[9]set_location_assignment PIN_57 -to data[8]set_location_assignment PIN_61 -to data[7]set_location_assignment PIN_62 -to data[6]set_location_assignment PIN_59 -to data[5]set_location_assignment PIN_60 -to data[4]set_location_assignment PIN_53 -to data[3]set_location_assignment PIN_54 -to data[2]set_location_assignment PIN_51 -to data[1]set_location_assignment PIN_52 -to data[0]set_location_assignment PIN_16 -to clkset_location_assignment PIN_38 -to csset_location_assignment PIN_141 -to led[3]set_location_assignment PIN_142 -to led[2]set_location_assignment PIN_143 -to led[1]set_location_assignment PIN_144 -to led[0]set_location_assignment PIN_33 -to reset_nset_location_assignment PIN_41 -to rdset_location_assignment PIN_71 -to wrset_location_assignment PIN_105 -to mosiset_location_assignment PIN_107 -to sclkset_location_assignment PIN_106 -to ssset_location_assignment PIN_73 -to motor[0]set_location_assignment PIN_74 -to motor[1]set_location_assignment PIN_75 -to motor[2]set_location_assignment PIN_76 -to motor[3]set_instance_assignment -name PARTITION_HIERARCHY root_partition -to | -section_id Top# Commit assignmentsexport_assignmentsFPGA 点滴(2008-09-30 09:44:45)转载标签:杂谈以此记录心得以及重要的知识点。
QuartersII三种分配管脚的方式
#后为注释部分。
(3)保存。
(4) Project->Add/RemoveFiles.....->找到该文件,点击Add。
(5)Tools->Tcl Scripe.....->选中该文件,点击run,设置完毕。
2.添加.cvs文件
(1)新建一个excel文件,内容格式如下:
To Location
SW[0] PIN_N25
SW[1] PIN_N26
SW[2] PIN_P25
SW[3] PIN_AE14
SW[4] PIN_AF14
保存时将文件类型设为.cvs格式。
注意:该文件中的引脚名一定要和quartus顶层文件的输入输出引脚名一样。
(2)Assignments->ImportAssignments.....->导入该文件,点击OK。
设置完毕。
3.txt文件
格式:
to,location
SW0,PIN_N25
SW1,PIN_N26
...
导入方法与CSV文件相同。
在Altera公司提供的Quartus ii软件里,我们可以发现三种分配管脚的方式。
1.使用tcl脚本的方法
(1) 生成tcl文件。project--->Generate Tcl File forproject...
[转载]Altera <wbr>FPGA自动分配引脚的方法
(2)找到"set_location_assignment"字段编辑管脚。 _location_assignment PIN_D13 -to iCLK
set_location_assignment PIN_G26 -to iRST_N
fpga管教分配学习文档
FPGA管脚说明Altera:用户I/O:不用解释了。
配置管脚:MSEL[1:0] 用于选择配置模式,比如AS、PS等。
DATA0 FPGA串行数据输入,连接到配置器件的串行数据输出管脚。
DCLK FPGA串行时钟输出,为配置器件提供串行时钟。
nCSO(I/O)FPGA片选信号输出,连接到配置器件的nCS管脚。
ASDO(I/O)FPGA串行数据输出,连接到配置器件的ASDI管脚。
nCEO 下载链期间始能输出。
在一条下载链中,当第一个器件配置完成后,此信号将始能下一个器件开始进行配置。
下载链上最后一个器件的nCEO悬空。
nCE 下载链器件始能输入,连接到上一个器件的nCEO,下载链的最后一个器件nCE接地。
nCNFIG 用户模式配置起始信号。
nSTATUS 配置状态信号。
CONF_DONE 配置结束信号。
电源管脚:VCCINT 内核电压。
130nm为1.5V,90nm为1.2VVCCIO 端口电压。
一般为3.3V,还可以支持多种电压,5V、1.8V、1.5V VREF 参考电压GND 信号地时钟管脚:VCC_PLL PLL管脚电压,直接连VCCIOVCCA_PLL PLL模拟电压,截止通过滤波器接到VCCINT上GNDA_PLL PLL模拟地GNDD_PLL PLL数字地CLK[n] PLL时钟输入PLL[n]_OUT PLL时钟输出特殊管脚:VCCPD 用于寻则驱动VCCSEL 用于控制配置管脚和PLL相关的输入缓冲电压PROSEL 上电复位选项NIOPULLUP 用于控制配置时所使用的用户I/O的内部上拉电阻是否工作TEMPDIODEN 用于关联温度敏感二极管********************************************************************* *********************************1/1.I/O, ASDO在AS 模式下是专用输出脚,在PS 和JTAG 模式下可以当I/O 脚来用。
QuartusII使用说明
QuartusII使用说明QuartusⅡ软件提供了FPGA 和CPLD 各设计阶段的解决方案。
它集设计输入、综合、仿真、编程(配置)于一体,带有丰富的设计库,并有详细的联机帮助功能。
下面为用QUARTUSⅡ进行设计的一般过程。
其包含的主要内容为:1、开始2、新建project3、设计输入4、编译5、引脚分配6、仿真7、编程、配置FPGA器件8、板级调试9、典型的FPGA设计流程使用CAD软件进行FPGA设计的典型流程如图1所示。
Quartus II软件支持以上设计流程的所有阶段。
1、开始在Quartus II软件中设计的每个电路或者子电路都叫做项目(Project)。
Quartus II软件每次只能打开一个Project,并且一个Project的所有信息都必须保存在同一个文件夹。
为了开始一个新逻辑电路的设计,首先第一步就是新建一个文件夹来保存此Project的文件。
为了保存本教程的设计项目Project,新建文件夹D:\introtutorial。
本处所举例子是一个简单两路开关控制电路。
启动Quartus II软件,会打开如图2所示启动画面。
启动画面中包含了使用Quartus II软件所需要的几个窗口,用户可以通过鼠标在窗口中选择想要执行的功能。
Quartus II软件所提供的绝大多数命令都可以通过选择位于标题栏下面的一系列菜单命令来完成。
图2 Quartus II启动画面在弹出的File菜单上单击单击Exit菜单项,这样可以退出Quartus II软件。
对于有些命令,需要按顺序访问几个菜单命令才可以。
本教程中使用符号Menu1 > Menu2 > Item表示使用鼠标左键先点击菜单Menu1,然后在弹出的菜单中鼠标左键点击Menu2项,然后在弹出的菜单中鼠标单击Item项。
2、新建Project开始一个新设计,必须先定义一个设计项目project。
Quartus II软件通过提供一个Wizard,使用户的设计任务变得非常简单。
Quartus-II中FPGA管脚的分配策略
word格式-可编辑-感谢下载支持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电压。
DDR3,DIMM在FPGA上引脚分配规则,完全手打中文
FPGA BANK选择页面中的图是所选部件物理表示的架构视图。
默认情况下, MIG 将使用推荐的选择,地址/控制BANK和数据BANK是根据V6对不同频率的规则限定的。
选择您想要使用的BANK for内存接口,你用不着选择的实际的引脚。
默认情况下MIG将使用所选bank中的任意引脚for内存接口。
设计规则:∙设计最大频率:o-1 FPGA 速度级器件: 400 MHzo-2 和-3 FPGA 速度级器件: 533 MHzo只有-2 FPGA 速度等级的 CXT 设备只要303 MHz支持o低功耗V6设备只需303303 MHz∙频率超过333 MHz,只有数据宽度低于72位被容许。
频率低于333 MHz 数据宽度低于144 位被允许∙内存类型、内存部件和数据宽度被限制基于所选的 FPGA 器件、 FPGA 器件速度等级和设计频率BANK的选择规则:∙地址/控制组只能选择在内部列BANK∙第一个选定的地址/控制组将有 CK [0] 和 CK #[0] 引脚∙包含CK [0] 和 CK #[0]的BANK,会有该MMCM应用与该H-Row∙对于设计频率400 MHz或更高,只有内部列BANK被允许用于数据组的选择。
对于设计频率为400 MHz以下,内部和外部列BANK被允许数据组的选择o内部或外部列BANK被唯一的允许for选择∙位于,包含CK [0]和CK #[0] 的BANK的上面一行、下面一行和同一行,的内外侧BANK,是可用的for数据组引脚选择∙此限制被一个称为vicinity box的边界箱描述∙系统时钟组只能被选择在包含GC引脚的BANK或者位于,和分配的MMCM 同一H-ROW的内部BANK。
∙控制和状态引脚即sys_rst,error等,在系统时钟BANK中分配.∙由于采用不同的电压标准,系统时钟组与其余的设计组针脚(地址/控制组和数据组)不能共存于同一BANK。
∙一个主BANK必须被选择for每个列,假如系统时钟BANK不能作为主BANK引脚分配规则:∙地址/控制组:o包含 A、BA、 CK、 CK #、 CKE、 CS #、 RAS #、 CAS #、 WE#、 ODT, RESET #o只能选择内部列BANKo内存时钟信号(CK [0] 和 CK#[0]) 分配给差分对引脚(P Npair)o VRN/VRP 引脚若被用于引脚分配,DCI级联应该被采用,用以支持地址/时钟的 DCI 标准PS: XILINX公司的Virtex系列FPGA芯片上,每个BANK都有一对VRP/VRN管脚。
Quartus II2.2 引脚设置和下载
2.2 引脚设置和下载为了能对该计数器进行硬件测试,应将其输入输出信号锁定在芯片确定的引脚上,编译后下载还必须配置芯片进行编辑,完成FPGA的最终开发。
引脚设置和下载仍然以2.1节的“CNT10“十进制计数器为例。
2.2.1 引脚设定(1)在2.1节的基础上,在菜单栏中选择Assignments→Assignment Editor编辑器窗。
即弹出如图.2.2.1所示Assignment Editor编辑器窗口,在Category栏中选择Pin,或直接单击右上侧的Pin按钮。
图2.2.1 Assignment Editor编辑器(2)双击“TO”栏的《new》,在出现的如图2.2.1所示的下拉栏中分别选择本工程要锁定的端口信号名;然后双击对应的Location栏的《new》,在出现的下拉栏中选择对应端口信号名的器件引脚号,如对应CQ[3],选择16脚。
在此选择GW48-EDA系统的电路模式No.5(参考附录A图A-6实验电路结构图),各引脚的锁定参考图2.2.2。
GW48板确定引脚分别为:主频时钟CLK接Clock0(第28脚,可接在4Hz上);计数使能EN可接电路模式No.5的键2(PIO0对应第234脚);复位RST则接电路模式No.5的键1(PIO1对应第233脚,注意键序与引脚号码并无对应关系);溢出COUT接发光管D8(PIO15对应第12脚);4位输出数据总线CQ[3..0]可由数码1来显示,通过分别接PIO19、PIO18、PIO17、PIO16(它们对应的引脚编号分别为13、14、15、16)。
图2.2.2是已设定成功的引脚。
图2.2.2 设定成功的引脚图(3)最后存储这些引脚锁定的信息后,必须再编译(启动Start Compilation)一次,才能将引脚锁定信息编译进编程下载文件中。
此后就可以准备将编译好的SOF文件下载到实验系统FPGA中去了。
2.2.2配置文件下载将编译产生的SOF格式配置文件配置进FPGA中,进行硬件测试的步骤如下:(1)打开编程窗和配置文件。
FPGA入门及QuartusII使用教程(内部资料)
FPGA入门及Quartus II使用教程FPGA是英文Field Programmable Gate Array的缩写,即现场可编程门阵列,它是在可编程阵列逻辑PAL(Programmable Array Logic)、门阵列逻辑GAL(Gate Array Logic)等可编程器件的基础上上进一步发展的产物。
可以这样讲,ASIC(Application Specific Integrated Circuit )内部的所有资源,是用积木堆积起来的小房子,可以是一个欧美风情的房子,还可以是一个北京四合院…….而FPGA内部就可以说是一个个小积木,也就是内部有大量的资源提供给我们,根据我们的需求进行内部的设计。
并且可以通过软件仿真,我们可以事先验证设计的正确性。
第一章FPGA的基本开发流程下面我们基于Altera 公司的QuantusII 软件来说明FPGA 的开发流程。
下图是一个典型的基于Quartus II的FPGA开发整体流程框图。
1、建立工程师每个开发过程的开始,Quartus II以工程为单位对设计过程进行管理。
2、建立顶层图。
可以这样理解,顶层图是一个容器,将整个工程的各个模块包容在里边,编译的时候就将这些模块整合在一起。
也可以理解为它是一个大元件,比如一个单片机,内部包含各个模块,编译的时候就是生成一个这样的大元件。
3、采用ALTERA公司提供的LPM功能模块。
Quartus软件环境包含了大量的常用功能模块,比如计数器、累加器、比较器等等。
4、自己建立模块。
由于有些设计中现有的模块功能不能满足具体设计的要求,那就只能自己设计。
使用硬件描述语言,当然也可以用原理图的输入方法,可以独立的把它们当成一个工程来设计,并且生成一个模块符号(Symbol),类似于那些LPM功能模块。
这里可以理解为,如果我们需求的滤波器,没有现成的合适的,那我们可以通过LC自己来搭建一个滤波器。
5、将顶层图的各个功能模块连线起来。
超简明Quartus_II教程(CPLD篇)
超简明QuartusII教程(CPLD篇)黄俊2007-9-29/index.php/2599huangjun5927@在很多设计中,CPLD仅作为电路中的辅助元件,坦白地说,对大多数硬件开发工程师来说,CPLD部分的设计并不是他们主要的工作,并不想花太多时间去学习。
QuartusII功能强大,但很多工具并不需要在CPLD设计中使用。
QuartusII使用极其方便,可简可繁,本文力争让读者在两小时内就掌握基本的使用方法。
本文同样适用于FPGA设计的一部分,FPGA设计中涉及更深一些的时序分析、时序约束、逻辑分区,逻辑锁定,逻辑分析仪,功耗分析等等功能,所需工具较多,请参看其它教程。
本文图片配合文字和箭头为主要讲解方式,所以需多用一下放大功能,在200%左右看插图时,可以清晰看到文字。
引子CPLD基本设计流程如下:z工程管理——新建工程、工程管理;z源文件输入——VHDL/Verilog程序或原理图的设计,Altera内嵌模块的调用(对CPLD而言,只有MAXII还有内嵌模块可调);z综合、编译——检查语法、连接错误,生成综合后网表;z功能仿真——综合后的功能仿真(可选);z简单的约束——管脚分配、I/O特性约束(电平标准,驱动能力等)、简单的时序约束;z全编译——软件自动完成布局布线、生成最终编程文件;z时序仿真——带延时的和实际情况非常相近的时序仿真(推荐使用);z编程——下载到硬件中。
实战1、工程管理a)新建工程i.输入工程名,ii.选源文件iii.选器件iv.设置第三方工具具体方法见下图。
在此有一个重要的设置需了解,即未用I/O的状态。
b)工程管理i.整个工程可单纯复制ii.整个工程可存不同版本(有相互比较的功能)iii.整个工程可以压缩(可供存档、打包之用)技术支持人员一般会希望用户用这一工具,将工程打包,以便再现遇到的问题。
a)新建源文件:i.HDL;1.可导入模板2.保存;3.窗口的操作QuartusII对操作界面提供灵活的设置,可自己组合窗口以满足自己的审美。
1、Altera Quartus II 教程(基于Altera DE2板和原理图设计)
目前,FPGA 的主要发展动向是:随着大规模 FPGA 器件的发展,系统设计进入“片上可 编程系统”(SOPC)的新纪元;芯片朝着高密度、低压、低功耗方向挺进;国际各大公司都 在积极扩充其 IP(知识产权)库,以优化的资源更好的满足用户的需求,扩大市场;特别是 引人注目的所谓 FPGA 动态可重构技术的开拓,将推动数字系统设计观念的巨大转变。
Altera Quartus II 入门教程
(基于Altera DE2 板和原理图设计)
广东工业大学自动化学院电子信息科学与技术系
1
徐迎晖
2009 秋
目录
一、FPGA 简介 ............................................................................................ 1 二、DE2 板及 Altera 公司产品简介........................................................... 4 三、Quartus II 使用基础 .............................................................................. 8
四、设计实例 ..................................................................................... 33
功能要求............................................................ 33 设计思路............................................................ 34 方案设计............................................................ 34 详细设计............................................................ 36 设计的实现 .......................................................... 37 评价与改进 .......................................................... 41
FPGA管脚分配时需注意的一些事项(以xilinx xc4vsx55为例)
FPGA管脚分配时需注意的一些事项(以xilinx xc4vsx55为例)FPGA管脚分配时需注意的一些事项(以xilinx xc4vsx55为例)平台:XC4VSX55 ISE10.1设计过FPGA的原理图,看FPGA的手册,说管脚的分配问题,如时钟管脚要用GC类管脚,而且单端时钟输入时要用P类型的管脚,不能用N类型管脚等等。
一直以来都没有试验过,今天试验一把,以求各种验证。
1)GC类全局时钟管脚是否可用作普通IO使用?所谓GC类管脚,就是在管脚的称是诸如IO_L1P_GC_LC等带有GC的管脚。
其实手册中说的是GC类管脚可以用作IO的,但在《Xilinx FPGA开发实用教程》(清华出版社)574页倒数第八行提到:“所有从全局时钟管脚输入的信号必须经过IBUF元,否则在布局布线时会报错”,于是今天我试了一下,将某一GC 类管脚分配给一个普通的输入口(也试验了分配给一个普通的输出口),经布局布线后,未出错。
因此得出结论:GC类全局时钟管脚可以作为普通IO使用。
(不知道是不是我对书中提到的全局时钟管脚理解有误,如果是,请网友别拍我,敬请留言指正)2)非GC类全局时钟管脚是否可以作时钟使用?其实至于说能否作为时钟使用,这里有另一层函义。
当然,如果你把一个普通IO口配置成输入口,就把它的输入信号作为时钟,那是没问题的。
但我们一般不这么做,因为时钟信号对于我们来说是一个很重要的信号,因此FPGA在内部会有特殊照顾,如果你使用FPGA传门为时钟预留的管脚,并作一些处理,那么你的时钟对于各种模块的时延是可以忽略的,因为时钟在布线时是单独走的一层,而如果你就仅用普通IO 的话,经过FPGA内部布局布线后,从它的输到,再到各个使用时钟的地方,有的线长,有的线短,它的时延将是不一样的。
这些东西还是看一些FPGA结构的内容吧。
在xilinx里有专门的DCM IP核可供调用,在ISE中执行project——>New Source——>IP(CORE Generator & Architecture Wizard)——>FPGA Features andDesign——>Clocking——>Virtex-4——>Single DCM ADV v9.1i,可得如下界面:需要特别注意的是CLKIN Source需要选择是External还是Internal,各自生成的源文件如下:==========================选择External=========================`timescale 1ns / 1psmodule clk_test(CLKIN_IN,CLKIN_IBUFG_OUT,CLK0_OUT,LOCKED_OUT);input CLKIN_IN;output CLKIN_IBUFG_OUT;output CLK0_OUT;output LOCKED_OUT;wire CLKFB_IN;wire CLKIN_IBUFG;wire CLK0_BUF;wire GND_BIT;wire [6:0] GND_BUS_7;wire [15:0] GND_BUS_16;assign GND_BIT = 0;assign GND_BUS_7 = 7'b0000000;assign GND_BUS_16 = 16'b0000000000000000;assign CLKIN_IBUFG_OUT = CLKIN_IBUFG;assign CLK0_OUT = CLKFB_IN;IBUFG CLKIN_IBUFG_INST (.I(CLKIN_IN),.O(CLKIN_IBUFG));BUFG CLK0_BUFG_INST (.I(CLK0_BUF),.O(CLKFB_IN));DCM_ADV DCM_ADV_INST (.CLKFB(CLKFB_IN), .CLKIN(CLKIN_IBUFG),.DADDR(GND_BUS_7[6:0]),.DCLK(GND_BIT),.DEN(GND_BIT),.DI(GND_BUS_16[15:0]),.DWE(GND_BIT),.PSCLK(GND_BIT),.PSEN(GND_BIT),.PSINCDEC(GND_BIT),.RST(GND_BIT),.CLKDV(),.CLKFX(),.CLKFX180(),.CLK0(CLK0_BUF),.CLK2X(),.CLK2X180(),.CLK90(),.CLK180(),.CLK270(),.DO(),.DRDY(),.LOCKED(LOCKED_OUT),.PSDONE());defparam DCM_ADV_INST.CLK_FEEDBACK = "1X";defparam DCM_ADV_INST.CLKDV_DIVIDE = 2.0;defparam DCM_ADV_INST.CLKFX_DIVIDE = 1;defparam DCM_ADV_INST.CLKFX_MULTIPLY = 4;defparam DCM_ADV_INST.CLKIN_DIVIDE_BY_2 = "FALSE";defparam DCM_ADV_INST.CLKIN_PERIOD = 16.129;defparam DCM_ADV_INST.CLKOUT_PHASE_SHIFT = "NONE";defparam DCM_ADV_INST.DCM_AUTOCALIBRATION = "TRUE";defparam DCM_ADV_INST.DCM_PERFORMANCE_MODE = "MAX_SPEED";defparam DCM_ADV_INST.DESKEW_ADJUST = "SYSTEM_SYNCHRONOUS";defparam DCM_ADV_INST.DFS_FREQUENCY_MODE = "LOW";defparam DCM_ADV_INST.DLL_FREQUENCY_MODE = "LOW";defparam DCM_ADV_INST.DUTY_CYCLE_CORRECTION = "TRUE";defparam DCM_ADV_INST.FACTORY_JF = 16'hF0F0;defparam DCM_ADV_INST.PHASE_SHIFT = 0;defparam DCM_ADV_INST.STARTUP_WAIT = "FALSE";endmodule==========================选择Internal=========================`timescale 1ns / 1psmodule clk1_test(CLKIN_IN,CLK0_OUT,LOCKED_OUT);input CLKIN_IN;output CLK0_OUT;output LOCKED_OUT;wire CLKFB_IN;wire CLK0_BUF;wire GND_BIT;wire [6:0] GND_BUS_7;wire [15:0] GND_BUS_16;assign GND_BIT = 0;assign GND_BUS_7 = 7'b0000000;assign GND_BUS_16 = 16'b0000000000000000;assign CLK0_OUT = CLKFB_IN;BUFG CLK0_BUFG_INST (.I(CLK0_BUF),.O(CLKFB_IN));DCM_ADV DCM_ADV_INST (.CLKFB(CLKFB_IN),.CLKIN(CLKIN_IN),.DADDR(GND_BUS_7[6:0]),.DCLK(GND_BIT),.DEN(GND_BIT),.DI(GND_BUS_16[15:0]),.DWE(GND_BIT),.PSCLK(GND_BIT),.PSEN(GND_BIT),.PSINCDEC(GND_BIT),.RST(GND_BIT),.CLKDV(),.CLKFX(),.CLKFX180(),.CLK0(CLK0_BUF),.CLK2X(),.CLK2X180(),.CLK90(),.CLK180(),.CLK270(),.DO(),.DRDY(),.LOCKED(LOCKED_OUT),.PSDONE());defparam DCM_ADV_INST.CLK_FEEDBACK = "1X";defparam DCM_ADV_INST.CLKDV_DIVIDE = 2.0;defparam DCM_ADV_INST.CLKFX_DIVIDE = 1;defparam DCM_ADV_INST.CLKFX_MULTIPLY = 4;defparam DCM_ADV_INST.CLKIN_DIVIDE_BY_2 = "FALSE";defparam DCM_ADV_INST.CLKIN_PERIOD = 16.129;defparam DCM_ADV_INST.CLKOUT_PHASE_SHIFT = "NONE";defparam DCM_ADV_INST.DCM_AUTOCALIBRATION = "TRUE";defparam DCM_ADV_INST.DCM_PERFORMANCE_MODE = "MAX_SPEED";defparam DCM_ADV_INST.DESKEW_ADJUST = "SYSTEM_SYNCHRONOUS";defparam DCM_ADV_INST.DFS_FREQUENCY_MODE = "LOW";defparam DCM_ADV_INST.DLL_FREQUENCY_MODE = "LOW";defparam DCM_ADV_INST.DUTY_CYCLE_CORRECTION = "TRUE";defparam DCM_ADV_INST.FACTORY_JF = 16'hF0F0;defparam DCM_ADV_INST.PHASE_SHIFT = 0;defparam DCM_ADV_INST.STARTUP_WAIT = "FALSE";endmodule比较以上两段代码,区别在于选择是External时CLKIN经过了IBUFG才到的DCM_ADV,而选择Internal 的CLKIN则直接到了DCM_AV,而IBUFG就是原语“全局时钟缓冲”单元,我们使用时要选择External,只有当我们的级联两个DCM模块时,直接与外面相连的选External,而另一个选择Internal。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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方式 (4)2.3.T CL S CRIPTS方式 (6)2.4.项目组统一使用方式 (9)3.编写FPGA管脚分配文件 (10)3.1.查看PDF格式的原理图 (10)3.2.查看P RJ PCB格式的原理图 (11)4.保存FPGA管脚分配文件 (12)4.1.T CL格式或CSV格式 (12)4.2.QSF格式 (12)4.3.项目组统一使用格式 (12)附录管脚类型说明 (13)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软件。