原创 二进制序列检测的移位寄存器实现

2009-2-9 20:52 4765 7 8 分类: FPGA/CPLD

点击开大图


点击开大图


以前看到二进制序列检测一般都使用状态机实现,今天突然想到可以使用移位寄存器实现,移位寄存器就好像一个窗口,把从窗口里截取的数据接到一个比较器上,这样比较不同序列时只要换一下比较器另一个输入端的数据就可以实现,需要改变的只是寄存器和比较器的位宽。


选cyclone在ModelSim中仿真,延迟为9ns多一点。


附上源码:


// sequence detect by shift_register
module seq_det(iBit,CLK,RSTn,iKEY,Q);
input   iBit;
input[4:0]  iKEY;
input   CLK;
input   RSTn;
output   Q;


reg[4:0]  shift_reg;


always@(posedge CLK or negedge RSTn)
begin
 if(RSTn==0)
  shift_reg <= 0;
 else
  shift_reg <= {shift_reg[3:0],iBit};
end


assign Q =(shift_reg==iKEY)?1:0;
endmodule

PARTNER CONTENT

文章评论1条评论)

登录后参与讨论

用户1569463 2009-2-9 21:49

好像法
相关推荐阅读
用户142112 2011-01-04 23:43
IEEE Verilog 2001标准翻译
闲来无聊,想翻译Verilog2001标准,有兴趣的联系我,邮箱captainliuy@163.com。英文原版标准见附件。到现在为止翻译了前两章,如果你在阅读的时候,觉得那里翻译的不对,或者用词不准...
用户142112 2011-01-04 21:21
FWFT FIFO读操作注意
    FWFT:First Word Fall Through的缩写,好像是Xilinx的说法,Altera对应的概念是Show-ahead synchronous(SASO)。即数据在rdreq有...
用户142112 2010-10-08 19:36
Modelsim自动化仿真平台--BFM_FIFO
         这次添加了FWFT(First Word Fall Through) FIFO的BFM模型,以及DDR多端口控制器的仿真模型。因为如果写RTL级的DDR多端口控制器比较费时,所以写了...
用户142112 2010-09-21 21:07
Modelsim自动化仿真平台--BFM_CLK
写了第一个简单的BFM模块,时钟和复位。将覆盖原来的BFM文件夹,将两个do文件放在test目录下,打开modelsim执行*sim.do。...
用户142112 2010-09-18 20:09
Modelsim自动化仿真平台
下载后,解压到D盘根目录,打开Modelsim,执行*sim.do,就可以进行仿真。具体内容可以看目录结构和脚本。BFM和用户库文件还没有做,等做好后再上传。...
用户142112 2010-08-20 20:23
TCL 双引号和花括号的区别
用了很一段时间的Modelsim,用TCL脚本仿真,开始注意起来它,看了些资料,有一个问题始终让我很困惑,那就是花括号 的用法,今天Google了一下,觉得有一点豁然了,记录一下。为了不让自己的翻译影...
EE直播间
更多
我要评论
1
7
关闭 站长推荐上一条 /3 下一条