兰州理工EDA实验指导书第一次实验实验12.docx

上传人:b****7 文档编号:23780162 上传时间:2023-05-20 格式:DOCX 页数:12 大小:185.20KB
下载 相关 举报
兰州理工EDA实验指导书第一次实验实验12.docx_第1页
第1页 / 共12页
兰州理工EDA实验指导书第一次实验实验12.docx_第2页
第2页 / 共12页
兰州理工EDA实验指导书第一次实验实验12.docx_第3页
第3页 / 共12页
兰州理工EDA实验指导书第一次实验实验12.docx_第4页
第4页 / 共12页
兰州理工EDA实验指导书第一次实验实验12.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

兰州理工EDA实验指导书第一次实验实验12.docx

《兰州理工EDA实验指导书第一次实验实验12.docx》由会员分享,可在线阅读,更多相关《兰州理工EDA实验指导书第一次实验实验12.docx(12页珍藏版)》请在冰豆网上搜索。

兰州理工EDA实验指导书第一次实验实验12.docx

兰州理工EDA实验指导书第一次实验实验12

目录

实验一、QUARTUSII的基本应用及简单组合逻辑设计1

实验二、计数器设计3

 

实验一、QUARTUSII的基本应用及简单组合逻辑设计

一、实验前准备

本实验例子使用独立扩展下载板EP1K10_30_50_100QC208(芯片为EP1K100QC208)或者(芯片为EP1K30TC144)。

EDAPRO/240H实验仪主板的VCCINT跳线器右跳设定为3.3V;EDAPRO/240H实验仪主板的VCCIO跳线器组中“VCCIO3.3V”应短接,其余VCCIO均断开;独立扩展下载板“EP1K10_30_50_100QC208”的VCCINT跳线器组设定为2.5V;独立扩展下载板“EP1K10_30_50_100QC208”的VCCIO跳线器组设定为3.3V。

请参考前面第二章中关于“电源模块”的说明。

二、实验目的

1、熟悉QuartusII的菜单、元件库、功能模块及基本应用操作;

2、熟悉QuartusII的VerilogHDL文本方式及原理图方式设计实现流程。

3、学习使用JTAG接口下载逻辑电路到可编程逻辑器件并能调试到正常工作。

4、熟悉数字电路集成设计的过程。

三、实验内容

1、用VerilogHDL文本方式设计带使能控制的3-8译码器;

三、实验原理

1、3-8译码器:

译码器是把输入的数码解出其对应的数码,译码器有N个二进制选择线,那么最多可译码转换成2N个数据。

当一个译码器有N条输入线及M条输出线时,则称为N×M的译码器。

3×8译码器是依此而来。

3×8译码器真值表如下表所示:

A2A1A0

Y7Y6Y5Y4Y3Y2Y1Y0

000

00000001

001

00000010

010

00000100

011

00001000

100

00010000

101

00100000

110

01000000

111

10000000

 

四、实验步骤

新建设计文件夹(不可用中文)-》新建设计文件-》输入设计项目(原理图/VerilogHDL文本代码)-》存盘(注意原理图/文本取名)-》将设计项目设置成Project-》选择目标器件-》启动编译-》建立仿真波形文件-》仿真测试和波形分析-》引脚锁定并编译-》编程下载/配置-》硬件测试

五、硬件测试说明

1、把译码器的输入接到拨码开关,使能控制端接按键,输出端接8个LED灯,通过拨码开关改变输入的逻辑电平变化来观察LED输出情况,验证3×8译码器的工作状态。

通过按键按下/释放观测使能控制端对输出的影响。

(引脚锁定可参考:

独立扩展板为EP1K10_30_50_100QC208,A0、A1、A2:

锁定为独立扩展下载板上第53、47、46脚,内部已连接,无需连线,对应拨码开关SW8、SW7、SW6。

Y0、Y1、Y2、Y3、Y4、Y5、Y6、Y7:

锁定为独立扩展下载板上的第12、13、14、15、17、18、19、24脚,内部已连接至“红色信号指示灯L1-8”的“L1~L8”。

EN:

为使能输入信号脚,定义在独立扩展下载板上第68脚,应接“多功能复用按键F1-F12”信号接线组“F1_12(T)”的F12~F9中任意一个引线插孔,即高电平有效。

若独立扩展板为EP1K10_30_50_50TC144,A0、A1、A2:

锁定为独立扩展下载板上第46、44、43脚,内部已连接,无需连线,对应拨码开关SW8、SW7、SW6。

Y0、Y1、Y2、Y3、Y4、Y5、Y6、Y7:

锁定为独立扩展下载板上的第13、14、17、18、19、20、21、22脚)

