CPLD实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

CPLD及电子CAD 实验报告
姓名:
学号:
网选班级:
网选序号:
同组同学姓名:
三峡大学电气与新能源学院
1
CPLD实验报告
本学期中我们学习了CPLD及电子CAD这门课程,在9周的学习中感觉自己收获颇丰。

掌握了许多之前不懂的知识,也了解了数字钟的基本原理和基本构成。

对这门以前十分陌生的课程有了一定的了解,虽然在学习的过程中遇到了很多困难,但还是很有收获的。

第一堂课我们初步了解了VHDL语言的基础知识,知道了VHDL语言与其他语言相比具有很多的优点,它具有更强的行为描述能力,这种语言有丰富的仿真语句和库函数,使其在设计的早期就能查验设计系统功能的可行性,随时可对设计进行仿真模拟。

这些许多的优点对于系统的设计有很大的帮助。

在第一章的学习过程中我了解了vhld语言中的一些关键字的含义,VHDL中的进程、信号、变量。

VHDL的进程语句是最重要的语句,具有并行和顺序行为的双重性,另外,进程和进程语句之间是并行关系,在进程的内部是一组连续执行的顺序语句,进程语句与构造体中的其余部分进行信息交流是靠信号完成的。

在初步掌握了进程的概念后我们继续学习了它的基本格式
[进程标号:]PROCESS[ (信号敏感表)]IS
<说明区>
BEGIN
<顺序语句>
END PROCESS[进程标号];
同时,在一个构造体里可以有多个进程语句,进程与进程之间是并行的,通过信号完成数据交换。

提到进程就不得不提到信号敏感表,进程是依靠它启动的,这就是关于进程的学习。

下面我们又学习了信号的知识,信号与常量一样都是数据的对象,数据处理就是处理信号以及常数。

信号课代表连线,内连元件,或端口,我们用<=用来给信号赋值,信号在构造体内要声明。

要用信号就要对信号赋值,多位的赋值要用双引号,逐位赋值要用单引号。

数据的另一个对象时变量,变量在程序中会发生变化,但它仅用于进程的子程序,变量在使用前需要在进程和子程序的说明性区域进行说明。

它的功能是有限的,它不能表达连线的储存元件,它的保留字是V ARIABLE,在对其进行赋值时,与信号类似,多为赋值要用双引号例如:temp:“10101010”逐位赋值要用单引号。

信号和变量作用的范围不一样,在进程的外面声明作用范围位全局,在进程内部说明的作用范围为进程内。

下面老师着重给我们区分了信号和变量的区别;
首先它们的赋值符号就不一样,信号的是<=,而变量的赋值符号是:=;再就是它们的功能不相同,信号的功能在于电路的内部连接,变量的在于内部的数据交换;作用范围当然也是有区别的,进程作用于全局,连接进程和进程间的通信,变量则是作用于进程的内部;信号延迟一定时间后才会赋值,而变量则是立即赋值。

在第二章的学习过程中我了解了并行语句、顺序语句的区别及其用法,首先是并行语句:VHDL语言有多种语句格式,在执行时,并行语句之间可以有信息往来,也可以是互为独立,互不相关,异步运行,每一并行语句内部的语句运行方式可以有两种不同的方式,并行执行方式和顺序执行方式;下面是顺序语句,每一条顺序语句的执行顺序是与它们的书写顺序基本一致的,它指出现在进程,函数和过程中,它包括赋值语句,流程控制语句,等待语句,
2
3
子程序调用语句,返回语句,空操作语句。

