CPLD报告.docx
《CPLD报告.docx》由会员分享,可在线阅读,更多相关《CPLD报告.docx(13页珍藏版)》请在冰豆网上搜索。
![CPLD报告.docx](https://file1.bdocx.com/fileroot1/2023-2/1/90c0121a-277b-4e6f-aa22-08d51cb784dc/90c0121a-277b-4e6f-aa22-08d51cb784dc1.gif)
CPLD报告
CPLD与电子CAD报告
班号:
序号:
学号:
姓名:
同组同学姓名:
三峡大学电气与新能源学院
第一章VHDL中的进程、信号、变量
第二章并行语句、顺序语句
第三章循环语句、双向口
第四章数字钟综合设计
第五章Protel原理图、PCB图
第六章课程学习总结
第一章VHDL中的进程、信号、变量
CPLD与FPGA器件的区别:
可编程逻辑器件(ProgrammableLogicDevice)中,目前来看应用最广泛的是CPLD、FPGA、EPLD等。
复杂可编程逻辑器件CPLD(ComplexProgrammab1eLogicDevice)、现场可编程门阵列FPGA(FieldProgrammableGateArray)和可擦除可编程逻辑器件EPLD(ErasableProgrammableLogicDevice),它们都具有体系结构和逻辑单元灵活、集成度高以及适用范围宽等特点。
CPLD与FPGA相比容量小一些、速度慢一点,CPLD掉电后信息不丢失,FPGA掉电后信息全部丢失。
文件命名要求:
MAX+PLUSII是MultipleArrayMatrixandProgrammableLogicUserSystemII的英文缩写,中文全称是复阵列矩阵及可编程逻辑用户系统。
MAX+PLUSII不支持中文文件夹,所以我们要用英文字母或1、2、3等作为文件夹的名字。
VHDL基本结构
库声明:
实现库的调用,具体调用的是程序包中的内容
Library库名;
use库名.程序包名.项目名;
实体:
描述电路的外部特性,即电路的输入与输出
⏹描述此设计功能输入输出端口(Port)
⏹在层次化设计时,Port为模块之间的接口
⏹在芯片级,则代表具体芯片的管脚
Entityeqcomp4is
port(a,b:
instd_logic_vector(3downto0);
equal:
outstd_logic
);
endeqcomp4;
结构:
描述电路内部实现的功能;
描述实体的行为
结构体有三种描述方式
⏹行为描述(behavioral)
⏹数据流描述(dataflow)
⏹结构化描述(structural
VHDL允许一个实体对应多种结构。
VHDL中的进程、信号、变量
进程语句:
进程语句由顺序语句组成,但其本身却是并行语句。
进程语句分带敏感信号参数表格式和不带敏感信号参数表格式两种。
带敏感信号参数表的PROCESS语句格式为:
[进程标号:
]PROCESS[(敏感信号参数表)][IS]
[进程声明部分]
BEGIN
顺序语句;
ENDPROCESS[进程标号];
不带敏感信号参数表的PROCESS语句格式为:
[进程标号:
]PROCESS[IS]
[进程声明部分]
BEGIN
WAIT语句;
顺序语句;
ENDPROCESS[进程标号];
信号
●作为一种数值容器,不仅可容纳当前值,也可保存历史值。
●信号类似于连接线,可以作为设计实体中各并行语句模块间的信息交流通道。
●在结构体声明后才能使用。
●信号的数据传入不是即时的,即目标信号需要一定延迟时间,才能接收到源信号的数据。
●在进程中只能将信号列入敏感表,而不能将变量列入
●信号声明格式
SIGNAL信号名:
数据类型约束条件:
=表达式
●信号赋值格式
目标信号名<=表达式
信号举例:
LIBRARYieee;
USEieee.std_logic_1164.all;
ENTITYsimp_25_26IS
PORT(a,b,c,d:
INStd_LOgic;
g:
OUTStd_Logic);
ENDsimp_25_26;
ARCHITECTURElogicOFsimp_25_26ISSIGNALe,f:
std_logic;
BEGIN
e<=aorb;f<=not(cord);g<=eandf;
ENDlogic;
变量
●局部量
●只用于进程、函数和子程序
●不能将信息带出对它定义的当前设计单元
●变量赋值立即有效,不存在任何延时。
●变量声明格式
VARIABLE变量名:
数据类型约束条件:
=表达式
●变量赋值格式
目标变量名:
=表达式
信号与变量的区别:
信号
变量
基本用法
用于作为电路中的信号连线
用于作为进程中局部数据存储单元
适用范围
在整个结构体内的任何地方都能适用
在进程、过程、函数中使用
行为特性
信号的数据传入不是立即的
立即赋值,其值可立即使用
赋值符号
<=
:
=
第二章并行语句、顺序语句
并行语句
并行语句在VHDL与传统的计算机编程语言的区别中,是最具有特色的语句结构。
在VHDL中,并行语句有多种语句结构,各种并行语句在结构体的执行是同步的,或者说是并行运行的,其执行方式与语句书写的循序无关。
在执行中,并行语句之间可以有信息往来,也可以互相独立。
并行语句主要有并行信号赋值语句·进程语句·块语句·条件信号赋值语句·元件例化语句·生成语句和并行过程调用语句7种。
这些语句在一个结构体中不必同时存在,每一个语句模块都可以独立进行,并可以用信号来交换信息。
如此题例子,就是一个选择信号赋值语句,其格式为:
WITH选择表达式SELECT
赋值目标信号<=表达式WHEN选择值,
表达式WHEN选择值,
……
表达式WHEN选择值,
【表达式WHENOTHERS】;
顺序语句:
每一条顺序语句的执行顺序是与它们的书写顺序是一样的
顺序语句只能出现在进程,函数和过程中
顺序语句包括:
赋值语句,流程控制语句,等待语句,子程序调用语句,返回语句,空操作语句
进程语句举例:
第三章循环语句、双向口
循序语句:
循序语句与并行语句都是VHDL的基本描述语句。
在数字逻辑电路系统的设计中,这些语句从多侧面完整描述了系统硬件结构和基本逻辑功能。
循序语句只能出现在进程(PROCESS),过程(PROCEDURE)和函数(FUNCTION)中,其特点与传统的计算机编程预言类似,按程序书写的循序自上而下,一条一条地执行。
利用循序语句可以描述数字逻辑电路和时序逻辑电路。
VHDL的循序语句有赋值语句,流程控制语句,WAIT语句,断言语句,空操作语句和子程序调用语句共6条。
双向口:
在VHDL中,双向口,指的也就是一个三态门电路。
三态门电路是一种重要的总线接口电路。
三态,指的是它的输出既可能是一般二值逻辑电路的正常的状态,也可以保持特有的高阻抗状态。
处于高阻态时,其输出相当于断开状态,没有任何逻辑控制功能。
Loop语句:
Loop是循环语句,它可以使一组顺序语句重复使用,执行的次数由设定的循环参数确定,loop语句有三种格式,每种格式都可以用“标号”来给定语句定位,但也可以不使用,因此,用方括号将“标号”括起来,表示任意项。
其三种格式:
FOR_LOOP语句:
[标号:
]For循环变量IN范围LOOP
顺序语句组;
ENDLoop[标号];
WHILE_LOOP语句:
[标号:
]WHILE循环控制条件LOOP
循环语句;
ENDLOOP[标号];
单个LOOP语句:
[标号:
]loop
顺序语句;
ENDLOOP[标号];
第四章数字钟综合设计
数字时钟设计的基本任务:
•基本功能
Ø以数字形式显示时、分、秒的时间;
Ø小时计数器为同步24进制;
Ø要求手动校时、校分。
•扩展功能
Ø仿广播电台正点报时;
Ø自动报整点时数。
Ø任意时刻闹钟;
Ø小时显示(12/24)切换电路
Ø驱动8个二极管作为背景灯
Ø秒表
闹钟的实现原理图:
实现100进制的秒表计数器的波形图:
实现60进制的分钟计数器的波形图:
实现24进制的小时计数器的波形图:
数字时钟的接线图:
最后将编写的程序下载到硬件中进行验证,其中的管脚分配如下:
信号输入端:
Clr8en9tf10ts12dtf13dts17kg18sel19
信号输出端:
mg30313233ms36373839fg41426567
fs68697072sg73787980ss81828386speaker99
时钟输入信号:
Clk54clk56clk124
在装置上模拟时,各按键的功能为:
按键1启动时钟
按键2暂停时钟
按键3调分钟
按键4调时钟
按键5定时调分
按键6定时调时
按键7闹钟开启
按键8实现秒表,调闹钟,显示时钟之间的转换
经过检验,模拟时能实现如下功能:
1.能够整点报时,报时一声
2.能够实现秒表功能
3.能够定时,设置闹钟,报时五声
第五章Protel原理图、PCB图
电路设计的最终目的是为了设计出电子产品,而电子产品的物理结构是通过印刷电路板来实现的。
Protel199为设计者提供了一个完整的电路板设计环境,使电路设计更加方便有效。
应用Protel199设计印刷电路板过程如下:
(1)启动印刷电路板设计服务器
(2)规划电路板
(3)设置参数
(4)装入元件封装库
(5)装入网络表
(6)元器件布局
(7)自动布线
(8)进行比较
第六章课程学习总结
经过每周三小时共八周的CPLD及电子CAD的学习,掌握了一种新的编程语言VHDL,并学会了使用Max+plus这款软件的基本使用,完成了数字钟综合设计。
在编程的过程中,学会运用根据实验电路结构图NO5,查找结构图信号与芯片引脚对照编号,实现编程下载。
学习的主要内容大致可概括有:
信号与变量的差别,并行处理的优点、数字钟综合设计,包括电路的工作原理、程序、仿真波形,还有就是应用Protel199设计印刷电路板。
其中程序的编译和调试占有很大的比重。
我们知道学习新的知识不可能一帆风顺的,在这次的学习过程中也遇到了很多的问题,感谢老师的耐心的指导,才能使问题得到解决。
现总结如下:
1.在编程过程中,文件名要与程序中的实体名保持一致,这样才能编译成功。
在初学阶段,经常会遗忘这一点,出现不必要的错误。
2.在选择程序进行编译的时候,一定要将程序置于文件当前项,这样才能编译成功,避免进入不必要的误区
3.编辑图形文件时,输入图形要删除原来建立的图形文件,这样才能正确的输入,若不这样,就会出现错误,无法完成
4.若输入的图形与文件编出的不相符,则需要更新后再输入,可选择部分更新图形选项,这样才能做的很好
并且熟练地掌握了编程下载的方法,如下:
1.指定器件assign/device选择ACEX1K和EP1K30TC144-1
2.编译生效max+plus/compiler
3.分配管脚max+plus/floorplaneditor
4.编译生效max+plus/compiler
5.打开装置的电源开关,调到模式5
6.下载max+plus/programmer
7.载入下载文件JPEG/Multi-DeviceJPEGChainSetup
8.删除无用的文件,选中后点delete
9.浏览文件后缀为.SOF,点add添加
10.点configure下载
在学习的过程中,同组的两个同学互相合作,共同的完成了实验,让我知道了合作的重要性,同时也为以后的学习各种程序语言打下了坚实的基础,提供一种学习方法。
也认识到了现代数字电路的设计相对于传统设计而言的优势,EDA技术依靠功能强大的电子计算机,在EDA工具软件平台上,对以硬件描述预言HDL为系统逻辑描述手段完成的设计文件,自动的完成逻辑编译,化简,分割,综合,优化,仿真,直到下载到可编程逻辑器件CPLD或专门集成电路芯片上,实现既定的电子设计功能。
由EDA技术设计,使得电路设计者的工作量大大减少,提高了工作效率,缩短了设计周期,节约了设计成本。
这门课程的学习无疑开拓了我们的视野,提高了自己的能力,也加强了我们的专业知识,相信在不久的将来,我们将运用所学的知识为社会创造价值,做出自己的贡献。