EDA实验指导书Word格式文档下载.docx
《EDA实验指导书Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《EDA实验指导书Word格式文档下载.docx(48页珍藏版)》请在冰豆网上搜索。
正在安装IP库
IP库安装完成
安装完IP库后,配置TalkBack(默认即可,不知道有什么用)
完成所有安装过程
四、破解QuartusII7.2
4.1、破解之前
如果没有破解,打开程序会看到如下提示。
4.2、使用破解器破解指定文件
破解前最好退出QuartusII程序!
!
双击打开“Quartus_II_7.2_b151破解器.exe”,点击“浏览”,找到sys_cpt.dll文件(位置与安装路径有关,在这里路径为“D:
\altera\72\quartus\bin”)。
Tips:
进入到“bin”目录后,直接在窗口下方“文件名”一栏中输入“sys_cpt.dll”,然后点击“打开”即可(并不需要在众多文件中找到并点击“sys_cpt.dll”)。
点击“应用”,破解器会进行相应的破解工作,破解完后会提示。
4.3、设定Licensefile
需要知道本机网卡的物理地址!
把“license.DAT”复制到相应的文件夹下(没有特定要求,推荐放到安装目录“D:
\altera\72”下)。
注意:
license文件存放的路径名称不能包含汉字和空格,空格可以用下划线代替。
4.3.1、查看本机的网卡物理地址
方法1、在Quartus软件中查看网卡号
方法2、在cmd命令行中使用ipconfig–all命令查看
4.3.2、修改license.DAT文件
在“license.DAT”中写入本机网卡的物理地址,即用本机网卡的物理地址把文件中的“XXXXXXXXXXXX”替换掉。
例如本机网卡的物理地址为“002618AFBB76”,则把“license.DAT”中的“XXXXXXXXXXXX”替换为“002618AFBB76”即可。
修改前的“license.DAT”
修改后的“license.DAT”
4.3.3、指定licensefile
4.4、功能更强大的licensefile
实际上,上面使用到的破解文件“license.DAT”破解得不够完全,我们可以使用功能更强大的licensefile(例如“Q2license_fulll.dat”)。
4.4.1、写入网卡的物理地址
使用记事本打开“Q2license_fulll.dat”,使用替换功能把“XXXXXXXXXXXX”替换为“本机网卡的物理地址”,例如“002618AFBB76”。
4.4.2、更换licensefile
打开QuartusII软件,Tools→LicenseSetup…,可以进入到如下界面
选择Q2license_fulll.dat
破解效果
实验二基本输出实验
1.点亮发光二极管
(1)要求
点亮DCPLD-2型CPLD实验板上的4个发光二极管(分别是L1、L3、L5和L7)。
通
过此实验逐步了解、熟悉和掌握CPLD开发软件的使用方法及VerilogHDL的编程方
法。
(2)分析
在DCPLD-2型CPLD实验板上准备了8个发光二极管L1~L8,其硬件原理图如图1所示。
在DCPLD-2型CPLD实验板中,标号LEDl~LED8与芯片的30、31、33~37和39引脚相连,只要正确分配并锁定引脚后,在相应的引脚上输出低电平“o”,就可实现点亮该发光二极管的功能。
图1发光二极管原理图
(3)程序设计
由于要求是实现点亮4个发光二极管,因此只须在相应的引脚上输出低电平“0”即可,
完整的VerilogHDL程序如下。
①利用连续赋值assign语句来实现,文件名led1.v。
moduleledl(1edout);
//模块名ledl
output[7:
0]ledout;
//定义输出口
assignledout=8’b01010101;
//输出0x55
endmodule
②利用过程赋值语句来实现,文件名led.v。
module1ed(ledout);
//模块名1ed
output[7:
0]ledout;
reg[7:
//定义寄存器
always//过程1
begin
ledout=8b0l0l0l0l;
end
(4)实验方法
在DCPLD-2型CPLD实验板上演示实验的方法如下。
①新建工程项目文件led.pof,并在该项目下新建VerilogHDL源程序文件led.v或ledl.v,输入上面的程序代码并保存。
②然后为该工程项目选择一个目标器件并对相应的引脚进行锁定,在此所选择的器件应
该是Altera公司的EPM7128SLC84—10芯片,引脚锁定方法如表1所列。
引脚信号引脚信号
30ledout035ledout4
31ledout136ledout5
33ledout237ledout6
34ledout339ledout7
表1
③对该工程文件进行编译处理,若在编译过程中发现错误,则找出并更正错误,直至编
译成功为止。
④若需要对所建的工程项目进行验证,则输入必要的激励波形文件,然后进行模拟波形
仿真。
观察模拟仿真结果并与预期的目标相比较,看是否符合设计要求。
若不满足要求,则
更正程序的相关部分。
⑤最后拿出随机附送的ALTERA下载电缆,并将此电缆的两端分别接到PC机和DCPLD
-2型CPLD实验板的JTAG下载口上,打开工作电源,执行下载命令,把程序下载到DCPLD-2型CPLD实验板的EPM7128SLC84—10器件中,此时,DCPLD-2型CPLD实验板上的L1、L3、L5和L7将被点亮。
2.闪烁灯
在DCPLD-2型CPLD实验板上实现L1~L8周期性地闪亮。
在DCPLD-2型CPLD实验板上已经为用户准备了8个发光二极管L1~L8,其硬件原理图如图1所示。
在DCPLD-2型CPLD实验板中,标号LEDl~LED8分别与芯片的30、31、
33~37和39引脚相连,只要正确分配并锁定引脚后,在LEDl~LED8引脚上周期性地输出高电平“1”和低电平“0”,就可实现L1~L8周期性的闪亮。
当然,为了观察方便,闪亮速率最好在1Hz左右。
为了产生1Hz的时钟脉冲,在此使用了一个寄存器对时钟脉冲CLOCK进行计数,当计数器计数到0.5s时求“反”原来的输出状态。
在DCPLD-2型CPLD实验板上有一个有源脉冲发生电路,其具体电路原理图如图2所示。
在DCPLD-2型CPLD实验板中,该时钟脉冲CLOCK经过跳线与芯片的83脚相连。
图2脉冲产生电路
文件名light.v。
modulelight(ledout,clk);
//模块名light
mputclk;
//定义时钟输入口
0]ledout//定义寄存器
reg[21:
0]buffers;
always@(posedgeclk)//过程
buffer=buffer+“//变数加1
if(buffer==22’b11111111111111111111)//是0.5s吗?
Begin
ledout=ledout;
//是,则输出取“反”
②新建工程项目文件light.pof并在该项目下新建VerilogHDL源程序文件light.v,输入上面的程序代码并保存。
该是Altera公司的EPM7128SLC84—10芯片,引脚锁定方法如表2所列。
30ledout036ledou5t
31ledout137ledout6
33ledout239ledout7
34ledout3
35ledout4
83clk
表2
②对该工程文件进行编译处理,若在编译过程中发现错误,则找出并更正错误,直至
编译成功为止。
观察模拟仿真结果并与预期的目标相比较,看是否符合设计要求,若不满足要求则更
正程序的相关部分。
⑤最后将CLOCK与83脚相连。
拿出随机附送的ALTERA下载电缆,并将此电缆的两
端分别接到PC机和DCPLD-2型CPLD实验板的下载口上,打开工作电源,执行下载命
令,把程序下载到DCPLD-2型CPLD实验板的EPM7128SLC84—10器件中,DCPLD-2
型CPLD实验板上的L1~L8将周期性地闪亮。
实验三、基本输入/输出实验
CPLD的所有I/O控制块允许每个I/O引脚单独配置为输人口,不过这种配置是系统自
动完成的,一旦该I/O口被设置为输入口使用时(如定义key0为输入引脚:
inputkey0;
),
该I/O控制模块将直接使三态缓冲区的控制端接地,使得该I/O引脚对外呈高阻态,这样
该I/O引脚即可用作专用输入引脚。
1.基本的逻辑门实验
在DCPLD-2型CPLD实验板上完成F=A·
B的逻辑功能。
在DCPLD-2型CPLD实验板上准备了8个输入按键,其硬件原理如图3所示。
在DCPLD-2型CPLD实验板中,标号KEYl~KEY8通过分别与芯片的56~58、60、61
和63~65引脚相连,这样用户可以把键K1、K2当作输入A、B,而F可以用L1发光管来
表示。
图3键盘原理图
①利用连续赋值语句实现,文件名fab.v。
modulefab(f,a,b);
//模块名fab
inputa,b;
//定义输入口
outputf;
//定义输出口,
assignf=a&
b;
//输出F=A&
B的值
②利用过程赋值语句实现,文件名fabl.v。
modulefabl(f,a,b);
//模块名fab/
regf;
//定义寄存器f
always@(aorb)
if(a&
b)f=1;
//条件满足输出1
elsef=0;
//否则输出0
在DCPLD-2型CPLD实验板上演示实验的方法如下:
①新建工程项目文件fab.pof,并在该项目下新建VerilogHDL源程序文件fab.v,输入上面的程序代码并保存。
②然后为该工程项目选择一个目标器件并对相应的引脚进行锁定,在此所选择的器件
应该是Altera公司的EPM7128SLC84—10芯片,引脚锁定方法如表4所列。
引脚信号
56keyin0
57keyin1
30ledout0
表4
观察模拟仿真结果并与预期的目标相比较,看是否符合设计要求,若不满足要求,则
-2型CPLD实验板的下载口上,打开工作电源,执行下载命令,把程序下载到DCPLD-2
型CPLD实验板的EPM7128SLC84—10器件中。
⑥观察发光管L1的亮灭状态,按下K1按键,再次观察发光管的状态,此时为什么发
光二极管L1亮了呢,可自己动脑分析试试看。
2.键盘、LED发光管实验1
在DCPLD-2型CPLD实验板上实现对8个键盘K1~K8进行监控,且一旦有键输入,
对应的发光二极管L1~L8被点亮。
在DCPLD-2型CPLD实验板上为用户准备了8个按键K1~K8和8个发光管L1~18,
其硬件原理如图1所示,其中标号KEYl~KEY8芯片的56~58、60、61和63~65引脚相
连,而标号LEDl~LED8与芯片的30、31、33~37和39引脚相连。
这样一旦KEYl~KEY8
中有键输入,则该节点由高电平跳变到低电平,这时在相应的LEDl~LED8上输出低电平
即可。
①利用连续赋值语句实现,文件名keyledl.v。
modulekeyledl(keyin,ledout);
//模块名keyledl
mput[7:
0]keyin;
//定义键盘输入口
//定义发光管输出口
assignledout=keyin;
//输出键值
endmodule/
②利用过程赋值语句实现,文件名keyled.v。
modulekeyled(keyin,ledout);
//模块名keyled
input[7:
//定义输人口
0]ledout_reg;
always
ledout_reg=keyin;
//读取键值
assignledout=ledout_reg;
在DCPLD-2型CPLD实验板上演示实验的方法如下:
①新建工程项目文件keyled.pof,并在该项目下新建VerilogHDL源程序文件keyled.v或keyledl.V,输入上面的程序代码并保存。
该是Altera公司的EPM7128SLC84—10芯片,引脚锁定方法如表5所列。
56keyin030ledout0
57keyin131ledout1
58keyin233ledout2
60keyin334ledout3
61keyin435ledout4
63keyin536ledout5
64keyin637ledout6
65keyin739ledout7
表5
③对该工程文件进行编译处理,若在编译过程中发现错误,找出并更正错误直至编译成
功为止。
④若需要对所建的工程项目进行验证,输入必要的激励波形文件,然后进行模拟波形仿
真。
观察模拟仿真结果并与预期的目标相比较,看是否符合设计要求,若不满足要求则更正
程序的相关部分。
⑥观察发光管L1~L8的亮/灭状态,按下K1~K8中的任一按键,再次观察发光管的
状态。
实验四、静态lED数码管显示
数码管LED显示是工程项目中使用较广的一种输出显示器件。
常见的数码管有共阴和
共阳2种。
共阴数码管是将8个发光二极管的阴极连接在一起作为公共端,而共阳数码管是
将8个发光二极管的阳极连接在一起作为公共端。
公共端常被称作位码,而将其他的8位称作段码。
按驱动方式可以分成静态和动态显示两种方式。
这两种显示方法都可以用CPLD
来控制实现,和使用单片机一样简单。
1.要求·
在DCPLD-2型CPLD实验板的LED数码管上依次显示0~9和A~F16个字符。
2.分析
在DCPLD-2型CPLD实验板上准备了4位动态共阳LED数码管Wl~W4,其硬件原理图如图4所示,其中段码线SLA~SLH与芯片的40、41、44~46和48~50引脚相连,而位码线SL1~SL4与芯片的51、52、54和55引脚相连。
这样,只要在位码线SLl~SL4上一直输出低电平“0”,则4个数码管将显示相同的数码(因为4个LED数码管的段码线分别接到了同一引脚上),这样4个动态的LED数码管就变成了静态的LED。
图4显示原理图
3.程序设计
文件名sled.v。
modulesled(seg,sl,clock);
//定义模块结构
0]seg;
//定义数码管段输出引脚
output[3:
0]s1;
//定义数码管选择输出引脚
inputclock;
//定义输入时钟引脚
reg[7:
0]seg_reg//定义数码管段输出管脚
reg[3:
0]disp_dat;
//定义显示数据寄存器
reg[36:
0]count;
//定义计数器寄存器
always@(posedgeclock)//定义clock信号上升沿触发
count=count+1;
//计数器值加1
sl_reg=4'
b0000;
//选中4个LED数码管
a1ways@(count[16])//定义显示数据触发事件
disp_dat=count[27:
24];
//显示的数据
always@(disp_dat)//显示解码输出
case(disp_dat)//选择输出数据
4'
h0:
seg_reg=8'
hc0;
//显示0
h1:
hf9;
//显示1
h2:
ha4;
//显示2
h3:
hb0;
//显示3
h4:
h99;
//显示4
h5:
h92;
//显示5
h6:
segreg=8'
h82;
//显示6
h7:
hf8;
//显示7
h8:
h80;
//显示8
h9:
h90;
//显示9
ha:
h88;
//显示a
hb:
h83;
//显示b
hc:
hc6;
//显示c
hd:
hal;
//显示d
he:
h86;
//显示e
hf:
h8e:
//显示f
endcase
assignseg=seg_reg;
//输出数码管解码结果
assigns1=s1_reg;
//输出数码管选择
4.实验方法
(1)新建工程项目文件sled.pof,并在该项目下新建VerilogHDL源程序文件sled.v,输入上面的程序代码并保存。
(2)然后为该工程项目选择一个目标器件并对相应的引脚进行锁定,在此所选择的器件
应该是Altera公司的EPM7128SLC84—10芯片,引脚锁定方法如表6所列。
引脚信号引脚信号
40seg050seg7
41seg151sl0
44seg252sl1
45seg354sl2
46seg455sl3
48seg5
49seg6
83clock
表6
(3)对该工程文件进行编译处理,若在编译过程中发现错误,则找出并更正错误,直至
(4)若需要对所建的工程项目进行验证,则输入必要的激励波形文件,然后进行模拟波
形仿真。
观察模拟仿真结果并与预期的目标相比较,看是否符合设计要求,若不满足要求则
(5)最后将CLOCK与83引脚相连。
拿出随机附送的Altera下载电缆,并将此电缆的两
令,把程序下载到DCPLD-2型CPLD实验板的EPM7128SLC84—10器件中。
(6)观察LED数码管上的数字。
如果让数码管显示“HHHH"
和“FFFF”自己动手改改
程序试试看。
实验五、动态LED数码管显示
由上面的学习可以看出,LED数码管的静态显示的编程方法较简单,且专用系统的资
源较少,但是由于LED静态显示需要占用较多的I/O口,且功耗较大,因此在大多数场合
通常采用动态扫描的方法来控制LED数码管的显示。
1.要求
在DCPLD-2型CPLD实验板上完成LED数码管的动态显示,并演示动态显示的原理
过程。
在DCPLD-2型CPLD实验板上有4个动态扫描的数码管W1~W4,其硬件原理如图
4所示。
由图可以看出,4个数码管采用共阳的接法,其中段码线SLA~SLH通过与芯片的40、41、44~46和48~50引脚相连,而位码线SLl~SL4通过跳线与芯片的51、52、54和55引脚相连。
动态扫描的方法如下:
首先段码控制口输出要显示数据的段码,同时向位码控制寄存器送数据4'
b1110,这