基 于 VHDL 的 万 年 历 设 计(EDA实验报告)

上传人:痛*** 文档编号:41376640 上传时间:2021-11-20 格式:DOC 页数:32 大小:1.93MB
收藏 版权申诉 举报 下载
基 于 VHDL 的 万 年 历 设 计(EDA实验报告)_第1页
第1页 / 共32页
基 于 VHDL 的 万 年 历 设 计(EDA实验报告)_第2页
第2页 / 共32页
基 于 VHDL 的 万 年 历 设 计(EDA实验报告)_第3页
第3页 / 共32页
资源描述:

《基 于 VHDL 的 万 年 历 设 计(EDA实验报告)》由会员分享,可在线阅读,更多相关《基 于 VHDL 的 万 年 历 设 计(EDA实验报告)(32页珍藏版)》请在装配图网上搜索。

1、基于VHDL万年历设计EDA技术实用教程基 于 VHDL 的 万 年 历 设 计(实验报告) 学 校: 苏州大学 院 部: 电子信息学院 年 级: 2010级 专 业: 通信工程 姓 名: 王国盛 2012年12月28日前言本设计为实现一个多功能的万年历,具有年、月、日、时、分、秒计时并显示的功能,顾名思义,其满量程计时为一万年;具有校对功能,能够对初始的时间进行人为的设定。本设计采用EDA技术,以硬件描述语言VHDL为系统逻辑描述手段设计具有万年历功能的硬件电路,在QuartusII软件设计环境下,采用自顶向下的设计思路,分别对各个基础模块进行创建,通过各个基础模块的组合和连接来构建上层原理

2、图,完成基于VHDL万年历设计。 系统目标芯片采用EP1K30TC144-3,由时钟模块、控制模块、计时模块、数据译码模块、显示模块组成。经编译和仿真所设计的程序,在可编程逻辑器件上下载验证,将硬件编写程序下载到试验箱上,选择模式3进行功能验证。本系统能够完成年、月、日和时、分、秒的分别显示,由按键输入进行万年历的校时功能。 目录1 实验概述41.1 EDA技术41.2 QuartusII的使用41.3 模块化设计41.4 分析、解决问题42 实验内容与要求52.1实验内容52.1实验说明52.3实验要求63 实验原理73.1设计思想73.2设计原理图83.3工作工程94 实验结果104.1V

3、HDL程序与仿真10 4.1.1秒和分模块10 4.1.2小时模块114.1.3日(天)模块124.1.4月份模块154.1.5年模块174.1.6校时模块194.1.7显示模式切换模块214.2顶层设计与仿真234.3下载与验证254.3.1电路结构选择254.3.2端口配置264.3.3实际电路验证295 实验小结30参考文献311 、实验概述1.1 EDA技术EDA(Electronic Design Automation),即电子设计自动化,是指利用计算机完成电子系统的设计。它的主要特征及核心是“自顶向下”的设计方法,这种设计方法首先从系统设计入手,在顶层进行功能方框图的划分和结构设计

4、。在方框图一级进行仿真、纠错,并用硬件描述语言对高层次的系统行为进行描述,在系统一级进行验证。然后用综合优化工具生成具体门电路的网表。由于设计的主要仿真和调试过程是在高层次上完成的,这不仅有利于早期发现结构设计上的错误,避免设计工作的浪费,而且也减少了逻辑功能仿真的工作量,提高了设计的一次成功率。1.2 QuartusII的使用 通过实验,熟悉并掌握QuartusII软件的使用,熟悉该软件工具的环境。除了学习利用VHDL语言编写程序实现硬件电路以外,还要熟练的使用原理图输入的方法进行硬件设计,具体是对每个模块形成一个功能元件,通过元件的连接来实现系统的功能,而不是通过VHDL语言的元件例化程序

