实验.docx

上传人:b****7 文档编号:9831293 上传时间:2023-02-06 格式:DOCX 页数:23 大小:55.91KB
下载 相关 举报
实验.docx_第1页
第1页 / 共23页
实验.docx_第2页
第2页 / 共23页
实验.docx_第3页
第3页 / 共23页
实验.docx_第4页
第4页 / 共23页
实验.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

实验.docx

《实验.docx》由会员分享,可在线阅读,更多相关《实验.docx(23页珍藏版)》请在冰豆网上搜索。

实验.docx

实验

实验一简单逻辑电路设计与仿真

一、实验目的

1、学习并掌握MAX+PLUSⅡCPLD开发系统的基本操作。

2、学习在MAX+PLUSⅡ下设计简单逻辑电路与功能仿真方法。

二、实验仪器设备

1、PC机一台

2、MAX+PLUSⅡCPLD软件开发系统一套。

三、实验要求

1、预习教材中的相关内容。

2、阅读并熟悉本次实验的内容。

3、用图形输入方式完成电路设计。

4、分析器件的延时特性。

四、实验内容

1、用D触发器设计一个4进制加法计数器并进行功能仿真。

(1)设计1个时钟脉冲输入端CP,取名为in0;

(2)设置2个计数状态输出端Q1、Q0,取名为out1、out0;

(3)按二进制加法规律计数;

(4)进行电路功能仿真与验证。

2、设计一个2-4线译码器并进行静态功能仿真。

(1)2个输入端,in0和in1;

(2)4个输出端,out0至out3;

(3)电路功能真值表如下,输出为高电平有效:

in1

in0

out0

out1

out2

out3

0

0

1

0

0

0

0

1

0

1

0

0

1

0

0

0

1

0

1

1

0

0

0

1

(4)进行电路功能静态测试与验证。

五、实验操作步骤

(一)4进制加法计数器设计与仿真

1、开机,进入MAX+PLUSⅡCPLD开发系统。

2、在File菜单的Project子菜中选Name项,出现ProjectName对话框。

为当前的实验选择恰当的路径并创建项目名称。

3、在File菜单中选New项,出现new对话框,选择GraphicEditorFile输入方式,出现图形编辑窗口。

4、双击空白编辑区,出现EnterSymbol对话框。

从SymbolLibraries项中选择mf子目录(双击),然后在SymbolFile中选择7474元件(双D触发器);在prim子目录中选择输入脚input和输出引脚output。

(或直接在SymbolName中输入所需元件的名称,回车即可)

5、在图形编辑窗口中的左侧点击连线按钮(drawsahorizontalorverticalline),完成电路的连线。

在引脚的PIN_NAME处左键双击使之变黑,键入引脚名称。

(参考电路如图1-1)

图1-14进制加法计数器

6、点击工具栏中的“changetheprojectnametothenameofthecurrentfile”按钮,使项目名称与当前设计文件相同。

7、选择器件。

点击Assign菜单的Device项,选择ACEX1K系列的EPF1K30QC208-3。

8、点击File菜单Project子菜单之saveandcheck项对文件进行存盘并进行语法检查,然后点击START按钮进行编译。

9、点击MAX+PLUSⅡ菜单WaveformEditor子菜单出现WaveformEditor窗口。

点击Node菜单选择EnterNodesFromSNF子菜单,在EnterNodesFromSNF对话框中点击List按钮、“=>”按钮和Ok按钮,填入电路节点名称。

10、在时钟输入端in0处设置好方波脉冲,点击仿真按钮,进行波形仿真以验证电路的逻辑功能。

11、点击Utilities主菜单中的AnalyzeTiming子菜单,进行信号延迟时间分析,估算工作速度。

12、本次实验暂不进行芯片下载操作。

(二)、设计一个2-4译码器并进行静态功能仿真。

首先确定2-4线译码器的逻辑线路图,如图1-2所示。

图1-22-4译码器

1、点击File菜单project子菜单的Name项建立一个新的项目。

2、点击New按钮,选GraphicEditor项新建一个图形输入文件。

3、双击左键,在EnterSymbol框中SymbolLibraries中双击prim,在SymbolFiles中选用7474。

4、点击连线按钮(drawsahorizontalorverticalline),完成电路连线,双击PIN_NAME为引脚命名。

5、点击工具栏中的“changetheprojectnametothenameofthecurrentfile”按钮,使项目名称与当前设计文件相同。

6、选择器件。

点击Assign菜单的Device项,选择ACEX1K系列的EPF1K30QC208-3。

7、点击File菜单Project子菜单之saveandcheck项对文件进行存盘并进行语法检查,然后点击START按钮进行编译。

