cpld实验报告.docx

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

cpld实验报告.docx

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

cpld实验报告.docx

cpld实验报告

南京理工大学

可编程逻辑器件实验报告

 

姓名:

陈昊飞

学号:

912101170116

学院(系):

机械工程学院

专业:

测控技术与仪器

 

指导者:

张爱军

评阅者:

 

2015年6月

实验一MAX+plusⅡ开发工具使用

1实验内容

通过实验掌握对MAX+plusⅡ开发工具使用,使用AHDL语言设计逻辑运算电路:

七段译码器。

2实验目的

学习利用MAX+plusII进行可编程逻辑器件电路设计的过程,包括输入、编译和仿真等,熟悉开发板各接口及LED显示。

3实验要求

上机操作,通过简单的实例,学会使用MAX+plusII的文本编辑器及进行电路设计以仿真验证的方法,能够将程序下载到开发板观察现象。

4实验仪器

安装了MAX+plusII的PC机一台及开发板一套。

5实验步骤

1)在MAX+plusII中编辑好七段译码器的源程序七段式译码器有四条输入数据线,七条输出驱动线,假设式共阴显示器,范例如下:

脚位:

输入:

D3,D2,D1,D0或i3,i2,i1,i0;

输出:

a,b,c,d,e,f,g或s0,s1,s2,s3,s4,s5,s6;

图1.1七段译码器的显示方式

对应输入输出的列表如下:

数据线

7段码

I3

I2

I1

I0

S0

S1

S2

S3

S4

S5

S6

0

0

0

0

1

1

1

1

1

1

0

0

0

0

1

0

1

1

0

0

0

0

0

0

1

0

1

1

0

1

1

0

1

0

0

1

1

1

1

1

1

0

0

1

0

1

0

0

0

1

1

0

0

1

1

0

1

0

1

1

0

1

1

0

1

1

0

1

1

0

1

0

1

1

1

1

1

0

1

1

1

1

1

1

0

0

0

0

1

0

0

0

1

1

1

1

1

1

1

1

0

0

1

1

1

1

1

0

1

1

1

0

1

0

1

1

1

0

1

1

1

1

0

1

1

0

0

1

1

1

1

1

1

1

0

0

1

0

0

1

1

1

0

1

1

0

1

0

1

1

1

1

0

1

1

1

1

0

1

0

0

1

1

1

1

1

1

1

1

1

0

0

0

1

1

1

表1.1七段译码器对应关系

新建一个工程文件夹,打开MAX+plusII软件,在此文件夹下创建工程,工程名为led_decode。

创建一个文本文件,保存并命名为7segment。

利用AHDL语言进行七段译码器的设计。

相应的代码如下所示:

%-a-%

%f||b%

%-g-%

%e||c%

%-d-%

SUBDESIGN7segment

i[3..0]:

INPUT;

s0,s1,s2,s3,s4,s5,s6,led1,led2,led3,led4,led5:

OUTPUT;

BEGIN

Led1=vcc;led2=gnd;led3=gnd;led4=gnd;led5=gnd;

TABLE

i[3..0]=>s0,s1,s2,s3,s4,s5,s6;

H"0"=>1,1,1,1,1,1,0;

H"1"=>0,1,1,0,0,0,0;

H"2"=>1,1,0,1,1,0,1;

H"3"=>1,1,1,1,0,0,1;

H"4"=>0,1,1,0,0,1,1;

H"5"=>1,0,1,1,0,1,1;

H"6"=>1,0,1,1,1,1,1;

H"7"=>1,1,1,0,0,0,0;

H"8"=>1,1,1,1,1,1,1;

H"9"=>1,1,1,1,0,1,1;

H"A"=>1,1,1,0,1,1,1;

H"B"=>0,0,1,1,1,1,1;

H"C"=>1,0,0,1,1,1,0;

H"D"=>0,1,1,1,1,0,1;

H"E"=>1,0,0,1,1,1,1;

H"F"=>1,0,0,0,1,1,1;

