哈工大数电大作业(1)

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

H a r b i n I n s t i t u t e o f T e c h n o l o g y

数电大作业(1)

课程名称:数字电子技术

院系:航天学院控制科学与工程系班级:

设计者:

学号:

指导教师:陶隽源

设计时间:2015-1-5

哈尔滨工业大学

一、实验内容

利用Verilog HDL 设计一个电路,对输入的一串二进制数,检测序列中连续3个或者3个以上的1,状态转换如图所示。

要求:

1.编写源程序;

2.给出仿真电路图、状态转换图和仿真波形图。

二、实验分析

使用状态机进行编写,一共有4个状态分别用S0(00)、S1(01)、S2(10)、S3(11)来表示,其中S0、S1、S2状态的输出均为低电平“0”,只有S3状态的输出为高电平“1”,在四个状态有低电平输入时,则次态均为S0,在有高电平输入时,则状态依次更替(S0→S1→S2→S3→S3……),那么只有连续三个以上的高电平输入时才会使输出为高电平,否则输出将保持低电平。

下图为简略的状态转换表:

输入(

din ) 输出(op ) 状态

0 0 S0 0 0 S0

1 0 S1 1 0 S

2 0 0 S0 1 0 S1 1 0 S2

1 1 S3 1 1 S3

0 0 S0

三、程序源代码

本实验使用Xilinx软件进行编程与仿真。

根据《数字电子技术》教材第318页的例题,改编程序如下:module ZG(clk,din,op);

input clk,din;

output op;

reg[1:0] current_state,next_state;

reg op;

parameter

S0=2'b00,S1=2'b01,S2=2'b10,S3=2'b11; always@(posedge clk)

begin

current_state <= next_state;

end

always@(current_state or din)

begin

case(current_state)

S0:begin

op=0;

if(din==0)

next_state = S0;

else

next_state = S1;

end

S1:begin

op=0;

if(din==0)

next_state = S0;

else

next_state = S2; end

S2:begin

op=0;

if(din==0)

next_state = S0;

else

next_state = S3; end

S3:begin

op=1;

if(din==0)

next_state = S0;

else

next_state = S3; end

default:begin

op=0;

next_state = S0;

end

endcase

end

endmodule

四、仿真调试与截图

1、调试代码如下

module tiaoshi;

// Inputs

reg clk;

reg din;

// Outputs

wire op;

// Instantiate the Unit Under Test (UUT)

ZG uut (

.clk(clk),

.din(din),

.op(op)

);

// Note: CLK must be defined as a reg when using this method

parameter PERIOD = 50;

always begin

clk = 1'b0;

#(PERIOD/2) clk = 1'b1;

#(PERIOD/2);

end

initial begin

// Initialize Inputs

clk = 0;

din = 0;

// Wait 100 ns for global reset to finish

#100;

din=0;

#20;

din=0;

#20;

din=1;

#20;

din=1;

#20;

din=0;

#20;

din=1;

#20;

din=1;

#20;

din=1;

#20;

din=1;

#20;

din=0;

#20;

// Add stimulus here end

endmodule

2、仿真电路图如下

3、仿真波形图如下

五、实验总结

由波形图可以看到,只有连续输入三个高点平时,输出才会变成高电平,否则将一直是低电平,由测试的输入和输出波形图可以看到,与上述简略的状态转换表完全相符,即基本满足了实验要求。

相关文档
最新文档