verilog移位寄存器设计_线性反馈移位寄存器

verilog移位寄存器设计_线性反馈移位寄存器8 序列检测_移位寄存器——Verilog HDL练习设计目标:使用移位寄存器的方式,来检测序列“10010”。设计思路:这次用移位寄存器实现序列检测,超简单。本质就是串并转换,然后将并行输出和检测序列做一个与运算。描述语言:Verilog HDL开发工

8 序列检测_移位寄存器——Verilog HDL练习   设计目标:使用移位寄存器的方式,来检测序列“10010”。   设计思路:   这次用移位寄存器实现序列检测,超简单。   本质就是串并转换,然后将并行输出和检测序列做一个与运算。   描述语言:Verilog HDL   开发工具:Vivado 2019.2   工程链接:https://github.com/RongyeL/Verilog-HDL-Library/tree/main/8%20seqdet_shift   关键代码:   `timescale 1ns / 1ps   //==================================================================================================   //  Filename      : seqdet_shift.v   //  Created On    : 2021-04-19   //  Version       : V 1.0   //  Author        : Rongye   //  Description   : Use shift register for sequence detection   //  Modification  :   //   //==================================================================================================   module SEQDET_SHIFT(   // INPUTS   Clk,        // posedge active   rst_n,      // negedge active   x,          // sequence input   // OUTPUTS   y           // detection “10010”   );   input              Clk;   input              rst_n;   input              x;   output             y;   reg               y;   reg     [4:0]     shift_r;   // shift register design   always @(posedge Clk or negedge rst_n)begin   if(!rst_n)   shift_r <= 5’d0;   else   shift_r <= {shift_r[3:0], x};   end   // detection output   always@(posedge Clk or negedge rst_n)begin   if(!rst_n)   y <= 1’b0;   else if(shift_r == 5’b10010)   y <= 1’b1;   else   y <= 1’b0;   end   endmodule   仿真结果:
verilog移位寄存器设计_线性反馈移位寄存器   输入序列是“1100_1101_0001_0010_0100”   跟上一期状态机的结果是一样的。   这里放大一下更容易看移位寄存器的输出。   从代码上看就会发现,简单了很多,   只要寄存器的输出5个位为“10010”,   就可以说检测到了,很容易理解。   详情可见testbench文件。

2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/81728.html

(0)
上一篇 2024年 8月 1日 下午8:23
下一篇 2024年 8月 1日

相关推荐

关注微信