lcytms
发表于 2017-4-18 22:03:04
1047
因为你写的时候就不会写错。
哪些信号写在赋值号的左侧,哪些信号在右侧。
多一个是画蛇添足,少一个就不正确。
记住这张图就不会写错,这四张图。
现在我们就来说如何变成,理论模型变成这个代码模型?
首先1/3的部分就是原来1/2的部分,仍然是描述了这个寄存器,就是状态寄存器,就是我们只需要描述NS连接到CS,就会形成state寄存器。
这是1/3的部分。
输入NS,输出是CS,它是一个闭节点,描述了CS引入到NS,就是把NS赋给它。
lcytms
发表于 2017-4-18 22:13:02
1048
用闭节点的方式描述,就会得到这个寄存器。
这是1/3的部分。
2/3的部分,描述ST,是一个ON。
ST有输入的CS信号,输入的现场信号。
ST的输出,是NS。
这个代码块,我只描述ST,是用ON的方式来描述,开节点的方式来描述,种瓜得瓜种豆得豆。
它的输出未被加工,是一个ON。
lcytms
发表于 2017-4-18 22:30:25
1049
然后剩下的,写米利,描述米利,写摩尔,描述摩尔。
这次呢,我们是用一个闭节点来写。
如果是摩尔,摩尔需要什么?
CS,单独引进CS,这一次的输出由于我们写成闭节点,就一定会生成寄存器。
也就是摩尔的这个输出,无论是输出是ABCD、count等等,它一定会出现在赋值号的左侧,这个左侧的信号一定会生成一个寄存器,输出。
三段式。
这是摩尔。
lcytms
发表于 2017-4-19 09:04:17
1050
如果是米利呢,再加上输入信号。
这就得到了描述的一个转换关系。
就是理论模型如何得到代码模型?
转换关系理解即可。
这四张图背下来。
这是有意义的。
虽然我们状态机今天只是第一天,但是这四张图你背下来,一定对你是有益的。
放近一点的话,至少对我们这一百天是有意义的。
一百天的学习,你会带来一些方便。
lcytms
发表于 2017-4-19 09:15:53
本帖最后由 lcytms 于 2017-4-19 14:02 编辑
1051
说得远一点呢,可能会影响到一个整个的职业生涯。
我们知道,我们在小学学汉字的时候,就是汉字的初始的基础甚至可能会影响到我们的一生,所以基础的部分很可能会直接影响到我们的未来。
这就是状态机的理论基础。
下面我们来说一下状态机的设计。
现代EDA状态机的设计,我们已经讨论了如何用verilog、用语言来描述你的模型,但是如何来把一个事物、一个事件发展的规律,正确地描述为一个状态机的解决方案呢?
数字电路告诉我们有一种方法,就是状态转移图。
状态转移图之前还有些方法,比方说,象状态转移表等等,之类的,但是数字电路里面比较经典的还是状态转移图。
lcytms
发表于 2017-4-19 09:29:46
1052
我们就来讨论规划的方法,就是规划一个状态机的现代方法。
我们来复习一下数字电路里面的状态转移图,称之为STG,State Transition Graphs。
数字电路里面,我们经常看到这样的一个状态转移图。
lcytms
发表于 2017-4-19 09:36:50
1053
状态转移图的输入项。可能会有类似这样一些状态转移图的描述,数字电路是这样的。
这个呢,无论在我们的康华光、阎石,国内的清华或者是象华中理工都是这么叙述它的状态转移图。
描述的内容象移位寄存器、象计数器,甚至象存储器,都可以用这样的逻辑。
但是都是规模比较小,所处理的复杂性也并不高。
lcytms
发表于 2017-4-19 10:08:32
1054
国外的课程也是如此。
大致是这样的描述。
但是引入EDA描述现实的处理的逻辑,要比这个复杂得多。
因此象现代的这种EDA,在EDA里面的状态转移图,要改进,得到了强化的处理。
也就是说,我们有时候是描述这个圈,表明到了一个状态。
而这个线段呢,表示状态的转移,状态转移的时候发生什么?
所以说,有的时候设计者是站在状态的角度上考虑问题,到了一个状态做什么事情。
另外一种想法呢,是站在转移的角度上考虑问题,发生转移我们该做什么?
在数字电路里面,我们做的这个分式,通常把分子的部分作为输入和条件,分母的部分作为驱动。
是这样的。
lcytms
发表于 2017-4-19 10:13:11
1055
每一个设计者都需要声明,我的分母的第一个逗号表明是什么?
表明是A,表明是B,表明是C,表明是D。
你只要看这个状态转移图就知道。
引入EDA以后,这些都做了强制性的约束。当描述节点的时候,描述一个状态的时候,我们称之为这是一个节点。
我们把状态称之为一个节点。
这是Node。
转移称之为edge。
lcytms
发表于 2017-4-19 10:28:15
1056
那么对节点和转移的描述,这个呢,是在设计时候的规划,仍然沿用数字电路的方式,沿用一个分式。
它是对节点的描述。
我们特别强调,是基于节点的描述。
Node based description,NBD,首字母缩写。
就是基于节点的描述。