5、来完成,不仅提高了效率,而且思想原理也更加的清晰。1.3 模块化设计掌握年、月、日、时、分、秒以及控制部分的各功能模块程序设计的原理,进而理解万年历的设计原理,学习并理解模块化设计的方法与思想。用VHDL语言编写各模块程序,进一步了解和掌握各个程序语言,知道编程中的注意事项,提高编程的熟练程度。1.4 分析、解决问题通过本实验设计,理论联系实际,巩固所学理论知识,并且提高自己通过所学理论分析、解决实际问题的能力。进一步加深对VHDL设计的了解与认识,体会EDA的巨大作用,了解进行硬件系统设计的整个流程,对生活工作中的电气设备有了更深一层次的了解,对电气工程专业有了更多兴趣。2、实验内容与要求2

6、.1实验内容设计具有如下功能的万年历:1)能进行正常的年、月、日和时、分、秒的日期和时间计时功能,按键KEY1用来进行模式切换,当KEY1=1时,显示年、月、日;当KEY1=0时,显示时、分、 秒。2)能利用实验系统上的按键实现年、月、日和时、分、秒的校对功能。3)用层次化设计方法设计该电路,编写各个功能模块的程序。4)仿真报时功能,通过观察有关波形确认电路设计是否正确。5)完成电路设计后,用实验系统下载验证设计的正确性。2.2实验说明万年历的设计思路与多功能时钟的设计思路相似。多功能时钟的各功能模块及相互之间的连接如下图1所示 图1多功能时钟系统原理框图 年、月、日和时、分、秒的显示格式如图

7、2所示。年、月、日同时显示,时、分、秒同时显示,通过显示模式切换来分别显示。 年/时 月/分 日/秒 图2万年历显示格式2.3实验报告要求1)分析系统的工作原理。 2)画出顶层原理图,写出顶层文件源程序。3)写出各功能模块的源程序。4)仿真各功能模块,画出仿真波形。5)书写实验报告应结构合理,层次分明。3、实验原理3.1设计思想按照模块化的设计思想,要实现万年历的基础功能,必定要包含年、月、日和时、分、秒的功能模块,其中秒和分可以用六十进制计数器来实现,时用二十四进制计数器实现,月用十二进制计数器来实现,年的低两位和高两位都是一百进制计数器,比较特殊的是天的计数器,因为它有四种情况,大月三十一

8、天,小月三十天,平年二月二十八天,闰年二月有二十九天,所以年和月的模块对天的计数都有影响,需要从年和月的输出端引出控制信号来控制天的计数。同时每个计数器都有显示输出端和进位输出端,同时低级别(如秒)的进位输出要给较高级别(如分)的时钟输入端,以此类推,采用串行工作方式进行连接。从而完成了基础的计时和显示的功能。再按照由基础功能到增强功能的设计思路,要实现校时功能,要在之前电路的基础之上增加一个校时控制模块,增加两个按键来实现控制,按键1来选择校对哪一个模块,按键2选择校对到何值检测到按键2的一个上升沿,对应的计数器加1。除此之外还需要有显示模式的切换的功能,需要增加一个模式切换的控制模块,通过

9、增加一个按键3来实现控制,是显示年月日还是时分秒。3.2实验原理图万年历时分秒部分的原理图如下图所示,年月日部分与之同理,通过控制可以进行切换。译码驱动译码驱动译码驱动译码驱动译码驱动译码驱动时十位计数时个位计数分十位计数分个位计数秒十位计数秒个位计数校时控制电路校分控制电路分频器电路分频器电路晶体振荡器电路1HZ图3万年历实验原理图图4万年历实验结构框图图5万年历实验结构局部图原理图说明: 如图4、5所示,K1键是选择万年历工作的模式,K2键提供上升沿(时钟功能)来使各计数模块加一,从而实现校时的功能。LED灯起指示作用。 模式0:正常计时显示 -K1不按,LED1到LED5都不亮 模式1:

