西安交通大学数字电子技术实验报告Word格式.docx

上传人:b****4 文档编号:8179319 上传时间:2023-05-10 格式:DOCX 页数:39 大小:145.75KB
下载 相关 举报
西安交通大学数字电子技术实验报告Word格式.docx_第1页
第1页 / 共39页
西安交通大学数字电子技术实验报告Word格式.docx_第2页
第2页 / 共39页
西安交通大学数字电子技术实验报告Word格式.docx_第3页
第3页 / 共39页
西安交通大学数字电子技术实验报告Word格式.docx_第4页
第4页 / 共39页
西安交通大学数字电子技术实验报告Word格式.docx_第5页
第5页 / 共39页
西安交通大学数字电子技术实验报告Word格式.docx_第6页
第6页 / 共39页
西安交通大学数字电子技术实验报告Word格式.docx_第7页
第7页 / 共39页
西安交通大学数字电子技术实验报告Word格式.docx_第8页
第8页 / 共39页
西安交通大学数字电子技术实验报告Word格式.docx_第9页
第9页 / 共39页
西安交通大学数字电子技术实验报告Word格式.docx_第10页
第10页 / 共39页
西安交通大学数字电子技术实验报告Word格式.docx_第11页
第11页 / 共39页
西安交通大学数字电子技术实验报告Word格式.docx_第12页
第12页 / 共39页
西安交通大学数字电子技术实验报告Word格式.docx_第13页
第13页 / 共39页
西安交通大学数字电子技术实验报告Word格式.docx_第14页
第14页 / 共39页
西安交通大学数字电子技术实验报告Word格式.docx_第15页
第15页 / 共39页
西安交通大学数字电子技术实验报告Word格式.docx_第16页
第16页 / 共39页
西安交通大学数字电子技术实验报告Word格式.docx_第17页
第17页 / 共39页
西安交通大学数字电子技术实验报告Word格式.docx_第18页
第18页 / 共39页
西安交通大学数字电子技术实验报告Word格式.docx_第19页
第19页 / 共39页
西安交通大学数字电子技术实验报告Word格式.docx_第20页
第20页 / 共39页
亲,该文档总共39页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

西安交通大学数字电子技术实验报告Word格式.docx

《西安交通大学数字电子技术实验报告Word格式.docx》由会员分享,可在线阅读,更多相关《西安交通大学数字电子技术实验报告Word格式.docx(39页珍藏版)》请在冰点文库上搜索。

西安交通大学数字电子技术实验报告Word格式.docx

set"

L3"

//SW1

clr"

P11"

//SW0

q"

G1"

//LD7

3.仿真文件

moduletest_D_Flip_Flop;

//Inputs

regclk;

regset;

regD;

regclr;

//Outputs

wireq;

//InstantiatetheUnitUnderTest(UUT)

