EDA实验指导书.docx

上传人:b****5 文档编号:28449918 上传时间:2023-07-13 格式:DOCX 页数:21 大小:214.03KB
下载 相关 举报
EDA实验指导书.docx_第1页
第1页 / 共21页
EDA实验指导书.docx_第2页
第2页 / 共21页
EDA实验指导书.docx_第3页
第3页 / 共21页
EDA实验指导书.docx_第4页
第4页 / 共21页
EDA实验指导书.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

EDA实验指导书.docx

《EDA实验指导书.docx》由会员分享,可在线阅读,更多相关《EDA实验指导书.docx(21页珍藏版)》请在冰豆网上搜索。

EDA实验指导书.docx

EDA实验指导书

实验一熟悉QUARTUSⅡ的设计过程

[输入方式:

文本输入、图形输入、波形输入等]

一、实验目的:

1、掌握QUARTUSⅡ安装过程;

2、熟悉QUARTUSⅡ设计环境;

3、掌握QUARTUSⅡ的设计过程。

二、实验内容及步骤

(一)、安装QUARTUSII。

注:

第一次安装QUARTUS要安装license。

(二)、QUARTUSⅡ设计开发步骤

一、创建工作文件夹

在windows中建立一个文件夹(又称工作库或WORKLIBRARY),用于保存设计工程项目的有关文件。

注:

设计工程项目的有关文件不能保存在根目录下,必须保存在一个文件夹之下。

例如建立的文件夹:

E:

\mux.

二、启动QuartusII

点击QUARTUSⅡ7.0图标打开QUARTUSⅡ7.0设计窗口。

三、设计文件输入

1、打开输入文件编辑器

点击菜单File\new…新建立一个文本设计文件。

用文本输入法输入程序。

程序见附录。

2、保存文件,文件名名同实体名。

后缀.VHD

四、逻辑综合

1、创建工程

点击菜单File\NewProjectWizard…….进行工程设置。

2、编译设置

⑴选择PLD芯片:

Assignmenmts\Settings\Device弹出的窗口中选择选择芯片。

⑵选择配置芯片的工作方式:

Assignmenmts\Settings\Device\Device&PinOptions弹出的窗口中首选General项,在Options栏中选择Auto-restart-configurationaftererror.

⑶选择配置芯片和编程方式:

Assignmenmts\Settings\Device\Device&PinOptions弹出的窗口中选择Configuration栏,在窗口中设置配置方式,配置芯片和是否生成压缩的配置文件。

⑷选择输出设置:

保持默认。

⑸选择目标器件闲置引脚的状态:

Assignmenmts\Settings\Device\Device&PinOptions弹出的窗口中选择UnusedPins栏,在窗口中对闲置的引脚设置,推荐设置为Asoutputdrivinggroud。

3、全程编译:

Processing\StartCompilation。

完成对设计项目的检错、逻辑综合、结构综合、配置文件生成以及时序分析。

五、功能或时序仿真

建议先做功能仿真,以检验设计项目的逻辑真确性,这样可以提供设计效率。

1、功能仿真设置:

Assignmenmts\Settings弹出的窗口中选择SimulatorSettings。

在右边Simulationmode中选择Functional.

2、Processing\GenerateFunctionalSimulationnetlist,生成功能仿真所需的文件。

3、建立波形文件并功能仿真

⑴File\New\Otherfiles,在窗口中选择VectorWaveformfile打开波形编辑器。

⑵设置仿真时间区域:

可默认。

一般几十微妙。

时间区域过长,使仿真时间变长,影响仿真效率。

⑶在波形编辑器中添加项目的相关引脚。

原则上是所有引脚,但有的项目引脚很多,可以只添加必要的一些引脚。

View\UtilityWindows\NodeFinder,在弹出的窗口中将所需引脚拖入波形编辑器中。

⑷编辑输入波形:

对所有的输入引脚设置合适的波形。

⑸启动仿真器:

Processing\StartSimulation.

⑹观察分析仿真结果。

