南昌大学EDA实验报告完整版Word格式文档下载.docx

上传人:b****6 文档编号:21505283 上传时间:2023-01-30 格式:DOCX 页数:50 大小:1.67MB
下载 相关 举报
南昌大学EDA实验报告完整版Word格式文档下载.docx_第1页
第1页 / 共50页
南昌大学EDA实验报告完整版Word格式文档下载.docx_第2页
第2页 / 共50页
南昌大学EDA实验报告完整版Word格式文档下载.docx_第3页
第3页 / 共50页
南昌大学EDA实验报告完整版Word格式文档下载.docx_第4页
第4页 / 共50页
南昌大学EDA实验报告完整版Word格式文档下载.docx_第5页
第5页 / 共50页
点击查看更多>>
下载资源
资源描述

南昌大学EDA实验报告完整版Word格式文档下载.docx

《南昌大学EDA实验报告完整版Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《南昌大学EDA实验报告完整版Word格式文档下载.docx(50页珍藏版)》请在冰豆网上搜索。

南昌大学EDA实验报告完整版Word格式文档下载.docx

b.全加器

modulef_adder(ain,bin,cin,cout,sum);

outputcout,sum;

inputain,bin,cin;

wirenet1,net2,net3;

h_adderU1(ain,bin,net1,net2);

h_adderU2(.A(net1),.SO(sum),.B(cin),.CO(net3));

orU3(cout,net2,net3);

2.选目标器件CycloneII中的EP2C35F672C8并编译。

3.建立仿真波形文件,进行波形仿真。

仿真波形与真值表对应,结果一致,说明程序编写正确,仿真成功。

4.引脚锁定,包装元件。

5.下载测试

下载到试验箱上进行测试。

拨动开关得出结果,按照真值表上对结果进行验证。

可以发现与真值表上的结果完全一致,说明设计符合设计要求。

6实验总结

初步了解verilog语言以及学习Quartusii软件的使用,能够熟练地使用软件建立工程,编写代码,建立波形文件,引脚锁定,下载程序到试验箱。

除此,还知道了verilogHDL元件例化语句的编写与调试。

使我对EDA从理论到实践,大体上有了一个初步的了解及认识。

2015.10.26实验成绩:

实验二模可变计数器的设计

(一)实验目的

1、进一步熟悉实验装置和QuartusⅡ软件的使用;

2、进一步熟悉和掌握EDA设计流程;

3、学习简单组合、时序电路的EDA设计;

4、学习计数器中二进制码到BCD码的转换技巧;

5、学习实验装置上数码管的输出方法。

(二)设计要求

完成设计、仿真、调试、下载、硬件测试等环节,在EDA实验装置上实现模可变计数器功能,具体要求如下:

1、设置一个按键控制改变模值,按键按下时模为10-99之间(具体数值自行确定)的数,没按下时模为100-199之间(具体数值自行确定)的数;

2、计数结果用三位数码管十进制显示。

3、利用控制位m来改变模长要求m=0时模为120计数,m=1时模为21计数;

(三)主要仪器设备

1、微机1台

2、QuartusII集成开发软件1套

3、EDA实验装置1套

(四)实验步骤

1.建立工作库文件夹,输入计数器的VerilogHDL代码并存盘。

moduleclk_div(clk,m,en,rst,a,sel,SG,d);

inputclk,m,en,rst;

output[7:

0]SG;

output[2:

0]sel;

outputa;

(*synthesis,keep*)regclk1;

(*synthesis,keep*)wire[3:

0]gw,sw,bw;

/*(*synthesis,keep*)*/reg[3:

0]a;

reg[11:

0]q;

0]model;

reg[7:

0]cnt,SG;