D_Flip_Flopuut(

.clk(clk),

.set(set),

.D(D),

.clr(clr),

.q(q)

initialbegin

//InitializeInputs

clk=0;

set=1;

D=0;

clr=0;

//Wait100nsforglobalresettofinish

#100;

//Addstimulushere

End

always#10clk=~clk;

always#12D=~D;

always#33clk=~clk;

always#42set=~set;

仿真结果:

实验四、组合逻辑电路实验Ⅰ(2学时)

组合逻辑Ⅰ:

(1)使用VERILOG设计一个新的逻辑功能(比如四输入或门、或非门、与或非门等等),并在开发板上验证,比如:

进实验室前编写好VERILOG源文件、约束文件和仿真文件(见4.1.2,P101

(2))。

(2)设计新的多路选择器(三选一、五选一等等),并在开发板上验证。

实验前编写好VERILOG源文件、用户约束文件和仿真文件,实验报告中要给出仿真波形(见4.3,P111

(2))。

(查看仿真波形、验收逻辑功能)

(3)查看74LS138的Datasheet,用Verilog语言设计一个3-8译码器。

用三个逻辑开关作为输入,8个LED灯作为输出,验证所设计的3-8译码器的逻辑功能。

(选做)

1.VERILOG设计逻辑函数

(1).VERILOG程序

modulegate2(

inputa,

inputb,

inputc,

inputd,

outputz

assignz=~((a&

b)|(c&

d));

(2).约束文件

a"

LOC=P11;

b"

LOC=L3;

c"

LOC=K3;

d"

LOC=B4;

z"

LOC=M5;

(3).仿真程序

//Addstimulushere

a<

b<

c<

d<

#200;

#200;

end

仿真结果

2.四选一多路选择器

(1)VERILOG程序

moduleMUX(

inputwirea,

inputwireb,

inputwirec,

inputwired,

inputwires1,

inputwires2,

outputwirey

assigny=(a&

(~s1)&

(~s2))|(b&

(s2))|(c&

(s1)&

(~s2))|(d&

(s2));

(2)约束文件

NET"

s1"

LOC=P11;

s2"

LOC=L3;

LOC=K3;

LOC=B4;

LOC=G3;

LOC=F3;

y"

LOC=M5;

(3)仿真程序

#100

s1<

s2<

#400

(3)仿真结果

3.3-8译码器

moduleyimaqi38(

inputwire[2:

0]a,

outputwire[7:

0]y

assigny[0]=~a[2]&

~a[1]&

~a[0];

assigny[1]=~a[2]&

a[0];

assigny[2]=~a[2]&

a[1]&

assigny[3]=~a[2]&

assigny[4]=a[2]&

assigny[5]=a[2]&

assigny[6]=a[2]&

assigny[7]=a[2]&

endmodule

a[0]"

a[1]"

LOC=E2;

a[2]"

LOC=N3;

y[0]"

y[1]"

LOC=M11;

y[2]"

LOC=P7;

y[3]"

LOC=P6;

y[4]"

LOC=N5;

y[5]"

LOC=N4;

y[6]"

LOC=P4;

y[7]"

LOC=G1;

实验五、组合逻辑电路实验Ⅱ(2学时)

组合逻辑Ⅱ:

(1)完成4位数码管动态显示设计(见P121),实现将8个SW输入的两位十六进制数对应的8421BCD码,显示在数码管上。

数码转换关系表4-2所示(见P115),比如,若在8个开关SW上输入2FH,四个数码管由左到右应显示0215。

实验前编写好VERILOG源文件、用户约束文件等。

(验收逻辑功能) 

实现将8个SW输入的两位十六进制数对应的十进制数,显示在数码管上。

比如,若在8个开关SW上输入7FH,四个数码管由左到右应显示127。

(2)参考P126,:

用Verilog语言设计一个4位全加器,给出布线后仿真波形,测试加法器的延时(要求在预习报告中完成)。

(查看布线后仿真波形)。

(3)用Verilog语言设计一个4位比较器。

用两组、每组4个逻辑开关作为输入,比较两组逻辑开关输入二进制数的大小,用三个LED灯指示比较结果,三个逻辑指示灯分别指示大于、等于、小于。

1.2位16进制数码管

(1)VERILOG代码

inputwire[7:

0]x,

inputwireclk,

inputwireclr,

outputreg[6:

0]a_to_g,

outputreg[3:

0]an

wires;

reg[3:

0]digit;

reg[19:

0]clkdiv;

assigns=clkdiv[19];

always@(*)

case(s)

0:

if(x[3:

0]>

=4'

b1010)

digit=x[3:

0]-4'

b1010;

else

digit=x[3:

0];

1:

digit=4'

b0001;

digit=4'

b0000;

2:

if(x[7:

4]>

digit=x[7:

4]-4'

digit=x[7:

4];

3:

default:

digit=4'

endcase

case(digit)

a_to_g=7'

b0000001;

1:

b1001111;

2:

b0010010;

3:

b0000110;

4:

b1001100;

5:

b0100100;

6:

b0100000;

7:

b0001111;

8:

b0000000;

9:

b0000100;

'

hA:

b0001000;

hB:

b1100000;

hC:

b0110001;

hD:

b1000010;

hE:

b0110000;

hF:

b0111000;

default:

begin

an=4'

b1111;

an[s]=0;

always@(posedgeclkorposedgeclr)

if(clr==1)

clkdiv<

else

=clkdiv+1;

a_to_g[0]"

LOC=M12;

a_to_g[1]"

LOC=L13;

a_to_g[2]"

LOC=P12;

a_to_g[3]"

LOC=N11;

a_to_g[4]"

LOC=N14;

a_to_g[5]"

LOC=H12;

a_to_g[6]"

LOC=L14;

an[3]"

LOC=K14;

an[2]"

LOC=M13;

an[1]"

LOC=J12;

an[0]"

LOC=F12;

LOC=B8;

LOC=G12;

x[0]"

x[1]"

x[2]"

x[3]"

x[4]"

x[5]"

x[6]"

x[7]"

2.4位全加器

modulejiafaqi(

inputwire[3:

0]a,

0]b,

outputwire[3:

0]s,

outputwirec4

wire[4:

0]c;

assignc[0]=0;

assigns=a^b^c[3:

assignc[4:

1]=a&

b|c[3:

0]&

(a^b);

assignc4=c[4];

a[3]"

b[0]"

LOC=G4;

b[1]"

b[2]"

b[3]"

c4"

LOC="

s<

0>

"

P4"

1>

N4"

2>

N5"

3>

P6"

3.4位比较器

modulebijiaoqi(

inputwire[3:

0]A,

0]B,

outputreg[2:

always@(AorB)

if(A>

B)

y<

=3'

b001;

elseif(A==B)

b010;

else

b100;

A[0]"

A[1]"

A[2]"

A[3]"

B[0]"

B[1]"

B[2]"

B[3]"

实验六、时序逻辑电路实验Ⅰ(2学时)

时序逻辑Ⅰ:

(1)设计一个秒脉冲发生器,用LED指示秒脉冲的发放(P144,(3))。

(检查秒脉冲发生器的精度、能将1秒的脉冲周期改为2秒或3秒等);

(2) 

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

(2))。

将时钟信号改为2Hz或4Hz,观察异步清零和同步置数现象。

(验收逻辑功能)

(3)设计一个具有同步清零、同步置数端的十进制加法计数器。

选1Hz信号作为CLK信号,4个LED灯指示计数状态,一个逻辑开关做清零端,另一个逻辑开关做置数端。

(4)设计一个具有异步清零、同步置数端的4位二进制加法计数器。

实验内容

1.秒脉冲发生器

modulemaichong(

inputclk,clr,

outputreg[0:

0]q

);

reg[26:

0]counter;

always@(posedgeclk)

if(counter==25000000)counter<

=0;

elsecounter<

=counter+1;

regclk_div;

if(counter==25000000)clk_div<

=~clk_div;

always@(posedgeclk_divorposedgeclr)

begin

if(clr==1)

q<

elseif(q==2)

else

=q+1;

end

q[0]"

//LED4

2.异步清零同步置数四位寄存器

modulejicunqi(

inputload,

0]d,

reg[27:

0]q1;

always@(posedgeclkorposedgeclr)

q1<

=q1+1;

assignmclk=q1[27];

always@(posedgemclkorposedgeclr)

q<

elseif(load==1)

=d;

(1)约束文件

load"

d[0]"

K3"

d[1]"

B4"

d[2]"

G3"

d[3]"

F3"

M5"

q[1]"

M11"

q[2]"

P7"

q[3]"

3.同步清零同步置数十进制加法器

实验七、时序逻辑电路实验Ⅱ(2学时)

时序逻辑Ⅱ:

(1)用层次化自顶向下的设计方法设计一个60进制计数器,用动态数码管显示计数值,时钟采用1Hz信号,观察计数效果;

(2)用层次化自顶向下的设计方法设计一个24进制计数器,用动态数码管显示计数值,时钟采用1Hz信号,观察计数效果;

(3)设计一个完整的数字钟,小时和分钟用数码管显示,秒用发光二极管闪烁显示,每秒闪烁一次。

如有可能,请增加校时功能(选做)

1.60进制计数器

moduletop(

inputwireclk0,

inputwireclr1,

outputwire[3:

0]Second_an,

outputwire[6:

0]Second_q

wirejinwei;

//模块间链接定义(注意须是wire)

Secondinstance_Second(

.clk(clk),

.sec(sec)

cnt60instance_cnt60(

.clk(sec),

.clr(clr),

.clk0(clk0),

.cnt60_an(Second_an),

.cnt60_q(Second_q),

.carry(carry)

//这里省去了60进制计数器进位输出变量carry

Endmodule

moduleSecond(

outputregsec

regq1;

always@(posedgeclk)

if(q1==1)

sec<

=~sec;

//得到1Hz信号

modulecnt60(

0]cnt60_an,

0]cnt60_q,

outputregcarry

0]cntl;

0]cnth;

//初始化

cntl=8;

cnth=5;

//60进制计数器

always@(posedgeclk)

carry=0;

cntl=cntl+1;

if(cntl==9)

cntl=0;

cnth=cnth+1;

if(cnth==5&

&

cntl==9)

cntl=0;

cnth=0;

carry=1;

//carry是60进制计数器的进位

reg[3:

0]di=10;

assigns=clkdiv[19];

always@(*)

di=cntl;

di=cnth;

always@(*)

case(di)

cnt60_q=7'

4:

5:

6:

7:

8:

9:

default:

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2