8、打开波形仿真窗口,为输入端设定‘0’、‘1’静态电平,点击仿真按钮,对电路进行仿真。

9、从波形图上观察输出端的静态输出,分析仿真结果。

10、本次实验暂不进行芯片下载操作。

六、实验报告

1、总结用MAX+PLUSⅡCPLD开发系统对逻辑电路进行设计、仿真的操作步骤。

2、讨论用CPLD开发系统进行逻辑电路设计的特点与优越性。

3、讨论自己在设计过程中遇到的问题、解决的过程以及收获体会。

实验二译码与寄存器电路设计与仿真

一、实验目的

1、掌握MAX+PLUSⅡCPLD开发系统的操作技巧。

2、掌握用MAX+PLUSⅡ进行一般数字逻辑电路的设计方法。

3、学习CPLD芯片下载与实验基本方法。

4、熟悉KHF-4型CPLD实验/开发系统的基本结构。

5、掌握使用KHF-4型CPLD实验/开发系统的LED显示的方法。

二、实验仪器设备

1、PC机一台

2、MAX+PLUSⅡCPLD开发系统一套

3、KHF-4型CPLD实验/开发系统一套

4、CPLDDN-3型下载软件一套

三、实验要求

1、预习教材相关内容。

2、阅读并熟悉本次实验的内容。

3、用图形输入方式完成电路设计。

4、完成从设计输入到下载的全部设计过程。

5、预习CPLDEE-3型系统下载界面及使用方法。

四、实验内容及步骤

1、设计一个BCD译码器,进行功能仿真及下载测试。

图2-1BCD译码器

(1)用图形编辑方法完成电路的输入,以及管脚命名等,具体步骤参照实验一有关部分。

(参考电路如图4-1)

(2)存盘与编译。

(3)点击Assign菜单的Device项选择EPF1K100QC208-3型的芯片。

(4)点击floorplaneditor按钮进行管脚分配。

(5)后编译。

对电路进行编译。

(6)下载。

启动CPLDDN-3下载软件,在项目目录下选中文件,点击“下载CPLD”按钮,观察、验证实验电路的正确性。

2、串入并出移位寄存器电路设计、仿真与下载

(1)用图形编辑方法完成电路的输入,以及管脚命名等。

(参考电路如图2-2)

(2)点击File菜单Project子菜单之saveandcheck项对电路进行编译。

图2-2串入并出移位寄存器

(3)点击Assign菜单的Device项选择芯片。

(4)脚分配。

(5)后编译。

对电路进行编译。

(6)下载。

启动CPLDDN-3下载软件,在项目目录下选中文件,点击“下载CPLD”按钮进行下载,观察、验证实验电路的正确性。

五、实验报告

1、总结进行CPLD电路设计与仿真的操作步骤和技巧。

2、总结进行CPLD电路下载和硬件实验的方法和步骤。

3、讨论在设计与实验过程中遇到的问题、解决的办法及收获。

实验三全加器设计、仿真与下载

一、实验目的

1、熟练掌握MAX+PLUSⅡ的使用。

2、掌握一位全加器的设计方法、学会用一位全加器组成四位全加器。

3、掌握KHF-4型CPLD实验/开发系统硬件电路的下载及测试。

4、学习模块化电路设计方法。

二、实验仪器设备

1、PC机一台

2、MAX+PLUSⅡCPLD开发系统一套

3、KHF-4型CPLD实验/开发系统一套

4、CPLDDN-3型下载软件一套

三、实验要求

1、预习组合电路中一位、四位全加器的设计方法。

2、预习KHF-4型CPLD实验/开发系统(硬件电路)中的开关及发光管的使用方法。

3、预习本次实验内容。

4、用图形编辑方法输入电路。

四、实验内容及操作步骤

(一)设计一位全加器

(1)完成电路的输入,以及对引脚的命名等。

(参考电路如图3-1)

图3-1一位全加器线路图

(2)对一位全加器进行编译、仿真与下载。

(3)点击File菜单的CreateDefaultSymbol项,创建缺省模块。

(二)利用一位全加器模块进行四位全加器的设计。

(1)创建一个新的项目,新建文件。

在新打开的图形编辑区双击左键,从EnterSymbol对话框中的用户目录(创建的目录)下选择模块名。

(2)连接线路,并进行编译。

(如图3-2)

(3)选择EPF10K10QC208-4器件。

(4)管脚分配。

图3-2四位全加器

(5)后编译,并进行下载。

观察实验结果。

五.实验报告

1、总结模块化电路设计的方法。

2、总结MAX+PLUSⅡ进行电路设计的实质。

