集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
楼主: lcytms

跟李凡老师学FPGA之D04:有限状态机设计(20160426课堂笔记)

[复制链接]
 楼主| lcytms 发表于 2017-4-18 10:45:56 | 显示全部楼层
1019       
        是这么个关系,state。
        这是一段。
        现在我们来讨论两段的模型。
        两段就是用两个always语句块来描述这个理论模型。
        我们先休息十分钟。       
(休息)
 楼主| lcytms 发表于 2017-4-18 10:49:50 | 显示全部楼层
1029       
        我们接着讨论两段,用两个always语句块来实现有限状态机。
        我们把它绘制成代码模型的形式。
        输入的部分是引用的部分,输出的部分是驱动的部分。
        我们把它绘制成FSM的两段里面的一段,1/2的部分。一个闭节点。
        我们说这张图要背下来。
       

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| lcytms 发表于 2017-4-18 11:25:52 | 显示全部楼层
1030       
        第二张图就是一段的代码模型。
        也要背下来。
        总共有四张图,代码模型。
        FSM_1S,是个闭节点,输入信号,输出信号,然后呢,引用的是状态,状态机。
       

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| lcytms 发表于 2017-4-18 11:31:06 | 显示全部楼层
本帖最后由 lcytms 于 2017-4-18 11:32 编辑

1031       
        CS会在上层形成迭代,也就是说这个state会出现在赋值号的左右两侧。
        在状态机的这段描述里面,它是两个信号、两个端口。
        但是在它的上层,always语句块所在的module里面,由于state是同名信号,在上层把输出连接到输入,迭代是这样形成的。
        内部是两个端口,两个信号。
        这是第二张图。
        你只有把这些图记下来了,你才不会写错,你才不会把inputs写成outputs,把输入写到输出的位置上。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
小舍YZ 发表于 2017-4-18 11:31:40 | 显示全部楼层
赞,,,,,,好,,,,,,,,,谢谢分享。。。。。。。。。。。
 楼主| lcytms 发表于 2017-4-18 11:43:32 | 显示全部楼层
1032       
        这个state,我们知道,既是输入,又是输出,既可以在左侧,也可以在右侧。
        总共四张图,第一张图、第二张图,然后三、四,两端的,三段的。
        现在我们来做第三张图,两段的代码模型。
        两段的代码模型用两个always语句块,我们写成为FSM_2S1。
        1/2,它是一个闭节点。
        它所引用的信号,是NS,输出的信号是CS,是闭节点。
       

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| lcytms 发表于 2017-4-18 11:51:16 | 显示全部楼层
1033       
        时钟线我就省略了。
        闭节点就一定有时钟。
        然后呢,2/2部分,是一个ON,开节点。
        它的输入是CS,以及状态机的现场,输出是NS,以及状态机的输出。
        这是第三张图。
        转换关系不需要大家背。
       

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| lcytms 发表于 2017-4-18 15:56:42 | 显示全部楼层
1034       
        你抄下来,印象会更深刻一些。
        也就是说,任何时候,作为一个优秀的EDA工程师,一个合格的EDA工程师,问到这四张图,你都能直接在纸上把它画下来。
        很可能应聘的时候就会问到这个问题。
        立刻就能把它写下来。
        现在呢,我就来说它们之间的转换关系。
        1/2,我们写成一个闭节点,我们描述什么呢?
        我们描述什么,就得到什么。
        也就是描述的这一段,出现在always语句块里里面。
        Always语句的信号敏感表里面,必定会有且有一个未被引用的沿信号。
        Always的begin块里面,我们写什么就是什么,种瓜得瓜种豆得豆。
        在这个begin块里面所有的写在赋值号左侧的信号都会得到寄存器的输出,都会得到D触发器用沿驱动的输出。
       
 楼主| lcytms 发表于 2017-4-18 15:57:25 | 显示全部楼层
1035       
        那么写什么呢?
        我们只写NS的直线,我们只需要把NS直连上去,这个CS就会出现在赋值号的左侧。
        我们可以这样写,就是CS<=NS;,CS不就出现在赋值号的左侧了,就会为它生成驱动,就会为它生成一个寄存器。
       

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| lcytms 发表于 2017-4-18 16:48:45 | 显示全部楼层
1036       
        并且用未被引用的沿信号来驱动它。
        那一定是时钟。
        这个是CS’,这个时候寄存器输出我们就知道,NS通过一个寄存器输出。
        在理论模型上,我们可以看得到,就是CS。
        所以说这个CS’我们就看不到了,我们描述的就是NS连接到CS的关系。
        你只要描述NS连接到CS,CS就出现在赋值号的左侧,那么一定会生成这个寄存器。
        这个就构成了1/2的部分,是个闭节点。
        时钟我省略了。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|fpga论坛|fpga设计论坛 ( 京ICP备20003123号-1 )

GMT+8, 2024-12-24 00:22 , Processed in 0.061309 second(s), 17 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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