cpld实验报告.docx
- 文档编号:6390779
- 上传时间:2023-01-06
- 格式:DOCX
- 页数:14
- 大小:281.74KB
cpld实验报告.docx
《cpld实验报告.docx》由会员分享,可在线阅读,更多相关《cpld实验报告.docx(14页珍藏版)》请在冰豆网上搜索。
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秒发生变化。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- cpld 实验 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)