3357|3

24

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

verilog hdl state machine [复制链接]

01 `include "timescale.v"
02 
03   module module_name (
04   clk , rst ,
05   input_i ,
06   output_o ) ;
07 
08 input   clk ;
09 input   rst ;
10 input   input_i ;
11 output  output_o ;
12 
13 wire clk ;
14 wire rst ;
15 wire input_i ;
16 reg output_o ;
17 reg next_output ;
18 
19 // diagram signals declarations
20 reg [ 2 : 0 ] i , next_i ;
21 reg [ 5 : 0 ] state_cs ;
22 reg [ 5 : 0 ] state_ns ;
23 
24 //----------------------------------
25 // Next State Logic (combinatorial)
26 //----------------------------------
27 always @ ( input_i  or i or state_cs )
28 begin : SM_NextState
29   // Set default values for outputs and signals
30   state_ns <= state_cs ;
31   next_i <= i ;
32   next_output <= output_o ;
33 
34   case ( state_cs )
35     0 :
36       state_ns <= 1 ;
37 
38     1 :
39     begin
40       next_output <= 1'b0 ;
41       state_ns <= 2 ;
42     end
43 
44     2 :
45       if ( input_i = 1'b0 )
46       begin
47         state_ns <= 3 ;
48         next_output <= 1'b1 ;
49       end
50   endcase
51 end
52 
53 //----------------------------------
54 // Current State Logic (sequential)
55 //----------------------------------
56 always @ ( posedge clk )
57 begin : SM_CurrentState
58   if ( rst )
59     state_cs <= 0 ;
60   else
61     state_cs <= state_ns ;
62 end
63 
64 //----------------------------------
65 // Registered outputs logic
66 //----------------------------------
67 always @ ( posedge clk )
68 begin : SM_RegOutput
69   if ( rst )
70   begin
71     i <= 3'h0 ;
72     output_o <= 1'b0 ;
73   end
74   else
75   begin
76     i <= next_i ;
77     output_o <= next_output_o | input_i;
78   end
79 end
80 
81 endmodule
此帖出自FPGA/CPLD论坛

最新回复

支持这样的写法 。。。 第三段可以使用组合逻辑也可以使用楼主描述的时序逻辑,都没问题。 如果输出状态比较多的话,甚至于可以写成四段式,HOHO。  详情 回复 发表于 2011-1-27 21:19
点赞 关注
 

回复
举报

18

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
状态机 三段式 经典结构啊……
此帖出自FPGA/CPLD论坛
 
 

回复

6892

帖子

0

TA的资源

五彩晶圆(高级)

板凳
 

三段式写起来太麻烦了!

此帖出自FPGA/CPLD论坛
个人签名一个为理想不懈前进的人,一个永不言败人!
http://shop57496282.taobao.com/
欢迎光临网上店铺!
 
 
 

回复

732

帖子

0

TA的资源

纯净的硅(高级)

4
 
支持这样的写法 。。。
第三段可以使用组合逻辑也可以使用楼主描述的时序逻辑,都没问题。
如果输出状态比较多的话,甚至于可以写成四段式,HOHO。
此帖出自FPGA/CPLD论坛
个人签名学习的乐趣在于分享。
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表