导航:首页 > 源码编译 > verilog编译的状态机

verilog编译的状态机

发布时间:2022-12-09 15:18:39

① 用verilog 状态机编写一个序列检测器,

状态机,首先是默认状态(st0或者直接是s1),然后是序列1状态(st1),和1101比较,对的话调到序列2状态,错误的话还是st1;st2的时候如果数据是0011,进入st3,错误的话,看看是不是1101,如果是的话还是保持在st2,如果不是回到st1;后面依次类推,对的进入下一状态,错的话和序列1的数据比较,看看是停在st2还是st1;

② 关于verilog 状态机的编写(由状态图来写状态机)

用一个合适位宽的reg作为状态机;
工作时每个原状态都是一个case分支;
状态转移用case分支里面的if else写;
转移的次态是if else里面的结果。

③ 如何用verilog设计有限状态机

在用Verilog描述有限状态机时,有下面几种描述方式:
(1)三段式描述:即现态(CS)、 次态(NS)、 输出逻辑(OL)各用一个always过程描述。
(2)两段式描述(CS+NS、OL双过程描述):使用两个always过程来描述有限状态机,一个过程描述现态和次态时序逻辑(CS+NS),另一个过程描述输出逻辑(OL)。
(3)两段式描述(CS、NS+OL双过程描述):一个过程描述现态(CS),另一个过程描述次态和输出逻辑(NS+OL)。
(4)单段式描述:在单段式描述方式中,将状态机的现态、次态和输出逻辑(CS+NS+OL)放在一个always过程中进行描述。
对于两段式描述,相当于-一个过程是由时钟信号触发的时序过程,时序过程对状态机的时钟信号敏感,当时钟发生有效跳变时,状态机的状态发生变化,一般用case语句检查状态机的当前状态,然后用if语句决定下一状态; 另一个过程是组合过程,在组合过程中根据当前状态给输出信号赋值,对于摩尔型(Moore) 状态机,其输出只与当前状态有关,因此只需用case语句描述即可;对于米里型(Mealy) 状态机,其输出则与当前状态和当前输入都有关,因此,可以用case语句和if语句组合进行描述。双过程的描述方式结构清晰,并且把时序逻辑和组合逻辑分开进行描述,便于修改。
在单过程描述方式中,将有限状态机的现态、次态和输出逻辑(CS+NS+OL)放在一个过程中进行描述,这样做带来的好处是,相当于采用时钟信号来同步输出信号。因此,可以克服输出逻辑信号出现毛刺的问题,这在--些让输出信号作为控制逻辑的场合使用,就有效避免了输出信号带有毛刺,从而产生错误的控制逻辑的问题。但要注意的是,采用单过程描述方式,输出逻辑会比双过程描述方式的输出逻辑延迟--个时钟周期的时间。

阅读全文

与verilog编译的状态机相关的资料

热点内容
linuxredis30 浏览:541
狸窝pdf转换器 浏览:696
ajax调用java后台 浏览:904
活塞式压缩机常见故障 浏览:614
break算法 浏览:731
换电池的app是什么 浏览:771
单片机ad采样快速发送电脑 浏览:22
第五人格服务器错误是什么回事儿 浏览:467
查看手机谷歌服务器地址 浏览:191
python操作zookeeper 浏览:706
苹果手机dcim文件夹显示不出来 浏览:430
如何压缩文件夹联想电脑 浏览:583
程序员的学习之旅 浏览:440
apkdb反编译 浏览:922
雪花算法为什么要二进制 浏览:825
在文档中打开命令行工具 浏览:608
android图标尺寸规范 浏览:369
python实用工具 浏览:208
流量计pdf 浏览:938
科东加密认证价格 浏览:534