基于VHDL语言的秒表综合设计_第1页
基于VHDL语言的秒表综合设计_第2页
基于VHDL语言的秒表综合设计_第3页
基于VHDL语言的秒表综合设计_第4页
基于VHDL语言的秒表综合设计_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

设计报告现代电子技术综合实验课程名称_______现代电子技术综合实验数字式秒表设计与实现设计题目_______数字式秒表设计与实现指导老师_______学生_______学号___目录1引言……..........................................................................................1.1课程设计的内容及要求..................................................................2VHDL简介……..............................................................................2.1硬件描述语言——VHDL……......................................................2.1.1VHDL语言的特点…….............................................................2.1.2VHDL语言的设计流程…….....................................................3秒表设计过程……............................................................................3.1原理框图……..................................................................................3.2设计思路模块化…..........................................................................3.3模块的功能简述……......................................................................3.3.1分频器….....................................................................................3.3.2计数器…….................................................................................3.3.3数据锁存器……..........................................................................3.3.4显示译码模块…..........................................................................3.3.5控制模块……..............................................................................3.3.6按键消抖模块……......................................................................3.3.7顶层文件……..............................................................................4模块电路仿真……................................................................................4.1分频器4.2计数器4.2.1模6计数器4.2.2模10计数器5实验总结…….....................................................................................5.1实验结论……...................................................................................5.2心得总结……...................................................................................6参考文献……..........................................................................................7附录(各模块源程序)…...........................................................................引言:在当今信息化社会中,集成电路和计算机应用得到高速发展,。它在人们日常生活已必不可少,大多数电子产品多是由计算机电路组成。本文目的就是基于计算机电路利用VHDL语言设计出数字秒表。秒表在很多领域充当了重要的角色,在不同的场合和条件下对于秒表的精度和功能是不同的,有些科学实验的要求甚至能达到纳秒级别。1.1课题内容要求:本课题目标是掌握VHDL开发FPGA的一般流程,重点是电子秒表的设计。该设计以VHDL作为硬件开发语言,以ISE作为软件开发平台,准确地实现了秒表计数、清零、暂停等功能,并使用ModelSim仿真软件对VHDL程序实现了电路仿真,完成了综合布局布线,最终将程序下载到芯片Spartan-3A,并通过板子上相应模块验证实验的正确性。除此以外,利用课余时间学习数字频率计的硬件实现方法,即用MultiSim仿真等。秒表设计的具体要求:计时范围是00’00’’00到59’59’’99。有两个按钮开关start/stop和split/reset,控制秒表的启动、停止、分段和复位:秒表已经被复位的情况下,按下state/stop键,秒表开始计时。在秒表正常运行的情况下,如果按下state/reset则秒表暂停计时;再次按下该键,秒表继续计时。在秒表正常运行下,如果按下split/reset,显示停止在按键时的时间,但秒表仍然在计时;再次按下该键,秒表恢复正常显示。在秒表暂停计时的情况下,按下split/reset,秒表复位归零。2.VHDL简介:2.1VHDL特点:(1)作为HDL的第一个国际标准,VHDL具有很强的可移植性。

(2)具有丰富的模拟仿真语句和库函数,随时可对设计进行仿真模拟,因而能将设计中的错误消除在电路系统装配之前,在设计早期就能检查设计系统功能的可行性,有很强的预测能力。

(3)VHDL有良好的可读性,接近高级语言,容易理解。

(4)系统设计与硬件结构无关,方便了工艺的转换,也不会因工艺变化而使描述过时。

(5)支持模块化设计,可将大规模设计项目分解成若干个小项目,还可以把已有的设计项目作为一个模块调用。

(6)对于用VHDL完成的一个确定设计,可以利用EDA工具进行逻辑综合和优化,并能自动地把VHDL描述转变成门电路级网表文件。

