时序逻辑电路实验报告

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

数字电子技术实验报告

实验名称:时序逻辑电路

班级姓名学号

实验日期年月日交报告日期年月日

时序逻辑电路

一、设计要求

1.设计一个秒脉冲发生器,用LED指示秒脉冲的发送。

2.设计一个带有异步清零和同步置数信号的4位寄存器,并在开发板上验证。

二、实验内容

任务1:秒脉冲发生器

(1)源文件——ge.v

module ge(

input clr,

input clk,

output LED

);

parameter T1s = 26'b10_1111_1010_1111_0000_1000_0000;

reg [26:0] Count1;

always @ (posedge clk or posedge clr)

begin

if(clr==1)

Count1<=0;

else if(Count1==T1s)

Count1<=0;

else

Count1<=Count1 + 1;

end

reg rled;

always @ (posedge clk or posedge clr)

begin

if(clr==1)

rled<=0;

else if(Count1==T1s)

rled<=~rled;

end

assign LED=rled;

endmodule

(2)约束文件——ge.ucf

NET"clk"LOC="B8"; //时钟

NET"clr"LOC="N3"; //SW7

NET"LED"LOC="G1"; //LED7

(3)开发板验证

当将开关SW7拨到1,LED7每隔1s闪烁一次。

任务2:四位寄存器(异步清零,同步置数)

(1)源文件——ge1.v

module ge1(clr,clk,d,load,q);

input clr,clk,load;

input[3:0] d;

output[3:0] q;

reg[3:0] q;

always@(posedge clk or posedge clr)

if(clr)

q<=0; //异步清零

else

if(!clr && load) //同步置数

begin

q[0]<=1;q[1]<=1;q[2]<=1;q[3]<=1;

end

else

q<=d;

endmodule

(2)约束文件——ge1.ucf

NET"clk"LOC="B8"; //MCLK

NET"clr"LOC="P11"; //SW0

NET"load"LOC="L3"; //SW1

NET"d[3]"LOC="G3"; //SW4

NET"d[2]"LOC="F3"; //SW5

NET"d[1]"LOC="E2"; //SW6

NET"d[0]"LOC="N3"; //SW7

NET"q[3]"LOC="N5"; //LD4

NET"q[2]"LOC="N4"; //LD5

NET"q[1]"LOC="P4"; //LD6

NET"q[0]"LOC="G1"; //LD7

(3)仿真文件——test_ge1.v

#100;

clr=1;

#200;

clr=0;clk=1;d=0100;

#200;

clk=0;d=1100;

#200;

clk=1;d=1001;

#200;

clk=0;d=0011;

#200;

clk=1;d=0000;

#200;

clk=0;d=0010;

#200;

clk=1;load=1;

(4)仿真波形:

分析:当clr=0,清零,q无输出;

当clr0,且load=1时,当时钟信号的上升沿到来时,q=1111,下降沿时q 值不变;

当clr0,且load1时,当时钟信号的上升沿到来后,q=d,下降沿时q值不变;

LED灯就对应的改变亮灭,可能需要等最多1秒钟。

相关文档
最新文档