三峡大学CPLD与电子CAD报告及模版.docx

上传人:b****6 文档编号:8890270 上传时间:2023-02-02 格式:DOCX 页数:21 大小:1.13MB
下载 相关 举报
三峡大学CPLD与电子CAD报告及模版.docx_第1页
第1页 / 共21页
三峡大学CPLD与电子CAD报告及模版.docx_第2页
第2页 / 共21页
三峡大学CPLD与电子CAD报告及模版.docx_第3页
第3页 / 共21页
三峡大学CPLD与电子CAD报告及模版.docx_第4页
第4页 / 共21页
三峡大学CPLD与电子CAD报告及模版.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

三峡大学CPLD与电子CAD报告及模版.docx

《三峡大学CPLD与电子CAD报告及模版.docx》由会员分享,可在线阅读,更多相关《三峡大学CPLD与电子CAD报告及模版.docx(21页珍藏版)》请在冰豆网上搜索。

三峡大学CPLD与电子CAD报告及模版.docx

三峡大学CPLD与电子CAD报告及模版

CPLD及电子CAD

实验报告

 

班号:

网选XX班

序号:

___xxx____

学号:

___XXXXXX___

姓名:

___黄胜天___

同组同学姓名:

___XXXXXX___

 

三峡大学电气与新能源学院

CPLD及电子CAD

前言说明

 CPLD是一种用户根据各自需要而自行构造逻辑功能的数字集成电路。

其基本设计方法是借助集成开发软件平台,用原理图、硬件描述语言等方法,生成相应的目标文件,通过下载电缆(“在系统”编程)将代码传送到目标芯片中,实现设计的数字系统。

我们实验主要从VHDL环境中编写cpld原理图以及硬件描述等等,那么VHDL的背景也是我们一个必要了解的内容。

VHDL全名Very-High-SpeedIntegratedCircuitHardwareDescriptionLanguage,诞生于1982年。

1987年底,VHDL被IEEE和美国国防部确认为标准硬件描述语言。

自IEEE-1076(简称87版)之后,各EDA公司相继推出自己的VHDL设计环境,或宣布自己的设计工具可以和VHDL接口。

1993年,IEEE对VHDL进行了修订,从更高的抽象层次和系统描述能力上扩展VHDL的内容,公布了新版本的VHDL,即IEEE标准的1076-1993版本,简称93版。

VHDL和Verilog作为IEEE的工业标准硬件描述语言,得到众多EDA公司支持,在电子工程领域,已成为事实上的通用硬件描述语言。

VHDL语言有诸多特点,下面我们就以下两点说明一下:

功能强大、设计灵活

  VHDL具有功能强大的语言结构,可以用简洁明确的源代码来描述复杂的逻辑控制。

它具有多层次的设计描述功能,层层细化,最后可直接生成电路级描述。

VHDL支持同步电路、异步电路和随机电路的设计,这是其他硬件描述语言所不能比拟的。

VHDL还支持各种设计方法,既支持自底向上的设计,又支持自顶向下的设计;既支持模块化设计,又支持层次化设计。

支持广泛、易于修改

  由于VHDL已经成为IEEE标准所规范的硬件描述语言,目前大多数EDA工具几乎都支持VHDL,这为VHDL的进一步推广和广泛应用奠定了基础。

在硬件电路设计过程中,主要的设计文件是用VHDL编写的源代码,因为VHDL易读和结构化,所以易于修改设计。

CPLD及电子CAD

第一章:

VHDL中的进程、信号与变量

1.VHDL中的基本单元结构及基本内容:

1.Entity(实体):

像一个黑盒子一样,用来说明模型外部的输入输出特征

2.Architecture(构造体):

用来定义模型的内容和功能,每一个构造体必须有一个实体与它相对应,所以两者一般成对出现;

3.Generic(类属参量):

规定端口的大小、实体中子元件的数目等;

4.Ports(端口):

