当前位置:文档之家› 浙大数字电路实验报告

浙大数字电路实验报告

实验报告

课程名称:_________数字电路实验____________指导老师:___屈民军___ 成绩:__________________

实验名称:实验三 用HDL语言设计组合逻辑电路 实验十一 用HDL语言设计时序电路 实验类型:_同组学生姓名:_

一、实验目的和要求(必填)

1、 掌握用AHDL、VHDL、或Verilog HDL硬件描述语言来设计组合逻辑电路。掌握译码器和编码器的功能和设计。

2、 初步了解实验板中的LED数码显示器。

3、 掌握用MAX+PlusII对逻辑电路进行逻辑功能、延时等各种仿真的方法。

4、 掌握用AHDL、VHDL、或Verilog HDL硬件描述语言来设计时序逻辑电路的方法和计数器、分频器、移位寄存器、序列信号发生器电路等常用时序电路的HDL语言描述方法。

5、 掌握用MAX+PlusII软件对AHDL、VHDL或Verilog HDL硬件描述语言进行快速编译和逻辑综合、逻辑功能仿真、延时分析等各种实验过程。

二、实验内容和原理(必填)

1、 用AHDL、VHDL或Verilog HDL硬件描述语言设计一个驱动七段LED共阳数码管的十六进制译码器,有一个使能信号EN,EN为高电平时正常工作,EN为低电平时数码管不显示。

2、 用AHDL、VHDL或Verilog HDL硬件描述语言来设计多模加/减计数器,具有异步清零、计数使能功能。另外,功能输入控制信号S1,S0与模关系如下表所示:

S1 S0 模 功能

0 0 10 10进制加法计数器

0 1 10 10进制减法计数器

1 0 12 12进制加法计数器

1 1 12 12进制减法计数器

三、主要仪器设备(必填)

计算机、功能模块。

四、操作方法和实验步骤

1、 (1)采用状态机设计程序如下:

module encoder(a,b,c,d,e,f,g,NB1,NB2,NB3,NB4,NB5,NB6,NB7,NB8,EN,D3,D2,D1,D0);

output a,b,c,d,e,f,g;

output NB1,NB2,NB3,NB4,NB5,NB6,NB7,NB8;

input EN,D3,D2,D1,D0;

reg a,b,c,d,e,f,g;

assign NB1=!EN;

assign NB2=1;

assign NB3=1;

assign NB4=1;

assign NB5=1;

assign NB6=1; 专业: 电子信息工程

姓名: 吴峰

学号: 3051131053

日期: 2007.1.4

地点: 东一B 415 assign NB7=1;

assign NB8=1;

always @(D3 or D2 or D1 or D0)

begin

case({D3,D2,D1,D0})

4'b0000: {a,b,c,d,e,f,g}=7'b0000001;

4'b0001: {a,b,c,d,e,f,g}=7'b1001111;

4'b0010: {a,b,c,d,e,f,g}=7'b0010010;

4'b0011: {a,b,c,d,e,f,g}=7'b0000110;

4'b0100: {a,b,c,d,e,f,g}=7'b1001100;

4'b0101: {a,b,c,d,e,f,g}=7'b0100100;

4'b0110: {a,b,c,d,e,f,g}=7'b0100000;

4'b0111: {a,b,c,d,e,f,g}=7'b0001111;

4'b1000: {a,b,c,d,e,f,g}=7'b0000000;

4'b1001: {a,b,c,d,e,f,g}=7'b0001100;

4'b1010: {a,b,c,d,e,f,g}=7'b0001000;

4'b1011: {a,b,c,d,e,f,g}=7'b1100000;

4'b1100: {a,b,c,d,e,f,g}=7'b0110001;

4'b1101: {a,b,c,d,e,f,g}=7'b1000010;

4'b1110: {a,b,c,d,e,f,g}=7'b0110000;

4'b1111: {a,b,c,d,e,f,g}=7'b0111000;

endcase

end

endmodule(2)进行仿真,结果如下:

(3)延时分析:

(4)管脚分配

a接73脚,b接76脚,c接4脚,d接10脚,e接8脚,f接74脚,g接81脚;

NB1接79脚,NB2接75脚,NB3接77脚,NB4接80脚,NB5接9脚,NB6接11脚,NB7接15脚,NB8接12脚;

D3接52脚,D2接51脚,D1接 50脚,D0接49脚;

EN接1脚;

2、 (1)用行为描述方法设计程序如下:

module count(q,s1,s0,clear,clk,EN);

output[3:0] q;

input s1,s0;

input clk,clear,EN;

reg[3:0] q;

always @(posedge clk or negedge clear)

if(!clear) q=0;

else

case({s1,s0})

2’b00: if(q==4’b1001) q=0; else q=q+EN;

2’b01: if(q==4’b0000) q=4’b1001; else q=q-EN;

2’b10: if(q==4’b1011) q=0; else q=q+EN;

2’b11: if(q==4’b0000) q=4’b1011; else q=q-EN;

endcase

endmodule

(2)仿真结果如下:

a、

b、

c、

d、

(3)延时分析:

五、实验数据记录和处理

按照上面的管脚分配将程序下载到实验模板进行实验。

六、实验结果与分析

程序在实验模板上实验,运行正常。

七、讨论 、心得

用Verilog HDL语言设计电路时,可有多种设计方法,如状态机描述,结构描述、数据流描述、行为描述等,对于不同复杂程度的电路设计应采用不用的设计方式以达到最佳效果。

相关主题