10、调整分增加 -K1按下一次,LED1亮其余四个不亮 模式2:调整时增加 - K1按下两次,LED2亮其余四个不亮 模式3:调整日增加 - K1按下三次,LED3亮其余四个不亮 模式4:调整月增加 - K1按下四次,LED4亮其余四个不亮 模式5:调整年增加 - K1按下五次,LED5亮其余四个不亮 CLK是外部1Hz输入时钟,作为秒的时钟输入,驱动整个万年历工作运行。 K3键是显示模式的选择,显示时分秒时,LEDSHUCHUMOSHI指示灯亮,显示年月日时,LEDSHUCHUMOSHI指示灯灭。3.3工作过程 当1Hz时钟信号从CLK输入端输入时,K1,K2,K3都没有按下时,系统从零(闰年)

11、开始处于正常的计时模式,显示时分秒部分,LEDSHUCHUMOSHI指示灯亮。低位计满归零并且向高位进1,如果月份是二月,则天计满29就向月进1。如果按下按键3,LEDSHUCHUMOSHI指示灯不亮,显示年月日部分。如果此时按一下按键1,那么万年历停止计时,工作于模式1,再通过按键2对分进行校时,通过同样的方法可以对时、日、月、年进行校时。当校时完毕,需要万年历重新计时工作时,通过按下键1使LED1到LED5都不亮时,系统工作与正常计时模式。4、实验结果4.1VHDL程序与仿真4.1.1秒与分模块秒与分模块为六十进制的计数器源程序:LIBRARY IEEE;USE IEEE.STD_LOGI

12、C_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT60 ISPORT(CLK:IN STD_LOGIC;Q1,Q2:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);COUT:OUT STD_LOGIC);END CNT60;ARCHITECTURE ONE OF CNT60 ISSIGNAL Q11,Q22:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINPROCESS(CLK)BEGINIF CLK'EVENT AND CLK='1' THENQ11<=Q11+1;IF

13、 Q11=9 THEN Q11<=(OTHERS=>'0');Q22<=Q22+1;END IF;IF Q22=5 AND Q11=9 THEN Q22<="0000"Q11<="0000"COUT<='1'ELSE COUT<='0'END IF;END IF;END PROCESS;Q1<=Q11;Q2<=Q22;END;仿真结果:图6 60进制计数器仿真图如上图所示当Q1、Q2计满60时,Q1、Q2都归零同时有一个进位输出脉冲,完成了六十进制计数器

14、的功能,设计正确。4.1.2小时模块时模块为24进制计数器。源程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT24 ISPORT(CLK:IN STD_LOGIC; Q1,Q2:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);COUT:OUT STD_LOGIC);END CNT24;ARCHITECTURE ONE OF CNT24 ISSIGNAL Q11,Q22:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINPROCESS(C

15、LK)BEGINIF CLK'EVENT AND CLK='1' THENQ11<=Q11+1;IF Q11=9 THEN Q11<=(OTHERS=>'0');Q22<=Q22+1;END IF;IF Q22=2 AND Q11=3 THEN Q22<="0000"Q11<="0000"COUT<='1'ELSE COUT<='0'END IF;END IF;END PROCESS;Q1<=Q11;Q2<=Q22;END;

16、仿真结果: 图7 24进制计数器仿真图如上图所示当Q1、Q2计满24时,Q1、Q2都归零同时有一个进位输出脉冲,完成了六十进制计数器的功能,设计正确。4.1.3日(天)模块日模块有四种情况,大月为31进制计数器,小月为30进制计数器,平年二月为28进制计数器,闰年二月为29进制计数器,需要有一个二位判断输入信号来进行进制数的选择。源程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY DAY ISPORT( PANDUAN :IN STD_LOGIC_VECTOR(1 DOWNTO

17、0);-两位判断输入信号 CLK :IN STD_LOGIC; CQ1 :OUT STD_LOGIC_VECTOR (3 DOWNTO 0); CQ2 :OUT STD_LOGIC_VECTOR (3 DOWNTO 0); COUT :OUT STD_LOGIC);END;ARCHITECTURE ONE OF DAY ISSIGNAL CQ3,CQ4:STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL PAN:STD_LOGIC_VECTOR(1 DOWNTO 0);BEGINPROCESS(CLK,PANDUAN)BEGINIF CLK'EVENT AND CL

