硬件实验 电子时钟电路图主要VHDL程序波形仿真图及操作截图.docx
《硬件实验 电子时钟电路图主要VHDL程序波形仿真图及操作截图.docx》由会员分享,可在线阅读,更多相关《硬件实验 电子时钟电路图主要VHDL程序波形仿真图及操作截图.docx(14页珍藏版)》请在冰豆网上搜索。
硬件实验电子时钟电路图主要VHDL程序波形仿真图及操作截图
【附录】
一、全局电路图
二、局部电路图
1.计时模块设计
(1)秒位计时电路如图2.1.1所示:
秒低位
图2.1.1秒位计时电路
秒高位
(2)分位计时电路如图2.1.2所示:
图2.1.2分位计时电路
(3)时位计时电路如图2.1.3所示:
图2.1.3时位计时电路
2.校时模块设计
(1)秒位校时电路如图2.2.1所示:
图2.2.1秒位校时电路
(2)分位校时电路如图2.2.2所示:
图2.2.2分位校时电路
(3)时位校时电路如图2.2.3所示:
图2.2.3时位校时电路
3.复位模块设计
电路请参看全局电路图。
4.报时模块设计
如图2.4.1所示
图2.4.1整点报时电路
5.分频与译码模块设计
本实验设计中,分频与译码模块由VHDL编程实现,VHDL程序的结构:
在VHDL程序中,库用来存放已经编译过的实体说明、结构体、程序包和配置等,它可以作为其他设计单元的资源。
在VHDL程序中,程序包主要用来存放各个设计实体都能共享的数据类型、子程序说明、属性说明和元件说明等部分。
(1)分频程序及注释如下:
libraryieee;--引用IEEE库
useieee.std_logic_1164.all;--使用STD_LOGIC_1164程序包
useieee.std_logic_arith.all;--使用STD_LOGIC_ARUTH程序包
useieee.std_logic_unsigned.all;--使用STD_LOGIC_UNSIGNED程序包
entitySeparateis--实体Separate说明
port(clk1k:
instd_logic;--链接模式:
名称clk1k,端口模式IN,数据类型STD_LOGIC
Hz1_out:
outstd_logic;--链接模式:
名称Hz1_out,端口模式OUT,数据类型STD_LOGIC
Hz10_out:
outstd_logic);--链接模式:
名称Hz10_out,端口模式OUT,数据类型STD_LOGIC
endSeparate;
architecturefenpofSeparateis--结构体fenp说明
signalf10hz:
std_logic;--信号说明:
信号名f10hz,数据类型STD_LOGIC
signalf1hz:
std_logic;--信号说明:
信号名f1hz,数据类型STD_LOGIC
begin
process(clk1k)--进程语句
variablenuma:
integerrange0to100;--变量说明:
名称numa,类型INTEGER,范围0—100
variablenumb:
integerrange0to511;--变量说明:
名称numb,类型INTEGER,范围0—511
begin
ifclk1k'eventandclk1k='1'then
ifnuma<250then
numa:
=numa+1;
else
numa:
=1;
f2hz<=notf2hz;
endif;
ifnumb<500then
numb:
=numb+1;
else
numb:
=1;
f1hz<=notf1hz;
endif;
endif;
Hz1_out<=f1hz;
Hz2_out<=f2hz;
endprocess;
endfenp;
所形成的模块如图2.4.1所示:
图2.4.1分频器
(2)共阳数码管显示译码模块(BCD—七段码)程序及注释如下:
libraryieee;--引用IEEE库
useieee.std_logic_1164.all;--使用STD_LOGIC_1164程序包
useieee.std_logic_arith.all;--使用STD_LOGIC_ARUTH程序包
useieee.std_logic_unsigned.all;--使用STD_LOGIC_UNSIGNED程序包
entitydecoderis--实体decoder说明
Port(Qa,Qb,Qc,Qd:
instd_logic;--链接模式:
名称Qa、Qb、Qc、Qd,端口模式IN,
--数据类型STD_LOGIC
q3:
outstd_logic_vector(6downto0));--链接模式:
名称q3[6…0],端口模式OUT,
--数据类型STD_LOGIC_VECTOR
enddecoder;
architectureBehavioralofdecoderis--结构体Behavioral说明
SIGNALseg:
std_logic_vector(3downto0);--信号说明:
信号名seg,数据类型STD_LOGIC_VECTOR
begin
seg<=Qd&Qc&Qb&Qa;--标准逻辑矢量的并置运算,用于位的连接
process(Qa,Qb,Qc,Qd)--进程:
敏感信号Qa,Qb,Qc,Qd
begin
casesegis--根据BCD码与七段码的一一对应关系,赋值输出信号
when"0000"=>q3<="1000000";--0
when"0001"=>q3<="1111001";--1
when"0010"=>q3<="0100100";--2
when"0011"=>q3<="0110000";--3
when"0100"=>q3<="0011001";--4
when"0101"=>q3<="0010010";--5
when"0110"=>q3<="0000010";--6
when"0111"=>q3<="1111000";--7
when"1000"=>q3<="0000000";--8
when"1001"=>q3<="0011000";--9
whenothers=>q3<="1111111";--不显示
endcase;--case语句结束
endprocess;--进程语句结束
endBehavioral;--结构体说明结束
所形成的模块如图2.4.2所示:
图2.4.2数码管显示译码器
三、波形仿真图
1.计时仿真
(1)秒位计时仿真如图3.1.1所示:
图3.1.1秒位计时波形仿真(未加译码显示)
(2)分位计时仿真如图3.1.2所示:
图3.1.2分位计时波形仿真(未加译码显示)
(3)时位计时仿真如图3.1.3所示:
图3.1.3时位计时波形仿真(未加译码显示)
2.校时仿真(以校分、时为例)
(1)分位校时仿真如图3.2.1所示:
图3.2.1分位校时波形仿真(未加译码显示)
(2)时位校时仿真如图3.2.1所示:
图3.2.2时位校时波形仿真(未加译码显示)
3.复位仿真
复位仿真如图3.3.1所示:
(时、分、秒显示均归零,即00:
00:
00)
图3.3.1复位波形仿真(未加译码显示)
4.报时仿真
报时仿真如图3.4.1所示:
(临近整点时,ring电平发生规律性变化,实现从四短一长的报时)
图3.4.1整点报时波形仿真(01:
00:
00,已加译码显示)
5.分频仿真
分频仿真如图3.5.1~3.5.3所示:
(例:
输入clk:
T=20ns,分频输出T1=2us、T2=20us)
图3.5.1分频波形仿真(输入clk:
T=20ns)
图3.5.2分频波形仿真(分频输出:
T1=2us)
图3.5.3分频波形仿真(分频输出:
T2=20us)
四、部分实验操作截图
1.选择DEVICE如图4.1.1所示:
图4.1.1选择DEVICE
2.分配引脚如图4.1.2所示:
图4.1.2分配引脚