《EDA技术》实验指导书1_第1页
《EDA技术》实验指导书1_第2页
《EDA技术》实验指导书1_第3页
《EDA技术》实验指导书1_第4页
《EDA技术》实验指导书1_第5页
已阅读5页,还剩13页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

EDA技术

实验指导书

适用于电子信息工程专业

QUARTUSII8.1软件的使用

1、一、实验目的与要求:

练习使用QUARTUS118.1软件,掌握利用该软件进行简单EDA设计的基

木流程;

完成一个通过拨码开关控制发光二极管亮灭的应用,实验结束后可独立

完成思考题。

1、二、实验环境与器材:

2、微机(已安装授权的QUARTUSII8.1软件)

3、EDA/SOPC实验开发系统

4、USBBlaster下载线一根

三、背景知识与操作流程:

QUARTUSII是ALTERA公司推出的EDA开发工具,其前身为MAXPLUSII,

目前实验室安装的版本为8.1,利用该软件可进行对可编程逻辑器件的分

析­、综合、下载等设计。

EDA/SOPC实验开发系统是由北京百科公司生产的一套EDA实验系统,

其核心芯片采用ALTERA公司的CYCLONE系列FPGA产品EP1C6Q240C8,同

时配备了丰富的外部接口资源,可供学生进行EDA设计实验。

启动QUARTUS后的界面如图1所示,首先需要创建一个工程,具体操作过

程如下:

图1QUARTUS软件的启动界面

(1)点击File->NewProjectWizard创建一个新工程,系统显示如

图2。

图2工程创建向导的启始页

(2)点击Next,为工程选择存储目录、工程名称、顶层实体名等,如

图3所示;

(3)点击Next,若目录不存在,系统可能提示创建新目录,如图4

所示,点击“是”按钮创建新目录,系统显示如图5所示;

(4)系统提示是否需要加入文件,在此不添加任何文件;

(5)点击Next,进入设备选择对话框,如图6,这里选中实验箱的

核心芯片CYCLONE系列FPGA产品EP1C6Q240C8;

(6)点击Next,系统显示如图7,提示是否需要其他EDA工具,这里不

选任何其他工具;

(7)点击Next后,系统提示创建工程的各属性总结,若没有错误,点击

Finish,工程创建向导将生成一个工程,这时软件界面如图8,在窗口左

侧显示出设备型号和该工程的基本信息等。

图3输入工程名称、存储1=1录

图4提示是否创建新文件夹

图5提示是否添加文件

图6芯片型号选择

图7提示是否利用其他EDA设计工具

图8工程阐述汇总

(1)至此工程创建好完成,一下进行具体的设计了,为实现用一个

拨码开关控制一个LED亮灭的功能,可用VIIDL编写一个程序实

现,具体操作过程如下:

点击File->New创建一个设计文件,系统显示如图9;

图9创建一个设计文件

(2)选择设计文件的类型为VHDLFile;

点击OK,系统显示如图10,窗口右侧为YHDL的编辑窗口。

图10新建的一个VHDL源文件的编辑窗口

在编辑窗口中编辑以下程序:

libraryIEEE;

useIEEE.STD_L0GIC_1164.ALL;

useIEEE.STD_LOGTC_ARTTH.ALL;

useIEEE.STDLOGICONSIGNED.ALL;

entitytestis

Port(lec:outstd_logic;

key:instd_logic

endtest;

architectureBehavioraloftestis

begin

led<=key;

仿真结果如图17。

图17仿真波形

点击Assignment->Pins进行引脚分配,实验箱上拨码开关和LED对应

的引脚分别为58和98,分配结果如图18所示。

图18引脚分配

(3)参照步骤(5)重新编译系统,系统将生成FPGA配置文件,在编

译过程中若显示警告可不理会;

准备下载,注意打开实验箱电源,并连接下载电缆;

点击Tools->Programmer将配置文件下载到FPGA,系统显示如图19

所示,注意选择下载模式为JTAG,若下载线硬件显示“NoHardware"

(如图19所示),则点击HardwareSetup按钮,系统显示如图20,双

击USB-Baster,设定其为当前选定硬件,再点Close返回。

图19下载界面

图20下载线配置

这时,系统界面如图21,选中Program/Configure,点击Start,将

配置文件下载到FPGAO

图21配置好下载电缆的下载界面

观察实验效果,尝试开关拨码开关K1,发光二极管D1-1将随之亮灭。

实验一、计数器程序设计

1.实验目的:

1)了解计数器的工作原理;

2)用VHDL语言编写60进制计数器,通过设计熟悉EDA开发的基本流

程;

3)熟悉QuartusII软件的使用,练习使用文本编辑器;

4)掌握VHDL编写中的一些小技巧。

2.实验要求:

(1)在实验报告结果分析中要对测量所得数据进行分析

3.实验内容:

利用VHDL语言设计60进制计数器,编译、仿真、下载

4.主要仪器设备与试剂:

1)计算机一台,实验箱

2)QUARTUSII8.1环境

5.