ENDTABLE;

END;

其中,led1—led5为五个数码管的片选信号,在这里只有1号数码管被选中。

然后进行编译Compiler,若有错误则对代码进行相应的修改;若无误则保存。

2)编辑芯片引脚

实验中双龙SL-MCU/CPLD型实验板芯片的型号为MAX7000S系列下的EPM7128SLC84-6型号,根据开发板的实际情况,引脚的使用情况如下图:

i[3]

PIN_36

Led0

PIN_75

i[2]

PIN_35

S[6]

PIN_11

i[1]

PIN_34

S[5]

PIN_10

i[0]

PIN_33

S[4]

PIN_6

Led4

PIN_80

S[3]

PIN_5

Led3

PIN_79

S[2]

PIN_4

Led2

PIN_77

S[1]

PIN_8

Led1

PIN_76

S[0]

PIN_9

表1.2引脚分配

其中,s0-s6为七段译码器的管脚,s0对应9脚,s1对应8脚,s2对应4脚,s3对应5脚,s4对应6脚,s5对应10脚,s6对应11脚。

片选信号led1对应80脚,led2对应79脚,led3对应77脚,led4对应76脚,led5对应75脚。

输入信号(预置信号K0-K3)设定为开发板上的开关信号,分别为33脚、34脚、35脚和36脚,对应关系任意。

3)程序下载

将MAX+PLUSII生成的pof文件,加载到pof2jed对话框中,其它不需设置,点击“RUN”按钮,即可在同文件夹目录下,生成jed文件。

如下图所示。

(说明:

双龙SL-MCU/CPLD型实验板上的CPLD型号为ATF1508AS,如不同,请在对话框中选择正确的Device。

图1.2pof文件生成界面

将转换好的jed文件,下载到双龙SL-MCU/CPLD型实验板上。

1.新建chn文件,File→New→点击OK;

2.设置JTAG:

Program/Verify;

3.加载jed文件,点击OK,并保存;

图1.3程序下载界面

4)实验结果

拨动相应的拨码开关,可以看到数码管上显示出相应的数字。

实现了预想的电路功能。

实验二组合电路模块设计

1实验内容

设计七段译码器(BCD码译为共阳极七段码)、算术运算电路(,乘数初始置5,乘数利用拨动开关K1、K2、K3进行置入,结果在LED上显示),并将设计好的电路下载到实验仪的芯片中,进行实物仿真。

2实验目的

通过实验,学会组合电路模块的图形编辑和文本编辑的设计方法,掌握电路下载、实物仿真方法。

3实验要求

通过实例操作,学会使用MAX+plusII的文本编辑、图形编辑进行基本组合电路电路设计、仿真的方法。

4实验仪器

安装了MAX+plusII的PC机一台及开发板一套。

5实验步骤

1)实验原理

三位二进制乘法器模块原理

M0=A0B0M1=A1B0+A0B1

M2=A2B0+A1B1+A0B2M3=A2B1+A1B2

M4=A2B2M5=Co

三位乘法运算的步骤如上所示。

数码管显示译码模块的原理如实验一所述。

两模块的连接关系:

乘法运算模块的输出的低四位为数码管译码模块的数据输入。

2)程序设计

新建一个工程文件夹,打开MAX+plusII软件,在此文件夹下创建工程,工程名为text2。

此实验涉及多个模块的相互配合使用,其中主程序(三位二进制乘法器)使用AHDL语言,源程序如下:

INCLUDE"hadd.inc";

INCLUDE"fudd.inc";

SUBDESIGNtext2

a[2..0]:

INPUT;

led1,led2,led3,led4,led5,i,t,c,d,e,f,g:

OUTPUT;

VARIABLE

n0,n1,n2,n3,n4,n5,n6,n7,n8,b0,b1,b2,m[5..0]:

NODE;

h1,h2,h3:

hadd;

f1,f2,f3:

fudd;

BEGIN

led1=vcc;led2=gnd;led3=gnd;led4=gnd;led5=gnd;

