基于verilog的序列检测

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验八:序列检测一:序列检测的源程序:

module jiance(RST_N,CLK,Q,F);

input RST_N,CLK,Q;

output F;

reg F;

reg [6:0] s0,s1;

always@ (posedge CLK or negedge RST_N) begin

if(!RST_N) s0<=7'b1001101;

else

begin

s1=s1<<1;

s1[0]=Q;

if (s1==s0) F=1'b1;

else F=1'b0;

end

end

endmodule

二:序列检测的测试代码:

`timescale 1 ps/ 1 ps

module jiance_vlg_tst();

// constants

// general purpose registers

reg eachvec;

// test vector input registers

reg CLK;

reg Q;

reg RST_N;

// wires

wire F;

// assign statements (if any)

jiance i1 (

// port map - connection between master ports and signals/registers .CLK(CLK),

.F(F),

.Q(Q),

.RST_N(RST_N)

);

initial

begin

RST_N=0;

CLK=1;

Q=1;

#10 Q=0;

CLK=0;

#10 Q=0;

#10 Q=1;

CLK=1;

#10 Q=1;

#10 Q=0;

#10 Q=1;

end

initial $monitor($time,"%b",CLK,Q,F); endmodule

三:Transcript显示结果:

Loading work.jiance_vlg_tst

# Loading work.jiance

# ** Warning: (vsim-3009) [TSCALE] - Module 'jiance' does not have a `timescale directive in effect, but previous modules do.

# Region: /jiance_vlg_tst/i1

#

# add wave *

# view structure

# .main_pane.structure.interior.cs.body.struct # view signals

# .main_pane.objects.interior.cs.body

# run -all

# 011x

# 1000x

# 3011x

# 5010x

# 6011x

四:测试波形如下图所示:

Q=1;

Q=0;

Q=0;

Q=1;

Q=1;

Q=0;

Q=1;

相关文档
最新文档