按照QUARTUSH软件使用方法,为60进制计数器建工程。工程名应

为cntm60(实体名)。参考程序如下。

要求编译、仿真、下载。

libraryieee;一调用ieee库

useieee.std_logic_1164.all;一使用ieee库中

的1164包

useieee.std_logic_unsigned.all;一使用ieee库中

的无符号包

entitycntm60is

port(ci:instdlogic;一来至低级的进

nreset:instd_logic;一清零端

load:instd_logic;一置数端

d:instd_logic_vector(7downto0);一与置数端对应

的数据输入端

elk:instdlogic;时钟端

co:outstdlogic;进位输出端

qh:bufferstd_logic_vector(3downto0);一计数器

的高位输出端

ql:bufferstd_logic_vector(3downto0));一计

数器的低位输出端

endcntm60;

architecturebehaveofcntm60is

begin

co<=,Twhen(qh=/,0101z,andql="1001〃andci='1')else'O';

process(elk,nreset)

begin

if(nreset='0,)then

qh〈=〃0000〃;

ql<="0000”;

elsif(elk*eventandclk=,f)then

if(load二T')then

qh<=d(7downto4);

ql<=d(3downto0);

elsif(ci=,r)then

if(ql=9)then

ql<=〃0000〃;

if(qh=5)then

qh〈二〃OODO〃;

else

qh<=qh+l;

endif;

else

ql<=ql+l;

endif;

endif;

endif;

endprocess;

endbehave;

实验二、七段译码器器设计

1.实验目的:

1)了解七段译促器的原理。

2)进一步熟悉EDA开发的基本流程。

2.实验耍求:

(1)在实验报告结果分析中要对测量所得数据进行分析

3.实验内容:

利用VHDL语言完成动态译码器的设计,仿真,下载。

4.主要仪器设备与试剂:

1)计算机一台,实验箱

2)QUARTUSII8.1环境

libraryieee;

useieee.stdlogic1164.all;

useieee.std_logic_arith.all;

useieee.std_logic_unsigned.all;

entitydecl7is

port(

a:instd_logic_vector(3downto0);

sei:outstdlogicvector(2downto0);

ledl7:outstdlogicvector(6downto0));

enddecl7;

architecturebehaveofdecl7is

begin

sei<=〃山〃;

process(a)

begin

caseais

when"0000"=>ledl7<="0111111〃

when“0001〃=>led!7<="0000110"

when〃0010〃=>ledl7<="1011011〃

when〃0011〃=>ledl7<="1001111〃

when〃0100〃=>led17<="IIOOIIO"

when〃0101〃=>ledl7<="1101101〃

when"0110'=>lec117<="1111101〃

when〃0111〃=>ledl7<="OOOOlll"

when〃1000〃=>ledl7<="1111111〃

when〃1001〃=>led!7<="1101111〃

when〃1010〃=>ledl7<="lllOlll"

when〃1011〃=>led17<="lllllOO"

when"llOO'=>led17<="0111001〃

when,z110r=>ledl7<="1011110〃

when〃1110〃=>lec117<="1111001〃

when=>ledl7<="1110001〃

whenothers=>null:

endcase;

endprocess;

endbehave;

实验三、多功能数字钟设计

1.实验目的:

1)了解数字钟的原理;

3)进一步掌握自顶向下的数字系统设计方法,并体会其优越性;

2、实验要求:

(1)在实验报告结果分析中要对测量所得数据进行分析

3.实验内容:

利用综合设计方法完成数字钟的设计,仿真,下载。

4.主要仪器设备与试剂:

1)计算机一台,实验箱

2)QUARTUSII8.1环境

5.实验原理

多功能数字钟应该具有的功能有:显示时一分一秒、整点报时、小时和分

钟可调等基本功能。首先要知道钟表的工作机理,整个钟表的工作应该是

在1Hz信号的作用下进行,这样每来一个时钟信号,秒增加1秒,当秒

从59秒跳转到00秒时,分钟增加1分,同时当分钟从59分跳转到00

分时.,小时增加1小时,但是需要注意的是,小时的范围是从0〜23时。

在实验中为了显示的方便,由于分钟和秒钟显示的范围都是从0〜59,

所以可以用一个3位的二进制码显示十位,用一个四位的二进制码(BCD

码)显示个位,对于小时因为它的范围是从0~23,所以可以用一个2位

的二进制码显示十位,用4位二进制码(BCD码)显示个位。实验中由于

七段码管是扫描的方式显示,所以虽然时钟需要的是1Hz时钟信号,但

是扫描的确需要一个比较高频率的信号,因此为了得到准确的1Hz信号,

必须对输入的系统时钟进行分频。对于报警信号,由于实验箱上只有一个

小的扬声器,而要使扬声器发声,必须给其一定频率的信号进行驱动,

频率越高,声音越尖。另外由于人耳的听觉范围是300Hz〜3.4KHz左右,

所以设计时也要选择恰当的发声频率。

实验内容

本实验的任务就是设计一个多功能数字钟,要求显示格式为小时一分钟