b0=vcc;b1=gnd;b2=vcc;

n0=a0&b0;n1=a0&b1;n2=a1&b0;

n3=a1&b1;n4=a2&b0;n5=a0&b2;

n6=a2&b1;n7=a1&b2;n8=a2&b2;

h1.a=n1;h1.b=n2;

f1.ci=n3;f1.a=n4;f1.b=n5;

f2.ci=f1.co;f2.a=n6;f2.b=n7;

h2.a=h1.c;h2.b=f1.s;

h3.a=h2.c;h3.b=f2.s;

f3.ci=h3.c;f3.a=f2.co;f3.b=n8;

m0=n0;m1=h1.s;m2=h2.s;

m3=h3.s;m4=f3.s;m5=f3.co;

TABLE

m[5..0]=>i,t,c,d,e,f,g;

H"0"=>1,1,1,1,1,1,0;

H"1"=>0,1,1,0,0,0,0;

H"2"=>1,1,0,1,1,0,1;

H"3"=>1,1,1,1,0,0,1;

H"4"=>0,1,1,0,0,1,1;

H"5"=>1,0,1,1,0,1,1;

H"6"=>1,0,1,1,1,1,1;

H"7"=>1,1,1,0,0,0,0;

H"8"=>1,1,1,1,1,1,1;

H"9"=>1,1,1,1,0,1,1;

H"A"=>1,1,1,0,1,1,1;

H"B"=>0,0,1,1,1,1,1;

H"C"=>1,0,0,1,1,1,0;

H"D"=>0,1,1,1,1,0,1;

H"E"=>1,0,0,1,1,1,1;

H"F"=>1,0,0,0,1,1,1;

ENDTABLE;

END;

然后进行编译Compiler,若有错误则对代码进行相应的修改;若无误则保存。

其中“fudd”为全加器,“hadd”为半加器,b0-b2为预置数,a0-a2为由拨动开关置入的乘数。

半加器hadd使用AHDL语言,源程序如下:

SUBDESIGNhadd

a,b:

INPUT;

s,c:

OUTPUT;

BEGIN

TABLE

a,b=>s,c;

0,0=>0,0;

0,1=>1,0;

1,0=>1,0;

1,1=>0,1;

ENDTABLE;

END;

然后进行编译Compiler,若有错误则对代码进行相应的修改;若无误则保存。

全加器fudd使用AHDL语言,源程序如下:

SUBDESIGNfudd

a,b,ci:

INPUT;

s,co:

OUTPUT;

BEGIN

IF(a==0&b==0&ci==0)THEN

s=gnd;co=gnd;

ELSIF(a==0&b==1&ci==0)THEN

s=vcc;co=gnd;

ELSIF(a==1&b==0&ci==0)THEN

s=vcc;co=gnd;

ELSIF(a==1&b==1&ci==0)THEN

s=vcc;co=vcc;

ELSIF(a==0&b==0&ci==1)THEN

s=vcc;co=gnd;

ELSIF(a==0&b==1&ci==1)THEN

s=gnd;co=vcc;

ELSIF(a==1&b==0&ci==1)THEN

s=gnd;co=VCC;

ELSE

s=vcc;co=vcc;

ENDIF;

END;

然后进行编译Compiler,若有错误则对代码进行相应的修改;若无误则保存。

3)编辑引脚

实验中双龙SL-MCU/CPLD型实验板芯片的型号为MAX7000S系列下的EPM7128SLC84-6型号,根据开发板的实际情况,引脚的使用情况如下图:

A2

PIN_36

Led0

PIN_75

A1

PIN_35

S[6]

PIN_11

A0

PIN_34

S[5]

PIN_10

S[4]

PIN_6

Led4

PIN_80

S[3]

PIN_5

Led3

PIN_79

S[2]

PIN_4

Led2

PIN_77

S[1]

PIN_8

Led1

PIN_76

S[0]

PIN_9

表2.1引脚编辑