3、总结用MAX+PLUSⅡ进行电路设计的一般步骤。

实验四分频电路与12归1电路设计

一、实验目的

1、学习硬件描述语言描述电路的原理。

2、学习分频电路的设计算法。

3、学会使用AHDL进行简单的电路设计。

4、学会使用VHDL进行简单的电路设计。

5、掌握生成include文件并调用的方法。

6、掌握VHDL语言调用子程序的方法。

二、实验仪器

1、PC机一台

2、MAX+PLUSⅡCPLD开发系统一套

3、KHF-4型CPLD实验/开发系统一套

4、CPLDDN-3型下载软件一套

三、实验要求

1、复习教材有关硬件描述语言的章节。

2、预习实验内容。

3、用硬件描述语言进行电路设计。

4、下载并用数码管显示结果。

四、实验内容与步骤

1、设计一个频电路

已知cpld信号源脉冲频率为10M,试编写一分频程序,得到一周期为1秒(频率为1Hz)的脉冲频率,并将之形成include文件。

(1)AHDL设计输入。

参考程序如下:

subdesignfp

(inclk:

input;

outputf:

output;)

variable

fp[23..0]:

dff;

f:

dff;

begin

fp[].clk=inclk;f.clk=inclk;

iffp[]==4999999then

fp[]=0;

f=!

f;

else

fp[]=fp[]+1;

f=f;

endif;

outputf=f;

end;

(2)VHDL设计输入参考程序

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

entityfpis

port(inclk:

instd_logic;

outputa:

outstd_logic);

endfp;

architecturearch_fpoffpis

signalfp:

std_logic_vector(23downto0);

signalf:

std_logic;

begin

process(inclk)

begin