reg[2:

reg[0:

0]d;

output[0:

always@(posedgeclk)

begincnt=cnt+1;

if(cnt==200)beginclk1=1'

b1;

cnt=0;

end

elseclk1=1'

b0;

//200分频,CLK为数码管扫描频率,CLK1为计数频率

if(sel<

2)sel=sel+1;

elsesel=0;

end//sel为数码管选择

always@(sel)begin

case(sel)

0:

a=bw;

//0数码管为百位

1:

a=sw;

//1数码管为十位

2:

a=gw;

//2数码管为个位

default:

a=0;

endcase

case(a)

SG<

=8'

b00111111;

b00000110;

b01011011;

3:

b01001111;

4:

b01100110;

5:

b01101101;

6:

b01111101;

7:

b00000111;

8:

b01111111;

9:

b01101111;

//8段译码值

SG=8'

b11111111;

endcaseend

always@(m)

if(m)model=12'

b000000100000;

//模值20

elsemodel=12'

b000100011001;

//模值119

assigngw=q[3:

0];

assignsw=q[7:

4];

assignbw=q[11:

8];

always@(posedgeclk1,negedgerst)

begin

if(!

rst)q=0;

elseif(en)

if(q<

model)

if(gw==9)beginq=q+7;

if(sw==9)q=q+96;

end

//BCD调整

elseq=q+1;

elseq=0;

always@(q)

if(q<

model)d<

=0;

elsed<

=1;

endmodule

(复位清零以及使能仿真,当rst=0时,清零,当en=0,计数值维持不变)

(M=0时模119计数仿真,当q=119时,d为高电平)

(M=1时模20计数仿真,当q=20时,d为高电平)

波形分析:

当置位rst为低电平时,计数清零,当RST为高电平,使能位en为高电平时,开始计数:

模控制位m为低电平时,则计数器记到119时归0后重新计数,实现模为120的计数功能;

模控制位m为高电平时,则计数器记到20时归0后重新计数,实现模为21的计数功能。

5、下载测试。

下载到实验箱上测试,下推K3(m=0),可以从实验箱数码管观察到0~119模120计数。

按下K2(RST=1)可以使计数器复位清零。

K1下推(en=0),计数值维持不变。

将K3上推(m=1),可在数码管上观察0~20模21的计数,可知测试结果符合模可变计数器要求。

6、实验小结

在前面基础实验的基础上进一步深入理解实验台的配置,个人觉得知识学习了更重要的在于整合内化成为自己的东西,才能运用的游刃有余,才能在以后的世纪应用中使用到。

对于参考程序中的不理解的寄存器设置或者不理解的语句要学会查用户手册寻找答案;

另外分析程序时,要将硬件和软件结合起来看,分析其各个部分连接能够实现的功能。

首先,通过这次实验,我能完成简单的设计;

其次,在对模可变计数器设计过程中,花了很多时间,发现自己有很多不足,需要多看书多程序,训练自己的逻辑思维也非常重要最后,希望在以后的学习中,多用心去学习EDA这门技术,在实际操作中慢慢提高自己的设计能力。

2015.11.2实验成绩:

实验三序列信号检测器的设计

1、进一步熟悉EDA实验装置和QuartusⅡ软件的使用方法;

2、学习有限状态机法进行数字系统设计;

3、学习使用原理图输入法进行设计。

(二)设计要求

完成设计、仿真、调试、下载、硬件测试等环节,在EDA实验装置上实现一个串行序列信号发生器和一个序列信号检测器的功能,具体要求如下:

1、先用设计0111010011011010序列信号发生器,其最后6BIT数据用LED显示出来;

2、再设计一个序列信号检测器,检测上述序列信号,若检测到串行序列“11101”则输出为“1”,否则输出为“0”;

(三)主要仪器设备

3、EDA实验装置1套

(四)状态转移

(五)实验步骤

modulexulie(clk,f,m,clr1,clr2,ld,s,c);

inputclk,clr1,clr2,ld;

outputf,m,c;

output[4:

0]s;

regf,m;

0]q2;

reg[4:

0]z,s;

reg[15:

0]wo;

assignc=clk;

parameter[15:

0]xulie=16'

b0111010011011010;

//要产生的序列

parameter[4:

0]q1=5'

b11101;

//要检测的序列;

.

always@(posedgeclk,negedgeclr1)

if(~clr1)f<

//清产生序列

elseif(ld)wo<

=xulie;

elsebeginwo[0]<

=wo[15];

f<

wo[15:

1]<

=wo[14:

//并行转换为串行

always@(posedgeclkornegedgeclr2)

begin

if(~clr2)q2<

=0;

//清检测序列

else

case(q2)

0:

if(f==q1[4])q2<

elseq2<

1:

if(f==q1[3])q2<

=2;

2:

if(f==q1[2])q2<

=3;

3:

if(f==q1[1])q2<

=4;

=3;

4:

if(f==q1[0])q2<

=5;

//状态转移

q2<

always@(q2)

if(q2==5)m<

=1;

elsem<

//检测到11101,输出1

z[4:

1]=z[3:

z[0]=f;

s<

=z;

//转换为并行输出

(检测到序列11101时,m=1)

说明:

当检测到“11101”序列时,m=1,clr1=1,clr2=1

5、下载测试

1)连接电源,将开关k1,k2拨上,将k3拨上再拨下,即此时clr1=1,clr2=1,输入下一个脉冲即

LED灯1、2、3、4亮时,LED灯6亮,即m=1,为高电平,说明检测到了序列11101。

2)将开关K2拨下即clr2=0,观察得当第LED灯1、2、3、4亮时,即产生序列11101时,LED灯6不亮,说明m=0时,即clr2=0时,清检测序列。

3)将开关K1拨下,K2拨上,即clr1=0,LED灯不再亮,清产生序列。