4)程序下载

将MAX+PLUSII生成的pof文件,加载到pof2jed对话框中,其它不需设置,点击“RUN”按钮,即可在同文件夹目录下,生成jed文件

将转换好的jed文件,下载到双龙SL-MCU/CPLD型实验板上。

5)实验现象

预置数为2,可以看到输出结果为由拨动开关输入进去的数码乘以2得到的结果在数码管上显示。

实验三计数器电路设计

1实验内容

自行设计计数器电路,电路能够记录经过分频后的时钟信号(1Hz),并且将计数值送实验装置的LED数码管(1位)实时显示,通过编程线缆下载到开发板的芯片中,进行动态仿真。

2实验目的

通过实验,学会时序电路模块的图形编辑和文本编辑的设计方法,掌握电路下载、实物仿真方法。

3实验要求

熟悉实验装置电路原理,设计分频、计数、译码显示电路,并将设计好的电路下载到开发板的芯片中,进行实物仿真。

4实验仪器

安装了MAX+plusII的PC机一台及开发板一套。

5实验步骤

1)实验原理

开发板上的系统时钟为1MHz,为了得到1Hz的秒脉冲信号,需要将系统时钟进行

分频,即设计一个分频器模块电路。

分频器的实现原理是利用模

的计数器的进位输出信号,将该信号作为

触发器的时钟输入端,从而每来

个系统时钟脉冲,

触发器的输出端即发生翻转,从而实现了1兆的分频。

为了在1位数码管上实时显示1Hz脉冲,需要设计一个模10的计数器模块,

1Hz信号作为计数器的计数脉冲,使4位计数器从0000~1001循环计数。

相应的输出经过七段译码模块转换为某位数码管的7段码,显示相应的数值。

2)程序设计

的计数器模块

SUBDESIGNmod_500000

clrn,clk:

INPUT;

q[18..0],co:

OUTPUT;

VARIABLE

cou[18..0]:

dff;

BEGIN

cou[].clk=clk;

IFclrn==0THEN

cou[]=0;

ELSE

IFcou[]==500000THEN

cou[]=0;

ELSE

cou[]=cou[]+1;

ENDIF;

ENDIF;

q[]=cou[];

co=q0&q1&q2&q3&q4&!

q5&!

q6&!

q7&q8&!

q9&!

q10&!

q11&!

q12&q13&!

q14&q15&q16&q17&q18;

END;

利用mod_500000构成

分频器的电路原理图如图3-2所示

图3.2分频器模块

模10计数器模块

SUBDESIGNmod_10

clrn,clk:

INPUT;

q[3..0]:

OUTPUT;

VARIABLE

cou[3..0]:

dff;

BEGIN

cou[].clk=clk;

IFclrn==0THEN

cou[]=0;

ELSE

IFcou[]==9THEN

cou[]=0;

ELSE

cou[]=cou[]+1;

ENDIF;

ENDIF;

q[]=cou[];

END;

七段译码模块

七段译码模块的相应代码参考实验一的内容。

系统的整体电路原理图如下图3-3所示

图3-3系统的电路原理图

3)编辑引脚

相应的引脚分配如下表3-1所示

clk

PIN_83

Led0

PIN_75

S[6]

PIN_11

S[5]

PIN_10

S[4]

PIN_6

Led4

PIN_80

S[3]

PIN_5

Led3

PIN_79

S[2]

PIN_4

Led2

PIN_77

S[1]

PIN_8

Led1

PIN_76

S[0]

PIN_9

表3-1引脚的分配

4)程序下载

将MAX+PLUSII生成的pof文件,加载到pof2jed对话框中,其它不需设置,点击“RUN”按钮,即可在同文件夹目录下,生成jed文件

将转换好的jed文件,下载到双龙SL-MCU/CPLD型实验板上。

5)实验现象

可以看到开发板上的一位数码管从0~9循环显示,每隔1秒发生变化。

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

当前位置:首页 > 表格模板 > 合同协议

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

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