1. 我原来有一个74系列设计的电路,工作很正常,为什么原封不动集成到PLD中以后
却不能正常工作,是芯片有问题吗?
这是一个非常有代表性的问题。设计PLD/FPGA内部电路与设计74的分立电路是有区别
的。这个问题是由于电路中的毛刺造成的。电路布线长短不同造成延时不一致,有竞
争冒险,会产生毛刺。分立元件之间存在分布电容和电感可以滤掉这些毛刺,所以用
分立元件设计电路时,很少考虑竞争冒险和毛刺问题,但PLD/FPGA内部没有分布电容
和电感,不可以滤掉任何毛刺(哪怕只有1ns)。有些毛刺是可以忽略的,有些是致命
的(如D触发器的clk,clr,PRN端)、。这些致命的毛刺将导致电路不能正常工作。这
是设计FPGA和设计分立元件最大的不同。可以通过修改电路减少有害毛刺。参见: 培
训中心>培训资料> PLD设计技巧——消除组合逻辑产生的毛刺 和 PLD设计技巧——
采用同步电路设计 ,根据经验,几乎所有稳定性或可靠性问题都是由PLD内部电路设
计不合理造成的,这一点要千万小心。
2. 如何将信号做一定延时?
当需要对某一信号作一段延时时,初学者往往在此信号后串接一些非门或其它门电路
,此方法在分离电路中是可行的。但在FPGA中,开发软件在综合设计时会将这些
门当作冗余逻辑去掉,达不到延时的效果。用ALTERA公司的MaxplusII开发FPGA
时,可以通过插入一些LCELL原语来产生一定的延时,但这样形成的延时在FP
GA芯片中并不稳定,会随温度等外部环境的改变而改变,因此并不提倡这样做。在
此,可以用高频时钟来驱动一移位寄存器,待延时信号作数据输入,按所需延时正确
设置移位寄存器的级数,移位寄存器的输出即为延时后的信号。此方法产生的延时信
号与原信号比有误差,误差大小由高频时钟的周期来决定。对于数据信号的延时,在
输出端用数据时钟对延时后信号重新采样,就可以消除误差。
3.什么是IP核或IP库? 有那些种类?
IP核是指:将一些在数字电路中常用但比较复杂的功能块,如FIR滤波器,SDRAM控制
器,PCI接口等等设计成可修改参数的模块,让其他用户可以直接调用这些模块,这
样就大大减轻了工程师的负担,避免重复劳动。随着CPLD/FPGA的规模越来越大,设
计越来越复杂,使用IP核是一个发展趋势。 不过目前大多数库是收费的,如您希望
一个免费方案,请到本站参考设计栏目里找一找。
4.如何设计3.3v,2.5v 等低电压PLD/FPGA的电源?
多用低压差线形稳压器(LDO)或采用开关电源,详细内容参见低电压PLD/FPGA的供电
设计
5.CPLD/FPGA的宏单元是怎么定义?一个宏单元对应多少门?
宏单元(或逻辑单元)是PLD/FPGA的最基本单元,不同产品对这种基本单元的叫法不
同,如LE,MC,CLB,Slices等,但每个基本单元一般都包括两部分,一部分实现组合逻
辑,另一部分实现时序逻辑。各个厂家的定义可能不一样。对ALTERA的芯片,每个基
本单元含一个触发器;对Xilinx的部分芯片,每个基本单元单元含两个触发器。一般
不用“门”的数量衡量PLD/FPGA的大小,因为各家对门数的算法不一样,象ALTERA和
Xilinx对门的计算结果就差了一倍,推荐用触发器的多少来衡量芯片的大小。如10万
门的Xilinx的XC2S100有1200个slices,即含2400个触发器;5万门的ALTERA的1K50则
含2880个LE,即2880个触发器。更详细资料请浏览PLD/FPGA原理栏目
CPLD基本使用问题
最新推荐文章于 2022-05-28 13:18:07 发布