if(inclk'eventandinclk='1')then

iffp=4999999then

fp<="000000000000000000000000";

f<=notf;

elsefp<=fp+1;

endif;

endif;

endprocess;

outputa<=f;

endarch_fp;

(3)编译与仿真。

(4)点击File菜单Createdefaultincludefile项创建include文件,生成fp.inc文件。

要求:

自己设计,试用AHDL与VHDL编写一10分频程序,并创建include文件。

实验六利用硬件描述语言进行数字钟设计

一、实验目的

1、进一步学习用硬件描述语言进行电路设计的方法。

2、掌握初步设计比较复杂电路的方法。

二、实验仪器

1、PC机一台

2、MAX+PLUSⅡCPLD开发系统一套

3、KHF-4型CPLD实验/开发系统一套

4、CPLDDN-3型下载软件一套

三、实验要求

1、预习实验内容。

2、复习教材相关内容。

3、复习实验五的相关内容。

4、用硬件描述语言(AHDL和VHDL)设计一带有小时(12或24小时制)、分、秒的数字钟。

5、用数码管显示结果。

四、参考程序

1、AHDL设计23归0电路设计参考程序

Subdesign23to0

(inclk:

input;

ot[13..0]:

output;

Variable

hw[1..0],lw[3..0]:

dff;

Begin

(hw[],lw[]).clk=inclk;

if(hw[]==2)and(lw[]==3)then

hw[]=0;lw[]=0;

elsiflw[]==9then

hw[]=hw[]+1;lw[]=0;

else

hw[]=hw[];lw[]=lw[]+1;

endif;

Table

hw[]=>ot13,ot12,ot11,ot10,ot9,ot8,ot7;

0=>1,1,1,1,1,1,0;

1=>0,1,1,0,0,0,0;

2=>1,1,0,1,1,0,1;

Endtable;

Table

lw[]=>ot6,ot5,ot4,ot3,ot2,ot1,ot0;

0=>1,1,1,1,1,1,0;

1=>0,1,1,0,0,0,0;

2=>1,1,0,1,1,0,1;

3=>1,1,1,1,0,0,1;

4=>0,1,1,0,0,1,1;

5=>1,0,1,1,0,1,1;

6=>1,0,1,1,1,1,1;

7=>1,1,1,0,0,0,0;

8=>1,1,1,1,1,1,1;

9=>1,1,1,1,0,1,1;

Endtable;

End;

2、VHDL语言描述的60归0的参考程序

libraryIEEE;

useIEEE.std_logic_1164.all;

useIEEE.std_logic_unsigned.all;

entitycount60is

port(

inclk:

inSTD_LOGIC;

outa:

outSTD_LOGIC_VECTOR(0to6);

outb:

outSTD_LOGIC_VECTOR(0to6));

endcount60;

architecturecount60_archofcount60is

signalma,mb:

std_logic_vector(3downto0);

signalf:

std_logic;

signalmd:

std_logic_vector(23downto0);

begin

P1:

process(inclk)

begin

ifinclk'eventandinclk='1'then

ifmd=4999999then

md<="000000000000000000000000";

f<=notf;

else

md<=md+1;

f<=f;

endif;

endif;

endprocessp1;

P2:

process(f)

begin

iff'eventandf='1'then

ifma=9then

ma<="0000";

ifmb=5then

mb<="0000";

else

mb<=mb+1;

endif;

else

ma<=ma+1;

endif;

endif;

endprocessp2;

withmaSELect

outa<="0110000"when"0001",--1

"1101101"when"0010",--2

"1111001"when"0011",--3

"0110011"when"0100",--4

"1011011"when"0101",--5

"1011111"when"0110",--6

"1110000"when"0111",--7

"1111111"when"1000",--8

"1111011"when"1001",--9

"1110111"when"1010",--A

"0011111"when"1011",--b

"1001110"when"1100",--C

"0111101"when"1101",--d

"1001111"when"1110",--E

"1000111"when"1111",--F

"1111110"whenothers;--0

withmbSELect

outb<="0110000"when"0001",--1

"1101101"when"0010",--2

"1111001"when"0011",--3

"0110011"when"0100",--4

"1011011"when"0101",--5

"1011111"when"0110",--6

"1110000"when"0111",--7

"1111111"when"1000",--8

"1111011"when"1001",--9

"1110111"when"1010",--A

"0011111"when"1011",--b

"1001110"when"1100",--C

"0111101"when"1101",--d

"1001111"when"1110",--E

"1000111"when"1111",--F

"1111110"whenothers;--0

endcount60_arch;

注释:

本程序的编译,仿真及下载与前述AHDL语言相同,不再详述。

五、实验报告

1、总结并体会初步设计稍大规模电路的基本思路和方法。

2、根据实验中遇到的问题及实验结果写出总结报告。

实验八数据采集与显示电路设计

一、实验目的

1、学会用硬件描述语言设计A/D转换电路。

2、掌握综合性电路的设计方法。

二、实验仪器

1、PC机一台

2、MAX+PLUSⅡCPLD开发系统一套

3、KHF-4型CPLD实验/开发系统一套

4、CPLDDN-3型下载软件一套

三、实验要求

1、复习A/D转换电路的原理

2、复习教材相关内容。

3、用硬件描述语言进行电路设计。

四、实验内容及实验步骤

(1)设计输入。

AHDL参考程序如下:

Include"dcbzh.inc";

Subdesignsjcj

(inclk,eoc,ds[7..0]:

input;

add[2..0],otclk,out[20..0],st:

output;

Variable

zhq:

dcbzh;

fpq[4..0],fp,outb[20..0],outd:

dff;

sm[1..0],dp[7..0],st,outdd[20..0]:

dff;

Begin

(fpq[],fp,outdd[],outd).clk=inclk;

zhq.inclk=inclk;

Iffpq[]==19then

fpq[]=0;fp=!

fp;

Else

fpq[]=fpq[]+1;fp=fp;

Endif;

ifoutdd[]==999999then

outdd[]=0;outd=!

outd;

else

outdd[]=outdd[]+1;outd=outd;

endif;

(sm[],st,dp[]).clk=fp;otclk=fp;outb[].clk=outd;

add[2..0]=gnd;

Casesm[]is

When0=>

st=gnd;dp[]=ds[];

sm[]=1;

When1=>

st=gnd;dp[]=dp[];

ifeocthen

sm[]=2;

else

sm[]=1;

endif;

When2=>

st=vcc;sm[]=0;dp[]=ds[];

Endcase;

zhq.ibd[]=dp[];

outb[]=zhq.odd[];

out[]=outb[];

End;

(2)VHDL编写的实例

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

entityadc0809is

port(ina:

instd_logic_vector(7downto0);

inclk:

instd_logic;

eoc:

instd_logic;

outa:

outstd_logic_vector(0to13);

adda,addb,addc:

outstd_logic;

ck,ale:

outstd_logic);

endadc0809;

architecturearch_adc0809ofadc0809is

signalfp:

std_logic_vector(2downto0);

signalf:

std_logic;

signalcounter:

std_logic_vector(3downto0);

signalsa:

std_logic_vector(7downto0);

begin

process(inclk)

begin

if(inclk'eventandinclk='1')then

iffp=5then

fp<="000";

f<=notf;

else

fp<=fp+1;

endif;

endif;

endprocess;

ck<=f;

process(f)

begin

if(f'eventandf='1')then

ifcounter=8then

counter<="0000";

sa<=ina;

elsecounter<=counter+1;

endif;

endif;

endprocess;

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

当前位置:首页 > IT计算机 > 互联网

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

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