EDA实验报告cnt9999.docx
《EDA实验报告cnt9999.docx》由会员分享,可在线阅读,更多相关《EDA实验报告cnt9999.docx(24页珍藏版)》请在冰豆网上搜索。
EDA实验报告cnt9999
EDA实验报告
CNT9999计数器的设计
指导老师:
谭会生
班级:
电技1503
学号:
15401700314
姓名:
冯博
交通工程学院
2017.10.15
实验一0~9999的计数器电路的设计
1.实验目的
(1)进一步熟悉和掌握QuartusII软件的使用。
(2)进一步熟悉和掌握GW48-CK或其他EDA实验开发系统的使用。
(3)学习和掌握VHDL进程语句和元件例化语句的使用。
2.实验内容
设计并调试好一个计数范围为0~9999的4位十进制计数器电路CNT9999,并用GW48-CK或其他EDA实验开发系统进行硬件验证。
3实验条件
(1)开发软件:
QuartusII13.0。
(2)实验设备:
GW48-CKEDA实验开发系统。
(3)拟用芯片:
EP3C55F484C7。
4.实验设计
1)系统原理框图
为了简化设计并便于显示,本计数器电路CNT9999的设计分为两个层次,其中底层电路包括四个十进制计数器模块CNT10,再由这四个模块按照图1.1所示的原理图构成顶层电路CNT9999.
图1.1CNT9999电路原理图
2)VHDL程序
计数器CNT9999的底层和顶层电路均采用VHDL文本输入,有关VHDL程序如下。
CNT10的VHDL源程序:
--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;
CNT9999的VHDL源程序:
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;--使用IEEE.STD_LOGIC_1164程序包
PORT(CLR:
INSTD_LOGIC;
CLK:
INSTD_LOGIC;
CLK2:
INSTD_LOGIC;
ENA:
INSTD_LOGIC;
COM:
OUTSTD_LOGIC_VECTOR(7DOWNTO0);
SEG:
OUTSTD_LOGIC_VECTOR(7DOWNTO0));
ENDENTITYDCNT9999;
ARCHITECTUREARTOFDCNT9999IS
COMPONENTCNT10IS--CNT10元件定义语句
PORT(CLK,CLR,ENA:
INSTD_LOGIC;
CQ:
OUTSTD_LOGIC_VECTOR(3DOWNTO0);
CO:
OUTSTD_LOGIC);
ENDCOMPONENTCNT10;
COMPONENTCTRLSIS--元件定义语句
PORT(CLK:
INSTD_LOGIC;--端口说明语句(端口名:
端口模式数据类型)
SEL:
OUTSTD_LOGIC_VECTOR(2DOWNTO0));
ENDCOMPONENTCTRLS;
COMPONENTDISPLAYIS--元件定义语句
PORT(SEL:
INSTD_LOGIC_VECTOR(2DOWNTO0);
DATAIN:
INSTD_LOGIC_VECTOR(15DOWNTO0);
COM:
OUTSTD_LOGIC_VECTOR(7DOWNTO0);
SEG:
OUTSTD_LOGIC_VECTOR(7DOWNTO0));
ENDCOMPONENTDISPLAY;
SIGNALS0,S1,S2:
STD_LOGIC;--信号的定义,定义了3个标准位的单值信号
SIGNALSEL:
STD_LOGIC_VECTOR(2DOWNTO0);--定义1个标准位矢量的位矢量信号SEL,含有3个元素
SIGNALDOUT:
STD_LOGIC_VECTOR(15DOWNTO0);--定义1个标准位矢量的位矢量信号DOUT,有16个数组元素
BEGIN
U0:
CNT10PORTMAP(CLK,CLR,ENA,DOUT(3DOWNTO0),S0);--元件例化语句,位置关联的方式
U1:
CNT10PORTMAP(S0,CLR,ENA,DOUT(7DOWNTO4),S1);
U2:
CNT10PORTMAP(S1,CLR,ENA,DOUT(11DOWNTO8),S2);
U3:
CNT10PORTMAP(S2,CLR,ENA,DOUT(15DOWNTO12));
U4:
CTRLSPORTMAP(CLK2,SEL);
U5:
DISPLAYPORTMAP(SEL(2DOWNTO0),DOUT(15DOWNTO0),COM(7DOWNTO0),SEG(7DOWNTO0));--位置关联方式
ENDARCHITECTUREART;
3)仿真波形设置
本设计包括两个层次,因此先进行底层的十进制计数器CNT10的仿真,再进行顶层CNT9999的仿真。
4)管脚锁定文件
根据图1.1所示的CNT9999电路原理图,选择合适实验电路结构图确定引脚的锁定。
图1.2管脚锁定
5.实验结果及总结
1)系统仿真情况
CNT10和CNT9999的时序仿真结果分别如图1.3和图1.4所示。
图1.3CNT10的时序仿真结果
图1.4CNT9999的时序仿真结果
从系统仿真结果可以看出,本系统底层和顶层的程序设计完全符合设计要求。
同时从系统时序仿真结果可以看出,从输入到输出有一定的延时,这正是器件延时特性的反映。
2)逻辑综合结果
使用QuartusII8.0
进行逻辑综合后,CNT9999的RTL视图如图1.4所示,对CNT9999进行逻辑综合后的资源使用情况为:
Family:
CycloneIII,Device:
EP3C55F484C7,Totalpins:
49/55,856(<1%).
图1.5CNT9999的RTL视图
交通工程学院
EDA技术及其应用
实验报告
实验一0~9999的计数器电路设计
指导老师:
谭会生老师
学生姓名:
陈亦龙
班级:
电子技术1503班
学号:
15401700315
实验时间:
2017-10-14
实验一0~9999的计数器电路设计
1.实验目的
(1)掌握EDA使用工具QUARTUS2的使用方法。
(2)学会用quartus软件建立项目并编写程序和调试下载的方法。
(3)掌握VHDL程序的软件及硬件的仿真方法。
2.实验内容
设计并调试好一个计数范围为0~9999的4位十进制计数器电路CNT9999,并用软件QUARTUSII进行仿验证。
3.实验条件
开发软件:
Quartusii8.0
4.实验设计
1)系统原理框图
为了简化设计并便于显示,本计数器电路CNT999的设计分为两个层次,其中底层电路包括四个十进制计数器模块CNT10,再由这四个模块按照图1-1所示的原理图构成顶层电路CNT9999。
图1-1CNT9999电路原理图
2)VHDL程序
计数器CNT9999的底层和顶层电路均采用VHDL文本输入,有关VHDL程序如下:
CNT10的VHDL源程序:
--CNT10.VHD
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYCNT10IS
PORT(CLK,CLR,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"THEN
CQI<="0000";
ELSE
CQI<=CQI+'1';
ENDIF;
ENDIF;
ENDIF;
ENDPROCESS;
PROCESS(CLK,CQI)IS
BEGIN
IFCLK'EVENTANDCLK='1'THEN
IFCQI="1001"THEN
CO<='1';
ELSE
CO<='0';
ENDIF;
ENDIF;
ENDPROCESS;
CQ<=CQI;
ENDARCHITECTUREART;
CNT9999的VHDL源程序:
--CNT9999.VHD
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYCNT9999IS
PORT(CLK,CLR,ENA:
INSTD_LOGIC;
DOUT:
OUTSTD_LOGIC_VECTOR(15DOWNTO0));
ENDENTITYCNT9999;
ARCHITECTUREARTOFCNT9999IS
COMPONENTCNT10IS
PORT(CLK,CLR,ENA:
INSTD_LOGIC;
CQ:
OUTSTD_LOGIC_VECTOR(3DOWNTO0);
CO:
OUTSTD_LOGIC);
ENDCOMPONENTCNT10;
SIGNALS0,S1,S2,S3:
STD_LOGIC;
BEGIN
U0:
CNT10PORTMAP(CLK,CLR,ENA,DOUT(3DOWNTO0),S0);
U1:
CNT10PORTMAP(S0,CLR,ENA,DOUT(7DOWNTO4),S1);
U2:
CNT10PORTMAP(S1,CLR,ENA,DOUT(11DOWNTO8),S2);
U3:
CNT10PORTMAP(S2,CLR,ENA,DOUT(15DOWNTO12),S3);
ENDARCHITECTUREART;
3)仿真波形设置
顶层CNT9999仿真输入设置及可能结果估计图如图1-2。
图1-2CNT9999仿真输入设置及可能结果估计图
5.实验结果及总结
1)系统仿真情况
CNT9999的时序仿真结果如图1-3所示。
图1-4CNT9999的时序仿真结果
从系统仿真结果可以看出,本系统底层和顶层的程序设计完全符合设计要求。
同时从系统时序仿真可以看出,从输入到输出有一定的延时,大约为3ns,这正是器件延时特性的反映。
2)逻辑综合结果
使用QuartusII8.0进行逻辑综合后,CNT9999的RTL视图如图1-5所示。
图1-5CNT9999的RTL视图
3)实验过程中出现的问题及解决办法
遇到问题:
程序编写好后进行仿真时,发现计数器只能实现从0~9一直循环,而不会依次计数到9999,经查找分析原因是CNT10进位信号提前了。
解决办法:
修改VHDL源程序,将如下代码修改:
修改前:
PROCESS(CLK,CQI)IS
BEGIN
IFCLK'EVENTANDCLK='1'THEN
IFCQI<"1001"THEN
CO<='0';
ELSE
CO<='1';
ENDIF;
ENDIF;
ENDPROCESS;
修改后:
PROCESS(CLK,CQI)IS
BEGIN
IFCLK'EVENTANDCLK='1'THEN
IFCQI="1001"THEN
CO<='1';
ELSE
CO<='0';
ENDIF;
ENDIF;
ENDPROCESS;
经过相关的程序修改,最后程序通过了,仿真成功,实验完成。
0~9999的计数器电路的设计
1.实验目的
(1)学习QuartusⅡ软件的使用方法。
(2)学习GW48系列或其他EDA实验开发系统的基本使用方法。
(3)学习VHDL程序的基本结构和基本语句的使用。
2.实验内容
设计并调试一个技术范围为0~9999的4位十进制计数器电路CNT9999,并用GW48系列或其他EDA实验开发系统进行硬件验证。
3.实验条件
(1)开发软件:
QuartusⅡ13.0.
(2)实验设备:
GW48系列EDA实验开发系统。
(3)拟用芯片:
EP3C55F484C7
4.实验设计
(1)系统原理框图
本计数器电路CNT9999的设计分为两个层次,包括四个十进制计数器模块CNT10构成的底层电路和由这四个模块构成的顶层电路CNT9999.
(2)VHDL程序
计数器CNT9999的底层和顶层电路均采用VHDL文本输入,有关VHDL程序如下。
CNT10的VHDL源程序:
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;
CNT9999的VHDL源程序:
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;--使用IEEE.STD_LOGIC_1164程序包
ENTITYCNT9999IS
PORT(CLR:
INSTD_LOGIC;
CLK:
INSTD_LOGIC;
CLK2:
INSTD_LOGIC;
ENA:
INSTD_LOGIC;
COM:
OUTSTD_LOGIC_VECTOR(7DOWNTO0);
SEG:
OUTSTD_LOGIC_VECTOR(7DOWNTO0));
ENDENTITYCNT9999;
ARCHITECTUREARTOFCNT9999IS
COMPONENTCNT10IS--CNT10元件定义语句
PORT(CLK,CLR,ENA:
INSTD_LOGIC;
CQ:
OUTSTD_LOGIC_VECTOR(3DOWNTO0);
CO:
OUTSTD_LOGIC);
ENDCOMPONENTCNT10;
COMPONENTCTRLSIS--元件定义语句
PORT(CLK:
INSTD_LOGIC;--端口说明语句(端口名:
端口模式数据类型)
SEL:
OUTSTD_LOGIC_VECTOR(2DOWNTO0));
ENDCOMPONENTCTRLS;
COMPONENTDISPLAYIS--元件定义语句
PORT(SEL:
INSTD_LOGIC_VECTOR(2DOWNTO0);
DATAIN:
INSTD_LOGIC_VECTOR(15DOWNTO0);
COM:
OUTSTD_LOGIC_VECTOR(7DOWNTO0);
SEG:
OUTSTD_LOGIC_VECTOR(7DOWNTO0));
ENDCOMPONENTDISPLAY;
SIGNALS0,S1,S2:
STD_LOGIC;--信号的定义,定义了3个标准位的单值信号
SIGNALSEL:
STD_LOGIC_VECTOR(2DOWNTO0);--定义1个标准位矢量的位矢量信号SEL,含有3个元素
SIGNALDOUT:
STD_LOGIC_VECTOR(15DOWNTO0);--定义1个标准位矢量的位矢量信号DOUT,有16个数组元素
BEGIN
U0:
CNT10PORTMAP(CLK,CLR,ENA,DOUT(3DOWNTO0),S0);--元件例化语句,位置关联的方式
U1:
CNT10PORTMAP(S0,CLR,ENA,DOUT(7DOWNTO4),S1);
U2:
CNT10PORTMAP(S1,CLR,ENA,DOUT(11DOWNTO8),S2);
U3:
CNT10PORTMAP(S2,CLR,ENA,DOUT(15DOWNTO12));
U4:
CTRLSPORTMAP(CLK2,SEL);
U5:
DISPLAYPORTMAP(SEL(2DOWNTO0),DOUT(15DOWNTO0),COM(7DOWNTO0),SEG(7DOWNTO0));--位置关联方式
ENDARCHITECTUREART;
(3)仿真波形
本设计包括两个层次,先进行底层的十进制计数器CNT10的仿真,再进行顶层CNT9999的仿真。
(4)管脚锁定文件
根据CNT9999的电路结构图确定引脚的锁定如下图所示:
5.实验结果及总结
(1)系统仿真结果
CNT10的仿真结果如图所示:
CNT9999的仿真结果如图所示:
从仿真的结果可以看出,底层CNT10程序和顶层CNT9999程序都能实现预期功能,符合设计要求
(2)逻辑综合结果
使用QuartusⅡ13.0进行逻辑综合后,CNT9999的RTL视图如图所示:
交通工程学院
科目:
EDA技术及其应用
实验报告
0~9999的计数器电路设计
指导老师:
谭会生老师
学生姓名:
马啸韬班级:
电子技术1503班
学号:
15401700331实验时间:
2017-10-14
0~9999的计数器电路设计
1.实验目的
(4)掌握EDA使用工具QUARTUS2的使用方法。
(5)学会用quartus软件建立项目并编写程序和调试下载的方法。
(6)掌握VHDL程序的软件及硬件的仿真方法。
2.实验内容
设计并调试好一个计数范围为0~9999的4位十进制计数器电路CNT9999,并用软件QUARTUSII进行仿验证。
3.实验条件
开发软件:
Quartusii8.0
实验设备:
GW48-CKEDA实验开发系统。
拟用芯片:
EP2C8Q208C8。
4.实验设计
(1)系统原理框图
为了简化设计并便于显示,本计数器电路CNT999的设计分为两个层次,其中底层电路包括四个十进制计数器模块CNT10,再由这四个模块按照图1-1所示的原理图构成顶层电路CNT9999。
图1-1CNT9999电路原理图
(2)VHDL程序
计数器CNT9999的底层和顶层电路均采用VHDL文本输入,有关VHDL程序如下:
CNT10的VHDL源程序:
--CNT10.VHD
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYCNT10IS
PORT(CLK,CLR,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"THEN
CQI<="0000";
ELSE
CQI<=CQI+'1';
ENDIF;
EN