在下面的一章我们学习了循环语句和双向口,所谓循环语句,它的基本格式是:
[LOOP 标号:]
[重复模式]LOOP
顺序语句;
END LOOP[LOOP 标号
NEXT
[LOOP 标号][WHEN 语句]在程序中实现
重复执行的功能,双向口。

在初步掌握了这些知识后,我们就开
始了数字钟的设计,数字钟的功能要求达
到,数字形式显示时、分、秒的时间;小
时计数器为同步24进制;要求手动校时、校分。

在设计时,先要实现数字显示时分秒,要考虑时分秒的进位问题,我们设计了24式时钟,那么这个程序的功能就是,控制时钟是24制式的,在编程结束之后,仔细检查自己的语法或者格式,确实无误后就可以编译了,编译不通过的话就通过错误的提示继续改正自己的程序。

当编译无误之后,就可以创建,gdf 文件和symbol 了,这样创建出来的symbol 也可以在之后的数字钟的构建中通过调用的方式来使用,避免了在一个较大的器件中构建太多的程序,而是通过调用的方式来简化创建过程。

值得注意的是,在创建symbol 的过程中也需要编译。

而且当你发现之前程序中出错的时候,而根据这个程序创建的symbol 已经在使用的时候,不用重新创建和连图那么麻烦。

只需要在改正程序中的错误之后再重新编译,之后重新创建symbol (这里值得注意的是:在改正程序中的错误之后,重新编译的时候会跳出一个对话框提示你save all changes before compiling the product 的时候要记得点否,然后才能编译和再创建symbol ,否则会有错误产生)。

接下来的课程中,我们继续做了做报时电路、分频电路、二选一电路。

将2个60进制,1个24进制,报时器,定时器和若干逻辑元件组成报时电路,实现整点报时功能,另外由于加入了clk2,实现了整点前5
秒开始低声蜂鸣,整点时高声蜂
鸣。

报时电路分配管脚时容易产
生一些问题。

如:clk2管脚必须
放在126的地方,不然clk2不
工作,前5秒不蜂鸣;clk3的管
脚要放在56脚;speak 接在99
号管脚。

时钟区选频率,clk0
选256Hz ,clk2选4kHz 或者
8kHz ,clk3选4096Hz 或更高。

在编程完成时,下载之后机器没
有鸣叫,于是开始查找问题,逐步查找,都没有发现,就换了台机器,下载之后就鸣叫了,所以实验不能单方面检查,必须全面。

定时器实现闹钟功能,通过调定时分。

这就是报时程序。

4
在接下来的实验课程中,我们
做出了state 程序,在做这些
程序的时候,我觉得比较麻烦
的一件事情就是分配引脚,引
脚在分配以后要经过编译一次
才能被保存下来,开始不知道,
导致后来出现了很多的问题出
现,将引脚分配完成后,并一
步不进行编译没有错误后,就
要开始做GDF 文件了,新建文
件后右键将每个程序的GDF 图
加进来,这哈不算完,加进来
后还要连线,连线时十分复杂,
必须要仔细才行,这是我们连
出的图,花费了比较长的时间。

线连完后,还要进行编译,要确定这个没有错误的时候才可以,这样的才可以写入机器进行仿真。

下面的学习中,我们剩下的任务就是将其写入机器进行仿真,写入机器后,我们的程序出现了一些问题,在老师的指导下,我们陆续解决了一些问题,开始是数码管上的显示小时和分钟的顺序是反的,我们重新分配了引脚,然后经过调试,才解决了这个问题。

一切都没有问题后,我们在机器上实现了时钟的功能,虽然在报时和定时的功能上嗨有一定的缺陷,但我觉得还是很有收获的。

在最后的一节课上,老师教了我们用一个新的软件,Design Explore99.这个软件是一个制图的软件,用于电气的制图以及生成PCB 文件,只有一节课的时间,老师讲的很快,开始我没有跟上老师的速度,但在不断询问其他同学
后,我终于摸到了门路,完成了老师交给我的
任务。

下面就是老师要求我们完成的任务,制
图并完成它的PCB 图。

5
学习总结:作为电气专业的学生来说,掌握各种电气软件和编程语言是十分重要的,本次的学习过程中 ,我认为我是受益匪浅的,不仅在CPLD 方面,对maxplus 软件的使用。

更多的培养了和伙伴协作的能力,以及自己对数字钟的基本原理和基本构造的认知。

感谢这次难忘的经历,让我能够更好的提高自己,也感谢老师在9周中的悉心教导虽然在做的过程中出现了各种各样的问题,在老师的耐心讲解下自己解决了很多问题。

时钟做到最后虽然有些功能没有实现,但在这个过程中,我学会了编译软件的使用,在以后的工作中,对于VHDL 语言不会感到陌生,这是我的学习收获吧。

相关文档
最新文档