(7)设计灵活,修改方便,同时也便于设计结果的交流、保存和重用,产品开发速度快,成本低。2.2VHDL设计流程:(1文本编辑:用任何文本编辑器都可以进行,也可以用专用的HDL编辑环境。(2)功能仿真:将文件调入HDL仿真软件进行功能仿真,检查逻辑功能是否正确。(3)逻辑综合:将源文件调入逻辑综合软件进行综合,即把语言综合成最简的布尔表达式。(4)时序仿真:需要利用在布局布线中获得的精确参数,用仿真软件验证电路的时序。(5)器件编程:对使用的元件可以进行编程。3.秒表设计:3.1原理框图:Seg[6:0]Seg[6:0]计数器晶振锁存器分频器扫描显示控制(包括扫描控制和显示译码)计数清零锁存按键开关LED显示电路按键消抖1kHzDig[7:0]控制电路3.2设计模块化:由以上原理图可实现秒表设计的模块化,具体而言,可以分为6个模块:分频器:对晶体振荡器产生的时钟信号进行分频,产生时间基准信号。计数器:对时间基准脉冲进行计数,完成计时功能。注:其中包含了一个1kHz到100Hz的分频器,合并在一个模块里。数据锁存器:锁存数据,使显示保持锁定。控制器:控制计数器的运行、暂停以及复位;产生锁存器的是能信号。扫描显示的控制电路:包括扫描计数器、和7段译码器;控制8个数码管以扫描方式显示计时结果。按键消抖电路:消除按键输入信号抖动的影响,输出单脉冲。每个模块调试后可通过顶层文件共同构成秒表的总电路。3.3模块的功能简述:3.3.1分频器:秒表设计中共需要两种分频器。一种是通过模为48000的计数器进位输出实现将晶体振荡器产生的48MHz的时钟信号转化为1KHz的时钟信号作为基准,方便下面各个模块的取用。另一种是通过模为10的计数器进位输出将上述1KHz的时钟信号转化为100Hz的时钟信号,作为计数器的时钟输入。注:实际设计中,第二种分频器被划归到计数器模块,实现与原理图的匹配。3.3.2计数器:计数器功能是通过输入的时钟信号实现计数功能,在秒表设计里,共需要4个模10计数器和2个模6计数器。具体而言,其中2个模10计数器和2个模6计数器分别级联产生2个模60计数器,实现了到秒和到分的进位。而其他的两个模10计数器则是2位模10计数。3.3.3数据锁存器:它是一个控制端控制的组合逻辑电路,实现了暂时锁存数据的功能。3.3.4显示译码模块:显示译码管外联部分示意图:内部原理图:功能是:从锁存器接入数据,通过扫描计数的输出来控制多路复用的数据选择端口和三八译码器的输入端口,使其数据变化相同。38译码器的输出进行位选,bcd的输出进行段选使其能在显示译码管显示完整数据。注:本实验电路板使用共阳极,即低电平有效。3.3.5控制模块:功能是产生实现秒表的暂停or开始,锁存or清零功能。具体而言产生三个输出控制信号:清零,计数,锁存。实现方法:Mealy机或者是Moore机方式,区别是有一个状态的不同。实现原理图:3.3.6按键消抖模块:功能是消除按键输入信号的影响,输出单脉冲。方便实现两个按键对秒表的瞬时控制。3.3.7顶层文件:实现各个模块之间的连接匹配,同时分配实际电路板的引脚。4.模块电路仿真:4.1分频器:4.2计数器:4.2.1模6计数器:4.2.2模10计数器:5.实验总结:5.1实验结果:经过测试,可以由FPGA板上的key-7,key-8控制秒表实现开始暂停锁存清零的相应功能,其它功能基本符合要求。另一方面,通过Modesim仿真,可以测试各程序模块,并且可以清楚看到各模块仿真结果与其功能相符合。5.2心得总结:本次EDA实验大致经历了一个多星期,这段时间里我学到了很多东西。刚开始我对VHDL语言的一无所知而且显得无从下手,在调整心态后我开始仔细了解和掌握课件中有关于VHDL的语句,设计流程和调试方法,在对这些有一定理解的基础上,我又看了几个VHDL应用的小例子,增加对原理的熟悉度。在编调试顶层文件的程序时,各元件之间的连接定义方法和关系让我纠结了好久,最后在别人的建议下,我先画出模块连接框图,明确定义了各个输入和输出的类型和变量。在此基础上设计秒表的VHDL语言,显得条理清晰和检查纠错方便。通过这次实验,我懂得了理论与实际相结合是很重要的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正理解并掌握其中的原理方法,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,发现了自己的不足之处,这是不可避免的。但更重要的是我们要有自己解决问题的思路和方法,这样才能不断完善自己。希望以后能有更多的动手实践机会,在硬件实践中发现自己的不足,弥补自己的不足。最后,特别感谢老师对我的帮助,让我最终顺利完成秒表的设计实验。6.参考文献:[1]李国洪、胡辉、沈明山.EDA技术与实验.机械工业出版社,2009[2]闫石.数字电子技术基础(第五版).高等教育出版社,2006[3](美)JohnF.Wakerly.数字设计:原理与实践(原书第四版).北京:机械工业出版社,2007.57.附录(各模块源程序):(1)分频器:48MHz到1KHz分频器:libraryIEEE;useIEEE.STD_LOGIC_1164.ALL;useIEEE.STD_LOGIC_Unsigned.All;--Uncommentthefollowinglibrarydeclarationifusing--arithmeticfunctionswithSignedorUnsignedvalues--useIEEE.NUMERIC_STD.ALL;--Uncommentthefollowinglibrarydeclarationifinstantiating--anyXilinxprimitivesinthiscode.--libraryUNISIM;--useUNISIM.VComponents.all;entityfp48m_to_1kisport(clk:inSTD_LOGIC;q:outSTD_LOGIC);endfp48m_to_1k;architectureBehavioraloffp48m_to_1kissignalsum:std_logic_vector(15downto0):=(others=>'0');signalq1:std_logic:='0';beginprocess(clk)beginiffalling_edge(clk)thenifsum=47999thensum<=(others=>'0');elsesum<=sum+1;endif;endif;--q<=q1;endprocess;q<=sum(15);endBehavioral;1KHz到100Hz分频器:libraryIEEE;useIEEE.STD_LOGIC_1164.ALL;useIEEE.STD_LOGIC_Unsigned.All;--Uncommentthefollowinglibrarydeclarationifusing--arithmeticfunctionswithSignedorUnsignedvalues--useIEEE.NUMERIC_STD.ALL;--Uncommentthefollowinglibrarydeclarationifinstantiating--anyXilinxprimitivesinthiscode.--libraryUNISIM;--useUNISIM.VComponents.all;entityfp1k_to_100isport(clk:inSTD_LOGIC;q:outSTD_LOGIC);endfp1k_to_100;architectureBehavioraloffp1k_to_100issignalsum:std_logic_vector(2downto0):=(others=>'0');signalq1:std_logic:='0';beginprocess(clk)beginiffalling_edge(clk)thenifsum=4thensum<=(others=>'0');q1<=notq1;elsesum<=sum+1;endif;endif;q<=q1;endprocess;endBehavioral;(2)计数器:模6计数器:libraryIEEE;useIEEE.STD_LOGIC_1164.ALL;useIEEE.STD_LOGIC_unsigned.ALL;--Uncommentthefollowinglibrarydeclarationifusing--arithmeticfunctionswithSignedorUnsignedvalues--useIEEE.NUMERIC_STD.ALL;--Uncommentthefollowinglibrarydeclarationifinstantiating--anyXilinxprimitivesinthiscode.--libraryUNISIM;--useUNISIM.VComponents.all;entitycnt_6isPort(clk:inSTD_LOGIC;clr:inSTD_LOGIC;en:inSTD_LOGIC;co:outSTD_LOGIC;sum:outSTD_LOGIC_VECTOR(2downto0));endcnt_6;architectureBehavioralofcnt_6issignaltemp:std_logic_vector(2downto0);beginprocess(clk,clr,temp)beginifclr='1'thentemp<="000";co<='0';elsif(clk='1'andclk'event)thenifen='1'theniftemp="101"thentemp<="000";elsetemp<=temp+1;endif;endif;endif;iftemp="101"anden='1'thenco<='1';elseco<='0';endif;sum<=temp;endprocess;endBehavioral;模10计数器:libraryIEEE;useIEEE.STD_LOGIC_1164.ALL;useIEEE.STD_LOGIC_unsigned.ALL;--Uncommentthefollowinglibrarydeclarationifusing--arithmeticfunctionswithSignedorUnsignedvalues--useIEEE.NUMERIC_STD.ALL;--Uncommentthefollowinglibrarydeclarationifinstantiating--anyXilinxprimitivesinthiscode.--libraryUNISIM;--useUNISIM.VComponents.all;entitycnt_10isPort(clk:inSTD_LOGIC;clr:inSTD_LOGIC;en:inSTD_LOGIC;co:outSTD_LOGIC;sum:outSTD_LOGIC_VECTOR(3downto0));endcnt_10;architectureBehavioralofcnt_10issignaltemp:std_logic_vector(3downto0);beginprocess(clk,clr,temp)beginifclr='1'thentemp<="0000";co<='0';elsif(clk='1'andclk'event)thenifen='1'theniftemp="1001"thentemp<="0000";elsetemp<=temp+1;endif;endif;endif;iftemp="1001"anden='1'thenco<='1';elseco<='0';endif;sum<=temp;endprocess;endBehavioral;计数器模块级联:libraryIEEE;useIEEE.STD_LOGIC_1164.ALL;--Uncommentthefollowinglibrarydeclarationifusing--arithmeticfunctionswithSignedorUnsignedvalues--useIEEE.NUMERIC_STD.ALL;--Uncommentthefollowinglibrarydeclarationifinstantiating--anyXilinxprimitivesinthiscode.--libraryUNISIM;--useUNISIM.VComponents.all;entityjishuqiisPort(clk:inSTD_LOGIC;clr:inSTD_LOGIC;cnt:inSTD_LOGIC;cout0:outSTD_LOGIC_VECTOR(3downto0);cout1:outSTD_LOGIC_VECTOR(3downto0);cout2:outSTD_LOGIC_VECTOR(3downto0);cout3:outSTD_LOGIC_VECTOR(2downto0);cout4:outSTD_LOGIC_VECTOR(3downto0);cout5:outSTD_LOGIC_VECTOR(2downto0); coa:outstd_logic);endjishuqi;architectureBehavioralofjishuqiisCOMPONENTfp1k_to_100 PORT( clk:INstd_logic; q:OUTstd_logic ); ENDCOMPONENT; COMPONENTcnt_10 PORT( clk:INstd_logic; clr:INstd_logic; en:INstd_logic; co:OUTstd_logic; sum:OUTstd_logic_vector(3downto0) ); ENDCOMPONENT; COMPONENTcnt_6 PORT( clk:INstd_logic; clr:INstd_logic; en:INstd_logic; co:OUTstd_logic; sum:OUTstd_logic_vector(2downto0) ); ENDCOMPONENT; signalclk_100,o1,o2,o3,o4,o5:std_logic; beginInst_fp1k_to_100:fp1k_to_100PORTMAP( clk=>clk, q=>clk_100 ); Inst_cnt_10a:cnt_10PORTMAP( clk=>clk_100, clr=>clr, en=>cnt, co=>o1, sum=>cout0 ); Inst_cnt_10b:cnt_10PORTMAP( clk=>clk_100, clr=>clr, en=>o1, co=>o2, sum=>cout1 ); Inst_cnt_10c:cnt_10PORTMAP( clk=>clk_100, clr=>clr, en=>o2, co=>o3, sum=>cout2 ); Inst_cnt_6a:cnt_6PORTMAP( clk=>clk_100, clr=>clr, en=>o3, co=>o4, sum=>cout3 ); Inst_cnt_10d:cnt_10PORTMAP( clk=>clk_100, clr=>clr, en=>o4, co=>o5, sum=>cout4 ); Inst_cnt_6b:cnt_6PORTMAP( clk=>clk_100, clr=>clr, en=>o5, co=>coa, sum=>cout5 ); endBehavioral;(3)数据锁存器:libraryIEEE;useIEEE.STD_LOGIC_1164.ALL;--Uncommentthefollowinglibrarydeclarationifusing--arithmeticfunctionswithSignedorUnsignedvalues--useIEEE.NUMERIC_STD.ALL;--Uncommentthefollowinglibrarydeclarationifinstantiating--anyXilinxprimitivesinthiscode.--libraryUNISIM;--useUNISIM.VComponents.all;entitylatchisPort(cnt_0:inSTD_LOGIC_VECTOR(3downto0);cnt_1:inSTD_LOGIC_VECTOR(3downto0);cnt_2:inSTD_LOGIC_VECTOR(3downto0);cnt_3:inSTD_LOGIC_VECTOR(3downto0);cnt_4:inSTD_LOGIC_VECTOR(3downto0);cnt_5:inSTD_LOGIC_VECTOR(3downto0);display_in:inSTD_LOGIC;cnt0:outSTD_LOGIC_VECTOR(3downto0);cnt1:outSTD_LOGIC_VECTOR(3downto0);cnt2:outSTD_LOGIC_VECTOR(3downto0);cnt3:outSTD_LOGIC_VECTOR(3downto0);cnt4:outSTD_LOGIC_VECTOR(3downto0);cnt5:outSTD_LOGIC_VECTOR(3downto0));endlatch;architectureBehavioraloflatchisbeginprocess(cnt_0,cnt_1,cnt_2,cnt_3,cnt_4,cnt_5,display_in)beginifdisplay_in='1'thencnt0<=cnt_0;cnt1<=cnt_1;cnt2<=cnt_2;cnt3<=cnt_3;cnt4<=cnt_4;cnt5<=cnt_5;endif;endprocess;endBehavioral;(4)显示译码模块:libraryIEEE;useIEEE.STD_LOGIC_1164.ALL;useIEEE.STD_LOGIC_unsigned.ALL;--Uncommentthefollowinglibrarydeclarationifusing--arithmeticfunctionswithSignedorUnsignedvalues--useIEEE.NUMERIC_STD.ALL;--Uncommentthefollowinglibrarydeclarationifinstantiating--anyXilinxprimitivesinthiscode.--libraryUNISIM;--useUNISIM.VComponents.all;entitydisplayisPort(clk_1k:inSTD_LOGIC;cnt0:inSTD_LOGIC_VECTOR(3downto0);cnt1:inSTD_LOGIC_VECTOR(3downto0);cnt2:inSTD_LOGIC_VECTOR(3downto0);cnt3:inSTD_LOGIC_VECTOR(3downto0);cnt4:inSTD_LOGIC_VECTOR(3downto0);cnt5:inSTD_LOGIC_VECTOR(3downto0); dig_out:outSTD_LOGIC_VECTOR(7downto0);seg_out:outSTD_LOGIC_VECTOR(6downto0); dig_in:outstd_logic_vector(2downto0));enddisplay;architectureBehavioralofdisplayissignalbcd:std_logic_vector(3downto0):="1000";signalseg:std_logic_vector(6downto0):="1111110";signaldig:std_logic_vector(2downto0):="000";beginprocess(clk_1k)beginifclk_1k'eventandclk_1k='1'thenifdig=7thendig<="000";elsedig<=dig+1;endif;endif;endprocess;process(dig)begincasedigiswhen"000"=>dig_out<="11111110";when"001"=>dig_out<="11111101";when"010"=>dig_out<="11111011";when"011"=>dig_out<="11110111";when"100"=>dig_out<="11101111";when"101"=>dig_out<="11011111";when"110"=>dig_out<="10111111";whenothers=>dig_out<="01111111";endcase;endprocess;process(dig)begincasedigiswhen"000"=>bcd<=cnt0;when"001"=>bcd<=cnt1;when"010"=>bcd<="1010";when"011"=>bcd<=cnt2;when"100"=>bcd<=cnt3;when"101"=>bcd<="1010";when"110"=>bcd<=cnt4;when"111"=>bcd<=cnt5;whenothers=>bcd<="1010";endcase;endprocess;process(bcd)begincasebcdiswhen"0000"=>seg<="0000001";when"0001"=>seg<="1001111";when"0010"=>seg<="0010010";when"0011"=>seg<="0000110";when"0100"=>seg<="1001100";when"0101"=>seg<="0100100";when"0110"=>seg<="0100000";when"0111"=>seg<="0001111";when"1000"=>seg<="0000000";when"1001"=>seg<="0000100";whenothers=>seg<="1111110";endcase;endprocess;seg_out<=seg;endBehavioral;(5)控制模块:libraryIEEE;useIEEE.STD_LOGIC_1164.ALL;useIEEE.STD_LOGIC_unsigned.ALL;--Uncommentthefollowinglibrarydeclarationifusing--arithmeticfunctionswithSignedorUnsignedvalues--useIEEE.NUMERIC_STD.ALL;--Uncommentthefollowinglibrarydeclarationifinstantiating--anyXilinxprimitivesinthiscode.--libraryUNISIM;--useUNISIM.VComponents.all;entitycontrolisPort(clk:inSTD_LOGIC;p:inSTD_LOGIC;q:inSTD_LOGIC;clr:outSTD_LOGIC;enc:outSTD_LOGIC;enl:outSTD_LOGIC);endcontrol;architectureBehavioralofcontrolissignalstate:std_logic_vector(1downto0):="00";signaln_state:std_logic_vector(1downto0):="00";signalkey:std_logic_vector(1downto0);beginkey<=p&q;process(state,key)begincasestateiswhen"00"=>ifkey="10"thenn_state<="01";elsen_state<=state;endif;when"01"=>casekeyiswhen"10"=>n_state<="11";when"01"=>n_state<="10";whenothers=>n_state<=state;endcase;when"10"=>ifkey="01"thenn_state<="01";elsen_state<=state;endif;whenothers=>casekeyiswhen"10"=>n_state<="01";when"01"=>n_state<="00";whenothers=>n_state<=state;endcase;endcase;endprocess;process(clk)beginiffalling_edge(clk)thenstate<=n_state;endif;endprocess;process(state)begincasestateiswhen"00"=>clr<='1';enc<='1';enl<='1';when"01"=>clr<='0';enc<='1';enl<='1';when"10"=>clr<='0';enc<='1';enl<='0';whenothers=>clr<='0';enc<='0';enl<='1';endcase;endprocess;endBehavioral;(6)按键消抖模块:消抖:libraryIEEE;useIEEE.STD_LOGIC_1164.ALL;useIEEE.STD_LOGIC_unsigned.ALL;--Uncommentthefollowinglibrarydeclarationifusing--arithmeticfunctionswithSignedorUnsignedvalues--useIEEE.NUMERIC_STD.ALL;--Uncommentthefollowinglibrarydeclarationifinstantiating--anyXilinxprimitivesinthiscode.--libraryUNISIM;--useUNISIM.VComponents.all;entityxiaodouisPort(clk:inSTD_LOGIC;key_in:inSTD_LOGIC;key_out:outSTD_LOGIC);endxiaodou;architectureBehavioralofxiaodouissignalk1,k2:STD_LOGIC;signalcnt:STD_LOGIC_VECTOR(1downto0);beginprocess(clk,key_in)beginifclk'eventandclk='0'thenifcnt=3thenk1<='1';elsek1<='0';cnt<=cnt+1;endif;k2<=k1;endif;ifkey_in='0'thencnt<="00";endif;endprocess;key_out<=notk1andk2;endBehavioral;开关消抖组合:libraryIEEE;useIEEE.STD_LOGIC_1164.ALL;--Uncommentthefollowinglibrarydeclarationifusing--arithmeticfunctionswithSignedorUnsignedvalues--useIEEE.NUMERIC_STD.ALL;--Uncommentthefollowinglibrarydeclarationifinstantiating--anyXilinxprimitivesinthiscode.--libraryUNISIM;--useUNISIM.VComponents.all;entitykaiguanxiaodouisPort(clk:inSTD_LOGIC;kin1:inSTD_LOGIC;kin2:inSTD_LOGIC;kout1:outSTD_LOGIC;kout2:outSTD_LOGIC);endkaiguanxiaodou;architectureBehavioralofkaiguanxiaodouisCOMPONENTxiaodou PORT( clk:INstd_logic; key_in:INstd_logic; key_out:OUTstd_logic ); ENDCOMPONENT;beginInst_xiaodou:xiaodouPORTMAP( clk=>clk, key_in=>kin1, key_out=>kout1 ); Inst_xiaodou2:xiaodouPORTMAP( clk=>clk, key_in=>kin2, key_out=>kout2 );endBehavioral;(7)顶层文件:libraryIEEE;useIEEE.STD_LOGIC_1164.ALL;useIEEE.STD_LOGIC_UNSIGNED.ALL;--Uncommentthefollowinglibrarydeclarationifusing--arithmeticfunctionswithSignedorUnsignedvalues--useIEEE.NUMERIC_STD.ALL;--Uncommentthefollowinglibrarydeclarationifinstantiating--anyXilinxprimitivesinthiscode.--libraryUNISIM;--useUNISIM.VComponents.all;entitytiming_clockisPort(clk:inSTD_LOGIC;ks:inSTD_LOGIC;kr:inSTD_LOGIC;dig8:outSTD_LOGIC_VECTOR(7downto0);seg7:outSTD_LOGIC_VECTOR(6downto0));endtiming_clock;architectureBehavioraloftiming_clockisCOMPONENTfp48m_to_1k PORT( clk:INstd_logic; q:OUTstd_logic );ENDCOMPONENT; COMPONENTjishuqi PORT( clk:INstd_logic; clr:INstd_logic; cnt:INstd_logic; cout0:OUTstd_logic_vector(3downto0); cout1:OUTstd_logic_vector(3downto0); cout2:OUTstd_logic_vector(3downto0); cout3:OUTstd_logic_vector(2downto0); cout4:OUTstd_logic_vector(3downto0); cout5:OUTstd_logic_vector(2downto0); coa:OUTstd_logic );ENDCOMPONENT; COMPONENTlatch PORT( cnt_0:INstd_logic_vector(3downto0); cnt_1:INstd_logic_vector(3downto0); cnt_2:INstd_logic_vector(3downto0); cnt_3:INstd_logic_vector(3downto0); cnt_4:INstd_logic_vector(3downto0); cnt_5:INstd_logic_vector(3downto0); display_in:INstd_logic; cnt0:OUTstd_logic_vector(3downto0); cnt1:OUTstd_logic_vector(3downto0); cnt2:OUTstd_logic_vector(3downto0); cnt3:OUTstd_logic_vector(3downto0); cnt4:OUTstd_logic_vector(3downto0); cnt5:OUTstd_logic_vector(3downto0) ); ENDCOMPONENT; COMPONENTdisplay PORT( clk_1k:INstd_logic; cnt0:INstd_logic_vector(3downto0); cnt1:INstd_logic_vector(3downto0); cnt2:INstd_logic_vector(3downto0); cnt3:INstd_logic_vector(3downto0); cnt4:INstd_logic_vector(3downto0); cnt5:INstd_logic_vector(3downto0); dig_out:OUTstd_logic_vector(7downto0); seg_out:OUTstd_logic_vector(6downto0) ); ENDCOMPONENT; COMPONENTkaiguanxiaodou PORT( clk:INstd_logic; kin1:INstd_logic; kin2:INstd_logic; kout1:OUTstd_logic; kout2:OUTstd_logic ); ENDCOMPONENT; COMPONENTcontrol PORT( clk:INstd_logic; p:INstd_logic; q:INstd_logic; clr:OUTstd_logic; enc:OUTstd_logic; enl:OUTstd_logic ); ENDCOMPONENT;signalclk_1K,n1,n2,n3,n4,n5,aco:std_logic;--signaln6:std_logic:='0';signalv4,v6:std_logic_vector(2downto0);signalv1,v2,v3,v5,v7,v8,v9,v10,v11,v12,v13,v14:std_logic_vector(3downto0);beginInst_fp48m_to_1k:fp48m_to_1kPORTMAP( clk=>clk, q=>clk_1k );Inst_jishuqi:jishuqiPORTMAP( clk=>clk_1K, clr=>n3, cnt=>n4, cout0=>v1, cout1=>v2, cout2=>v3, cout3=>v4, cout4=>v5, cout5=>v6, coa=>aco ); v14<='0'&v4; v13<='0'&v6;Inst_latch:latchPORTMAP( cnt_0=>v1, cnt_1=>v2, cnt_2=>v3, cnt_3=>v14, cnt_4=>v5, cnt_5=>v13, display_in=>n5, cnt0=>v7, cnt1=>v8, cnt2=>v9, cnt3=>v10, cnt4=>v11, cnt5=>v12 ); Inst_display:displayPORTMAP( clk_1k=>clk_1K, cnt0=>v7, cnt1=>v8, cnt2=>v9, cnt3=>v10, cnt4=>v11, cnt5=>v12, dig_out=>dig8, seg_out=>seg7 );Inst_kaiguanxiaodou:kaiguanxiaodouPORTMAP( clk=>clk_1K, kin1=>ks, kin2=>kr, kout1=>n1, kout2=>n2 );Inst_control:controlPORTMAP( clk=>clk_1K, p=>n1, q=>n2, clr=>n3, enc=>n4, enl=>n5 ); endBehavioral;(8)引脚分配:#PlanAheadGeneratedphysicalconstraintsNET"clk"LOC=N9;NET"dig8[0]"LOC=N13;NET"dig8[1]"LOC=M13;NET"dig8[2]"LOC=L13;NET"dig8[3]"LOC=K13;NET"dig8[4]"LOC=J13;NET"dig8[5]"LOC=J12;NET"dig8[6]"LOC=H13;NET"dig8[7]"LOC=G13;NET"ks"LOC=G5;NET"kr"LOC=F4;NET"seg7[0]"LOC=A9;NET"seg7[1]"LOC=B10;NET"seg7[2]"LOC=A10;NET"seg7[3]"LOC=C10;NET"seg7[4]"LOC=C11;NET"seg7[5]"LOC=A11;NET"seg7[6]"LOC=B12;#PlanAheadGeneratedIOconstrai基于C8051F单片机直流电动机反馈控制系统的设计与研究基于单片机的嵌入式Web服务器的研究MOTOROLA单片机MC68HC(8)05PV8/A内嵌EEPROM的工艺和制程方法及对良率的影响研究基于模糊控制的电阻钎焊单片机温度控制系统的研制基于MCS-51系列单片机的通用控制模块的研究基于单片机实现的供暖系统最佳启停自校正(STR)调节器单片机控制的二级倒立摆系统的研究基于增强型51系列单片机的TCP/IP协议栈的实现基于单片机的蓄电池自动监测系统基于32位嵌入式单片机系统的图像采集与处理技术的研究基于单片机的作物营养诊断专家系统的研究基于单片机的交流伺服电机运动控制系统研究与开发基于单片机的泵管内壁硬度测试仪的研制基于单片机的自动找平控制系统研究基于C8051F040单片机的嵌入式系统开发基于单片机的液压动力系统状态监测仪开发模糊Smith智能控制方法的研究及其单片机实现一种基于单片机的轴快流CO〈,2〉激光器的手持控制面板的研制基于双单片机冲床数控系统的研究基于CYGNAL单片机的在线间歇式浊度仪的研制基于单片机的喷油泵试验台控制器的研制基于单片机的软起动器的研究和设计基于单片机控制的高速快走丝电火花线切割机床短循环走丝方式研究基于单片机的机电产品控制系统开发基于PIC单片机的智能手机充电器基于单片机的实时内核设计及其应用研究基于单片机的远程抄表系统的设计与研究基于单片机的烟气二氧化硫浓度检测仪的研制基于微型光谱仪的单片机系统单片机系统软件构件开发的技术研究基于单片机的液体点滴速度自动检测仪的研制基于单片机系统的多功能温度测量仪的研制基于PIC单片机的电能采集终端的设计和应用基于单片机的光纤光栅解调仪的研制气压式线性摩擦焊机单片机控制系统的研制基于单片机的数字磁通门传感器基于单片机的旋转变压器-数字转换器的研究基于单片机的光纤Bragg光栅解调系统的研究单片机控制的便携式多功能乳腺治疗仪的研制基于C8051F020单片机的多生理信号检测仪基于单片机的电机运动控制系统设计Pico专用单片机核的可测性设计研究基于MCS-51单片机的热量计基于双单片机的智能遥测微型气象站MCS-51单片机构建机器人的实践研究基于单片机的轮轨力检测基于单片机的GPS定位仪的研究与实现基于单片机的电液伺服控制系统用于单片机系统的MMC卡文件系统研制基于单片机的时控和计数系统性能优化的研究基于单片机和CPLD的粗光栅位移测量系统研究单片机控制的后备式方波UPS提升高职学生单片机应用能力的探究基于单片机控制的自动低频减载装置研究基于单片机控制的水下焊接电源的研究基于单片机的多通道数据采集系统基于uPSD3234单片机的氚表面污染测量仪的研制基于单片机的红外测油仪的研究96系列单片机仿真器研究与设计基于单片机的单晶金刚石刀具刃磨设备的数控改造基于单片机的温度智能控制系统的设计与实现基于MSP430单片机的电梯门机控制器的研制基于单片机的气体测漏仪的研究基于三菱M16C/6N系列单片机的CAN/USB协议转换器基于单片机和DSP的变压器油色谱在线监测技术研究基于单片机的膛壁温度报警系统设计基于AVR单片机的低压无功补偿控制器的设计基于单片机船舶电力推进电机监测系统基于单片机网络的振动信号的采集系统基于单片机的大容量数据存储技术的应用研究基于单片机的叠图机研究与教学方法实践基于单片机嵌入式Web服务器技术的研究及实现基于AT89S52单片机的通用数据采集系统基于单片机的多道脉冲幅度分析仪研究HYPER

温馨提示

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

最新文档

评论

0/150

提交评论