18、K='1' THEN -上升沿CQ3<=CQ3+1;IF CQ3=9 THEN CQ3<=(OTHERS=>'0');CQ4<=CQ4+1;END IF;PAN<=PANDUAN;CASE PAN ISWHEN "00"=>IF CQ3="0001" AND CQ4="0011" -判断信号为00时为31进 THEN CQ3<="0001"CQ4<="0000"COUT<='1' - 制计数器E

19、LSE COUT<='0'END IF; WHEN "01"=>IF CQ3="0000" AND CQ4="0011" -判断信号为01时为30进THEN CQ3<="0001"CQ4<="0000"COUT<='1' - 制计数器ELSE COUT<='0'END IF; WHEN "10"=>IF CQ3="1000" AND CQ4="0010&qu

20、ot; -判断信号为10时为28进THEN CQ3<="0001"CQ4<="0000"COUT<='1' - 制计数器ELSE COUT<='0'END IF; WHEN "11"=>IF CQ3="1001" AND CQ4="0010" -判断信号为11时为29进THEN CQ3<="0001"CQ4<="0000"COUT<='1' - 制计数器 ELS

21、E COUT<='0'END IF; WHEN OTHERS=>NULL;END CASE;END IF;CQ1<=CQ3; CQ2<=CQ4;END PROCESS;END;仿真结果:图8 判断信号为00时天模块仿真图图9 判断信号为01时天模块仿真图 图10 判断信号为10时天模块仿真图图11 判断信号为11时天模块仿真图如图8、9、10、11所示,仿真结果与设计要求一致,日模块的设计正确4.1.4月模块月模块为12进制计数器,同时其需要为天提供判断信号输出,其与天的判断输入信号相一致。由于二月的判断信号输出要受到平年和闰年的影响,平年时判断信号是1

22、0,闰年时判断信号为11,所以它要有接收来之年模块的判断平年闰年的输出信号(run=0时表平年,run=1时表闰年)。源程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY MONTH ISport(clk :IN STD_LOGIC; run :IN STD_LOGIC; cout :OUT STD_LOGIC; pan :OUT STD_LOGIC_VECTOR(1 DOWNTO 0); cq1,cq2 :OUT STD_LOGIC_VECTOR(3 DOWNTO 0); END

23、 ;ARCHITECTURE behav OF MONTH ISsignal cq3,cq4: STD_LOGIC_VECTOR (3 DOWNTO 0);signal cq5: STD_LOGIC_VECTOR (7 DOWNTO 0);BEGINPROCESS(clk)BEGINIF clk'EVENT and clk='1' THEN cq3<=cq3+1;IF cq3=9 THEN cq4<=cq4+1;cq3<="0000" END IF;IF cq3=2 and cq4=1 THEN cq3<="0001

24、"cq4<="0000"cout<='1'ELSE cout<='0'END IF;END IF; -十二进制计数器cq5<=cq4&cq3; -逻辑位相连接CASE cq5 ISWHEN "00000001"=>pan<="00" -一月WHEN "00000010"=>if run='1' then pan<="11"else pan<="10"end

25、if; -二月WHEN "00000011"=>pan<="00" -三月WHEN "00000100"=>pan<="01" -四月WHEN "00000101"=>pan<="00" -五月WHEN "00000110"=>pan<="01" -六月WHEN "00000111"=>pan<="00" -七月WHEN "00

26、001000"=>pan<="00" -八月WHEN "00001001"=>pan<="01" -七月WHEN "00001010"=>pan<="00" -十月WHEN "00001011"=>pan<="01" -十一月WHEN "00001100"=>pan<="00" -十二月WHEN others=>NULL;END CASE;

27、cq1<=cq3; cq2<=cq4;END PROCESS;END;仿真结果:图12 平年(run=0)时月模块仿真图图13 闰年(run=1)时月模块仿真图如图12、13所示月模块为12进制计数器,并且1、3、5、7、8、10、12月(大月)判断信号为00,4、6、9平年(run=0)2月的判断输出信号为、11月(小月)判断信号为01,平年(run=0)2月的判断输出信号为10,闰年(run=1)2月的判断输出信号为11,与天模块的判断输入信号相一致,符合设计要求,模块的设计正确。4.1.5年模块年的高两位和低两位都为一百进制计数器,功能基本相同,不同的是低两位模块有闰年判断输

28、出信号,要传送给月份模块,计满四次就产生一个闰年输出信号,因为闰年数值是4的整倍数。源程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY YEAR ISPORT(CLK:IN STD_LOGIC;Y1,Y2:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);RUN,COUT:OUT STD_LOGIC);END YEAR;ARCHITECTURE ONE OF YEAR ISSIGNAL Q1,Q2,Q3:STD_LOGIC_VECTOR(3 DOWNTO 0);B