一秒钟,整点报时,报时时间为10秒,即从整点前10秒钟开始报警,

且前五次报警的声音频率较低,最后一次报警声音的频率较高,类似于

收音机整点报时,即从xx—59—50秒开始,依次为嘀、嘀、嘀、嘀、嘀、

嗒。系统时钟选择时钟模块的lOKHz,要得到1Hz时钟信号,必须对系统

时钟进行10,000次分频。调整时间的的按键用按键模块的S1和S2,S1调

节小时,每按下一次,小时增加一个小时,S2调整分钟,每按下一次,

分钟增加一分钟。报时的喇叭采用实验箱的扬声器模块,整点报时时嘀声

用1.25KHZ(对lOKHz信号进行8分频),嗒声用2.5KHz(对lOKHz信号

进行4分频)。另外用S8按键作为系统时钟复位,复位后全部显示00—

00-00o

实验步骤

完成多功能数字钟的实验步骤如卜.:

1.首先打开QuartusII软件,新建一个工程,并新建一个VHDLFile。

2.按照自己的想法,编写VHDL程序

3.对自己编写的VHDL程序进行编译并仿真。

4.仿真无误后,根据引脚对照表,对实验中用到的时钟信号、按键开关、

七段码管与扬声器输出进行管脚绑定,然后再重新编译一次。

5.用下载电缆通过JTAG接口将对应的sof文件下载到FPGA中。

6.按动S1和S2按键,观察时钟的小时和分钟会不会递增。

7.将时间调整到xx时59分,观察时钟到了第50秒时是否会发出嘀、

嘀、嘀、嘀、嘀、嗒的报时声。

注意:此实验需管脚复用

—Title:多功能数字钟

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_arith.all;

useieee.std_logic_unsigned.all;

entityexp15is

port(Clk:instdlogic;一时钟输入

Rst:instdlogic;一复位输入

S1,S2:instd_logic;一时间调节输入

SPK:outstd_logic;一扬声器输出

Display:outstd_logic_vector(7downto0);一七段

码管显示输出

SEG_SEL:bufferstd_logic_vector(2downto0)-一-七段

码管扫描驱动

endcxpl5;

architecturebehaveofexp15is

signalDisp_Temp:integerrange0to15;

signalDispjecode:std_logic_vector(7downto0);

signalSEC1,SEC1O:integerrange0to9;

signalMINI,MINI0:integerrange0to9;

signalHOURI,HOUR10:integerrange0to9;

signalClkCountl:stdlogicvector(13downto0)一产生

1Hz时钟的分频计数器

signalClklHz:std_logic;

signalMusic_Count:std_logic_vector(2downto0);

begin

process(Clk)

begin

if(Clk,eventandClk=T')then

if(ClkCountKIOOOO)then

Clk_(Dountl<=Clk_Countl+l;

else

Clk_CountK^OOOOOOOOOOOOOl";

endif;

endif;

endprocess;

ClklHz<=ClkCountl(13);

process(ClklHz,Rst)

begin

if(Rst二'O')then一系统复位

SECK=0;

SEC10<=0;

MINl<=0;

MIN10<=0;

HOUR1<=O;

HOUR1O<=O;

elsif(ClklHz,eventandClklHz=,T)then-正常运行

if(SI='O')then一调节小时

if(HOUR1=9)then

HOURICO;

HOUR10<=H0UR10+1;

elsif(H0UR10=2andHOUR1=3)then

HOURICO;

H0UR10<=0;

else

HOUR1<=IIOUR1+1;

endif;

elsif(S2=)then一调节分钟

if(MIN1=9)then

MINl<=0;

if(MIN10=5)then

MIN10<=0;

else

MTN1O<=MIN1O+1;

endif;

else

MINK=MIN1+1;

endif;

elsif(SECl=9)then

SECl<=0;

if(SEC10=5)then

SEC10<=0;

if(MIN1=9)then

MINl<=0;

if(MIN10=5)then

MIN10<=0;

if(II0URl=9)then

H0URl<=0;

HOUR10〈二HOUR10+1;

elsif(H0UR10=2andHOUR1=3)then

HOURk=0;

H0UR10<=0;

else

HOURI<=HOUR1+1;

endif;

else

MIN1O<=MIN1O+1;

endif;

else

MIN1<=MIN1+1;

endif;

else

SEC10<=SEC10+1;

endif;

else

SECK=SEC1+1;

endif;

endif;

endprocess;

process(Clk)

begin

if(Clk'eventandClk=,T)then

MusicCount<=MusicCount+1;

if(MIN10=5andMIN1=9andSEC10=5)then―在59分50

秒开始提示

if((SEClMOD2)=0)then一在偶数秒开始发声

SPK<=Music_Count(2);一嘀

else

SPK<='O';

endif;

elsif(MIN10=0andMINI二0andSEC10=0andSEC1=O)then

SPK<=Music_Count(1);一嗒

else

SPK<=,O';

endif;

endif;

endprocess;

process(SEGSEL)

begin

cas

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论