CPLD基本使用问题

       1. 我原来有一个74系列设计的电路,工作很正常,为什么原封不动集成到PLD中以后却不能正常工作,是芯片有问题吗? 

       这是一个非常有代表性的问题。设计PLD/FPGA内部电路与设计74的分立电路是有区别的。这个问题是由于电路中的毛刺造成的。电路布线长短不同造成延时不一致,有竞争冒险,会产生毛刺。分立元件之间存在分布电容和电感可以滤掉这些毛刺,所以用分立元件设计电路时,很少考虑竞争冒险和毛刺问题,但PLD/FPGA内部没有分布电容和电感,不可以滤掉任何毛刺(哪怕只有1ns)。有些毛刺是可以忽略的,有些是致命的(如D触发器的clk,clr,PRN端)、。这些致命的毛刺将导致电路不能正常工作。这是设计FPGA和设计分立元件最大的不同。可以通过修改电路减少有害毛刺。

        参见: 培训中心>培训资料> PLD设计技巧——消除组合逻辑产生的毛刺  和 PLD设计技巧——采用同步电路设计 ,根据经验,几乎所有稳定性或可靠性问题都是由PLD内部电路设计不合理造成的,这一点要千万小心。   

       2. 如何将信号做一定延时? 

       当需要对某一信号作一段延时时,初学者往往在此信号后串接一些非门或其它门电路,此方法在分离电路中是可行的。但在FPGA中,开发软件在综合设计时会将这些门当作冗余逻辑去掉,达不到延时的效果。用ALTERA公司的MaxplusII开发FPGA时,可以通过插入一些LCELL原语来产生一定的延时,但这样形成的延时在FPGA芯片中并不稳定,会随温度等外部环境的改变而改变,因此并不提倡这样做。在此,可以用高频时钟来驱动一移位寄存器,待延时信号作数据输入,按所需延时正确设置移位寄存器的级数,移位寄存器的输出即为延时后的信号。此方法产生的延时信号与原信号比有误差,误差大小由高频时钟的周期来决定。对于数据信号的延时,在输出端用数据时钟对延时后信号重新采样,就可以消除误差。  

       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个触发器。

粽子糖果 发表于08-28 09:20 浏览65535次
分享到:

已有0条评论

暂时还没有回复哟,快来抢沙发吧

添加一条新评论

只有登录用户才能评论,请先登录注册哦!

话题作者

粽子糖果
粽子糖果(总统)
金币:41623个|学分:51975个
立即注册
畅学电子网,带你进入电子开发学习世界
专业电子工程技术学习交流社区,加入畅学一起充电加油吧!

x

畅学电子网订阅号