六、实验要求

1.认真阅读实验任务书,明确实验内容;

2.按步骤进行设计输入、检查及引脚的锁定;

3.正确连接硬件电路,验证设计的正确性。

4.分析实验结果,书写实验报告。

附录1:

波形分析举例

输入信号:

EN:

使能信号高电平下工作,通过多功能复位按键F9~F12中任意一键来控制。

A2、A1、A0:

三个数字状态输入端口,决定八个状态输出情况,由8位数字开关组SW6、SW7、SW8分别对应A2、A1、A0来实现对Y0至Y7的译码输出。

输出信号:

Y0~Y7:

8个状态输出,输出点亮红色指示灯组L1~L8。

波形结果分析:

当A2、A1、A0对应于:

“100”时,Y(八位)输出“00010000”,当输入信号跳变为“000”时Y(八位)输出“00000001”。

满足设计要求。

实验二、计数器设计

一、实验前准备

本实验例子使用独立扩展下载板EP1K10_30_50_100QC208(芯片为EP1K100QC208)或者(芯片为EP1K30TC144)。

EDAPRO/240H实验仪主板的VCCINT跳线器右跳设定为3.3V;EDAPRO/240H实验仪主板的VCCIO跳线器组中“VCCIO3.3V”应短接,其余VCCIO均断开;独立扩展下载板“EP1K10_30_50_100QC208”的VCCINT跳线器组设定为2.5V;独立扩展下载板“EP1K10_30_50_100QC208”的VCCIO跳线器组设定为3.3V。

请参考前面第二章中关于“电源模块”的说明。

二、实验目的

1、了解各种进制计数器设计方法

2、制作一个数码管显示的7段译码电路,以备以后调用

3、理解动态扫描的概念及实现方法

三、实验内容

1、用VerilogHDL设计60进制计数器的数码管动态扫描电路。

2、用VerilogHDL设计7段显示译码电路。

3、利用上面生成的模块在设计顶层以模块例化的方式实现动态显示的60进制计数器。

三、实验原理

1、七段显示译码器:

BCD至7段显示器执行的动作就是把一个四位的BCD码转换成7个码的输出,以便在7段显示器上显示这个十进制数。

2、60进制计数器:

原理为数电中所讲用小模数计数器构成大模数计数器的设计方法,可采用串行进位法或并行进位法,具体实现时可用(同步/异步)置数法或(同步/异步)清零法。

3、数码管动态扫描控制电路

在扫描控制脉冲作用下,使指定位置的数码管使能工作,其余数码管禁止工作,同时在数据线上送出该位置的数码管上要显示的数据,使数码管显示出对应位的数值。

由于扫描脉冲频率很高,而数码管的显示有余辉,这样就可以利用若干根数码管位控制线和同一组数据线,实现一组数据在动态数码管上的稳定清晰显示。

该模块的VerilogHDL程序设计可分为两个子模块,一个模块在扫描脉冲的驱动产生顺序循环的动态数码管中各位的选通信号,另一模块根据所选通道号选择对应输入数据到数据输出通道上。

四、实验步骤

1、按照以下步骤完成每一个模块的设计:

新建设计文件夹(不可用中文)-》新建设计文件-》输入设计项目(原理图/VerilogHDL文本代码)-》存盘(注意原理图/文本取名)-》将设计项目设置成Project-》选择目标器件-》启动编译-》建立仿真波形文件-》仿真测试和波形分析

2、新建顶层模块文件-》输入设计项目(原理图/VerilogHDL文本代码)-》存盘(注意原理图/文本取名)-》将设计项目设置成Project-》选择目标器件-》启动编译-》建立仿真波形文件-》仿真测试和波形分析-》引脚锁定并编译-》编程下载/配置-》硬件测试

五、硬件测试说明

1、按照引脚锁定的位置,把计数脉冲输入端接到时钟信号频率组的一个频率较低的信号上。

2、把脉冲扫描信号接到时钟信号频率组的一个频率较高的信号上。

3、应将计数脉冲输入信号分配到可编程逻辑器件的全局时钟信号(globalclk)引脚上,这样实验效果会较好。

4、动态扫描数码管为实验箱左下角处的数码管,其数码管得段信号A-G和位选择信号在数码管得近旁。