仿真结构保存于文件“SimulationReport”,此文件在仿真完成后会自动弹出。

若仿真结果有出入,重新修改程序,直到仿真结果没有问题。

六、管脚锁定并结构综合(适配)。

见教材

七、进时序仿真,验证设计的时序是否满足设计要求。

见教材

八、执行文件汇编,生成下载所需的文件。

见教材

九、编程下载(可以不做)。

见教材;

注:

详细的使用说明见教材相关章节。

附录:

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYCNT10IS

PORT(CLK,RST,EN:

INSTD_LOGIC;

CQ:

OUTSTD_LOGIC_VECTOR(3DOWNTO0);

COUT:

OUTSTD_LOGIC);

ENDCNT10;

ARCHITECTUREbehavOFCNT10IS

BEGIN

PROCESS(CLK,RST,EN)

VARIABLECQI:

STD_LOGIC_VECTOR(3DOWNTO0);

BEGIN

IFRST='1'THENCQI:

=(OTHERS=>'0');--计数器复位

ELSIFCLK'EVENTANDCLK='1'THEN--检测时钟上升沿

IFEN='1'THEN--检测是否允许计数

IFCQI<"1001"THENCQI:

=CQI+1;--允许计数

ELSECQI:

=(OTHERS=>'0');--大于9,计数值清零

ENDIF;

ENDIF;

ENDIF;

IFCQI="1001"THENCOUT<='1';--计数大于9,输出进位信号

ELSECOUT<='0';

ENDIF;

CQ<=CQI;--将计数值向端口输出

ENDPROCESS;

ENDbehav;

 

实验二一位二进制全加器的VHDL设计

一:

实验目的

1、巩固QUARTUSⅡ设计过程和设计环境。

2、了解VHDL结构体的三种描述方式。

3、巩固VHDL语言的构成要素。

二、实验内容

全加器的结构图如上图。

用VHDL语言描述其功能。

先描述半加器和或门电路,然后用例化语句将半加器和或门电路连接构成全加器。

1、用VHDL语言描述一位二进制全加器中的或门,并编译仿真通过后保存。

或门电路程序如下:

LIBRARYIEEE;--或门逻辑描述

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYor2aIS

PORT(a,b:

INSTD_LOGIC;

c:

OUTSTD_LOGIC);

ENDENTITYor2a;

ARCHITECTUREoneOFor2aIS

BEGIN

c<=aORb;

ENDARCHITECTUREone;

能仿真如图一

 

图一

2、用VHDL语言描述一位二进制全加器中的半加器,并编译仿真通过后保存。

半加器电路程序如下:

LIBRARYIEEE;--半加器描述

(1)

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYhadderIS

PORT(a,b:

INSTD_LOGIC;

co,so:

OUTSTD_LOGIC);

ENDENTITYhadder;

ARCHITECTUREfh1OFhadderis

SIGNALabc:

STD_LOGIC_VECTOR(1DOWNTO0);

BEGIN

abc<=a&b;

PROCESS(abc)

BEGIN

CASEabcIS

WHEN"00"=>so<='0';co<='0';

WHEN"01"=>so<='1';co<='0';

WHEN"10"=>so<='1';co<='0';

WHEN"11"=>so<='0';co<='1';

WHENOTHERS=>NULL;

ENDCASE;

ENDPROCESS;

ENDARCHITECTUREfh1;

功能仿真如图2

 

图二

3、全加器顶层描述程序

LIBRARYIEEE;--1位二进制全加器顶层设计描述

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYfadderIS

PORT(ain,bin,cin:

INSTD_LOGIC;

cout,sum:

OUTSTD_LOGIC);

ENDENTITYfadder;

ARCHITECTUREfd1OFfadderIS

COMPONENThadder--半加器元器件例化(调用半加器)

PORT(a,b:

INSTD_LOGIC;

co,so:

OUTSTD_LOGIC);--半加器管脚

ENDCOMPONENT;

COMPONENTor2a--或门元器件例化(调用或门电路)