是实体的一部分,主要用于信号的传输;常见的端口类型有IN(数据只能进实体),OUT(数据只能流出实体),INOUT(即可流进又可流出),BUFFER(数据流进实体同时可被反馈);

5.数据类型:

BIT(位类型,只取‘0’或‘1’);BIT_VECTOR(位矢量类型,包含一组位类型)

6.Std_Logic数据类型:

电路中有三态逻辑必须用std_logic和std_logic_vector;

7.构造体:

描述实体的内部结构和逻辑功能,和实体相联系,一个实体可以有多个构造体,构造体的运行时并发的;

2.VHDL进程:

进程语句是VHDL中最重要的语句,具有并行和顺序行为的双重性,其特点主要有:

1.进程和进程语句之间是并行的关系;

2.进程内部是一组连续执行的顺序语句;

3.进程语句与结构体中的其余部分进行信息交流是靠信号来完成的;

4.一个构造体可以有多个进程语句;

5.进程的基本格式:

【进程标号:

】PROCESS[(信号敏感表)]IS

<说明区>

BEGIN

<顺序语句>

ENDPROCESS[进程标号];

6.进程举例

这里看一下24进制计数器的进程。

Libraryieee;

USEieee.std_logic_1164.all;

USEieee.std_logic_unsigned.all;

ENTITYjsq24_60is

port(clk:

instd_logic;

clr:

instd_logic;

en:

instd_logic;

c,d:

outstd_logic_vector(3downto0);

carry:

outstd_logic);

end;

Architectureoneofjsq24_60is

signalm,n:

std_logic_vector(3downto0);

begin

Process(clk,clr,en,m,n)

begin

ifclr='1'then

m<="0000";n<="0000";

elsifclk'eventandclk='1'then

ifen='0'then

 

ifm=3andn=2then

n<="0000";m<="0000";carry<='1';

elsifm=3then

m<="0000";n<=n+1;

else

m<=m+1;carry<='0';

endif;

endif;

endif;

endprocess;

d<=m;

c<=n;

end;

通过这个24进制计数器我了解到了VHDL语言编写cpld的整体结构以及通过这个例子了解到编写程序必须注意什么。

比如:

结尾符号,有开头,有结束,大区间里的小区间也要有开始与结束等等,

 

CPLD及电子CAD

第二章并行语句、顺序语句

1.并行语句

1.在VHDL中,并行语句有多种语句格式,包括:

并行信号赋值语句、进程语句、块语句、条件信号赋值语句、元件例化语句,生成语句,并行过程调用语句。

2.并行信号赋值语句:

它包括简单信号赋值语句、条件信号赋值语句和选择信号赋值语句。

3.并行语句的优点:

并行语句是硬件描述语言与一般软件程序的最大区别所在,所以并行语句在结构体中的执行都是同时进行的,即他们的执行顺序与语句的书写的先后顺序无关。

这种并行性是由硬件本身的并行性所决定的,即电路接通电源,它的各部分就会按照事先设计好的方案同时工作。

4.并行语句有with_select_then,when_else,if_then_else和case_when四种。

例如Withsselect

x<=awhen“00”,

bwhen“01”,

cwhen“10”,

dwhenothers;这是with_select_then语句,该语句的作用是当s分别为“00”“01”“10”时,对应把a,b,c赋值给x,否则把d赋值给x。

2.顺序语句

1.每一条语句的执行顺序与其书写顺序一致。

2.顺序语句只能出现在进程、函数和过程中。

3.顺序语句包括:

赋值语句、流程控制语句、等待语句、子程序调用语句、返回语句、空操作语句。

4.顺序语句举例:

程序如下业截图

程序调试步骤:

①选择file-new,然后选择waveformEditor file,再从下拉列表中选择.扩展名,并按ok,即可创建一个新的无标题的文件,保存并修改名称。

