论坛风格切换切换到宽版
  • 4796阅读
  • 4回复

想请教下FPGA的问题 [复制链接]

上一主题 下一主题
离线BG7PMZ
 
发帖
3139
只看楼主 倒序阅读 0楼 发表于: 2011-10-26
小弟最近用lattice xp2 的fpga做开发,发现一个很奇怪的现象:
我的主时钟是24m有源晶体,我尝试写一个简单的程序,对主时钟进行2分频,再由硬件引脚向外输出,但实测2分频后的波形很怪,像方波,但上升沿很圆,下降沿也不利落,有点像管脚结电容过大导致方波上升沿下降沿变圆的情况,我尝试把频率降低(分频比加大),情况有明显改善,会不会xp2这类器件本来就是低速器件,所以无法输出10多m的频率?也不至于吧?

另外:有个问题,很多fpga里面都有pll核,利用pll核可以产生很高的频率,这个频率是如何产生的?我们常见高频pll一般是采用lc振荡器的vco来获得高频率的,fpga里面可以认为等效成数字电路,数字电路可以组合成鉴相器,分频器等,但数字电路是如何实现vco的功能?假设我需要把这个频率输出到硬件引脚,会否有问题?
离线汤圆
发帖
1157
只看该作者 1楼 发表于: 2011-10-26
数字电路多数是rc振荡器   但在射频集成电路的确是一种lc振荡器 通常l都会占据硅片很大面积 然后也有很多手段减少对l影响的   比如在金属电感下面 放一种分岔的金属层   等等

一些数字电路 也用反相器组成环形振荡器

如果芯片容许这个信号输出 那可以输出出去 一般就经过至少padring(引脚的输入输出缓冲器)的输出缓冲了 一般你不会影响振荡器 但是 频率搞了 受到缓冲器的电子特性(mos ttl的电容影响) 输出波形会变化
离线BG7PMZ
发帖
3139
只看该作者 2楼 发表于: 2011-10-26
[quote=汤圆]数字电路多数是rc振荡器   但在射频集成电路的确是一种lc振荡器 通常l都会占据硅片很大面积 然后也有很多手段减少对l影响的   比如在金属电感下面 放一种分岔的金属层   等等

一些数字电路 也用反相器组成环形振荡器

如果芯片容许这个信号输出 那可以输出出去 一般就经过至少padring(引脚的输入输出缓冲器)的输出缓冲了 一般你不会影响振荡器 但是 频率搞了 受到缓冲器的电子特性(mos ttl的电容影响) 输出波形会变化[/quote]
你意思是,可能是特殊硅片工艺形成lc回路或者用门来实现振荡器的功能?
离线汤圆
发帖
1157
只看该作者 3楼 发表于: 2011-10-26
'
你意思是,可能是特殊硅片工艺形成lc回路或者用门来实现振荡器的功能?
'

几百兆好像并不算很高频率   这种lc振荡器 多数出现在要提供2-3g时钟的芯片中 比如手机的中频部分 很多中频芯片自己就集成了2本镇 比如adi的 飞利浦的 东芝的很多这类芯片都是这样的

通常是门实现的 或者单独震荡电路实现 在芯片上做晶体管电阻电容比电感容易的多

有的可以改变rc 改变振荡频率 比如msp430单片机dco就是这样
也有很多是固定频率振荡器 然后分频出来的各种频率

或者压根设计很多个振荡器 根据需求切换

其实在一个芯片中可能本来就不是一个振荡器 因为芯片要多路时钟 比如休眠或者为了降低功耗
离线XLDZZ
发帖
443
只看该作者 4楼 发表于: 2011-10-27
我自己使用altera的fpga的片子

关于你说的问题 我到没遇到过 好像我出100m 也没有问题

楼上的弟兄说的有些道理 我理解为时序约束

但是楼主的问题应该不是这个引起的 像是io类型设置不对

比如fpga的io输出标准有很多 有上拉型的(片子内的电阻 这种电阻阻抗比较大

所以会造成上升沿变形)也有ttl cmos lvttl lvds rsds等

估计楼主的io设置出了问题

关于楼主pll的问题 建议可以参考altera的官方关于pll的说明

看cyclone3的handbook 上有fpga的内部布局 pll是单独的放在

四周的,我自己使用的话没有必要考虑这些问题altera的片子的pll功能强大