作者: horsehead ( NNNN) 看板: Electronics
标题: Re: [问题] 关於CPLD的速度问题
时间: Tue Jan 13 01:12:03 2009
※ 引述《may5566 (舞)》之铭言:
: 新手提问
: 最近在用maxEPM7064SLC44-10的CPLD做简单的计数器
: 因为需要用100Mhz去计数
: 所以就写了一个最简单的计数器用MAXPLUSII跑模拟
: 但为何CLOCK设为100Mhz时计数出来的波型结果却是错的
: 用timing analyzer看registered performance则只能跑到55Mhz
: 设CLOCK为50Mhz才可以正常计数
: 照理说这颗不是可以跑到175Mhz吗?
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
你这边说他可以跑到175Mhz 是依何根据 ?
基本上每个fpga/pld 是有其内部速度的上限
但是你电路的设计复杂度不同他所能表现出来的极速也不一样吧
我想你所谓的175Mhz是他的极限 你如果想要在不更动device的状况下要加速
除了在timing constrain 动手脚外就是要改变你电路的设计架构
(不过要从50变100可能要改架构甚至换晶片才有办法达到)
: 更奇怪的是把一样的程式拿到Quartus II跑则又可以跑到100Mhz
: 这样不知道要怎麽看了
: 请问CPLD可以跑的最高频率到底要怎麽看呢?
你这边的可以跑100是什麽样情况下呢 ?
你是在模拟时喂一个时脉100Mhz的patern进去发现有正常计数吗
如果是的话请看一下quartus II Simulation的设定 如果他是设定为
function simulation的话那是有可能发生100也可以跑出正常波形
你必须改为timing simulation他的时间延迟参数才会出现在波形里面
这样你才能看到正确的波形
另外你如果是在Q2的timing report 看到100很有可能是你的程式编写风格不是很好
存在一些模糊的叙述 基本上如果你的coding style 很严谨 不管用哪套软体合成出来
的电路都是一样的 但是就怕有些不是很严谨的叙述 又不到语法错误的地步 软体就会
自动猜测你的想法帮你合成电路 这样很多时候就会发生他猜错你的想法 把很多东西
化减掉 你的电路结构就变简单了 速度也上去了 当然功能也不正确了 这时你要看一下
你的警告讯息是不是有很多信号被stacked gnd or vcc 就可以得知
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.228.82.52
※ 编辑: horsehead 来自: 61.228.82.52 (01/13 01:19)
※ 编辑: horsehead 来自: 61.228.82.52 (01/13 01:26)
※ 编辑: horsehead 来自: 61.228.82.52 (01/13 01:27)
1F:推 may5566:Q2里我是选timing没错,但这两个软体跑同样一个计数的程式 01/13 01:27
2F:→ horsehead:那就是我说的另依情形 看一下原始码吧 01/13 01:28
※ 编辑: horsehead 来自: 61.228.82.52 (01/13 01:29)
3F:推 may5566:高手!!就是有stacked gnd or vcc,这就是叙述不好的意思? 01/13 01:30
4F:→ may5566:那请问规格里说这颗计数频率可以到175Mhz,那是否我用 01/13 01:31
5F:→ may5566:100Mhz的震荡器去数他就抓的到? 01/13 01:32
6F:→ horsehead:不一定有错 要一根根去检查有些是真的你把它指定1 or 0 01/13 01:33
7F:→ horsehead:有些是被化减 所以要一根一根看 01/13 01:33
8F:→ horsehead:应该是不行 实体绕出来只有50几 你可能要问一下提供 01/13 01:35
9F:→ horsehead:文件给你的人是用在哪颗device上 01/13 01:36
10F:推 may5566:是他的data sheet有写counter clock 最大175Mhz的样子 01/13 01:37
11F:推 may5566:本来想说175Mhz应该是够用了,结果用MII模拟只有到55Mhz 01/13 01:41
12F:推 ksmrt0123:什麽stacked? 是 be 'stuck' at 吧... 01/13 03:34
13F:→ horsehead:哈哈哈 英文太烂了 真是抱歉 @@ 01/13 09:16