阅读:2802回复:1
PLD/FPGA基本使用问题1.PLD,CPLD,FPGA有何不同? 不同厂家的叫法不尽相同,PLD(Programmable Logic Device)是可编程逻辑器件的总称,早期多EEPROM工艺,基于乘积项(Product Term)结构。 FPGA (Field Programmable Gate Arry)是指现场可编程门阵列,最早由Xilinx公司发明。多为SRAM 工艺,基于查找表(Look Up Table)结构,要外挂配置用的EPROM。 Xilinx把SRAM工艺,要外挂配置用的EPROM的PLD叫FPGA,把Flash工艺(类似EEPROM工艺),乘积项结构的PLD叫CPLD; Altera把自己的PLD产品:MAX系列(EEPROM工艺),FLEX/ACEX/APEX系列(SRAM工艺)都叫作CPLD,即复杂PLD(Complex PLD),由于FLEX/ACEX/APEX系列也是SRAM工艺,要外挂配置用的EPROM,用法和Xilinx的FPGA一样,所以很多人把Altera的FELX/ACEX/APEX系列产品也叫做FPGA. 2. 我原来有一个74系列设计的电路,工作很正常,为什么原封不动集成到PLD中以后却不能正常工作,是芯片有问题吗? 这是一个非常有代表性的问题。设计PLD/FPGA内部电路与设计74的分立电路是有区别的。这个问题是由于电路中的毛刺造成的。电路布线长短不同造成延时不一致,有竞争冒险,会产生毛刺。分立元件之间存在分布电容和电感可以滤掉这些毛刺,所以用分立元件设计电路时,很少考虑竞争冒险和毛刺问题,但PLD/FPGA内部没有分布电容和电感,不可以滤掉任何毛刺(哪怕只有1ns)。有些毛刺是可以忽略的,有些是致命的(如D触发器的clk,clr,PRN端)、。这些致命的毛刺将导致电路不能正常工作。这是设计FPGA和设计分立元件最大的不同。可以通过修改电路减少有害毛刺。参见: 培训中心>培训资料> PLD设计技巧――消除组合逻辑产生的毛刺 和 PLD设计技巧――采用同步电路设计 ,根据经验,几乎所有稳定性或可靠性问题都是由PLD内部电路设计不合理造成的,这一点要千万小心。 3. 如何将信号做一定延时? 当需要对某一信号作一段延时时,初学者往往在此信号后串接一些非门或其它门电路,此方法在分离电路中是可行的。但在FPGA中,开发软件在综合设计时会将这些门当作冗余逻辑去掉,达不到延时的效果。用ALTERA公司的MaxplusII开发FPGA时,可以通过插入一些LCELL原语来产生一定的延时,但这样形成的延时在FPGA芯片中并不稳定,会随温度等外部环境的改变而改变,因此并不提倡这样做。在此,可以用高频时钟来驱动一移位寄存器,待延时信号作数据输入,按所需延时正确设置移位寄存器的级数,移位寄存器的输出即为延时后的信号。此方法产生的延时信号与原信号比有误差,误差大小由高频时钟的周期来决定。对于数据信号的延时,在输出端用数据时钟对延时后信号重新采样,就可以消除误差。 4.什么是IP核或IP库? 有那些种类? IP核是指:将一些在数字电路中常用但比较复杂的功能块,如FIR滤波器,SDRAM控制器,PCI接口等等设计成可修改参数的模块,让其他用户可以直接调用这些模块,这样就大大减轻了工程师的负担,避免重复劳动。随着CPLD/FPGA的规模越来越大,设计越来越复杂,使用IP核是一个发展趋势。 不过目前大多数库是收费的,如您希望一个免费方案,请到本站参考设计栏目里找一找。 5.如何设计3.3v,2.5v 等低电压PLD/FPGA的电源? 多用低压差线形稳压器(LDO)或采用开关电源,详细内容参见低电压PLD/FPGA的供电设计 6.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原理栏目 |
|
最新喜欢:kiki_m... |
沙发#
发布于:2004-02-11 11:00
好东西值得提倡!
|
|