29、EGINPROCESS(CLK)BEGINIF CLK'EVENT AND CLK='1' THEN Q1<=Q1+1;IF Q1=9 THEN Q1<=(OTHERS=>'0');Q2<=Q2+1;END IF;IF Q2=9 AND Q1=9 THEN Q2<="0000"Q1<="0000"COUT<='1'ELSE COUT<='0'END IF;END IF;END PROCESS;PROCESS(CLK)BEGINIF CL

30、K'EVENT AND CLK='1' THEN Q3<=Q3+1;IF Q3=3 THEN Q3<=(OTHERS=>'0');RUN<='1'ELSE RUN <='0'END IF;END IF;Y1<=Q1;Y2<=Q2;END PROCESS;END;仿真结果:图14 低两位年模块仿真图如图14所示,低两位年模块为100进制计数器当T2、T1表示的数为4的整数倍时,判断闰年输出信号就为高电平,与月模块的判断闰年输入信号相一致。符合设计的要求,设计正确。4.1.6校时模块

31、如原理图的说明部分所述,校时模块进行工作模式的选择,输入端设有控制按键K1,K2。K1进行模式的选择,K2的功能如同手动时钟脉冲,进行调时设置。源程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY JIAODUI ISPORT( K1,K2 :IN STD_LOGIC; MI,FI,SI,TI,YI:IN STD_LOGIC; FO,SO,TL,YO,NO :OUT STD_LOGIC; L1,L2,L3,L4,L5 :OUT STD_LOGIC);END;ARCHITECTURE

32、 BEHAV OF JIAODUI ISSIGNAL A: STD_LOGIC_VECTOR (3 DOWNTO 0);BEGINPROCESS(K1,K2)BEGINIF K1'EVENT AND K1='1' THEN A<=A+1;IF A=5 THEN A<="0000" END IF;END IF;CASE A ISWHEN "0000"=>FO<=MI;SO<=FI;TL<=SI;YO<=TI;NO<=YI; - 模式0正常及时 L1<='0'L2&

33、lt;='0'L3<='0'L4<='0'L5<='0'WHEN "0001"=>FO<=K2;SO<='0'TL<='0'YO<='0'NO<='0' -选通分模块,调分 L1<='1'L2<='0'L3<='0'L4<='0'L5<='0'WHEN "0010"=

34、>FO<='0'SO<=K2;TL<='0'YO<='0'NO<='0' -选通时模块,调时 L1<='0'L2<='1'L3<='0'L4<='0'L5<='0'WHEN "0011"=>FO<='0'SO<='0'TL<=K2;YO<='0'NO<='0' - 选通