附录:

1.硬件连线说明

EP1K100QC208PIN分配

CLK79接GCLK1-CLOCK(T)9

Display[6]93接数码管段位引线A

Display[5]92接数码管段位引线B

Display[4]90接数码管段位引线C

Display[3]89接数码管段位引线D

Display[2]88接数码管段位引线E

Display[1]87接数码管段位引线F

Display[0]86接数码管段位引线G

Rst71接按键F12

Sel[2]70接SS2

Sel[1]69接SS1

Sel[0]68接SS0

 

EP1K30TC114PIN分配

CLK55接CLK(T)-CLOCK(T)9

Display[6]91接数码管段位引线A

Display[5]90接数码管段位引线B

Display[4]88接数码管段位引线C

Display[3]87接数码管段位引线D

Display[2]86接数码管段位引线E

Display[1]83接数码管段位引线F

Display[0]81接数码管段位引线G

Rst67接按键F12

Sel[2]70接SS2

Sel[1]69接SS1

Sel[0]68接SS0

2.硬件仿真说明

(1)显示译码器仿真结果

(2)60进制计数器

仿真结果

(3)数码管动态扫描控制电路VerilogHDL语言

波形仿真结果

设计顶层仿真结果

 

3线8线译码器程序:

moduleMUX1(

input[2:

0]B_data,

outputA,

outputB,

outputC,

outputD,

outputE,

outputF,

outputG,

outputH

);

reg[7:

0]dataMUX1;

always@(B_data[0]orB_data[1]orB_data[2])

begin

case({B_data[0],B_data[1],B_data[2]})

3'b000:

dataMUX1=8'b00000001;

3'b001:

dataMUX1=8'b00000010;

3'b010:

dataMUX1=8'b00000100;

3'b011:

dataMUX1=8'b00001000;

3'b100:

dataMUX1=8'b00010000;

3'b101:

dataMUX1=8'b00100000;

3'b110:

dataMUX1=8'b01000000;

3'b111:

dataMUX1=8'b10000000;

endcase

end

assignA=dataMUX1[0];

assignB=dataMUX1[1];

assignC=dataMUX1[2];

assignD=dataMUX1[3];

assignE=dataMUX1[4];

assignF=dataMUX1[5];

assignG=dataMUX1[6];

assignH=dataMUX1[7];

endmodule

60进制程序:

modulec60(CLK,sel,display,rst);

inputCLK;

inputrst;

output[2:

0]sel;

output[6:

0]display;

reg[2:

0]sel;

reg[6:

0]display;

regClk_1HZ;

reg[3:

0]q;

reg[3:

0]Disp_Temp;

reg[100:

0]Clk_Count1;

reg[3:

0]c;

always@(posedgeCLK)

begin

if(Clk_Count1==999)

begin

Clk_Count1<=0;

Clk_1HZ<=~Clk_1HZ;

end

elseClk_Count1<=Clk_Count1+1;

end

always@(posedgeClk_1HZ)

begin

if(q==9)

begin

q<=0;

if(c==5)

begin

c<=0;

end

else

c<=c+1;

end

else

q<=q+1;

end

always@(posedgeCLK)

begin

sel<=sel+1;

end

always@(sel)

begin

case(sel)

3'b000:

Disp_Temp=4'b1010;

3'b001:

Disp_Temp=4'b1010;

3'b010:

Disp_Temp=4'b1010;

3'b011:

Disp_Temp=4'b1010;

3'b100:

Disp_Temp=4'b1010;

3'b101:

Disp_Temp=4'b1010;

3'b110:

Disp_Temp=c;

3'b111:

Disp_Temp=q;

endcase

end

always@(Disp_Temp)//显示转换

begin

case(Disp_Temp)

4'b0000:

display=7'b1111110;//0

4'b0001:

display=7'b0110000;//1

4'b0010:

display=7'b1101101;//2

4'b0011:

display=7'b1111001;//3

4'b0100:

display=7'b0110011;//4

4'b0101:

display=7'b1011011;//5

4'b0110:

display=7'b1011111;//6

4'b0111:

display=7'b1110000;//7

4'b1000:

display=7'b1111111;//8

4'b1001:

display=7'b1111011;//9

4'b1010:

display=7'b1000000;//-

default:

display=7'b0000000;//全灭

endcase

end

endmodule

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

当前位置:首页 > 初中教育 > 科学

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

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