EDA 实验报告.docx
- 文档编号:29986748
- 上传时间:2023-08-04
- 格式:DOCX
- 页数:33
- 大小:1.01MB
EDA 实验报告.docx
《EDA 实验报告.docx》由会员分享,可在线阅读,更多相关《EDA 实验报告.docx(33页珍藏版)》请在冰豆网上搜索。
EDA实验报告
EDA实验报告
系(部、中心)电气信息工程学院
姓名王海棠学号40409125
专业/班级电信09101
成绩教师签名
实验一QUARTUSII软件使用
一、实验目的
1、了解QUARTUSII软件安装与配置的基本方法。
2、熟悉QUARTUSII集成开发环境。
二、实验内容
1、安装并配置QUARTUSII。
2、通过创建一个简单的应用工程,初步熟悉QUARTUSII的使用,了解程序开发调试过程。
三、实验设备与仪器
1、计算机
四、实验步骤
一、安装前的准备
1.1、WindowsXP操作系统(最好不要用Ghost精简版)
关掉杀毒软件和防护软件(例如瑞星、360安全卫士),防止安装过程中出现不必要的麻烦。
1.2、QuartusII7.2安装文件
QuartusII和Altera公司配套的IP库。
1.3、QuartusII7.2破解文件
主要有3个文件:
license.DAT、Quartus_II_7.2_b151破解器.exe、读我.txt。
二、Tips
最好不要把Quartus软件安装到C盘。
三、安装过程
3.1、光碟的内容
3.2、安装过程
选择安装的程序
选择了QuartusII和IP库,用户自定义安装(稍后可以选择安装路径)。
EDA实验报告
系(部、中心)电气信息工程学院
姓名王海棠学号40409125
专业/班级电信09101
成绩教师签名
实验二LED设计实验
一、实验目的
通过此实验让用户逐步了解、熟悉和掌握FPGA开发软件QuartusII的使用方法及VerilogHDL的编程方法。
本实验力求以详细的步骤和讲解让读者以最快的方式了解EDA技术开发以及软件的使用,从而快速入门并激起读者对EDA技术的兴趣。
二、实验内容
在DCPLD-2型CPLD实验板上准备了8个发光二极管L1~L8,其硬件原理图如图1所示。
在DCPLD-2型CPLD实验板中,标号LEDl~LED8与芯片的30、31、33~37和39引脚相连,只要正确分配并锁定引脚后,在相应的引脚上输出低电平“o”,就可实现点亮该发光二极管的功能。
图1发光二极管原理图
在DCPLD-2型CPLD实验板上演示实验的方法如下:
①新建工程项目文件led.pof,并在该项目下新建VerilogHDL源程序文件led.v或ledl.v,输入上面的程序代码并保存。
②然后为该工程项目选择一个目标器件并对相应的引脚进行锁定,在此所选择的器件应
该是Altera公司的EPM7128SLC84—10芯片,引脚锁定方法如表1所列。
引脚信号引脚信号
30ledout035ledout4
31ledout136ledout5
33ledout237ledout6
34ledout339ledout7
2、闪烁灯
在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.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将周期性地闪亮。
三、实验程序
1.点亮发光二极管
完整的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:
0]ledout;//定义寄存器
always//过程1
begin
ledout=8b0l0l0l0l;//输出0x55
end
endmodule
2.闪烁灯
程序设计
文件名light.v。
modulelight(led,clk);//模块名light
output[7:
0]led;//定义LED输出口
inputclk;//定义时钟输入口
reg[8:
0]led_r;//定义输出寄存器
assignled=led_r[7:
0];//寄存器输出
always@(posedgeclk)//在时钟上升沿触发进程
begin
led_r<=led_r<<1;//是,则输出左移一位
if(led_r==9'd0)//循环完毕吗?
led_r<=9'b111111111;//是,则重新赋初值
end
endmodule
四:
实验结果
1.点亮发光二极管
①
②利用过程赋值语句来实现,文件名led.v
2、闪烁灯
七实验心得与分析:
因为一开始做,所以难免会遇到一些问题,比如说分号忘写;基本的语句不是很清楚把assign写成assginf,从而导致无法编译。
EDA实验报告
系(部、中心)电气信息工程学院
姓名王海棠学号40409125
专业/班级电信09101
成绩教师签名
实验三、基本输入/输出实验
一、实验目的
通过此实验让用户进一步了解、熟悉和掌握CPLD/FPGA开发软件的使用方法及VerilogHDL的编程方法,熟悉以VerilogHDL文件为顶层模块的设计。
学习和体会分支条件语句case的使用方法及FPGAI/O口的输出控制。
二、实验内容
1.基本的逻辑门实验
(1)要求
在DCPLD-2型CPLD实验板上完成F=A·B的逻辑功能。
(2)分析
在DCPLD-2型CPLD实验板上准备了8个输入按键,其硬件原理如图3所示。
在DCPLD-2型CPLD实验板中,标号KEYl~KEY8通过分别与芯片的56~58、60、61
和63~65引脚相连,这样用户可以把键K1、K2当作输入A、B,而F可以用L1发光管来
表示。
图3键盘原理图
2.键盘、LED发光管实验1
(1)要求
在DCPLD-2型CPLD实验板上实现对8个键盘K1~K8进行监控,且一旦有键输入,
对应的发光二极管L1~L8被点亮。
(2)分析
在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上输出低电平
即可。
四、实验步骤
1、启动QuartersII建立一个空白工程,命名为keyled.qpf。
2、新建VerilogHDL源程序文件keyled.v,输入程序代码并保存,进行综合编译,若在编译中发现错误,则找出并更正错误,直至编译成功为止。
3、选择目标器件并进行引脚锁定。
将未使用的管脚设置为三态输入。
4、对该工程文件进行全程编译处理。
若在编译过程中发现错误,则找出并更正错误,直到编译成功为止。
5、将产生的keyled.sof输出对FPGA进行配置。
按下不同按键观察LED发光管的状态。
五、实验程序
程序设计
①利用连续赋值语句实现,文件名keyledl.v。
modulekeyledl(keyin,ledout);//模块名keyledl
mput[7:
0]keyin;//定义键盘输入口
output[7:
0]ledout;//定义发光管输出口
assignledout=keyin;//输出键值
endmodule/
②利用过程赋值语句实现,文件名keyled.v。
modulekeyled(keyin,ledout);//模块名keyled
input[7:
0]keyin;//定义输人口
output[7:
0]ledout;//定义输出口
reg[7:
0]ledout_reg;//定义寄存器
always
begin
ledout_reg=keyin;//读取键值
end
assignledout=ledout_reg;//输出键值
endmodule
①利用连续赋值语句实现,文件名fab.v。
modulefab(f,a,b);//模块名fab
input,b;//定义输入口
outputf;//定义输出口,
assign=a&b;//输出F=A&B的值
endmodule
②利用过程赋值语句实现,文件名fabl.v。
modulefabl(f,a,b);//模块名fab/
inputa,b;//定义输入口
outputf;//定义输出口
regf;//定义寄存器f
always@(aorb)
begin
if(a&b)f=1;//条件满足输出1
elsef=0;//否则输出0
end
endmodule
keyled实验设计:
modulekeyled(key,led);//模块名keyled
input[7:
0]key;//定义键盘输入口
output[7:
0]led;//定义发光管输出口
reg[7:
0]led_r;//定义寄存器
reg[7:
0]buffer_r;
assignled=led_r;//输出键值
always@(key)//过程1
begin
buffer_r=key;//读取键值
case(buffer_r)
8'b11111110:
led_r=8'b11111110;//是键KEY1,则给寄存器赋值0xfe
8'b11111101:
led_r=8'b11111100;//是键KEY2,则给寄存器赋值0xfc
8'b11111011:
led_r=8'b11111000;//是键KEY3,则给寄存器赋值0xf8
8'b11110111:
led_r=8'b11110000;//是键KEY4,则给寄存器赋值0xf0
8'b11101111:
led_r=8'b11100000;//是键KEY5,则给寄存器赋值0xe0
8'b11011111:
led_r=8'b11000000;//是键KEY6,则给寄存器赋值0xc0
8'b10111111:
led_r=8'b10000000;//是键KEY7,则给寄存器赋值0x80
8'b01111111:
led_r=8'b00000000;//是键KEY8,则给寄存器赋值0x00
default:
led_r=8'b11111111;//否则给寄存器赋值0xff
endcase
end
endmodule
六、实验结果
当按键值输入为00000000时则输出为11111111,其他情况如程序而言,就不一一列举了!
七实验心得与分析:
在仿真的时候遇到不少问题,比如文件要先保存,对于引脚而言要看清楚输入还是输出或者是时钟信号。
EDA实验报告
系(部、中心)电气信息工程学院
姓名王海棠学号40409125
专业/班级电信09101
成绩教师签名
实验四、静态lED数码管显示
一、实验目的
学习7段数码管显示译码器的设计,进一步了解、熟悉和掌握FPGA开发软件QuartusII的使用方法及VerilogHDL的编程方法,学习LPM兆功能模块的调用。
二、实验内容
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。
三、实验原理
数码管LED显示是工程项目中使用较广的一种输出显示器件。
常见的数码管有共阴和共阳2种。
共阴数码管是将8个发光二极管的阴极连接在一起作为公共端,而共阳数码管是将8个发光二极管的阳极连接在一起作为公共端。
公共端常被称作位码,而将其他的8位称作段码。
数码管有8个段分别为:
h、g、f、e、d、c、b和a(h为小数点),只要公共端为高电平“1”,某个段输出低电平“0”则相应的段就亮。
实验方法
在DCPLD-2型CPLD实验板上演示实验的方法如下。
(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下载电缆,并将此电缆的两
端分别接到PC机和DCPLD-2型CPLD实验板的下载口上,打开工作电源,执行下载命
令,把程序下载到DCPLD-2型CPLD实验板的EPM7128SLC84—10器件中。
(6)观察LED数码管上的数字。
如果让数码管显示“HHHH"和“FFFF”自己动手改改
程序试试看。
四、实验步骤
1、启动QuartersII建立一个空白工程,命名为sled.qpf。
2、新建VerilogHDL源程序文件decl7s.v,输入程序代码并保存,进行综合编译,若在编译中发现错误,则找出并更正错误,直至编译成功为止。
3、从设计文件中创建模块,由decl7s.v生成名为decl7s.bsf的模块符号文件。
五、实验程序
moduledecl7s(d,seg);//模块名decl7s
input[3:
0]d;//输入4位二进制码
output[7:
0]seg;//七段译码输出
reg[7:
0]seg_r;//定义数码管输出寄存器
assignseg=seg_r;//输出数码管译码结果
always@(d)
begin
case(d)//七段译码
4'h0:
seg_r=8'hc0;//显示0
4'h1:
seg_r=8'hf9;//显示1
4'h2:
seg_r=8'ha4;//显示2
4'h3:
seg_r=8'hb0;//显示3
4'h4:
seg_r=8'h99;//显示4
4'h5:
seg_r=8'h92;//显示5
4'h6:
seg_r=8'h82;//显示6
4'h7:
seg_r=8'hf8;//显示7
4'h8:
seg_r=8'h80;//显示8
4'h9:
seg_r=8'h90;//显示9
4'ha:
seg_r=8'h88;//显示a
4'hb:
seg_r=8'h83;//显示b
4'hc:
seg_r=8'hc6;//显示c
4'hd:
seg_r=8'ha1;//显示d
4'he:
seg_r=8'h86;//显示e
4'hf:
seg_r=8'h8e;//显示f
endcase
end
endmodule
六实验结果
当输入为0101时,按照编码值则输出为:
10010010即92H
当输入为1101时,按照编码值则输出为:
10100001即A1H
七实验心得与体会
虽然这个程序不是很复杂,但是由于老师给的程序过于难懂,所以就自己试着编写一这样的一个,只能实现一个数码管的显示。
但是还是蛮开心的,所遇到的问题就不止一个两个了,尤其是一些小细节上的注意就更加必要了。
EDA实验报告
系(部、中心)电气信息工程学院
姓名王海棠学号40409125
专业/班级电信09101
成绩教师签名
实验五动态数码管显示实验
一、实验目的
学习动态扫描显示的原理及电路的设计。
二、实验内容
1、在DCPLD-2型CPLD实验板上完成LED数码管的动态显示,并演示动态显示的原理
过程。
2、在DCPLD-2型CPLD实验板上有4个动态扫描的数码管W1~W4,其硬件原理如图
4所示。
由图可以看出,4个数码管采用共阳的接法,其中段码线SLA~SLH通过与芯片的40、41、44~46和48~50引脚相连,而位码线SLl~SL4通过跳线与芯片的51、52、54和55引脚相连。
动态扫描的方法如下:
首先段码控制口输出要显示数据的段码,同时向位码控制寄存器送数据4'b1110,这样由于SL4为低电平而其他口都为高电平,因此只有三极管Q5导通,数码管W4显示送来的数据。
延时一段时间后接着发送第2个要显示数据的段码,同样应使其对应的位码为低电平且保证其他位为高电平。
依此类推,对各显示器进行扫描,显示器分时轮流工作。
虽然每次只有1个LED显示,但由于人的视觉暂留现象,使我们仍会感觉所有的显示器都在同时显示。
3、在DCPLD-2型CPLD实验板上演示实验的方法如下:
(1)新建工程项目文件dled.pof,并在该项目下新建Verll。
gHDL源程序文件dled.V,输入上面的程序代码并保存。
(2)然后为该工程项目选择一个目标器件并对相应的引脚进行锁定,在此所选择的器件应
该是A1tera公司的EPM7128SLC84—10芯片,引脚锁定方法如表7所列。
引脚信号引脚信号
40seg050seg7
41seg151sl0
44seg252sl1
45seg354sl2
46seg455sl3
48seg5
49seg6
83clocl
表7
(3)对该工程文件进行编译处理,若在编译过程中发现错误,则找出并更正错误,直至引
译成功为止。
(4)若需要对所建的工程项目进行验证,则输入必要的激励波形文件,然后进行模拟波形
仿真。
观察模拟仿真结果并与预期的目标相比较,看是否符合设计要求,若不满足要求则更
正程序的相关部分。
(5)最后将CLOCK与引脚83相连。
拿出随机附送的ALTERA下载电缆,并将此电缆的
两端分别接到PC机和DCPLD-2型CPLD实验板的下载口上,打开工作电源,执行下载
命令,把程序下载到DCPLD-2型CPLD实验板的EPM7128SLC84—10器件中。
(6)观察LED数码管上的数字是否为1234,然后把程序中的"always@(count[l4:
13])”事
件作如下修改,重新编译下载,观察这次LED数码管上的显示数据,可以看到数据l、2、3、
4动起来了,这正是动态扫描的方法和过程。
三、实验原理
一个FPGA的片子如果带动多个(比如说8个)数码管,选用静态显示的话,管脚很容易不够用,于是大多采用动态显示的方式。
本次采用共阳极的数码管,其中每个数码管的8个段:
h、g、f、e、d、c、b和a(h为小数点)都分别连接到SEG0~SEG7,8个数码管分别由8个选通信号DIG0~DIG7来选择。
被选通的数码管显示数据,其余关闭。
如果在某一时刻DIG2为低电平“0”,其余选通信号为高电平“1”,这时仅DIG2对应的数码管显示来自段码信号端的数据,其余7个数码管呈现关闭状态。
根据这种电路状态,如果希望8个数码管显示希望的数据,就必须使得8个选通信号DIG0~DIG7分别被单独选通,并在此同时,在段信号输入口加上希望在该对应数码管上显示的数据,于是随着选
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- EDA 实验报告 实验 报告