lcytms
发表于 2017-6-4 23:31:11
1022
ST解决了无限长的时间轴,在变成有限状态的时候,那个状态转移转向何处的问题。
你给出当前状态,根据现场输入,这段逻辑它知道下一个状态指向何处。
至于何时转,是由状态寄存器决定的。
状态寄存器,Register,在时钟下面,将NS进行转移。
而CS形成迭代。这样就把离散的时间轴,便成为有限的状态。
这个架构是经典的有限状态机模型。
lcytms
发表于 2017-6-4 23:32:13
1023
阿兰图灵一直研究到近代。
这个架构基本上确定下来。
就是把无限长的时间轴上的离散取样点,变成有限的状态。
ST是state transition。是一段逻辑,它决定了转向何处。
这是一个寄存器,它决定了何时转。
这样的话呢,在无限长的时间轴的离散取样点上,总可以在有限的状态上,找到一个转移跟它对应。
有限状态我们解释过,从阿兰图灵一直到AI都有关系。
都认为这种描述,是对现实世界的真实描述,仅仅是在超大的时空、极小的时空领域,它不适用。
lcytms
发表于 2017-6-4 23:33:06
1024
我们正常的时空领域都可以实现,都可以用这个模型来描述。
那么,一段逻辑,把无限长的时间轴变成有限的状态以后,而这种逻辑产生的动作呢,有两种模型。
一个是仅仅根据CS产生动作。
不仅跟状态有关,还跟输入有关,是米利。
摩尔,米利。
lcytms
发表于 2017-6-4 23:33:56
1025
其实还是有一些模型,其它的一些模型。
但是现在比较定型的,它的数学基础是很稳定的。
MATLAB我们都可以查得到,都可以用它来做。
仅仅跟状态有关的是摩尔。
既跟有限的状态有关,又跟当前输入有关的,是米利。
在状态未变,而输入变的情况之下,摩尔是不会输出的,摩尔的输出不变。
而米利的输出会变。状态未变,CS未变,但输入会变,摩尔不会变,摩尔的输出是固定的。
但米利会变。
lcytms
发表于 2017-6-4 23:34:54
1026
米利多变嘛,米利在一个状态下,在一个时钟节拍之中,它也可能会发生变化。
我们在这看得到,寄存器打两撇,是一个闭节点,ST和米利是开节点。
如果状态未变,而输入发生变化,输出也会发生变化。
最快的是在两个节拍之间,米利有可能变化,而摩尔不会变。
初看起来呢,它可能更快,输入一变,它就会变,而且是在两个节拍之间变。
但是它并不支持同步电路。
摩尔支持。
因为摩尔一定是在时钟沿的右侧变化。
所以说,在同步电路里面,它会带来很多的问题,但是摩尔不会。
lcytms
发表于 2017-6-4 23:35:45
1027
所以说同步电路里面优选的是摩尔。
这个一定是在时钟沿的右侧发生变化。
虽然它是可以写成开节点。
这是有限的状态的由来。
据此我们得出三种模型,这是理论模型。
然后呢,我们用HDL语言来搭建的时候也是三种模型。
比方线性序列机也是它的特例。
三种模型分别是用一个循环行为体,来写这个模型。
两个循环行为体、三个循环行为体。
分别称之为一段式描述、两段式或者是三段式。
lcytms
发表于 2017-6-5 20:30:03
本帖最后由 lcytms 于 2017-6-5 20:31 编辑
1028
我们在看这个斯坦福的教材,或者是看Xilinx的手册,它的Quartus的推荐的风格的时候,它就明确地说,它要用两段式,支持用两段式。
两个always语句块。
然后呢,我们来做个复习。
Always的语句块是一个独特的结构,称之为循环行为体。
小舍YZ
发表于 2017-6-6 10:24:10
赞,,,,,,,,,谢谢分享。。。。。。。。。。:lol
lcytms
发表于 2017-6-10 23:21:53
1029
只有把行为语句至于这个循环行为体之中,EDA才能识别出来。
所以它给你的是一种框架。
Always仅仅是一个单词,一个保留字,你凡是写行为语句,你必须放在这个begin end块里面,EDA才能识别这样是一个行为语句。
当我们写行为语句的时候,就一定要用always语句,或者是用initial。
Initial用于综合的时候,它是受限的。
Always语句总能综合。
那么信号敏感表是一个什么概念呢?
这个呢,要回到米德和Moorby的故事上。
经典的EDA的理论,米德的理论里面,它是用process,process里面也有信号敏感表。
lcytms
发表于 2017-6-10 23:22:31
1030
早期的研究的团队啊,在做出了循环行为体之后,用行为语句来写EDA。
以前我们搭建一个电路模型,都要一个门一个门来做。
用行为语句,EDA自动来实现,当然效率很高了。
综合没有任何问题。
Process,不要信号敏感表,没有问题,完全能综合出所需要的电路来。
但是在Moorby体系下面发现一个问题,用于非综合目的的时候,回到电脑上了。
那么电脑上,就要做验证,或者第三方分析的时候,就要对这段电路执行模拟的动作,仿真的动作。
象真实那样执行动作。
该什么时候来做它的process呢?
什么时候非综合的来做呢?