PORT(a,b:

INSTD_LOGIC;

c:

OUTSTD_LOGIC);--或门器件管脚

ENDCOMPONENT;

SIGNALd,e,f:

STD_LOGIC;--定义连接导线

BEGIN

u1:

hadderPORTMAP(a=>ain,b=>bin,co=>d,so=>e);

u2:

hadderPORTMAP(a=>e,b=>cin,co=>f,so=>sum);

u3:

or2aPORTMAP(a=>d,b=>f,c=>cout);--电路连接关系

ENDARCHITECTUREfd1;

4、将fadder设置为工程文件,编译仿真验证其功能。

功能仿真如图三

 

 

图三

三、下载验证

1、芯片选择ACEX1K\EP1K30QC208-2;

2、引脚锁定:

根据实验箱的设计,KD1-ain;KD2-bin;KD3-cin;LED1-sum;LED2-cout;所以sun,cout,ain,bin,cin分别锁定到EP1K30QC208-2的19,24,45,46,47脚。

管脚分布见《EDA技术实验开发系统》15页;芯片引脚I/O分布见《EDA技术实验开发系统》24-25页.

3、全编译;

4、下载线连接:

将25针连下一端连接电脑LPT1口,一端连接到编程模块的DB25接口,再用十针连线一头插入通用编程模块JTGA下载接口处,另一头连接到目标芯片的下载接口。

5、打开实验箱电源,将模式选择开关CTRL的

(2)(4)(8)拨至ON,使按键KD1,KD2,LED1,LED2,LED3,KL1,KL2等有效。

6、下载:

Tools\Programmer,完成下载。

7、拨动开关按键KD1,KD2,验证电路。

 

 

实验三用原理图输入法设计8位全加器

一、实验目的:

熟悉和掌握用QUARTUSⅡ的原理图输入方法设计简单组合电路的方法,并通过一个8位全加器的设计掌握用EDA软件进行电子线路设计的详细流程。

二、实验原理:

一个8位全加器可以由8个1位全加器构成,加法器间的进位可以串行方式实现,即将低位加法器的进位输出cout与相邻的高位加法器的最低位输入信号cin相接。

三、实验内容:

1、打开原理图编辑器,完成半加器和全加器的设计。

包括原理图输入、编译、综合、适配、仿真、实验板上的硬件测试,并将此全加器电路符号入库。

详细的过程见教材相关章节。

根据以上步骤画出以下原理图:

1位半加器的原理图如图一。

名字hadder.

图一

在完成1位半加器的原理图后,进行编译综合之后,选择File\create\CreateSymbolfileforcurrentfile,将文件变成一个包装好的单一元件模块待调用。

仿真效果是:

运用以上包装好的1位半加器可画以下1位全加器,如图二。

名字adder。

图二

在完成1位全加器的原理图后,进行编译综合之后,选择File\create\CreateSymbolfileforcurrentfile,将文件变成一个包装好的单一元件模块待调用。

仿真效果如图三:

图三

2、建立一个更高的原理图设计层次,利用以上获得的1位全加器构成8位全加器,并完成编译、综合、适配、仿真和测试。

运用以上包装好的1位半加器、全加器,可画以下8位的全加器,如图四

图四

仿真效果如图五:

图五

四、注意:

每一个设计(文本或原理图)都能创建一个原理图符号,并且也只可以在同工程设计中被调用。

实验四设计含异步清零和同步时钟使能的加法计数器

一、实验目的:

学习计数器的设计、仿真,进一步熟悉VHDL设计技术。

二、实验原理:

设计一个加法计数器,具有异步清零和同步时钟使能功能。

三、实验内容:

在QUARTUSⅡ上对下列程序进行编辑、编译、综合、适配、仿真,编程下载验证逻辑功能。

说明程序中各语句的作用,详细描述其功能特点,给出其所有信号的时序仿真波形。

打开QUARTUSⅡ后,建立一个文本文件然后在文本编辑器中输入以下程序:

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYCNT10IS