通过本设计,进一步加深了对Verilog 

HDL语言的理解及应用,用Verilog 

HDL语言来设计电路,思路更清晰,更简洁,实现起来更加的得心应手。

这就是电子系统EDA最好的体现。

对序列信号检测器的设计的设计更加明白了,同时清产生序列和检测序列的原理也弄懂了。

还有引脚锁定的时候,clr1,clr2都是选择用户开关而不是用户按键,是为了方便操作。

2015.11.9实验成绩:

实验四交通灯控制器设计

合作人:

陈亚亚(8001713021)

1、学习与日常生活相关且较复杂数字系统设计;

2、进一步熟悉EDA实验装置和QuartusⅡ软件的使用方法;

3、学习二进制码到BCD码的转换;

4、学习有限状态机的设计应用。

完成设计、仿真、调试、下载、硬件测试等环节,在型EDA实验装置上实现一个由一条主干道和一条乡间公路的汇合点形成的十字交叉路口的交通灯控制器功能,具体要求如下:

1、有MR(主红)、MY(主黄)、MG(主绿)、CR(乡红)、CY(乡黄)、CG(乡绿)六盏交通灯需要控制;

2、交通灯由绿转红前有4秒亮黄灯的间隔时间,由红转绿没有间隔时间;

3、乡间公路右侧各埋有一个串连传感器,当有车辆准备通过乡间公路时,发出请求信号S=1,其余时间S=0;

4、平时系统停留在主干道通行(MGCR)状态,一旦S信号有效,经主道黄灯4秒(MYCR)状态后转入乡间公路通行(MRCG)状态,但要保证主干道通行大于一分钟后才能转换;

5、一旦S信号消失,系统脱离MRCG状态,即经乡道黄灯4秒(MRCY)状态进入MGCR状态,即使S信号一直有效,MRCG状态也不得长于20秒钟;

6、控制对象除红绿灯之外,还包括分别在主干道和乡间公路各有一个两位十进制倒计时数码管显示。

1、微机1台

1、交通灯的状态转移

状态转移图共有四个状态:

S0=MGCR(主绿乡红)S1=MYCR(主黄乡红)

S2=MRCG(主红乡绿)S3=MRCY(主红乡黄)

2、建立工作库文件夹,输入计数器的VerilogHDL代码并存盘。

moduletraffic(clk,s,rst,MG,CR,MY,MR,CG,CY,sel,SG);

inputclk,rst,s;

outputregMG,CR,MY,MR,CG,CY;

outputreg[7:

outputreg[2:

parameters0=0,s1=1,s2=2,s3=3;

0]timMG,timCG,timY;

0]tim;

reg[1:

0]cs;

0]next_state;

reg[3:

0]gw,sw;

0]cnt,a;

always@(cs)//状态机控制

case(cs)

s0:

if(tim=='

b0&

&

s=='

b1)next_state<

=s1;

elsenext_state<

=s0;

s1:

b0)next_state<

=s2;

s2:

b0||s==0)next_state<

=s3;

s3:

default:

next_state<

endcase

always@(posedgeclk1orposedgerst)

begin

if(rst)

cs<

else

=next_state;

end

always@(negedgeclk1)

beginMY<

='

CR<

MG<

MR<

CG<

CY<

always@(negedgeclk1,posedgerst)//倒数计时

if(rst)//设置各种灯的计数器的预置数

begintimMG<

b01011001;

timCG<

b00011001;

timY<

b00000011;

else

case(cs)

'

b00:

begin

if(timMG>

0)

begin

beginif(timMG[3:

0]==0)timMG<

=timMG-7;

elsetimMG<

=timMG-1;

endtim<

=timMG;

timCG<

elsebegintim<

timMG<

end

b01:

if(timY>

beginif(timY[3:

0]==0)timY<

=timY-7;

elsetimY<

=timY-1;

endtim<

=timY;

end

b10:

if(timCG>

beginif(timCG[3:

0]==0)timCG<

=timCG-7;

elsetimCG<

=timCG-1;

=timCG;

end

end

b11:

default:

timMG<

tim<

endcase

//modulefengpym(clk,tim,clk1,sel,SG);

cnt=cnt+1;

//100分频,CLK为数码管扫描频率

gw<

=tim[3:

sw<

=tim[7:

7)sel=sel+1;

elsesel=6;

//sel为数码管选择

//1数码管为个位

//0数码管为十位

endcaseend

开始60s倒计时初始状态主绿乡红

当s=1时,仍然保证是60s的主绿乡红

S=1时60s倒计时结束转4s倒计时即状态主黄乡红

S=1时4s倒计时结束转20s倒计时即状态主红乡绿

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

当前位置:首页 > 工程科技 > 交通运输

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1