②选择file-end time,在出现的对话框中输入1s,按ok,则设置了结束时间;③选择options-gird size,输入30ns,按ok;④选择node-enter nodes from SFN菜单项⑤选中type框中input和output项,选择list,选择=>按钮,按ok根据需要编辑波形。

 

首先我们看一下下面24进制计数器的程序(实验截图)

对应的仿真波形图如下

 

 

CPLD及电子CAD

第三章循环语句、双向口

1.循环语句

  1.循环语句的基本格式为:

  [LOOP标号:

]

  [重复模式]LOOP

  顺序语句;

  ENDLOOP[LOOP标号]

2.举例说明:

foriin7downto4loop

shift_var(i):

=shift_var(i-4);

endloop;

该语句的作用是当i=4,5,6,7时,执行顺序语句shift_var(i):

=shift_var(i-4)。

2.双向口 

1.双向口申明的格式为:

[双向口标号]:

INOUT[数据类型];

2.双向口既可以作为输入也可以作为输出。

双向端口在完成输入功能时,必须使原来成输出模式的端口成高阻态,否则,待输入的外部数据势必会与端口处原有电平发生“线与”,导致无法将外部数据正确的读入,从而实现“双向”的功能。

双向口程序截图如下:

3.波形仿真过程为:

MAX+plusII→WaveformEditor→(Options→GridSize→30ns)→Node→EnterNodesfromSNF→List→给定输入信号高低电平→XC

选中所有输入信号,点击右键→EnterGroup,可以创建组。

4.双向口仿真波形如下图:

 

 

下次课是第四章,也是这学期老师说的最重要的内容,那就是数字钟程序设计,前面学了那么多,让我对CPLD以及VHDL语言有一个很明确的认识,但是我自己100%的独立快速完成一个制定程序还很困难,我希望再第四章之后,我要加倍的努力跟着老师的脚步学习同时自己在课外多多查阅资料,争取在这个学期这门课能有一个很大的收获并画上一个圆满的句号,加油!

 

CPLD及电子CAD

第四章数字钟综合设计

一、实验目的:

1.掌握多位计数器相连的设计方法;

2.掌握十进制,六进制,二十四进制计数器的设计方法;

3.继续巩固多位共用级扫描显示数码管的驱动及编码;

4.掌握扬声器的驱动;

5.LED灯的花样显示;

6.掌握EPLD技术的层次化设计方法。

7.能将数字钟的各个单元电路组合成整机电路。

8.会装配和调试数字钟电路。

9.会制作分频电路。

10.会用中规模集成电路制作出组合逻辑电路和时序逻辑电路。

二、实验原理及主要步骤

1.这里用到了状态机,六十进制计数器、二十四进制的计数器,分频器,比较器,报时器,选择器,闹钟计数器,以及做秒表的100进制计数器等等

2.在同一EPLD芯片EP1K30TC144-1上集成了如下电路模块:

1)时钟计数:

秒——60进制BCD码计数

分——60进制BCD码计数

时——24进制BCD码计数

2)计数器有清零、调分、调时功能。

3)在整数时间能提供报时信号。

4)具有驱动8位八段共阴极扫描数码管的片选驱动信号输出和八段字形译码输出。

5)扬声器在整点时有报时驱动信号产生。

此设计任务分成若干模块,规定每一块的功能和各模块之间的接口。

先分做

和调试其中之一,然后再将各模块联合起来联试。

6)对于不同目录下的同一设计,模块说明如下:

各种进制的计数及时钟控制模块;扫描分时显示,译码模块;扬声键编码模块;微秒功能;闹钟功能;

3.由程序生成元件的过程:

MAX+plusII→GraphicEditor→点击右键→EnterSymbol→选择要生成元件的程序。

4.状态机用来切换数字钟的三种功能。

5.或者我们可以运用选择器,对应的程序图如下:

 

6.六十进制计数器用作秒和分,二十四进制的用作小时,对应程序如下:

图为60进制计数器截图,程序为

Libraryieee;

USEieee.std_logic_1164.all;