PORT(CLK,RST,EN:

INSTD_LOGIC;

CQ:

OUTSTD_LOGIC_VECTOR(3DOWNTO0);

COUT:

OUTSTD_LOGIC);

ENDCNT10;

ARCHITECTUREbehavOFCNT10IS

BEGIN

PROCESS(CLK,RST,EN)

VARIABLECQI:

STD_LOGIC_VECTOR(3DOWNTO0);

BEGIN

IFRST='1'THENCQI:

=(OTHERS=>'0');--计数器复位

ELSIFCLK'EVENTANDCLK='1'THEN--检查时钟上升沿

IFEN='1'THEN--检查是否允许计数

IFCQI<9THENCQI:

=CQI+1;--允许计数检查是否小于9

ELSECQI:

=(OTHERS=>'0');--大于9计数器清零

ENDIF;

ENDIF;

ENDIF;

IFCQI=9THENCOUT<='1';--计数大于9,输出进位信号

ELSECOUT<='0';

ENDIF;

CQ<=CQI;--将计数值向端口。

ENDPROCESS;

ENDbehav;

再建立一个波形文件,进行时序仿真后得到图

(一):

(一)

四、管脚锁定:

根据实验箱组成特点,CLK锁定到79脚,EN锁定到44脚,RST锁定到45脚,COUT锁定到27脚,CQ分别锁定到19、24、25、26脚。

