博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
序列检测器改编
阅读量:6227 次
发布时间:2019-06-21

本文共 1928 字,大约阅读时间需要 6 分钟。

1、状态转换图

2、verilog程序

   1)源程序

1 module seqdet(x,z,clk,rst); 2 input x,clk,rst; 3 output z; 4  5 reg[2:0] state; 6 wire z; 7  8 parameter   idle=3'd0, 9             a=3'd1,10             b=3'd2,11             c=3'd3,12             d=3'd4,13             e=3'd5,14             f=3'd6;15 16 assign z=((state==d)&&(x==0))? 1:0;   17  18 always@(posedge clk or negedge rst)19     begin20         if(!rst) 21             begin22                 state<=idle;23             end24         else25             casex(state)26                 idle:27                     if(x==1) state<=a;28                     else state<=idle;29                 a:30                     if(x==0) state<=b;31                     else state<=a;32                 b:33                     if(x==0) state<=c;34                     else state<=a;35                 c:36                     if(x==1) state<=d;37                     else state<=idle;38                 d:39                     if(x==0) state<=e;40                     else state<=a;41                 e:42                     if(x==0) state<=f;43                     else state<=a;44                 f:45                     if(x==0) state<=idle;46                     else state<=d;47                     48             endcase 49     end50 51 endmodule

 

 

 2).v的测试程序

  

1 `timescale 1ns/1ns 2 `define halfperiod 20 3  4 module t; 5  6 reg clk,rst; 7 reg[23:0] data; 8 wire z,x; 9 10 assign x=data[23];11 12 initial13     begin14         clk=0;15         rst=1;16         #2 rst=0;17         #30 rst=1;18         data=20'b1100_1001_0000_1001_0100;19         #(`halfperiod*1000)20         $stop;21         22     end23     24 always #(`halfperiod) clk=~clk;25 26 always@(posedge clk)27     #2 data={data[22:0],data[23]};//移位的一种方法28 29 seqdet m(.x(x),.z(z),.clk(clk),.rst(rst));30 31 32 33 34 35 endmodule

 

 

3、总结

  画出状态图就好了,.v的文件直接添加到testbench里就可以仿真。

 

转载于:https://www.cnblogs.com/qidaiymm/p/4905622.html

你可能感兴趣的文章
异常的处理方式
查看>>
JavaScrip 数组/字典/循环
查看>>
C#Question:“XXX”的重载均与“System.Threading.WaitCallback”不匹配。
查看>>
linux service等命令不能使用的解决办法
查看>>
java学习笔记(Core Java)5 继承
查看>>
算法(3)—— 链表习题 完结
查看>>
详谈外部浏览器如何实现复制公众号一键唤起微信添加关注
查看>>
c++ 快速排序
查看>>
Linux下删除命令 硬盘空间查看... 常用命令
查看>>
从客户端中检测到有潜在危险的 Request.Form 值
查看>>
Node.js制作爬取简书内容的爬虫
查看>>
编辑器之神-vim
查看>>
highcharts 柱形堆叠图
查看>>
在vue2.x中安装sass并配置
查看>>
密钥分散算法
查看>>
Django ORM字段和字段参数
查看>>
HDU-6170 Two strings
查看>>
URL和URI
查看>>
3.12DAYUP
查看>>
算法10-----分糖果
查看>>