唐山学院EDA数字电子时钟课程设计概要.docx
《唐山学院EDA数字电子时钟课程设计概要.docx》由会员分享,可在线阅读,更多相关《唐山学院EDA数字电子时钟课程设计概要.docx(17页珍藏版)》请在冰豆网上搜索。
唐山学院EDA数字电子时钟课程设计概要
唐山学院
EDA课程设计
题目数字电子钟
系(部)智能与信息工程学院
班级14自动化本1
姓名胡冬
学号4140219115
指导教师郭耀华
2016年12月12日至12月16日共1周
2016年12月15日
目录
1.引言..............................................................1
2.实验..............................................................2
2.1实验所用的仪器及软件介绍......................................2
2.1.1QuartusⅡ软件介绍.........................................2
2.1.2EDA试验箱介绍............................................3
2.2实验设计要求..................................................4
2.3实验原理分析..................................................5
2.3.1外部封装接线图.............................................5
2.3.2底层文件分析...............................................5
2.3.3顶层文件分析...............................................6
2.4数字电子钟程序..................................................7
2.5仿真波形分析.................................................12
2.6实验箱下载验证...............................................14
3.设计总结.........................................................15
4.参考文献.........................................................16
1.引言
数字电子钟是一种常用的数字电路技术实现时、分、秒的计时装置,与机械式的时钟相比具有更高的准确性、直观性,且无机械装置具有更长的使用寿命,因此得到了广泛的使用。
数字电子钟从原理上讲是一种典型的电子电路,其中包括了组合逻辑电路和时序电路。
因此我们用EDA编程语言设计与制作数字电子钟就是为了了解数字电子钟的原理,从而进一步了解VHDL汇编语言。
由于数字电子钟包括组合逻辑电路和时序单路,通过它可以进一步学习与掌握各种组合逻辑电路和时序逻辑电路的原理、方法和应用。
实验目的是掌握组合逻辑电路、时序逻辑电路及数字逻辑电路的设计、安装、测试方法;进一步巩固所学的理论知识,提高运用所学知识分析和解决实际问题的能力;提高电路布局、布线及检查和排除故障的能力;培养书写综合实验报告的能力。
2.实验
2.1实验所用的仪器及软件介绍
2.1.1QuartusⅡ软件介绍:
QuartusII是Altera公司的综合性PLD/FPGA开发软件,原理图、VHDL、VerilogHDL以及AHDL(AlteraHardware支持DescriptionLanguage)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。
QuartusII可以在Windows、Linux以及Unix上使用,除了可以使用Tcl脚本完成设计流程外,提供了完善的用户图形界面设计方式。
具有运行速度快,界面统一,功能集中,易学易用等特点。
QuartusII支持Altera的IP核,包含了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。
对第三方EDA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方EDA工具。
此外,QuartusII通过和DSPBuilder工具与Matlab/Simulink相结合,可以方便地实现各种DSP应用系统;支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。
QuartusII提供了完全集成且与电路结构无关的开发包环境,具有数字逻辑设计的全部特性,包括:
可利用原理图、结构框图、VerilogHDL、AHDL和VHDL完成电路描述,并将其保存为设计实体文件;
芯片(电路)平面布局连线编辑;
LogicLock增量设计方法,用户可建立并优化系统,然后添加对原始系统的性能影响较小或无影响的后续模块;
功能强大的逻辑综合工具;
完备的电路功能仿真与时序逻辑仿真工具;
定时/时序分析与关键路径延时分析;
可使用SignalTapII逻辑分析工具进行嵌入式的逻辑分析;
支持软件源文件的添加和创建,并将它们链接起来生成编程文件;
使用组合编译方式可一次完成整体设计流程;
高效的期间编程与验证工具;
可读入标准的EDIF网表文件、VHDL网表文件和Verilog网表文件;
能生成第三方EDA软件使用的VHDL网表文件和Verilog网表文件。
2.1.2EDA试验箱介绍:
EDA/SOPC实验箱是集EDA和SOPC开发为一体的综合性实验箱,它不仅可以独立完成几乎所有的EDA设计,也可以完成大多数的SOPC开发。
采Altera公司的Cyclone系列的30万门FPGA为核心,整个系统采用模块化设计,各个模块之间可以自由组合,使得该实验箱的灵活性大大提高。
同时实验箱还提供了丰富的接口模块,供人机交互,从而大大增加了实验开发者开发的乐趣,满足了普通高等院校、科研人员等的需求。
开发工程师可以使用VHDL语言、Verilog HDL语言、原理图输入等多种方式,利用Altera公司提供Quartus II及NiosII软件进行编译,下载,并通过EDA/SOPC实验箱进行结果验证。
实验箱提供多种人机交互方式,如键盘阵列、按键、拨挡开关输入;七段码管、大屏幕图形点阵LCD显示;串口通信;VGA接口、PS2接口、USB接口、Ethernet接口等,利用Altera公司提供的一些IP资源和Nios 32位处理器,用户可以在该实验箱上完成不同的SOPC设计。
EDA/SOPC实验箱提供的资源有:
●Altera公司的EP1C6Q240C8,30万门级FPGA,另外可选配更高资源的FPGA;
●FPGA配置芯片采用可在线变成的EPCS4,通过JTAG口和AS口即可完成设计的固化;
●1个数字时钟源,提供48MHz、12MHz、1MHz、100KHz、10KHz、1KHz、100Hz、10Hz、2Hz和1Hz等多个时钟;
●1个模拟信号源,提供频率和幅度可调的正弦波、三角波和方波;
●1个串行接口,用于完成与计算机的通信;
●1个VGA接口;
●1个PS2接口,可以接键盘或鼠标;
●1个USB接口,利用PDIUSBD12芯片实现USB协议转换;
●1个Ethernet接口,利用RTL8019芯片实现TCP/IP协议转换;
●基于SPI接口的音频CODEC模块;
●1个输入、输出探测模块,供数字信号的观察;
●16个LED显示;8个拨挡开关输入;
●8个按键输入;
●1个4X4键盘阵列;
●8个七段码管显示;
●1个扬声器模块;
●1个交通灯模块;
●1个直流电机模块;
●1个高速AD和1个高速DA;
●240×128大屏幕图形点阵LED显示;
●存储器模块提供256K×32bit(8Mbyte)的SRAM和8M×8Bit的FLASH ROM
实验箱基本布局如下图2-1所示:
图2-1EDA/SOPC实验箱系统布局
2.2实验设计要求
设计内容:
(1)设计一个能进行时、分、秒计时数字钟。
(2)能对时、分和秒进行手动调节以校准时间。
(3)具有整点报时功能,能在整点时间发出报时声音。
(4)系统具有整体复位功能
(5)系统晶振提供的时钟为1MHZ
设计要求:
(1)根据任务要求确定电路各功能模块;
(2)写出设计程序;
(3)给出时序仿真结果;
(4)实现硬件调试;
2.3实验原理分析
2.3.1外部封装接线图
系统的晶振提供的时钟为1MHZ,输入引脚为clkin;系统复位输入引脚为rst;
时钟手动调节输入为h1p,h2p,m1p,m2p,s1p,s2p分别调节时位的高、低位,分位的高低位,秒位的高低位;
时钟的输出为六个数码管分别对应时、分、秒h1,h2,m1,m2,s1,s2;
其中整点报时为sound当时钟到达整点时蜂鸣器发出报时声音;
引脚锁定如图2-2
图2-2引脚锁定图
2.3.2底层文件分析
底层文件分为两个分频器和数字钟
由于给定的输入时钟为1MHZ,数字钟程序输入的时钟频率为1HZ,所以要在主程序上添加分频器程序。
分频器程序的输入为a输出为b,c,输入a的频率为1MHZ,输出b的频率为1HZ,输出c的频率为1MHZ。
输出b用于时钟程序的输入,输出c用于时钟程序的整点报时频率。
数字钟程序分析
计时程序:
先定义六个变量表示时、分、秒的高低位,当有上升沿时秒加一,判断进位条件依次进位加一,进行时钟计时。
整点报时程序:
判断时钟到达整点时让输出sound信号为1MHZ从而使蜂鸣器发出报时声音。
手动调节程序:
让调节信号置一时,当有上升沿时令被调节信号加一;
整体复位功能:
使用if语句先令rst=1,则清零。
2.3.3顶层文件分析
用位置映射的方式,使底层文件的分频器输出映射到时钟的输入。
顶层文件布置图如图2-3
图2-3顶层文件图
2.4数字电子钟程序
libraryieee;
useieee.std_logic_1164.all;
entityfpqis
port(a:
instd_logic;
b:
bufferstd_logic;
c:
outstd_logic);
endfpq;
architecturefpqoffpqis
begin
c<=a;
process(a)
variabled:
integerrange0to600;
begin
ifa'eventanda='1'then
d:
=d+1;
ifd=512then
d:
=0;
b<=notb;
endif;
endif;
endprocess;
endfpq;
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
entityclock1is
port(clk,clk2,h1p,h2p,m1p,m2p,s1p,s2p,rst:
instd_logic;
h1,h2,m1,m2,s1,s2:
outstd_logic_vector(3downto0);
sound:
outstd_logic);
endclock1;
architectureclock1ofclock1is
begin
process(rst,clk,clk2)
variablea,b,c,d,e,f:
std_logic_vector(3downto0);
variableg:
std_logic;
begin
ifg='1'then
sound<=clk2;
elsesound<='0';
endif;
ifh1p='1'then
ifclk'eventandclk='1'then
e:
=e+1;
iff="0010"then
ife="0100"then
e:
="0000";
endif;
elsife="1010"then
e:
="0000";
endif;
endif;
endif;
ifh2p='1'then
ifclk'eventandclk='1'then
f:
=f+1;
iff="0011"then
f:
="0000";
endif;
endif;
endif;
ifm1p='1'then
ifclk'eventandclk='1'then
c:
=c+1;
ifc="1010"then
c:
="0000";
endif;
endif;
endif;
ifm2p='1'then
ifclk'eventandclk='1'then
d:
=d+1;
ifd="0110"then
d:
="0000";
endif;
endif;
endif;
ifs1p='1'then
ifclk'eventandclk='1'then
a:
=a+1;
ifa="1010"then
a:
="0000";
endif;
endif;
endif;
ifs2p='1'then
ifclk'eventandclk='1'then
b:
=b+1;
ifb="0110"then
b:
="0000";
endif;
endif;
endif;
ifrst='1'then
a:
="0000";
b:
="0000";
c:
="0000";
d:
="0000";
e:
="0000";
f:
="0000";
elsifclk'eventandclk='1'then
a:
=a+1;
g:
='0';
ifa="1010"then
a:
="0000";
b:
=b+1;
ifb="0110"then
b:
="0000";
c:
=c+1;
ifc="1010"then
c:
="0000";
d:
=d+1;
ifd="0110"then
d:
="0000";
e:
=e+1;
g:
='1';
ife="1010"then
e:
="0000";
f:
=f+1;
endif;
iff&e="00100100"then
f:
="0000";
e:
="0000";
endif;
endif;
endif;
endif;
endif;
endif;
s1<=a;s2<=b;m1<=c;m2<=d;h1<=e;h2<=f;
endprocess;
endclock1;
libraryieee;
useieee.std_logic_1164.all;
entityclockis
port(clkin,h1p,h2p,m1p,m2p,s1p,s2p,rst:
instd_logic;
h1,h2,m1,m2,s1,s2:
outstd_logic_vector(3downto0);
sound:
outstd_logic);
endclock;
architectureclockofclockis
componentfpqis
port(a:
instd_logic;
b:
bufferstd_logic;
c:
outstd_logic);
endcomponent;
componentclock1is
port(clk,clk2,h1p,h2p,m1p,m2p,s1p,s2p,rst:
instd_logic;
h1,h2,m1,m2,s1,s2:
outstd_logic_vector(3downto0);
sound:
outstd_logic);
endcomponent;
signalw,x:
std_logic;
begin
u1:
fpqportmap(clkin,w,x);
u2:
clock1portmap(w,x,h1p,h2p,m1p,m2p,s1p,s2p,rst,h1,h2,m1,m2,s1,s2,sound);
endclock;
2.5仿真波形分析
复位仿真:
当rst输入为1时清零,如图2-4
图2-4仿真图
(1)
当输入调整时间信号为1有上升沿则调节时钟加1如图2-5
图2-5仿真图
(2)
当时钟到整点时sound为1MHZ,如图2-6
图2-6仿真图(3)
2.6实验箱下载验证
实验箱如图2-7
图2-7试验箱下载
验证实验结果:
输入接1MHZ晶振频率,六个数码管依次显示时、分、秒。
当有清零拨码开关置1时,六个数码管均清零复位。
当进行调整时间时,时调节开关对应置1,从而进行时间的手动调整。
当时间为整点时,蜂鸣器会有一秒钟的响声,整点报时功能得以体现、
3.设计总结
通过本次课程设计,使我对EDA有了进一步的了解,使我对软件的使用和设计水平上有了进一步的提高,并加深了对以前学过的知识。
在本次课程设计中,也碰到了一些问题主要是VHDL语言程序调试,仿真比较难,而且很难找到错误的原因。
只有通过老师和同学,才能找到解决问题的办法。
还有较难的就是程序的整点报时功能的体现。
最后用了一个分频器接的蜂鸣器进行整点报时的硬件体现。
本次试验,我进一步提高了分析问题,解决问题的能力,尤其是在理论联系实际的方面,都为今后的学习和工作打下了坚实的基础。
通过自己设计的电路进行调试,应用到了我们学过的数字电子技术等课程。
这对一名作为学习自动化的学生来说是必不可少的一课,在设计的过程中对于电路元器件的选择更是让我们受益匪浅,不但掌握了许多其他的我们不知道的东西,还学到了许多书本中没有的知识,经老师的指导,终于完成了这个作品,我们在制作过程中也体会到了理论与实践二者是缺一不可的,相辅相成的关系。
希望在以后的学习生活中有更多的机会去进行这样的练习。
4.参考文献
[1].VokneiA.Pedroni.《VHDL数字电路设计教程》.电子工业出版社,2008.5
[2].潘松,黄继业.《EDA技术实用教程》(第二版).科学出版社,2005.2
[3].焦素敏.《EDA应用技术》.清华大学出版社,2002.4