(或自己根据实验箱锁定

五、解时序逻辑电路的设计的方法。

实验五数控偶数倍分频器的设计

一、实验目的:

1、学习数控分频器的设计、分析和测试方法。

2、学习偶数倍分频器的设计。

二、实验原理:

数控分频器的功能就是当在输入端给定不同输入数据时,将对输入的时钟信号有不同的分频比。

数控偶数倍分频器可以用加法计数器来实现--将计数溢出位与预置数加载输入信号相接即可。

三、实验内容:

1:

根据逻逻辑功能,用文本输入法设计程序如下:

程序一、

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYfenpinIS

PORT(CLK:

INSTD_LOGIC;

D:

ININTEGERRANGE0TO255;

FOUT:

OUTSTD_LOGIC);

END;

ARCHITECTUREoneOFfenpinIS

SIGNALFULL:

STD_LOGIC;

SIGNALTMEP:

INTEGERRANGE0TO255;

BEGIN

TMEP<=D/2;

P_REG:

PROCESS(CLK)

VARIABLECNT8:

STD_LOGIC_VECTOR(7DOWNTO0);

BEGIN

IFCNT8=TMEPTHENCNT8:

="00000000";FULL<='1';

ELSIFCLK'EVENTANDCLK='1'THEN

CNT8:

=CNT8+1;

FULL<='0';

endif;

ENDPROCESSP_REG;

P_DIV:

PROCESS(FULL)

VARIABLECNT2:

STD_LOGIC;

BEGIN

IFFULL'EVENTANDFULL='1'THEN

CNT2:

=NOTCNT2;

IFCNT2='1'THENFOUT<='1';

ELSEFOUT<='0';

ENDIF;

ENDIF;

ENDPROCESSP_DIV;

END;

程序二、

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYfenpinIS

PORT(CLK:

INSTD_LOGIC;

D:

INSTD_LOGIC_vector(7downto0);

FOUT:

OUTSTD_LOGIC);

END;

ARCHITECTUREoneOFfenpinIS

SIGNALFULL:

STD_LOGIC;

SIGNALTMEP:

STD_LOGIC_vector(7downto0);

BEGIN

Tmep(6downto0)<=d(7downto1);

Tmep(7)<=d(0);

P_REG:

PROCESS(CLK)

VARIABLECNT8:

STD_LOGIC_VECTOR(7DOWNTO0);

BEGIN

IFCNT8=TMEPTHENCNT8:

="00000000";FULL<='1';

ELSIFCLK'EVENTANDCLK='1'THEN

CNT8:

=CNT8+1;

FULL<='0';

endif;

ENDPROCESSP_REG;

P_DIV:

PROCESS(FULL)

VARIABLECNT2:

STD_LOGIC;

BEGIN

IFFULL'EVENTANDFULL='1'THEN

CNT2:

=NOTCNT2;

IFCNT2='1'THENFOUT<='1';

ELSEFOUT<='0';

ENDIF;

ENDIF;

ENDPROCESSP_DIV;

END;

*理解进程P_REG和P_DIV的作用。

2:

输入不同的CLK频率和预置值D,给出时序波形如图一。

图一

3:

扩展成16位分频器,并提出此项设计的数项实用示例。

仿真图如图二。

图二

 

四、思考题:

请给出几种分频电路的不同的设计方法。

实验六用状态机实现序列检测器的设计

一、实验目的

1、熟悉状态机的作用及设计方法;

2、学习用状态机实现序列检测器的设计,并对其进行仿真和硬件测试。

二、实验原理

序列检测器可用于检测一组或多组由二进制码组成的脉冲序列信号,当序列检测器连续收到一组串行二进制码后,如果与检测器预先设置的码相同,则输出为1,否则输出为0。

三、实验内容

1、状态转换图

2、设计一个序列检测器,对1110010进行检测。

程序如下:

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYCHECKIS

PORT(CLK,XI,CLR:

INSTD_LOGIC;

ZO:

OUTSTD_LOGIC);

ENDCHECK;

ARCHITECTURESTROFCHECKIS

TYPESTATESIS(S0,S1,S2,S3,S4,S5,S6,S7);

SIGNALSTATE:

STATES;

BEGIN

PROCESS(clk,XI,clr,STATE)

BEGIN

IFCLR='1'THENSTATE<=S0;

ELSIF(CLK'EVENTANDCLK='1')THEN

CASESTATEIS

WHENS0=>ZO<='0';IF(XI='1')THENSTATE<=S1;ELSESTATE<=S0;ENDIF;

WHENS1=>ZO<='0';IF(XI='1')THENSTATE<=S2;ELSESTATE<=S0;ENDIF;

WHENS2=>ZO<='0';IF(XI='1')THENSTATE<=S3;ELSESTATE<=S0;ENDIF;

WHENS3=>ZO<='0';IF(XI='0')THENSTATE<=S4;ELSESTATE<=S3;ENDIF;

WHENS4=>ZO<='0';IF(XI='0')THENSTATE<=S5;ELSESTATE<=S1;ENDIF;

WHENS5=>ZO<='0';IF(XI='1')THENSTATE<=S6;ELSESTATE<=S0;ENDIF;

WHENS6=>ZO<='0';IF(XI='0')THENSTATE<=S7;ELSESTATE<=S2;ENDIF;

WHENS7=>ZO<='1';IF(XI='0')THENSTATE<=S0;ELSESTATE<=S1;ENDIF;

ENDCASE;

endif;

ENDPROCESS;

ENDSTR;

3、利用MAX+plusII对程序进行仿真测试并给出仿真波形。

实验七:

数字钟的设计

一、设计目的2|}|)2$*S 

XqWa_p_sv_1.掌握各类计数器及将它们相连的方法;=LG5Rm1e%

LbP_ts.,_2.掌握多个数码管动态显示的原理与方法;[/_6D.r$_

Cqi_8h_63.掌握用FPGA技术的层次化设计方法;`Brw1_+_A

H*aJH_wZ/_4.进一步掌握用VHDL硬件描述语言的设计思想;7Pf;^)cs

5.了解有关数字系统的设计。

ty#T_`_V__ 7{\+*_`?

l

二、设计要求!

_z>_8_,0VLN_WH{{_J

(一)、基本要求:

+<;0|"H,;0Cc5[

z2

1、24小时计数显示;UO

_G]BI

_l.BfjGOG_2、具有校时功能(时,分);I3xew

!

x>g

=Tn

j_dS_N

(二)、附加要求:

XWv|=Qec3 

cU_*+"]w`~

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

当前位置:首页 > 求职职场 > 社交礼仪

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

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