楼主: oxalis
打印 上一主题 下一主题

学习笔记:同步状态机

[复制链接] qrcode

0

主题

2

帖子

6

积分

新手上路

Rank: 1

积分
6
11#
发表于 2006-2-8 04:25 AM | 只看该作者
谢谢楼上的朋友.
平时真的没留意到计数器分频是不可以做时钟的.
回复 支持 反对

使用道具 举报

0

主题

2

帖子

6

积分

新手上路

Rank: 1

积分
6
12#
发表于 2006-2-8 04:32 AM | 只看该作者
如果不用计数器产生分频时钟,具体该怎么做,谢谢!                                                                                                                                                                       
回复 支持 反对

使用道具 举报

11

主题

193

帖子

401

积分

中级会员

Rank: 3Rank: 3

积分
401
13#
发表于 2006-3-21 01:15 PM | 只看该作者
补充: 同步时序电路构造的电路很健壮,设计和分析都比异步时序电路简单些,就是由时钟偏移而造成的问题很难解决。                                                                                                                                                                       
回复 支持 反对

使用道具 举报

0

主题

2

帖子

6

积分

新手上路

Rank: 1

积分
6
14#
发表于 2006-3-21 02:51 PM | 只看该作者

1。时序process中最好有一个非同步的reset (asynchronous reset) 用于复位,系统会更稳定。

2。系统一开始一般会自动进入组合逻辑 (combinational process) 中状态机的第一个状态,也是一般用于系统复位的状态。

(个人少少经验,见笑了)

回复 支持 反对

使用道具 举报

30

主题

1982

帖子

4004

积分

论坛元老

Rank: 8Rank: 8

积分
4004
15#
发表于 2006-3-21 05:24 PM | 只看该作者

1。时序process中最好有一个非同步的reset (asynchronous reset) 用于复位,系统会更稳定。

2。系统一开始一般会自动进入组合逻辑 (combinational process) 中状态机的第一个状态,也是一般用于系统复位的状态。

(个人少少经验,见笑了)

回复 支持 反对

使用道具 举报

0

主题

64

帖子

132

积分

注册会员

Rank: 2

积分
132
16#
发表于 2006-3-21 08:15 PM | 只看该作者
1。时序process中一般有一个非同步reset (asynchronous reset) 用于复位,系统会稳定一点。
2。系统开始一般会自动进入组合逻辑 (combinational process) 中状态机的第一个状态,也是一般用于复位的状态。

(个人少少经验,见笑了)
回复 支持 反对

使用道具 举报

11

主题

193

帖子

401

积分

中级会员

Rank: 3Rank: 3

积分
401
17#
发表于 2006-3-21 11:01 PM | 只看该作者
曾经做过一个系统,当计数器计满时产生一个单脉冲,长为一个系统时钟周期。其他的模块通过此脉冲的
上升沿作为激发(Enable signal),以此达到分频的效果。因为是上升沿触发,脉冲的宽窄比是不是1:1也
就没关系了。敢说这样的做法是合法合理的。

至于为什么不可以用计数器产生分频时钟,一时间也记不起来了。估计是因为怕在状态转换过程中产生毛刺
信号(glitch),例如在combinational processs中,一开始的default setting对输出信号设为1,而后来在某一
状态下又设回0,这样就会产生毛刺信号,使分频不准确。不过本人也不是很确定还有没有其他原因,哪位
仁兄知道的麻烦说一声。
回复 支持 反对

使用道具 举报

0

主题

64

帖子

132

积分

注册会员

Rank: 2

积分
132
18#
发表于 2006-3-22 01:37 AM | 只看该作者
最近正好遇到这样的问题:状态机的时钟必须为全局时钟的N分频(N最大为65536!且可以随意设置!),请问斑竹以及各位大虾帮帮忙,出点注意,小弟再次谢过了!
另外,2N分频且占空比为1:1的分频时钟倒是好做 ,但是精确的N分频时钟该怎么实现好呢?是不是只能向楼上的仁兄所说的用个单脉冲就可以了呢?
回复 支持 反对

使用道具 举报

0

主题

64

帖子

132

积分

注册会员

Rank: 2

积分
132
19#
发表于 2006-3-22 02:40 AM | 只看该作者
我倒是对你的精确N分频的精确度有兴趣。比如你系统frequency是33.3333MHz,那么时钟周期就是30ns。
你再怎么分频,时钟周期也得是30ns的整数倍吧?所以要看你具体对精度的要求吧。还有就是看你对分频
后的时钟信号是不是真的需要duty cycle为1:1,如果只是上升沿触发,用单脉冲enable的方法省时方便。
个人认为是比较好的做法。因为有权威人士说过,硬要这样生成duty cycle为1:1的分频信号是一个bad
design,至于为什么,我真的不记得了。

所以,这个问题应该不难解决吧。还有,如果是Altera的APEX系列,别忘了有PLL的,可以用的话就不要
在这一点上兜圈子了。good luck。
回复 支持 反对

使用道具 举报

30

主题

1982

帖子

4004

积分

论坛元老

Rank: 8Rank: 8

积分
4004
20#
发表于 2006-3-22 04:18 AM | 只看该作者

首先,分频时钟信号必须以触发器输出,组合逻辑肯定会有毛刺.

其次,分频时钟信号的有效沿与系统时钟的有效沿之间的SKEW至少有一个触发器翻转时间,如果采用分频时钟采样以系统时钟作为时钟的信号,其建立时间难以保证

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表