EDA实验报告数字秒表.docx
- 文档编号:30349026
- 上传时间:2023-08-13
- 格式:DOCX
- 页数:37
- 大小:653.07KB
EDA实验报告数字秒表.docx
《EDA实验报告数字秒表.docx》由会员分享,可在线阅读,更多相关《EDA实验报告数字秒表.docx(37页珍藏版)》请在冰豆网上搜索。
EDA实验报告数字秒表
EDA实验报告
数字秒表的设计
指导老师:
谭会生
班级:
电技1503
学号:
15401700314
姓名:
冯博
交通工程学院
2017.10.28
实验二数字秒表电路的设计
一、实验目的
1.学习QuartusⅡ软件的使用方法。
2.学习GW48系列或其他EDA实验开发系统的基本使用方法。
3.学习VHDL程序的基本结构和基本语句的使用。
二、实验内容
设计并调试一个计时范围为0.01s~1h的数字秒表,并用GW48系列或其他EDA实验开发系统进行硬件验证。
三、实验要求
1.画出系统的原理框图,说明系统中各主要组成部分的功能。
2.编写各个VHDL源程序。
3.根据系统的功能,选好测试用例,画出测试输入信号波形或编好测试程序。
4.根据选用的EDA实验开发装置偏好用于硬件验证的管脚锁定表格或文件。
5.记录系统仿真,逻辑综合及硬件验证结果。
6.记录实验过程中出现的问题及解决方法。
四、实验条件
1.开发软件:
QuartusⅡ13.0.
2.实验设备:
GW48系列EDA实验开发系统。
3.拟用芯片:
EP3C55F484C7
五、实验设计
1.设计思路
要设计一个计时范为0.01S~1h的数字秒表,首先要有一个比较精确的计时基准信号,这里是周期为1/100s的计时脉冲。
其次,除了对每一个计数器需要设置清零信号输入外,还需为六个技术器设置时钟使能信号,即计时允许信号,以便作为秒表的计时起、停控制开关。
因此数字秒表可由一个分频器、四个十进制计数器以及两个六进制记数器组成,如图1所示。
系统原理框图
2.VHDL程序
(1)3MHz→100Hz分频器的源程序CLKGEN.VHD
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYCLKGENIS
PORT(CLK:
INSTD_LOGIC;--3MHZ信号输入
NEWCLK:
OUTSTD_LOGIC);--100HZ计时时钟信号输出
ENDENTITYCLKGEN;
ARCHITECTUREARTOFCLKGENIS
SIGNALCNTER:
INTEGERRANGE0TO10#239999#;--十进制计数预置数
BEGIN
PROCESS(CLK)IS
BEGIN
IFCLK'EVENTANDCLK='1'THEN
IFCNTER=10#239999#THENCNTER<=0;--3MHZ信号变为100MHZ,计数常熟为30000
ELSECNTER<=CNTER+1;
ENDIF;
ENDIF;
ENDPROCESS;
PROCESS(CNTER)IS--计数溢出信号控制
BEGIN
IFCNTER=10#239999#THENNEWCLK<='1';
ELSENEWCLK<='0';
ENDIF;
ENDPROCESS;
ENDARCHITECTUREART;
六进制计数器的源程序CNT6.VHD
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYCNT6IS
PORT(CLK:
INSTD_LOGIC;
CLR:
INSTD_LOGIC;
ENA:
INSTD_LOGIC;
CQ:
OUTSTD_LOGIC_VECTOR(3DOWNTO0);
CO:
OUTSTD_LOGIC);
ENDENTITYCNT6;
ARCHITECTUREARTOFCNT6IS
SIGNALCQI:
STD_LOGIC_VECTOR(3DOWNTO0);
BEGIN
PROCESS(CLK,CLR,ENA)IS
BEGIN
IFCLR='1'THENCQI<="0000";
ELSIFCLK'EVENTANDCLK='1'THEN
IFENA='1'THEN
IFCQI="0101"THENCQI<="0000";
ELSECQI<=CQI+'1';
ENDIF;
ENDIF;
ENDIF;
ENDPROCESS;
PROCESS(CQI)IS
BEGIN
IFCQI="0000"THENCO<='1';
ELSECO<='0';
ENDIF;
ENDPROCESS;
CQ<=CQI;
ENDARCHITECTUREART;
十进制计数器的源程序CNT10.VHD
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYCNT10IS
PORT(CLK:
INSTD_LOGIC;
CLR:
INSTD_LOGIC;
ENA:
INSTD_LOGIC;
CQ:
OUTSTD_LOGIC_VECTOR(3DOWNTO0);
CO:
OUTSTD_LOGIC);
ENDENTITYCNT10;
ARCHITECTUREARTOFCNT10IS
SIGNALCQI:
STD_LOGIC_VECTOR(3DOWNTO0);
BEGIN
PROCESS(CLK,CLR,ENA)IS
BEGIN
IFCLR='1'THENCQI<="0000";
ELSIFCLK'EVENTANDCLK='1'THEN
IFENA='1'THEN
IFCQI="1001"THENCQI<="0000";
ELSECQI<=CQI+'1';ENDIF;
ENDIF;
ENDIF;
ENDPROCESS;
PROCESS(CQI)IS
BEGIN
IFCLK'EVENTANDCLK='1'THEN
IFCQI<"1001"THENCO<='0';
ELSECO<='1';ENDIF;
ENDIF;
ENDPROCESS;
CQ<=CQI;
ENDARCHITECTUREART;
数字秒表的源程序TIMES.VHD
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYTIMESIS
PORT(CLR:
INSTD_LOGIC;
CLK:
INSTD_LOGIC;
CLK2:
INSTD_LOGIC;
ENA:
INSTD_LOGIC;
COM:
OUTSTD_LOGIC_VECTOR(7DOWNTO0);
SEG:
OUTSTD_LOGIC_VECTOR(7DOWNTO0));
ENDENTITYTIMES;
ARCHITECTUREARTOFTIMESIS
COMPONENTCLKGENIS
PORT(CLK:
INSTD_LOGIC;
NEWCLK:
OUTSTD_LOGIC);
ENDCOMPONENTCLKGEN;
COMPONENTCNT10IS
PORT(CLK,CLR,ENA:
INSTD_LOGIC;
CQ:
OUTSTD_LOGIC_VECTOR(3DOWNTO0);
CO:
OUTSTD_LOGIC);
ENDCOMPONENTCNT10;
COMPONENTCNT6IS
PORT(CLK,CLR,ENA:
INSTD_LOGIC;
CQ:
OUTSTD_LOGIC_VECTOR(3DOWNTO0);
CO:
OUTSTD_LOGIC);
ENDCOMPONENTCNT6;
COMPONENTCTRLSIS--元件定义语句
PORT(CLK:
INSTD_LOGIC;--端口说明语句(端口名:
端口模式数据类型)
SEL:
OUTSTD_LOGIC_VECTOR(2DOWNTO0));
ENDCOMPONENTCTRLS;
COMPONENTDISPLAYIS--元件定义语句
PORT(SEL:
INSTD_LOGIC_VECTOR(2DOWNTO0);
DATAIN:
INSTD_LOGIC_VECTOR(23DOWNTO0);
COM:
OUTSTD_LOGIC_VECTOR(7DOWNTO0);
SEG:
OUTSTD_LOGIC_VECTOR(7DOWNTO0));
ENDCOMPONENTDISPLAY;
SIGNALS0:
STD_LOGIC;
SIGNALS1,S2,S3,S4,S5:
STD_LOGIC;
SIGNALSEL:
STD_LOGIC_VECTOR(2DOWNTO0);--定义1个标准位矢量的位矢量信号SEL,含有3个元素
SIGNALDOUT:
STD_LOGIC_VECTOR(23DOWNTO0);--定义1个标准位矢量的位矢量信号DOUT,有24个数组元素
BEGIN
U0:
CLKGENPORTMAP(CLK=>CLK,NEWCLK=>S0);--名字关联
U1:
CNT10PORTMAP(S0,CLR,ENA,DOUT(3DOWNTO0),S1);
U2:
CNT10PORTMAP(S1,CLR,ENA,DOUT(7downto4),S2);--位置关联
U3:
CNT10PORTMAP(S2,CLR,ENA,DOUT(11DOWNTO8),S3);
U4:
CNT6PORTMAP(S3,CLR,ENA,DOUT(15DOWNTO12),S4);
U5:
CNT10PORTMAP(S4,CLR,ENA,DOUT(19DOWNTO16),S5);
U6:
CNT6PORTMAP(S5,CLR,ENA,DOUT(23DOWNTO20));
U7:
CTRLSPORTMAP(CLK2,SEL);
U8:
DISPLAYPORTMAP(SEL(2DOWNTO0),DOUT(23DOWNTO0),COM(7DOWNTO0),SEG(7DOWNTO0));--位置关联方式
ENDARCHITECTUREART;
六、实验结果及总结
(1)仿真波形
本设计包括两个层次,先进行底层的分频器CLKGEN、十进制计数器CNT10和六进制计数器CNT6的仿真,再进行顶层TIMES的仿真。
(2)管脚锁定文件
根据TIMES的电路结构图确定引脚的锁定如下图所示:
(3)系统仿真结果
CLKGEN的仿真结果如图所示:
CNT6的仿真结果如图所示:
CNT10的仿真结果如图所示:
TIMES的仿真结果如图所示:
从仿真的结果可以看出,底层的CLKGEN、CNT6、CNT10程序和顶层的TIMES程序都能实现预期功能,符合设计要求。
同时从系统时序仿真结果可以看出,从输入到输出有一定的延时,这正是器件延时特性的反映。
(4)逻辑综合结果
使用QuartusⅡ13.0进行逻辑综合后,TIMES的RTL视图如图所示:
(5)实物仿真
DEA实验报告
实验一:
数字秒表的设计
实验时间:
2017年10月28号
指导老师:
谭会生学生姓名:
马啸韬
班级:
电子科学与技术1503班
学号:
15401700331
交通工程学院
2017年10月28号
1.实验目的:
(1)学习Quartus
/ISEDesignSuite软件的基本使用方法.
(2)学习GW48系列或其他EDA实验开发系统的基本使用方法.
(3)学习VHDL程序的基本结构和基本语句的使用.
2.实验内容
设计并调试好一个计时范围为0.01~1h的数字秒表,并用GW48系列或其他EDA实验开发系统(事先应选定拟采用的实验芯片的型号)进行硬件验证。
3.实验条件
(1)开发软件:
QuartusⅡ8.0
(2)实验设备:
GW48系列EDA实验开发系统
(3)拟用芯片:
EPM7128S-PL84
4.实验设计
(1)系统原理:
需设计一个计时范围为0.01s~1h的数字秒表,首先需要获得一个比较精确的计时基准信号,这里是周期为1/100s的计时脉冲。
其次,除了对每一个计时器需设置清零信号输入外,还需要为六个计时器设置时钟使能信号,以便作为秒表计时起、停控制开关。
因此数字秒表可由一个分频器、四个十进制计数器(1/100s、1/10s、1s、1min)以及两个六进制计时器(10s、10min)组成,如图所示。
(2)VHDL源程序
①CLKGEN的VHDL源程序
--CNT9999.VHD
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYCLKGENIS
PORT(CLK:
INSTD_LOGIC;--3MHZ
NEWCLK:
OUTSTD_LOGIC);--100HZ
ENDENTITYCLKGEN;
ARCHITECTUREARTOFCLKGENIS
SIGNALCNTER:
INTEGERRANGE0TO10#239999#;
BEGIN
PROCESS(CLK)IS
BEGIN
IFCLK'EVENTANDCLK='1'THEN
IFCNTER=10#239999#THENCNTER<=0;
100MHZ,计数常熟为30000
ELSECNTER<=CNTER+1;
ENDIF;
ENDIF;
ENDPROCESS;
PROCESS(CNTER)IS
BEGIN
IFCNTER=10#239999#THENNEWCLK<='1';
ELSENEWCLK<='0';
ENDIF;
ENDPROCESS;
ENDARCHITECTUREART;
②CNT6的VHDL源程序
--六进制计数模块
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYCNT6IS
PORT(CLK:
INSTD_LOGIC;
CLR:
INSTD_LOGIC;
ENA:
INSTD_LOGIC;
CQ:
OUTSTD_LOGIC_VECTOR(3DOWNTO0);
CO:
OUTSTD_LOGIC);
ENDENTITYCNT6;
ARCHITECTUREARTOFCNT6IS
SIGNALCQI:
STD_LOGIC_VECTOR(3DOWNTO0);
BEGIN
PROCESS(CLK,CLR,ENA)IS
BEGIN
IFCLR='1'THENCQI<="0000";
ELSIFCLK'EVENTANDCLK='1'THEN
IFENA='1'THEN
IFCQI="0101"THENCQI<="0000";
ELSECQI<=CQI+'1';
ENDIF;
ENDIF;
ENDIF;
ENDPROCESS;
PROCESS(CQI)IS
BEGIN
IFCQI="0000"THENCO<='1';
ELSECO<='0';
ENDIF;
ENDPROCESS;
CQ<=CQI;
ENDARCHITECTUREART;
③数字秒表源程序
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYTIMESIS
PORT(CLR:
INSTD_LOGIC;
CLK:
INSTD_LOGIC;
CLK2:
INSTD_LOGIC;
ENA:
INSTD_LOGIC;
COM:
OUTSTD_LOGIC_VECTOR(7DOWNTO0);
SEG:
OUTSTD_LOGIC_VECTOR(7DOWNTO0));
ENDENTITYTIMES;
ARCHITECTUREARTOFTIMESIS
COMPONENTCLKGENIS
PORT(CLK:
INSTD_LOGIC;
NEWCLK:
OUTSTD_LOGIC);
ENDCOMPONENTCLKGEN;
COMPONENTCNT10IS
PORT(CLK,CLR,ENA:
INSTD_LOGIC;
CQ:
OUTSTD_LOGIC_VECTOR(3DOWNTO0);
CO:
OUTSTD_LOGIC);
ENDCOMPONENTCNT10;
COMPONENTCNT6IS
PORT(CLK,CLR,ENA:
INSTD_LOGIC;
CQ:
OUTSTD_LOGIC_VECTOR(3DOWNTO0);
CO:
OUTSTD_LOGIC);
ENDCOMPONENTCNT6;
COMPONENTCTRLSIS
PORT(CLK:
INSTD_LOGIC;
SEL:
OUTSTD_LOGIC_VECTOR(2DOWNTO0));
ENDCOMPONENTCTRLS;
COMPONENTDISPLAYIS
PORT(SEL:
INSTD_LOGIC_VECTOR(2DOWNTO0);
DATAIN:
INSTD_LOGIC_VECTOR(23DOWNTO0);
COM:
OUTSTD_LOGIC_VECTOR(7DOWNTO0);
SEG:
OUTSTD_LOGIC_VECTOR(7DOWNTO0));
ENDCOMPONENTDISPLAY;
SIGNALS0:
STD_LOGIC;
SIGNALS1,S2,S3,S4,S5:
STD_LOGIC;
SIGNALSEL:
STD_LOGIC_VECTOR(2DOWNTO0)
SIGNALDOUT:
STD_LOGIC_VECTOR(23DOWNTO0);
BEGIN
U0:
CLKGENPORTMAP(CLK=>CLK,NEWCLK=>S0);
U1:
CNT10PORTMAP(S0,CLR,ENA,DOUT(3DOWNTO0),S1);
U2:
CNT10PORTMAP(S1,CLR,ENA,DOUT(7downto4),S2);
U3:
CNT10PORTMAP(S2,CLR,ENA,DOUT(11DOWNTO8),S3);
U4:
CNT6PORTMAP(S3,CLR,ENA,DOUT(15DOWNTO12),S4);
U5:
CNT10PORTMAP(S4,CLR,ENA,DOUT(19DOWNTO16),S5);
U6:
CNT6PORTMAP(S5,CLR,ENA,DOUT(23DOWNTO20));
U7:
CTRLSPORTMAP(CLK2,SEL);
U8:
DISPLAYPORTMAP(SEL(2DOWNTO0),DOUT(23DOWNTO0),COM(7DOWNTO0),SEG(7DOWNTO0));
ENDARCHITECTUREART;
(3)管脚锁定文件,选择合适实验电路结构图确定引脚的锁定。
5.实验结果和总结
(1)系统仿真情况:
CLKGEN:
TIMES:
INT6:
INT10:
(2)实物仿真情况:
(3)使用QuartusⅡ8.0进行逻辑综合后,TIMES的RTL视图如图所示。
4.实验过程中出现的问题及解决办法
在打代码的过程中错误较多,出现标点符号少了的现象,在编辑过程中有些VHDL源程序要根据实验要求进行更改,没有完全修改,导致编译出错。
通过这次实验也使我更加了解了QUARTUSⅡ的使用方法
湖南工业大学
EDA实验报告
实验二:
数字秒表的设计
专业:
[电子科学技术]
班级:
[电科1503班]
学生姓名:
陈亦龙
指导教师:
[谭会生]
实验时间:
2017.10.28
2.实验目的:
(4)学习Quartus
/ISEDesignSuite软件的基本使用方法.
(5)学习GW48系列或其他EDA实验开发系统的基本使用方法.
(6)学习VHDL程序的基本结构和基本语句的使用.
2.实验内容
设计并调试好一个计时范围为0.01~1h的数字秒表,并用GW48系列或其他EDA实验开发系统(事先应选定拟采用的实验芯片的型号)进行硬件验证。
4.实验条件
(4)开发软件:
QuartusⅡ8.0
(5)实验设备:
GW48系列EDA实验开发系统
(6)拟用芯片:
EPM7128S-PL84
4.实验设计
(1)系统原理:
需设计一个计时范围为0.01s~1h的数字秒表,首先需要获得一个比较精确的计时基准信号,这里是周期为1/100s的计时脉冲。
其次,除了对每一个计时器需设置清零信号输入外,还需要为六个计时器设置时钟使能信号,以便作为秒表计时起、停控制开关。
因此数字秒表可由一个分频器、四个十进制计数器(1/100s、1/10s、1s、1min)以及两个六进制计时器(10s、10min)组成,如图所示。
(2)VHDL源程序
①CLKGEN的VHDL源程序
--CNT9999.VHD
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYCLKGENIS
PORT(CLK:
INSTD_LOGIC;--3MHZ信号输入
NEWCLK:
OUTSTD_LOGIC);--100HZ计时时钟信号输出
ENDENTITYCLKGEN;
ARCHITECTUREARTOFCLKGENIS
SIGNALCNTER:
INTEGERRANGE0TO10#239999#;--十进制计数预置数
BEGIN
PROCESS(CLK)IS
BEGIN
IFCLK'EVENTANDCLK='1'THEN
IFCNTER=10#239999#THENCNTER<=0;--3MHZ信号变为100MHZ,计数常熟为30000
ELSECNTER<=CNTER+1;
ENDIF;
ENDIF;
ENDPROCE
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- EDA 实验 报告 数字 秒表