fpga引脚分配信号如何分配

FPGA的引脚配置技巧 分配fpga管脚时该怎么选择
分配fpga管脚时该怎么选择,引脚有什么属性需要考虑,quartus2中引脚有几个属性:Reserved,Group,I/O Bank,Vref Group,I/O standard( 3.3-V LVTTL(default) )分别是什么意思,要怎么设置?
IO standard是根据你所要输入的电平来设置,Group是根据所分配的信号端口自动确定,而每个引脚的IO Bank本身已经确定!
另外,分配的引脚所属的IO Bank不同有关系吗?引脚的分配除了要考虑专用引脚和用户引脚的区别外,还要考虑什么因素?
一一回答,从简单到复杂。
首先说IO standard:这个是用于支持对应不同的电平标准。FPGA IO口的电压由IO bank上的VCC引入。一个bank上引入3.3V TTL电平,那么此时整个bank上输出3.3V的TTL电平。设置这个第一是为了和current strength一起计算功率。第二个是用于在IO口上加载正确的上拉/下拉电阻。只要你设置完成,Quartus会按照你的电平标准自动布线。
第二是IO Bank:你在quartus pin planner 的top view下右键然后点击 show IO banks,这个时候就会看到FPGA的管脚被几种颜色划分开了。一种颜色下的IO口代表一组bank。你在吧管脚的locaon约束完成以后。IO Bank会自动填充完毕的。
第三是Group:Group就是你所输出的信号的名字啦。比如你有一组信号叫cnt。你对cnt的某一根赋值,那么。。这里的Group会自动填充为cnt 。
第四是Reserved:这个是对管脚内部的IO逻辑进行约束的,你在下面可以看到一些值。介绍几个吧。bidreconal:双向,tri-state:三态等等。这个约束的是FPGA在IO端的输入输出区域的逻辑。比如你选择tri-state。那么这个时候,在你IO口前部的IO区,quartus会自动给你生成一个三态门。
第五个是Vref Group:这个Group是bank内部的细分区域,因为一个bank可能多达60个脚。为了快速定位,你可以利用这个vref group来找到某个管脚。(这个是非修改属性)无法修改。
你的理解是正确的,另外,跨越IO bank的信号没有问题。只是注意跨bank的电平是否一致即可。对于跨IO bank的延迟对于FPGA而言没有多少延迟。
管脚分配呢,你可以看一下quartus里面pin planner内部那张 top view对于每个管脚的说明。大多数管脚是可以当做普通IO使用的。只是有些特殊要求的时候。只可以使用对应的IO,比如差分输入,高时钟输入等等。这个是要参照对应器件的IO 手册来决定的。而且对应的设计大多数的器件生产商都会给出参考设计。里面包括了IO的设计,pcb的设计以及内部程序端口的约束。所以具体问题具体分析。
关注电子发烧友微信
有趣有料的资讯及技术干货
下载发烧友APP
打造属于您的人脉电子圈
关注发烧友课堂
锁定最新课程活动及技术直播
本文首先介绍了fpga的优势及特点,其次介绍了fpga的应用领域,最后阐述了fpga应用的三个主要方...
本文首先介绍了fpga的工作原理及特点,其次介绍了单片机的工作原理及特点,最后阐述了fpga和单片机...
本文主要介绍的是FPGA的片上资源使用情况,分别是从组合逻辑及时序逻辑来详细的分析。
在本文中,利用自编码神经网络的编码器对输入数据进行编码,所得到隐含层的输出数据称为原始数据的编...
当前工业工厂自动化需要机器视觉来快速准确检测检查生产线,确保高质量控制。这些稳定可靠的系统需要从简单...
将逻辑门和输出寄存器固定为通用逻辑后,选择使用逻辑输入及其互补逻辑,就可以建立任何逻辑功能。PAL主...
PLD和FPGA都是由逻辑阵列模块构成的,但是CPLD LAB基于乘积和宏单元,而FPGA LAB使...
FPGA LAB和CPLD的LAB设计不同。CPLD LAB由宏单元构成,包括自己的本地可编程阵列,...
在嵌入式系统研发领域,随着产品AI化升级进程,原先设计常规数字系统的FPGA硬件工程师和系统软件设计...
Lattice公司的ECP5-5G系列是低成本低功耗小尺寸的FPGA系列产品,提供高性能特性如增强的...
十年前,嵌入式视觉技术主要用于比较少见、高度专业化的应用。今天,设计工程师们在越来越多新兴的工业、汽...
本次大赛将以一个互联网应用(如CTR)为切入点,比赛协办方将提供资源(包括 AI 加速器)和数据集,...
基于数字特征的识别算法其核心是通过对数字的形状以及结构等几何特征进行分析与统计,通过对数字特征的识别...
研究实时金融指数行情数据的高速分发及应用接口技术,采用高速传输总线结构实现实时金融指数行情数据的提取...
英特尔宣布原始设备制造商 (OEM) 在其服务器系列中采用了英特尔现场可编程门阵列 (FPGA) 加...
中国每年对于FPGA设计人才的需求缺口巨大,FPGA设计人才的薪水也是行业内最高的。目前,美国已有F...
首先需要分析功能需求,然后在平衡资源与速度后,估计速度需求。同样也可以根据之前的设计来确定,根据FP...
SERDES恢复出的数据进入FPGA有一个解复用和时钟域转换的问题,Stratix GX包含了专用电...
随着实施基于云的服务和机器到机器通信所产生的数据呈指数级增长,数据中心面临重重挑战....
FPGA并不是万能的。相对于串行结构处理器,其设计的灵活性是以工作量的增加为代价的。FPGA与ARM...
基于FPGA的比特平面分层 基于单核Zynq 7Z007S的MiniZed(TM) 开发套件 Xilinx...
英特尔通过聘请业内最知名的AMD前GPU架构师Raja Koduri负责研发其独立GPU产品。
Intel公司的Cyclone 10 LP FPGA系列是低成本和低静态功耗的器件,提供高密度可编门...
 致力于在功耗、安全、可靠性和性能方面提供差异化的领先半导体技术方案供应商美高森美公司(Micros...
ZCU104 评估套件可帮助设计人员为监控、高级驾驶员辅助系统 (ADAS)、机器视觉、增强实境 (...
CPU和GPU都属于冯·诺依曼结构,指令译码执行,共享内存。FPGA之所以比CPU、GPU更快,本质...
2018 年 3 月 16 日,赛灵思又面向中国市场专门举行了一场信任 CEO 见面会,会上,已经在...
系统设计有时十分复杂,需要充分了解许多不同的元件,如果解决方案的各环节可以进行原型制作并快速演示,就...
本文将介绍一种基于现场可编程门阵列 (FPGA) 核心的实施体现了先进的现代航空电子设计方法。这项技...
FPGA 对绝大多数的人来说相对有些陌生。经常有朋友问我,你们成天搞的这个 FPGA 到底是什么东西...
今日发布“2011中国电子工程师生活与工作状况调查”结果。本次调查从日开始,至5月...
在简单电路中,当频率较低时,数字信号的边沿时间可以忽略时,无需考虑时序约束。但在复杂电路中,为了减少...
时钟是数字电路中所有信号的参考,特别是在FPGA中,时钟是时序电路的动力,是血液,是核心。
FPGA相比于CPU,最大的优点在于速度,简单来讲,FPGA是靠控制每个时钟(Cycle)来驱动信号...
FPGA中RAM的使用探索。以4bitX4为例,数据位宽为4,深度为4。
在这个以数据为中心的世界,用户对搜索引擎提出了比以往更高的要求。先进的英特尔技术可帮助 必应 利用强...
高云半导体 科技股份有限公司今日宣布签约ELDIS科技有限公司为以色列授权代理商。此举标志着高云半...
美国为何在许多自己的强项上制裁中国,中国又为何不对进口额超过石油的集成电路产品征收高关税呢?
ACAP 的核心是新一代的 FPGA 架构,结合了分布式存储器与硬件可编程的 DSP 模块、一个多核...
随着人工智能、5G通信、大数据、云计算等应用的出现,人们对于通信带宽的要求也在不断的提高,这些应用需...
 Lattice的ECP3/ECP5系列FPGA内部集成了多个sysDSP架构的乘法器模块,基于sy...
之前用serdes一直都是跑的比较低速的应用,3.125Gbps,按照官方文档一步一步来都没出过什么...
赛灵思公司第四任CEO Victor Peng 走马上任,他同时兼任公司总裁,Victor Peng...
像素是由比特组成的数字。例如,在256级灰度图像中,每个像素的灰度是由8比特(也就是1个字节)组成。...
我们使用3x3模板进行边界提取,所以当3x3九个点都是‘1’的时候,输出为‘1’,当九个点都是‘0’...
我不得不承认,随着时间的推移为 FPGA 供电变得越来越复杂,本文提供一些建议,希望可以帮助简化 F...
值得注意的是,以上测试是在资源足够频率不高的条件下测试的。根据经验,当资源使用较多,时钟频频较高时,...
相比分立IC,逻辑和线性模块能够提供不折不扣的高性能,同样地,ARM Cortex-M3处理器也是一...
找到问题根源后,根据测量结果修改 DSP 对 FLASH 空间的异步时序配置,以保证足够的裕量,问题...
随着人工智能和深度学习对运算要求越来越高,人们逐渐认识到并行处理、低延时、低功耗和可重配置的重要性,...
检测线圈和检测线路组成一个振荡器,当硬币通过币道时,线圈的电感会发生变化,引起检测电路振荡频率发生变...
Victor Peng于2008年加入赛灵思,曾任赛灵思产品执行副总裁兼总经理,主要负责公司各种系列...
这一次给大家分享的内容主要涉及Xilinx FPGA内的CLBs,SelectIO和Clocking...
在二值图像的腐蚀算法过程中我们使用二值图像3x3图像矩阵,由图2可知,当九个格子中不全为‘0’或者‘...
信号处理系统一般不单单是模拟信号或者数字信号,一般两者都会有。信号的处理关注的是信号以及信号所包含的...
比特币挖矿机,就是用于赚取比特币的电脑,这类电脑一般有专业的挖矿芯片,多采用烧显卡的方式工作,耗电量...
总之,硬件的内容很多很杂,硬件那方面练成了都会成为一个高手,我时常会给人家做下方案评估,很多高级硬件...
Intel公司的MAX 10 FPGA系列采用TSMC 55nm NOR闪存技术,容量从2K到50K...
如果符合一些简单的设计原则,采用最新的Xilinx7系列FPGA架构上实现无线通信。Xilinx公司...
加利福尼亚州圣何塞 —自适应和智能计算的全球领先企业赛灵思公司(Xilinx, Inc.,(NASD...
自适应和智能计算的全球领先企业赛灵思公司(Xilinx, Inc.,(NASDAQ:XLNX))总裁...
自适应和智能计算的全球领先企业赛灵思公司(Xilinx, Inc.,(NASDAQ:XLNX))总裁...
如图7.20所示,在弹出的Hardware Setup页面里,选择当前硬件为USB Blaster,...
在学习一门技术之前我们往往从它的编程语言入手,比如学习单片机时,我们往往从汇编或者C语言入门。所以不...
典型高速系统应用框图举例
关于为FPGA应用设计优秀的电源管理解决方案已经有许多技术讨论,因为这不是一项简单的任务。 此任务的...
随着实施基于云的服务和机器到机器通信所产生的数据呈指数级增长,数据中心面临重重挑战。这种增长毫无减缓...
从市场规模来看,全球FPGA近几年基本维持在50亿美元左右。当前,在国家大力支持集成电路产业发展的环...
基于FPGA的二值图像的膨胀算法的实现 Xilinx 突破性技术与产品亮相 OFC 2018,大展光...
目前大多数的机器学习是在处理器上完成的,大多数机器学习软件会针对GPU进行更多的优化,甚至有人认为学...
CAN总线规范采用了ISO-OSI(Open System Interconnection Refe...
相信每一个电子工程师在项目开发的过程中都不可避免的要进行方案的调试,除了模拟调试我们还必须进行真机调...
在Pin Planner界面最下面出现的“Node Name”一列中,有我们的3个信号接口,这里“L...
3D图像传感器系统结构包含两只CMOS型图像传感器及缓存图像数据的SDRAM,为了对两只图像传感器...
JTAG模式在线下载FPGA的原理如图7.15所示,PC端的Quartus II软件通过下载线缆将b...
莱迪思半导体公司布推出全新的FPGA设计软件——Lattice Radiant(TM),适用于需要开发低功...
在进行FPGA学习的时候,我遇到过问题停滞不前,试验没有进展,心情沮丧的时候。那时对底层硬件一无所知...
FPGA(Field-Programmable Gate Array),即现场可编程门阵列,它是在P...
工业电子产品的发展趋势是更小的电路板尺寸、更时尚的外形和更具成本效益。由于这些趋势,电子系统设计人员...
抱着热情,自己后来一点一点地深入的学习fpga,一些常规逻辑电路的设计,包括逻辑门电路、数据选择器、...
各种方案虽然只是初步的了解一些,但是发现这方面虽然有类似SOPC概念的海思和TI双核解决方案,而且是...
主动噪声控制平台的FPGA实现。基于FPGA搭建了针对汽车的主动噪声控制平台,此平台可以正确实时地采...
如果你认为这么多书,怎么看都看不完。那是以一种静止、偏面的观点来分析问题了。其实上介绍那么多课,很多...
惯性导航系统(INS,Inertial Navigation System)也称作惯性参考系统,是一...
本文主要介绍了基于FPGA的压控晶振同步频率控制系统的研究与设计。利用GPS提供的1pps秒脉冲信号...
由于超级电容器单体性能参数的离散性,当多个单体串联组成电容器组时,在充放电过程中容易造成过充或过放现...
英特尔宣布开始发售英特尔(R) Stratix(R) 10 TX FPGA ,这也是业内唯一一款采用 58G...
本实验工程将介绍如何利在赛灵思异构多处理器产品系列 Zynq UtralScale+ MPSoC
FIR数字滤波器在数字信号处理的过程中有很好的线性相位和稳定性,被广泛应用于音频处理、语音处理、信息...
我们最近与Bunny Huang进行了有趣的交流,他是硬件大师以及Chumby,NetTV和Nove...
供应链服务
版权所有 (C) 深圳华强聚丰电子科技有限公司
电信与信息服务业务经营许可证:粤B2-FPGA设计的各个部分细节详解之二—FPGA管脚分配需要考虑的因数
在芯片的研发环节,FPGA验证是其中的重要的组成部分,如何有效的利用FPGA的资源,
管脚分配也是必须考虑的一个重要问题。一般较好的方法是在综合过程中通过时序的一些约
束让对应的工具自动分配,但是从研发的时间段上来考虑这种方法往往是不可取的,RTL
验证与验证板设计必须是同步进行的,在验证代码出来时验证的单板也必须设计完毕,也就
是管脚的分配也必须在设计代码出来之前完成。所以,管脚的分配更多的将是依赖人,而非
工具,这个时候就更需要考虑各方面的因素。
综合起来主要考虑以下的几个方面:
1、 FPGA所承载逻辑的信号流向。
IC验证中所选用的FPGA一般逻辑容量都非常大,外部的管脚数量也相当的丰富,这个
时候就必须考虑到PCB设计时的布线的难度,如果管脚的分配不合理,那么有可能在
PCB设计时出现大量的交叉的信号线,这给布线带来很大的困难,甚至走不通,或者是
即便是布线走通了,也有可能由于外部的延时过大而不满足时序方面的要求。所以在管
脚分配前对FPGA工作的环境要相当的熟悉,要对其中的信号来自哪里去向何方非常的
清楚,这就按照连线最短的原则将对应的信号分配到与外部器件连线最近的BANK中。
2、 掌握FPGA内部BANK的分配的情况。
现在FPGA内部都分成几个区域,每个区域中可用的I/O管脚数量各不相同。在IC验
证中都是采用了ALTERA 与XILINX系列的FPGA ,这两个厂商的FPGA中内部BANK
的分配有一定的差异,这可以在设计中查阅相关的手册。下面与ALTERA中Stratix II
系列的FPGA内部BANK的分配为例来进行说明。
图中详细说明了FPGA内部BANK的分配情况和每个BANK中所支持的I/O标准。根
据FPGA中内部BANK的分配的情况,同时结合图1中信号的流向也就可以大体固定
FPGA在单板中的方向,同时按照就近的原则将相关的信号分配到相关的BANK中,这
样的方法可以完成一般信号的分配。
3、 掌握所选FPGA每个BANK所支持的I/O标准。
从图2中可以看出FPGA内部的每个BANK所支持的I/O的标准不尽相同,所以在管脚
的分配时要将支持相同标准的管脚都集中到一个BANK中,因为FPGA中同一个BANK
一般不同时支持两种I/O标准,当然也有例外,这就需要查阅相关I/O标准所要求的工
4、 关注特殊信号的管脚的分配
这里的特殊信号主要是指时钟信号与复位信号,或者是一些要求驱动能力较高的信号。
时钟信号一般都是要求分配到全局的时钟管脚,这样获得的时间的延迟将是最小的,驱
动也最强。复位信号因为要求同步性好驱动的能力强,所以一般的情况下也会从全局的
时钟管脚送入。
在分配时钟时,根据时钟的多少分配的策略差别很大,也需要重点关注,这需要查阅
相应的手册看哪些时钟分别能到达哪些区域,一般的时钟都是差分时钟,这个时候如果
所用的不是差分时钟就需要注意P端与N端一般不能同时分配给不同的时钟信号。如下
图所示XILINX系列的FPGA中成对的时钟如果是同时采用那么就不能同时到达相同的
区域,因为到达相同区域的时钟线只有一根。
所以在时钟较少时最好成对的P和S不要同时使用,而是只是选择P或者是N这样就
不会出现冲突的情况。
5、 兼顾信号完整性的考虑。
由于在分配中常常会出现总线分配的情况,同时大量的总线又有可能常常是同时翻转,
这样就会带来了一系列信号完整性的问题,所以在管脚分配时大量同时翻转的信号尽量
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。->【FPGA/CPLD助学小组】
Xilinx FPGA入门连载12:PWM蜂鸣器驱动之引脚分配特权同学,版权所有配套例程和更多资料下载链接:http://pan.baidu.com/s/1jGjAhEm&1 工程移植&&&&&&&& 复制sp6ex1整个文件夹,将其更名为sp6ex2。然后我们打开“…\sp6ex2\source_code”文件夹下的sp6.v源代码文件。&&&&&&&& 删除sp6.v文件原有的代码,将上一个lesson的源码整个复制进去。如图所示。&&&&&&&& 接着使用ISE打开刚刚移植好的sp6ex2文件夹下的工程。&2 PlanAead引脚分配&&&&&&&& 这个例程的顶层源码里有3个接口,即:&&&&&&&&&&& input ext_clk_25m,& //外部输入25MHz时钟信号&&&&&&&&&&& input ext_rst_n,&&& //外部输入复位信号,低电平有效&&&&&&&&&&& output reg beep //蜂鸣器控制信号,1--响,0--不响&&&&&&&& 这3个信号都是FPGA引脚上定义和外部设备连接的信号,因此我们需要将这些信号和FPGA的引脚进行映射。&&& 如图所示,点击ISE菜单上的“Tools à PlanAhead à I/O Pin Planning(PlanAhead) – Pre-Synthesis…”选项。&&& 若弹出如下菜单,点击“Yes”继续。&&& 如图所示,在PlanAead界面最下面出现了“I/O Ports”列表中,有我们的3个信号接口,这里“Site”一列可以输入它们对应FPGA的引脚;“I/O Std”一列可以输入I/O电平标准;对于输出信号,“Drive Strength”一列还可以设置输出驱动电流强度。&&& 查看SF-SP6开发板的原理图,如图所示,这里BEEP对应FPGA引脚号是27,那么前面我们就在Site列输入P27;RST_N和CLK_25M分别为24和23,则输入P24和P23。&&&&&&&& 完成分配后,别忘记保存后退出PlanAead界面。&3 脚本直接引脚分配&&&&&&&& 除了使用PlanAead这种图形界面方式分配引脚,也可以直接使用脚本语法分配引脚。下面先新建这个脚本文件,即ucf文件,我们前面在PlanAead界面分配的引脚信息也会存储在这个ucf文件中。&&&&&&&& 在“Design àImplementation à Hierarchy”的任意空白处单击右键,选择“New Source…”,如图所示。&&&&&&&& 如图所示,选择“Implementation Contraints File”,输入文件名和路径,然后点击“Next”。&&&&&&&& 接着弹出报告,点击“Finish”完成创建。&&&&&&&& 如图所示,此时的sp6.v下面多了一个sp6.ucf文件,选中它,接着在Processes下面双击“Edit Constraints(Text)”。&&&&&&&& ISE会调用Notepad++打开sp6.ucf文件,如图所示,这里的脚本和我们前面使用PlanAhead进行的引脚分配约束是一样的。&&&&&GSM给你讲一个FPGA引脚“未分配”隐患的故事 - FPGA|CPLD|ASIC论坛 -
中国电子技术论坛 -
最好最受欢迎电子论坛!
后使用快捷导航没有帐号?
林超文手把手教你学!
教你1000种电路设计思路
张飞硬件电路之PFC全集
参与免费送VIP+原创视频
运放、ADC、电磁兼容
GSM给你讲一个FPGA引脚“未分配”隐患的故事
高级工程师
10:49:28  
以前写过一篇文章如何处理未分配的管脚文章。
GSM教你使用ISE将未使用的管脚变成高阻态
很多人不以为然。
写一个听来的故事,给大家提提醒
一波三折——危险的“未分配”引脚
*第一折。半个月前,美国的同事对当前的一个工程进行了编译,并提交二进制文件
(FPGA配置文件)给软件工程师进行集成。结果该二进制文件导致了整个系统的崩溃:FPGA二进制文件
刚下载完毕,整个系统就不工作了。这一事件导致了美国FPGA工程师一整天的停工和系统恢复。Kevin给
出的分析结果是,FPGA给出的中断信号有问题,该信号经过CPLD转发到CPU后导致CPU反复跳入中断,
造成系统崩溃。后来,因为经过重新编译的二进制文件没有引发类似现象,该问题就被当作是一个偶然事
件被忽略了。
第二折。上周的某一天,在我们这边,类似的现象“终于”也发生了。由于时差的关系,我们没能得到美国软
件工程师的及时支持。眼瞅着手上仅有的两个系统陷入瘫痪,工作不能继续,没办法,只能自己硬着头皮调试
一下看看。系统崩溃后,嵌入式Linux操作系统的响应异常缓慢,通过网络登陆无法进行调试和控制。幸好还
有串口调试台,通过串口可以看到系统反复打印出对总线上特定地址范围的数据写入失败。由于该现象发生在
FPGA文件下载完成后,我通过在系统启动后FPGA下载前杀掉相关进程的方法阻止了系统的崩溃:只要不下载
FPGA文件,或者替换为旧文件,系统就不会崩溃。
接下来,我试图找出FPGA引发系统崩溃的原因。中断信号引发系统崩溃的说法首先被排除了,原因是FPGA的
中断产生逻辑电路相当标准,不可能产生随机的错误行为。问题缩小到FPGA连接到CPU的双向数据总线上,
这里是除中断外唯一一个由FPGA驱动到CPU的逻辑电路。我的推论是,由于该FPGA工程没有对CPU相关的输
入输出引脚进行时序约束,两次编译会导致双向数据总线的输出使能信号的响应差异,这一差异进一步影响了
FPGA驱动双向数据总线的速度差异,在某些情况下,FPGA或早或晚地驱动了总线,引发了总线驱动冲突,导
致CPU对总线上其它设备的访问失败。经过对所有CPU相关的信号进行时序约束后,编译的二进制文件没有引
发系统崩溃。
第三折。问题并没有这样得到解决。两天后,在又一次对该工程进行编译后,一模一样的问题又出现了。去
除我先前给工程施加的时序约束后,问题反而没有了。不加约束会错,加了约束也会错,看来约束并没有作用
到问题的本质上。唯一可以得到确认的结论是:两次FPGA编译的结果是有差异的,特定电路的编译结果并没
有得到时序约束的有效控制;问题随机出现,但是表现一致。&&
& & 这一次,为了定位导致问题的具体逻辑电路,我必须对出问题的编译结果进行分析和实验。二进制文件是
最终的编译结果,时序分析报告也是编译结果,但是这两个结果要么不可分析,要么包含了太多的信息而无法
分析。我唯一可以进行分析和实验的对象就是布局布线(P&R)之后的底层网表数据。
通过RTL视图,我逐个定位了CPU相关引脚在RTL视图中的位置。修改特定LE的对外连接和内部逻辑关系,我把
所有可能驱动CPU的相关逻辑都关闭了:中断信号被禁止了,双向数据总线的使能被禁止了。我在不影响所有其
他逻辑的功能和时序特性的情况下,得到了一个完全不会驱动CPU总线相关信号的FPGA二进制文件。出乎意料的
是,该二进制文件下载后,系统依然崩溃。
到了这一步,我找遍了“路灯下所有能找的地方”,只能向其他方向“胡乱”摸索了。我尝试了给来自
CPU的控制输入信号,包括所有的地址线,增加上拉电阻的方法,也没有成功。
& & 经过了类似的一系列摸索,最终我在PlanAhead视图中发现了蹊跷:在该工程中竟然存在没有分配布局位
置的输出引脚,而这些输出引脚在该项目中并没有被实际的输入逻辑驱动,这些引脚被工具缺省地连接
到了逻辑“0”上。通过比较成功和失败两次编译结果中给出的最终引脚分配报告,我发现,这些没有得到
位置约束的引脚竟然可能随机出现在任意的空闲引脚上。
& & 通过进一步分析,在导致系统崩溃的编译结果中我最终找到了答案:一个没有逻辑驱动,也忘了分配布局
位置的输出引脚被工具随机分配到了FPGA没有用到(也没有位置约束)的一根CPU地址输入线上,这根地
址线就被短路到了“0”电平上,进而导致CPU外部总线上特定地址范围不能被CPU访问到,最终引发了系统崩溃。
通过这一问题的解决,我获得了以下几点认识:&&
1. 没有约束位置的引脚是很危险的,尤其是输出引脚。随机分配的结果很可能是灾难性的。所以,PCB原理图
上的所有引脚,即使在FPGA内部没有被用到,也最好如实地加以约束。
2. PlanAhead工具可以为大家提供相应的内部链接的检查
3. FPGA EDITOR也能为大家找出内部逻辑的走线的检查和分析。
4. 为什么会存在未分配的输出和输入引脚?这是因为该工程还存在尚未实现的后期功能。这些引脚就是给以后
开发留下的,由于我们太专注于眼前要实现的功能而被忽视了。
5. 为什么会存在未用到,却实际连接了的地址线?这是PCB设计上的“冗余设计”。这样的冗余设计在该项目
中还有很多,有一些还真在关键时刻给了我们FPGA开发上的便利。
6. 既然上述两个问题都有合理的解释,为什么还会出现这么不合理的错误?原因之一是在PCB和FPGA设计上
缺乏完善的设计文档,PCB设计者的意图没有有效传达给FPGA设计者,而FPGA设计者之间也没能充分交流
原因之二是FPGA开发流程上缺乏被称之为“Peer Review”的设计评审和设计质量保证措施,一个显而易见
错误就被这样忽略并遗留了下来。
助理工程师
12:00:29  
真正的经验啊!
11:46:18  
“蚁穴能溃堤”的教训,深深!!!!!
09:49:52  
经验分享,共同成长
14:42:05  
好贴,学习了~!
17:38:23  
好帖!良好的开发习惯很重要
16:12:25  
{:23:}{:23:}{:23:}
13:23:16  
好文,很有必要看一下
09:38:05  
{:1:}{:1:}{:1:}{:1:}{:1:}{:1:}{:1:}{:1:}{:1:}
11:03:41  
特别感谢楼主的分享&&要看看
13:51:44  
刚学不是很看懂,不过一看就值得借鉴
林超文手把手教你学!
教你1000种电路设计思路
张飞硬件电路之PFC全集
参与免费送VIP+原创视频
运放、ADC、电磁兼容
Powered by
供应链服务
版权所有 (C) 深圳华强聚丰电子科技有限公司

我要回帖

更多关于 引脚分配 的文章

 

随机推荐