35、日模块,调日 L1<='0'L2<='0'L3<='1'L4<='0'L5<='0'WHEN "0100"=>FO<='0'SO<='0'TL<='0'YO<=K2;NO<='0' - 选通月模块,调月 L1<='0'L2<='0'L3<='0'L4<='1'L5<='

36、;0'WHEN "0101"=>FO<='0'SO<='0'TL<='0'YO<='0'NO<=K2; -选通年模块,调年 L1<='0'L2<='0'L3<='0'L4<='0'L5<='1'WHEN OTHERS=>NULL;END CASE;END PROCESS;END;仿真结果:图15 校时模块仿真图图16 校时模块仿真图如图15、16,按键K

37、1,K2能够完成万年历工作模式的选择与调时校对的功能,满足系统的设计要求,设计正确。4.1.7显示模式切换模块显示模式切换模块完成显示年月日和显示时分秒的相互切换,设置一个按键K3对其进行控制,通过检测按键的上升沿,对显示模式进行轮流切换。源程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CONTROL ISPORT(SL,SH,FL,FH,HL,HH,DL,DH,ML,MH,YL,YH,Y1L,Y1H:IN STD_LOGIC_VECTOR(3 DOWNTO 0);K1:IN

38、 STD_LOGIC;led:OUT STD_LOGIC;Q1,Q2,Q3,Q4,Q5,Q6,Q7,Q8:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END CONTROL;ARCHITECTURE ONE OF CONTROL ISSIGNAL W:STD_LOGIC_VECTOR(1 DOWNTO 0);BEGINPROCESS(K1)BEGIN IF K1'EVENT AND K1='1' THEN W<=W+1;IF W=2 THEN W<="00"-二进制计数控制信号END IF; END IF;CASE

39、W ISWHEN"00"=>Q8<=Y1H;Q7<=Y1L;Q6<=YH;Q5<=YL;Q4<=MH;Q3<=ML;Q2<=DH;Q1<=DL;led<='0' -00时显示年月日,指示灯不亮WHEN"01"=>Q8<="0000"Q7<="0000"Q6<=HH;Q5<=HL;Q4<=FH;Q3<=FL;Q2<=SH;Q1<=SL;led<='1' -01时显示时

40、分秒,指示灯亮 WHEN OTHERS=>NULL;END CASE;END PROCESS;END;仿真结果:如图16所示,当按键K1没有按下时Q1到Q6显示的是年月日部分,此时的指示灯LED为零(不亮),当按键K1按下一次,检测到一次上升沿,Q1到Q6显示的是时分秒部分,此时的指示灯LED为1(亮),当K1键再次按下时,上升沿一到,显示年月日,这样通过按键K1可以实现显示模式的切换。设计符合系统的要求,设计正确。图17 显示模块仿真图4.2顶层设计与仿真顶层设计采样原理图输入方法,用以上的各模块的VHDL源程序分别生成元器件,在此基础上用“导线”对元器件进行连接,搭建原理图,完成系统

41、的顶层设计,而不是利用元件例化程序去设计。对于较为复杂的系统而言,采用原理图输入的设计方法思路更加清晰,设计更加直观。顶层原理图的设计框架如图4所示,有年、月、日、时、分、秒计时模块,调时校对模块,显示模式切换模块,并且由以上讨论知万年历一共有六种工作模式。仿真结果:如图18所示,此时万年历工作于模式0,属于正常的计时状态,当低位计满时向高位进1,通过键K3,可以对显示模式进行切换,从显示时分秒转换到显示年月日,正确的实现了系统的计时功能。图18 万年历仿真图图19 万年历仿真图图20 万年历仿真图如图19、20所示,通过按键K1可以进行工作模式的选择,按键K2进行数值的校对设定,按键K3进行

42、显示模式的切换,与设计的要求相符合。综上所述,整个系统设计正确,万年历能够正确的实现功能。4.下载验证4.3.1电路结构选择 程序、原理图仿真正确后,下一步通过把顶层原理图输入的设计程序下载到试验箱中的实际芯片中,完成硬件电路的设计搭建并验证其功能。输入的顶层原理图如图4所示。目标芯片选择EP1K30TC144-3,实验箱中的电路结构选择模式NO.3,如图21所示,其本身附带了显示译码的功能,无需在程序、原理图中设计七段显示译码的模块就可以在数码管中进行显示,同时配置有8个按键输入端。图21 实验电路结构图No.34.3.2端口配置 将顶层原理图中输入输出端引脚与试验箱中的输入输出引脚进行匹配

43、,才可以进行下载验证。表1 GW48CK/GK/EK/PK2 系统万能接插口与结构图信号/与芯片引脚对照表结构图上的信号名GW48-CCP,GWAK100AEP1K100QC208GW48-SOC+/ GW48-DSPEP20K200/300EQC240GWAK30/50EP1K30/50TQC144GWAC3EP1C3TC144引脚号引脚名称引脚号引脚名称引脚号引脚名称引脚号引脚名称PIO07I/O224I/O08I/O01I/O0PIO18I/O225I/O19I/O12I/O1PIO29I/O226I/O210I/O23I/O2PIO311I/O231I/O312I/O34I/O3PIO

44、412I/O230I/O413I/O45I/O4PIO513I/O232I/O517I/O56I/O5PIO614I/O233I/O618I/O67I/O6PIO715I/O234I/O719I/O710I/O7PIO817I/O235I/O820I/O811DPCLK1PIO918I/O236I/O921I/O932VREF2B1PIO1024I/O237I/O1022I/O1033I/O10PIO1125I/O238I/O1123I/O1134I/O11PIO1226I/O239I/O1226I/O1235I/O12PIO1327I/O2I/O1327I/O1336I/O13PIO1428

45、I/O3I/O1428I/O1437I/O14PIO1529I/O4I/O1529I/O1538I/O15PIO1630I/O7I/O1630I/O1639I/O16PIO1731I/O8I/O1731I/O1740I/O17PIO1836I/O9I/O1832I/O1841I/O18PIO1937I/O10I/O1933I/O1942I/O19PIO2038I/O11I/O2036I/O2047I/O20PIO2139I/O13I/O2137I/O2148I/O21PIO2240I/O16I/O2238I/O2249I/O22PIO2341I/O17I/O2339I/O2350I/O23PI

46、O2444I/O18I/O2441I/O2451I/O24PIO2545I/O20I/O2542I/O2552I/O25PIO26113I/O131I/O2665I/O2667I/O26PIO27114I/O133I/O2767I/O2768I/O27PIO28115I/O134I/O2868I/O2869I/O28PIO29116I/O135I/O2969I/O2970I/O29PIO30119I/O136I/O3070I/O3071I/O30PIO31120I/O138I/O3172I/O3172I/O31PIO32121I/O143I/O3273I/O3273I/O32PIO33122I

47、/O156I/O3378I/O3374I/O33PIO34125I/O157I/O3479I/O3475I/O34PIO35126I/O160I/O3580I/O3576I/O35PIO36127I/O161I/O3681I/O3677I/O36PIO37128I/O163I/O3782I/O3778I/O37PIO38131I/O164I/O3883I/O3883I/O38PIO39132I/O166I/O3986I/O3984I/O39PIO40133I/O169I/O4087I/O4085I/O40PIO41134I/O170I/O4188I/O4196I/O41PIO42135I/O1

48、71I/O4289I/O4297I/O42PIO43136I/O172I/O4390I/O4398I/O43PIO44139I/O173I/O4491I/O4499I/O44PIO45140I/O174I/O4592I/O45103I/O45PIO46141I/O178I/O4695I/O46105I/O46PIO47142I/O180I/O4796I/O47106I/O47PIO48143I/O182I/O4897I/O48107I/O48PIO49144I/O183I/O4998I/O49108I/O49PIO60202PIO60223PIO60137PIO60131PIO60PIO612

49、03PIO61222PIO61138PIO61132PIO61PIO62204PIO62221PIO62140PIO62133PIO62PIO63205PIO63220PIO63141PIO63134PIO63PIO64206PIO64219PIO64142PIO64139PIO64PIO65207PIO65217PIO65143PIO65140PIO65PIO66208PIO66216PIO66144PIO66141PIO66PIO6710PIO67215PIO677PIO67142PIO67PIO6899PIO68197PIO68119PIO68122PIO68PIO69100PIO691

50、98PIO69118PIO69121PIO69PIO70101PIO70200PIO70117PIO70120PIO70PIO71102PIO71201PIO71116PIO71119PIO71PIO72103PIO72202PIO72114PIO72114PIO72PIO73104PIO73203PIO73113PIO73113PIO73PIO74111PIO74204PIO74112PIO74112PIO74PIO75112PIO75205PIO75111PIO75111PIO75PIO7616PIO76212PIO7611PIO76143PIO76PIO7719PIO77209PIO77

51、14PIO77144PIO77PIO78147PIO78206PIO78110PIO78110PIO78PIO79149PIO79207PIO79109PIO79109PIO79SPEAKER148I/O184I/O99I/O50129I/OCLOCK0182I/O185I/O126INPUT1123I/OCLOCK2184I/O181I/O54INPUT3124I/OCLOCK578I/O151CLKIN56I/O53125I/OCLOCK980I/O154CLKIN124GCLOK2128I/O目标芯片选择的是EP1K30TC144-3,根据图21和表1中加重的部分引脚对照表,顶层原理图的

52、输入输出端口配置如图22所示。 例如CLK时钟输入配置为54引脚,根据表1所示,实验箱上实际电路所用的输入时钟信号选用CLK2。按键K1、K2、K3分别配置8、9、10引脚,由表1知,在实验结构图上对应的是PIO0、PIO1、PIO3,再由图21知对应的按键分别是按键1、按键2、按键3,验证时,通过按这三个键来对万年历系统进行控制。图22 端口配置图4.3.3实际电路验证图23实际电路验证 实际验证电路和验证结果如上图23所示。验证结果与预期的实验结果相同,当K1键没有按下时,万年历正常计时,计满向高位进位,可以通过K3键选择显示模式,显示时分秒时指示灯亮。通过按下K1键的次数来选择校对那一部

53、分,对应的指示灯亮,再通过按下K2键的次数来进行数值选择,进行校对时低位不会向高位进位。当把年设置为闰年,月模块设置为2月,天模块设置为29,时模块设置为23,分模块设置为59,通过按键K1选择正常计时模式,计满60s时,不断往上进位,月份变为3月,证明此时二月为二十九进制计数器。4.4实验小结通过这次万年历程序的设计,完成了硬件系统设计目标。加深了对EDA技术的理解,熟悉了QuartusII软件环境,熟练地掌握了基于VHDL硬件设计的整个流程,从设计编程到下载验证。通过对具体模块的编写,如CNT60模块,CNT24模块,DAY模块,MONTH模块,YEAR模块,JIAODUI模块,显示模块等,加强了自己分析问题及编程的能力,掌握编程时该注意的语法规则,理解进行系统设计时的模块化设计思想。最终实现了一个自己动手完成的电子作品,增强了我们分析问题、解决问题的能力,培养了对电子工程设计的浓厚兴趣。参考文献:1 潘松 黄继业 EDA技术实用教程VHDL版(第四版)北京:科学出版社,20102 王金明,杨吉斌.数字系统设计与Verilog HDL.北京:电子工业出版社,2002 3 潘松 等 EDA技术与Verilog HDL北京:清华大学出版社,2010.432

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!