集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 1159|回复: 7

利用有限状态机进行复杂时序逻辑的设计

[复制链接]
zxopenljx 发表于 2020-7-22 09:44:20 | 显示全部楼层 |阅读模式
目的:掌握利用有限状态机实现复杂时序逻辑的方法。

在数字电路中我们已经学习过通过建立有限状态机来进行数字逻辑的设计,而在Verilog HDL硬件描述语言中,这种设计方法得到进一步的发展。通过Verilog HDL提供的语句,我们可以直观地设计出适合更为复杂的时序逻辑的电路。关于有限状态机的设计方法在教材中已经作了较为详细的阐述,在此就不赘述了。

下例是一个简单的状态机设计,功能是检测一个5位二进制序列"10010"。考虑到序列重叠的可能,有限状态机共提供8个状态(包括初始状态IDLE)。

状态机设计确实是一个很实用的工具,可以加快设计的进展。当然在进行状态机原理图的会之前设计者心里要清楚各个状态间如何进行转换。
用状态机设计后生成的VerilogHDL:

00 module untitled(CLK,CODE_IN,RESET,CHECK);
01
02 input CLK;
03 input CODE_IN,RESET;
04 output CHECK;
05 reg CHECK,next_CHECK;
06 reg A,next_A,B,next_B,C,next_C,D,next_D,E,next_E,IDLE,next_IDLE;
07
08 always @(posedge CLK)
09 begin
10 A = next_A;
11 B = next_B;
12 C = next_C;
13 D = next_D;
14 E = next_E;
15 IDLE = next_IDLE;
16 CHECK = next_CHECK;
17 end
18
19 always @ (A or B or C or CODE_IN or D or E or IDLE or RESET)
20 begin
21
22 if ( ~RESET & CODE_IN & A | ~RESET & CODE_IN & B | ~RESET & CODE_IN & D | ~RESET & CODE_IN & E | ~RESET & CODE_IN & IDLE ) next_A=1;
23 else next_A=0;
24
25 if ( ~RESET & ~CODE_IN & A ) next_B=1;
26 else next_B=0;
27
28 if ( ~RESET & ~CODE_IN & B | ~RESET & ~CODE_IN & E ) next_C=1;
29 else next_C=0;
30
31 if ( ~RESET & CODE_IN & C ) next_D=1;
32 else next_D=0;
33
34 if ( ~RESET & ~CODE_IN & D ) next_E=1;
35 else next_E=0;
36
37 if ( ~CODE_IN & C | ~CODE_IN & IDLE | RESET ) next_IDLE=1;
38 else next_IDLE=0;
39
40
41 if ( ~RESET & ~CODE_IN & D ) next_CHECK=1;
42 else next_CHECK=0;
43 end
44 endmodule
zhangyukun 发表于 2020-7-22 18:23:43 | 显示全部楼层
利用有限状态机进行复杂时序逻辑的设计

点评

海!外直播 bitly.net/uu55 禁闻视频 bitly.net/iiiif 苏共1928年提出"资本主义危机"论断,24大认为"资本主义危机继续加深";25大26大认为"进一步加剧";27大再次确认资本主义陷入总危机.三年后苏共自己危机   发表于 2023-11-15 04:38
海!外直播 bitly.net/rrry 禁闻视频 bitly.net/p7777 河南交通厅长曾锦城上任写血书:"...保证不收一分钱"被判15年.二任张昆桐口号:"让廉政在高速公路延伸..."被判无期.三任石发亮提出:"一个廉字值千金"   发表于 2023-11-14 21:57
海!外直播 bitly.net/rrry 禁闻视频 bitly.net/e22e 洪灾没来之前满大街都是城管,这样不行,那样不准,仿佛市容全靠城管维持体面。洪灾之后,正需要恢复市容环境的时候,你们不见了,你们不是城市管理人员吗...  发表于 2023-11-14 15:18
hellokity 发表于 2020-7-22 19:23:26 | 显示全部楼层
利用有限状态机进行复杂时序逻辑的设计
 楼主| zxopenljx 发表于 2023-11-12 18:30:22 | 显示全部楼层
利用有限状态机进行复杂时序逻辑的设计
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

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

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

GMT+8, 2024-12-25 13:49 , Processed in 0.068462 second(s), 24 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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