USEieee.std_logic_unsigned.all;

ENTITYjsq60_60is

port(clk:

instd_logic;

clr:

instd_logic;

en:

instd_logic;

c,d:

outstd_logic_vector(3downto0);

carry:

outstd_logic);

end;

Architectureoneofjsq60_60is

signalm,n:

std_logic_vector(3downto0);

begin

Process(clk,clr,en,m,n)

begin

ifclr='1'then

m<="0000";n<="0000";

elsifclk'eventandclk='1'then

ifen='0'then

 

ifm=9andn=5then

n<="0000";m<="0000";carry<='1';

elsifm=9then

m<="0000";n<=n+1;

else

m<=m+1;carry<='0';

endif;

endif;

endif;

endprocess;

d<=m;

c<=n;

end;

60禁止计数器仿真波形图为

 

波形图的得到在上述有说明,这里不做详细说明了,望老师理解哈!

此图为24进制计数器,主要用来计数时钟小时和闹钟小时,程序文本如下

Libraryieee;

USEieee.std_logic_1164.all;

USEieee.std_logic_unsigned.all;

ENTITYjsq24_60is

port(clk:

instd_logic;

clr:

instd_logic;

en:

instd_logic;

c,d:

outstd_logic_vector(3downto0);

carry:

outstd_logic);

end;

Architectureoneofjsq24_60is

signalm,n:

std_logic_vector(3downto0);

begin

Process(clk,clr,en,m,n)

begin

ifclr='1'then

m<="0000";n<="0000";

elsifclk'eventandclk='1'then

ifen='0'then

 

ifm=3andn=2then

n<="0000";m<="0000";carry<='1';

elsifm=3then

m<="0000";n<=n+1;

else

m<=m+1;carry<='0';

endif;

endif;

endif;

endprocess;

d<=m;

c<=n;

end;

 

7.比较器程序截图:

源程序为

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

entitybjq_60is

port(dss,dsg,dfs,dfg,ss,sg,fs,fg:

instd_logic_vector(3downto0);

q:

outstd_logic);

end;

architectureoneofbjq_60is

begin

process(dss,dsg,dfs,dfg,ss,sg,fs,fg)

begin

if

dss=ssanddsg=sganddfs=fsanddfg=fgthen

q<='1';

else

q<='0';

endif;

endprocess;

end;

8.报时器截图如下:

对应程序为:

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

entitybjq_60is

port(dss,dsg,dfs,dfg,ss,sg,fs,fg:

instd_logic_vector(3downto0);

q:

outstd_logic);

end;

architectureoneofbjq_60is

begin

process(dss,dsg,dfs,dfg,ss,sg,fs,fg)

begin

if

dss=ssanddsg=sganddfs=fsanddfg=fgthen

q<='1';

else

q<='0';

endif;

endprocess;

end;

这里模块主要的就这些,当然如果要实现秒表还需要分频器,以及100进制计数器,原理都是一样的,下面我们要做的就是整合模块,把这些模块按照对应原理完成接线。

 

9.数字钟GDF格式文件如下图,这里本人为了更加清晰的观看,截图为2个,截图如下:

上面2个截图合为一起就是完整的数字钟原理接线图,大家看到,假如我们全部接线的话,那比较器与选择器就需要做出改动,相反,假如我们用代号接线的话,那就清晰得多,同时也会避免连线错误等等。

代号接线:

鼠标左键点击要接的线,然后对应写上接线代号,

此处模块的粗黑线的方法是先从有粗黑线模块把线接到输出端(对应output),这时再从中间截出一部分,

就形成了。

 

附加:

引脚对照图截图如下:

 

之后就是下载到装置,这个操作很简单,就是添加数字钟scf文件,然后选择装置模式5进行下载,就可以验证数字钟程序的功能

 

10.实验完成的效果:

1.可清零;秒分为00-59六十进制计数器,时为00-23二是进制计数器;3.可手动校正分时,对应键清零,对应键暂停,对应键调秒,对应键调分,对应键调时,对应键调节闹钟与时钟状态;4.计时过程具有报时功能,当时间达到整点时报时,当达到整分时报时。

CPLD及电子CAD

第五章 Protel原理图、PCB图

一、实验目的:

a)初步掌握PROTE199软件的使用;

b)了解由555组成多谐振荡器,555组成单稳态触发器。

二、实验原理:

多谐振荡器的工作原理如下:

当工作电源接通后,通过R1、R2对电

容C1充电,当VC上的电压上升到2/3V1时,RS触发器复位,输出为0,

同时,内部放电三极管导通,C1通过R2、T(555内部)放电,当VC下降

到1/3V1时,RS触发器置位,输出为1。

三、实验步骤:

1.设计电路原理图,包括装入元器件库,放置及调整元器件位置,编辑元器件属性,绘制原理图;

2.电路图的后期处理,包括检查电路原理图,电路原理图的修饰;

3.设计印制电路板;

4.生成各种电路原理图报表文件,主要是生成网络表文件。

打开软件protel99,建立一个新的文件,将所用到的文件引入左侧区中。

工作区内将由555组成的多谐振荡器的电路图。

四、protel搭线截图:

更新PCB文件截图如下,具体步骤为先添加PCB文件库,然后在原理图界面选择更新PCB文件,然后选择适合整板显示,这样初步PCB文件已经形成,如下图所示:

这里大家可以看到器件没有标注,原因是忘记了设置分辨率,分辨率过低,解决办法是放大或者设置合适的分辨率,以便于观看。

五、protel搭线截图的整体效果如下截图:

六、reports报告比较得出生成网格表结论一致,如下截图:

 

经过对比我们可以得出,在原理图下的网络表与在PCB下的网络表的各项信息都是一致的,证明PCB的板块是没有问题的。

 

小结:

设计线路板时我们在电脑上制图应尽量保证最大空间的利用以便于节省材料,经过老师的详细讲解与自己的认真听讲,我对这次课的内容已经有了明确的把握,希望这次的基础了解能对以后接触这方面的内容有一个很好的铺垫!

 

CPLD及电子CAD

学习心得与总结

一学期的CPLD及电子CAD很快的就结束了,虽然只有8次课,可是通过这短短的8次课的实践,让我收获很多。

这学期我们在EDA实验室主要是应用maxplus2软件进行基于VHDL语言的CPLD程序汇编,我知道这是一个比较大的学科范围,在科学技术领域应用颇多,8次课我收货很多,但是也知道这也只是冰山一角,要想在这个领域有大的突破更加需要我不断的努力学习。

这个学期为期最长的实验就是数字钟设计,我觉得虽然最后结合众人成果加上自己的成果完成了基本的数字钟模型,但是我知道假如单独自己的话还是很困难,8次课的学习让我学会了知识的同时,也让我明白了合作的重要,不论干什么都离不开合作。

回想一下这个学期的主要要点:

1:

首先,CPLD是一种用户根据各自需要而自行构造逻辑功能的数字集成电路。

其基本设计方法是借助集成开发软件平台,用原理图、硬件描述语言等方法,生成相应的目标文件,通过下载电缆(“在系统”编程)将代码传送到目标芯片中,实现设计的数字系统。

2:

VHDL语言的要点、特点、要求等等。

3:

学习了程序的逻辑。

4:

运用单元模块实现多功能的器件模型。

5:

PCB板的开发设计基本原理。

 

目标:

本人希望自己以后再接再厉,向更高的阶梯迈进,学习了CPLD及电子CAD这门课程,使我知道了知识的作用,科技的作用,我希望自己以后能成为一个有价值的人,能对家庭,对社会做出应尽的义务和贡献,最后祝自己能早日实现自己的理想。

三峡大学电气与新能源学院

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

当前位置:首页 > 高等教育 > 农学

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

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