课程设计交通灯控制器的EDA设计_第1页
课程设计交通灯控制器的EDA设计_第2页
课程设计交通灯控制器的EDA设计_第3页
课程设计交通灯控制器的EDA设计_第4页
课程设计交通灯控制器的EDA设计_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

1、沈阳工程学院课程设计(论文)摘 要eda技术用于电子产品设计中比较先进的技术,可以代替设计者完成电子系统设计中的大部分工作,而且可以直接从程序中修改错误及系统功能而不需要硬件电路的支持,既缩短了研发周期,又大大节约了成本,受到了电子工程师的青睐。 及计算机应用等领域的重要性突出。随着技术市场与人才市场对eda的需求不断提高,产品的市场需求和技术市场的要求也必然会反映到教学领域和科研领域中来。因此学好eda技术对我们有很大的益处。eda功能强大,一台计算机、一套eda软件和一片或几片大规模可编程芯(cpld/fpga或isppac),就能完成电子系统的设计。eda技术涉及面广,内容丰富

2、,但在教学和技术推广层面上,应用较为广泛的是基于可编程器件的eda技术,它主要包括如下四大要素:1大规模可编程器件,它是利用eda技术进行电子系统设计的载体;2硬件描述语言,它是利用eda技术进行电子系统设计的主要手段;3软件开发工具,它是利用eda技术进行电子系统的智能化的自动化设计工具;4实验开发系统,它是利用eda技术进行电子系统设计的下载工具及硬件验证工具。     实现路口交通灯系统的控制方法很多,可以用标准逻辑器件、可编程序控制器plc、单片机等方案来实现。但是些控制方法的功能修改及调试都需要硬件电路的支持,在一定程度上增加了功能修

3、改及系统调试的困难。因此,在设计中采用eda技术,应用目前广泛应用的vhdl硬件电路描述语言,实现交通灯系统控制器的设计,利用maxplus集成开发环境进行综合、仿真,并下载到cpld可编程逻辑器件中,完成系统的控制作用。关键词eda,系统,控制器,交通灯abstractthe eda technique used for an electronics product design medium more forerunner of technique, can replace design completion electronics system design medium of big

4、part work, and can direct from in the procedure modification mistake and system function but not demand hardware electric circuit of support, since shortenned development period, again consumedly economy cost, was subjected to the electronics engineer's favor. the realization street corner trans

5、portation light system of control the method be a lot of, can use standard logic spare part, programmable preface controller plc, list slice machine etc. project come to realization. but some control method of function modification and adjust to try all demand hardware electric circuit of support, t

6、o some extent increment function modification and the system adjust to try of difficulty. therefore, in the design adoption eda technique, application extensive currently application of vhdl hardware electric circuit description language, realization the transportation light system controller of des

7、ign, make use of maxplus integration the development environment carry on comprehensive, imitate true, and download arrive the cpld programmable logic spare part in, completion system of control function.keywords eda, system, controller, transportation light目 录摘 要iabstractii目 录iii引 言12硬件电路介绍22.1 eda

8、技术介绍22.2交通灯控制器的基本要求22.3交通灯控制器的原理描述32.4交通灯控制器的基本方案43各单元电路设计53.1 jtdkz53.2 xskz73.3 cnt45s83.4 cnt25s113.5 cnt05s143.6交通灯控制器的顶层原理16结 论17致 谢18参考文献19附 录20- 27 -引 言eda技术是用于电子产品设计中比较先进的技术,可以代替设计者完成电子系统设计中的大部分工作,而且可以直接从程序中修改错误及系统功能而不需要硬件电路的支持,既缩短了研发周期,又大大节约了成本,受到了电子工程师的青睐。  vhdl英文全称为:very high sp

9、eed integrated circuit hardware description language,即超高速集成电路硬件描述语言。当今,在电子工程领域,vhdl已经成为事实上的通用硬件描述语言vhdl起源于1983年,1986年美国电气和电子工程师协会(ieee)开始工作,讨论vhdl标准。1987年12月ieee接受vhdl为标准hdl,这就是ieee std 1076-1987(ltm87)。1993年ieee对vhdl重新修订,增加了一些功能,公布了新标准版本ieee std 1076-1993(lrm93)。严格的说,vhdl93和vhdl87并不完全兼容(vhdl93从更高的抽

10、象层次和系统描述能力上扩展了vhdl的内容。例如,增加了一些保留字并删去了某些属性),但是,对vhdl87的源码只做少许简单的修改就可以成为合法的vhdl93代码(bfmr93)。vhdl主要用于描述和设计复杂数字系统的结构、行为、功能和接口。在工程设计方面有很多优点。首先,与其他的硬件描述语言相比,vhdl描述能力更强,从而决定了它成为系统设计领域最佳的硬件描述语言。其次,vhdl技术完备,具有丰富的仿真语句和库函数。而且还支持同步电路、异步电路和其他电路的设计。再次,vhdl设计方法灵活,对设计的描述具有相对独立性。设计者可以不懂硬件结构,可以不管最终设计实现的目标器件,而进行独立的设计。

11、最后,vhdl支持广泛,目前大多数eda工具几乎都在不同程度上支持vhdl。  实现路口交通灯系统的控制方法很多,可以用标准逻辑器件、可编程序控制器plc、单片机等方案来实现。但是这些控制方法的功能修改及调试都需要硬件电路的支持,在一定程度上增加了功能修改及系统调试的困难。因此,在设计中采用eda技术,应用目前广泛应用的vhdl硬件电路描述语言,实现交通灯系统控制器的设计,利用maxplus集成开发环境进行综合、仿真,并下载到cpld可编程逻辑器件中,完成系统的控制作用。2硬件电路介绍2.1 eda技术介绍电子设计自动化技术是一种以计算机为基本工作平台,利用计算机图形学、拓

12、扑逻辑学、计算数学,以至人工智能学等多种计算机应用学科的成果开发出来的一整套软件工具,是一种帮助电子设计工程师从事电子元件、产品和几桶设计的综合技术。eda技术就是以微电子技术微物理成面,现代电子设计技术为灵魂,计算机软件为技术手段,最终形成集成电子系统或集成电路为目的的一门新兴技术。由此可见,eda技术的使用对象由两大类人员组成。一类是专用集成电路asic的芯片设计研发人员;另一类是广大的电子线路设计人员,他们不具备专门的集成电路(ic)深层次的知识。eda技术包含以下特点:1,eda技术所用器件体积小巧、使用灵活、成本低,易于真正产品化。组装各种智能式控制设备和仪器,能做到机电仪一体化。2

13、,面向控制。能有针对性地解决各种从简单到复杂的各类控制任务,因而能获得最佳的性能价格比。3,抗干扰能力强,适应温度范围宽,在各种恶劣的环境下都能可靠的工作。这是其它微机集中无法比拟的。4,可以方便的实现多机、分布式的集散控制,使整个控制系统的效率大大地提高。5,eda技术应用产品的研制周期短,所开发出来的样机就是以后批量生产的产品,可以避免不必要的二次开发过程。eda的应用非常广泛,比如说在工业方面,电机控制,工业机器人,过程控制,智能传感器,机电仪一体化等都应用到了eda技术。而仪器仪表方面、家用电器、电讯方面、导航与控制方面、汽车方面、数据处理方面等多个方面也应用到了改技术。2.2交通灯控

14、制器的基本要求在十字路口,每条道路各有一组红、黄、绿灯和倒计时显示器,用以指挥车辆和行人有序地通行。其中,红灯(r)亮,表示该条道路禁止通行;黄灯(y)亮,表示停车;绿灯(g)亮,表示可以通行。倒计时显示器是用来显示允许通行或禁止通行时间。交通灯控制器就是用来自动控制十字路口的交通灯和计时器,指挥各种车辆和行人安全通行。(1)在十字路口的两个方向上各设一组红、绿、黄灯,显示顺序为其中一方向(东西方向)是绿灯、黄灯、红灯;另一方向(南北方向)是红灯、绿灯、黄灯。(2)设置一组数码管,以倒计时的显示方式允许通行或禁止通行的时间,其中绿灯、黄灯、红灯的持续时间分别是25s、5s、和45s。(3)当各

15、条路上任意一条上出现特殊情况时,如当消防车、救护车或其他需要优先放行的车辆通过时,各方向上均是红灯亮,倒计时停止,显示数字在闪烁。当特殊运行状态结束后,控制器恢复原来状态,继续正常运行。(4)用两组数码管实现双向倒计时显示。2.3交通灯控制器的原理描述交通灯控制器的核心范围是一个计数范围为059共(60秒)的计数器和一个根据计数值做出规定反映的控制器。另外,还需要输入clk时钟信号。最后,要驱动七段数码管,显然还需要一个译码电路。 54 0红灯亮绿灯亮绿灯亮绿灯亮红灯亮东西方向南北方向黄灯亮灯亮2959 292459黄灯亮灯亮图2.3交通灯控制器原理图2.4交通灯控制器的基本方案交通灯控制器的

16、核心范围是一个计数范围为059共(60秒)的计数器和一个根据计数值做出规定反映的控制器。另外,作者所用的实验仪配备的晶振为20mhz,因此还需要一个分频电路。最后,要驱动七段数码管,显然还需要一个译码电路。 主干道状态转换图s=0立刻转换下一状态s=1s=1s=0s=0s=1step 0 系统下载,主干道开始60s倒计时,不论s有无信号,皆为mgcr状态。判断sstep 1 保持mgcr状态,显示保持5秒。step 2 转入mycr状态,开始5s倒计时step 3 转入mrcg状态,开始30s倒计时判断sstep 4 转入mrcy状态,开始5s倒计时3各单元电路设计3.1 jtdkz简单思路:

17、假设4种状态分别为:a、b、c、d,在clk上升沿来时,根据sb、sm状态判断交通处于何种状态,该状态输出什么信号。设计的原理图模块:设计源程序:library ieee;use ieee.std_logic_1164.all;entity jtdkz is port(clk,sm,sb:in std_logic; mr,my0,mg0,br,by0,bg0:out std_logic);end entity jtdkz;architecture art of jtdkz is type state_type is(a,b,c,d); signal state:state_type; begi

18、n cnt:process(clk)is variable s:integer range 0 to 45; variable clr,en:bit; begin if(clk'event and clk='1')then if clr='0'then s:=0; elsif en='0'then s:=s; else s:=s+1; end if; case state is when a=>mr<='0'my0<='0'mg0<='1'br<='1&

19、#39;by0<='0'bg0<='0' if(sb and sm)='1' then if s=45 then state<=b;clr:='0'en:='0' else state<=a;clr:='1'en:='1' end if; elsif(sb and(not sm)='1'then state<=b;clr:='0'en:='0' else state<=a;clr:='1

20、9;en:='1' end if; when b=>mr<='0'my0<='1'mg0<='0'br<='1'by0<='0'bg0<='0' if s=5 then state<=c;clr:='0'en:='0' else state<=b;clr:='1'en:='1' end if; when c=>mr<='1'my0<=

21、'0'mg0<='0'br<='0'by0<='0'bg0<='1' if(sm and sb)='1'then if s=25 then state<=d;clr:='0'en:='0' else state<=c;clr:='1'en:='1' end if; elsif sb='0' then state<=d;clr:='0'en:='0'

22、 else state<=c;clr:='1'en:='1' end if; when d=>mr<='1'my0<='0'mg0<='0'br<='0'by0<='1'bg0<='0' if s=5 then state<=a;clr:='0'en:='0' else state<=d;clr:='1'en:='1' end if; end c

23、ase; end if; end process cnt;end architecture art;设计仿真的截图:3.2 xskz简单设计思路:根据en45、en25、en05m、en05b的信号以及3个倒计时计数器的计数状态决定输出3个倒计时计数器中某个的状态输出。原理图模块:设计源程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cskz is port(ina:in std_logic; outa:out std_logic);end entity cskz;archit

24、ecture art of cskz is begin process(ina)is begin if ina='1'then outa<='1' else outa<='0' end if; end process;end architecture art;设计仿真的截图:3.3 cnt45s简单思路:clk上升沿到来时,若到计时使能信号和sb信号有效,cnt45s开始计数,并将输入状态通过dout45m、dout45b分别输出到主、支干道显示。 设计的原理图模块: 设计源程序:3library ieee;use ieee.std_

25、logic_1164.all;use ieee.std_logic_unsigned.all;entity cnt45s is port(sb,clk,en45:in std_logic; dout45m,dout45b:out std_logic_vector(7 downto 0);end cnt45s;architecture art of cnt45s is signal cnt6b:std_logic_vector(5 downto 0); begin process(sb,clk,en45) is begin if sb='0' then cnt6b<=cnt

26、6b-cnt6b-1; elsif(clk'event and clk='1')then if en45='1'then cnt6b<=cnt6b+1; elsif en45='0'then cnt6b<=cnt6b-cnt6b-1; end if;end if;end process;process(cnt6b)isbegincase cnt6b iswhen"000000"=>dout45m<="01000101"dout45b<="01010000&qu

27、ot;when"000001"=>dout45m<="01000100"dout45b<="01001001"when"000010"=>dout45m<="01000011"dout45b<="01001000"when"000011"=>dout45m<="01000010"dout45b<="01000111"when"000100"=&

28、gt;dout45m<="01000001"dout45b<="01000110"when"000101"=>dout45m<="01000000"dout45b<="01000101"when"000110"=>dout45m<="00111001"dout45b<="01000100"when"000111"=>dout45m<="001110

29、00"dout45b<="01000011"when"001000"=>dout45m<="00110111"dout45b<="01000010"when"001001"=>dout45m<="00110110"dout45b<="01000001"when"001010"=>dout45m<="00110101"dout45b<="0

30、1000000"when"001011"=>dout45m<="00110100"dout45b<="01101001"when"001100"=>dout45m<="00110011"dout45b<="00111000"when"001101"=>dout45m<="00110010"dout45b<="00110111"when"0011

31、10"=>dout45m<="00110001"dout45b<="00110110"when"001111"=>dout45m<="00110000"dout45b<="00110101"when"010000"=>dout45m<="00101001"dout45b<="00110100"when"010001"=>dout45m<=&q

32、uot;00101000"dout45b<="00110011"when"010010"=>dout45m<="00100111"dout45b<="00110010"when"010011"=>dout45m<="00100110"dout45b<="00110001"when"010100"=>dout45m<="00100101"dout45b&l

33、t;="00110000"when"010101"=>dout45m<="00100100"dout45b<="00101001"when"010110"=>dout45m<="00100011"dout45b<="00101000"when"010111"=>dout45m<="00100010"dout45b<="00100111"when

34、"011000"=>dout45m<="00100001"dout45b<="00100110"when"011001"=>dout45m<="00100000"dout45b<="00100101"when"011010"=>dout45m<="00011001"dout45b<="00100100"when"011011"=>dout

35、45m<="00011000"dout45b<="00100011"when"011100"=>dout45m<="00010111"dout45b<="00100010"when"011101"=>dout45m<="00010110"dout45b<="00100001"when"011110"=>dout45m<="00010101"

36、;dout45b<="00100000"when"011111"=>dout45m<="00010100"dout45b<="00011001"when"100000"=>dout45m<="00010011"dout45b<="00011000"when"100001"=>dout45m<="00010010"dout45b<="00010111

37、"when"100010"=>dout45m<="00010001"dout45b<="00010110"when"100011"=>dout45m<="00010000"dout45b<="00010101"when"100100"=>dout45m<="00001001"dout45b<="00010100"when"100101"

38、;=>dout45m<="00001000"dout45b<="00010011"when"100110"=>dout45m<="00000111"dout45b<="00010010"when"100111"=>dout45m<="00000110"dout45b<="00010001"when"101000"=>dout45m<="000

39、00101"dout45b<="00010000"when"101001"=>dout45m<="00000100"dout45b<="00001001"when"101010"=>dout45m<="00000011"dout45b<="00001000"when"101011"=>dout45m<="00000010"dout45b<=&quo

40、t;00000111"when"101100"=>dout45m<="00000001"dout45b<="00000110"when others=>dout45m<="00000000"dout45b<="00000000"end case;end process;end;设计仿真的截图:3.4 cnt25s简单思路:clk上升沿到来时,若到计时使能信号、sm信号和sb信号有效,cnt25s开始计数,并将输入状态通过dout25m、dout25b

41、分别输出到主、支干道显示。设计的原理图模块:设计源程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cnt25s is port(sb,sm,clk,en25:in std_logic; dout25m,dout25b:out std_logic_vector(7 downto 0);end entity cnt25s;architecture art of cnt25s is signal cnt5b:std_logic_vector(4 downto 0); beginpro

42、cess(sb,sm,clk,en25)isbegin if sb='0'then cnt5b<=cnt5b-cnt5b-1; elsif sm='0'then cnt5b<=cnt5b-cnt5b-1; elsif(clk'event and clk='1')then if en25='1'then cnt5b<=cnt5b+1; elsif en25='0'then cnt5b<=cnt5b-cnt5b-1; end if; end if; end process; proces

43、s(cnt5b)is begin case cnt5b is when"00000"=>dount25b<="00100101"dout25m<="00110000" when"00001"=>dount25b<="00100100"dout25m<="00101001" when"00010"=>dount25b<="00100011"dout25m<="00101000

44、" when"00011"=>dount25b<="00100010"dout25m<="00100111" when"00100"=>dount25b<="00100001"dout25m<="00100110" when"00101"=>dount25b<="00100000"dout25m<="00100101" when"00110&q

45、uot;=>dount25b<="00011001"dout25m<="00100100" when"00111"=>dount25b<="00011000"dout25m<="00100011" when"01000"=>dount25b<="00010111"dout25m<="00100010" when"01001"=>dount25b<=&q

46、uot;00010110"dout25m<="00100001" when"01010"=>dount25b<="00010101"dout25m<="00100000" when"01011"=>dount25b<="00010100"dout25m<="00011001" when"01100"=>dount25b<="00010011"dout25

47、m<="00011000" when"01101"=>dount25b<="00010010"dout25m<="00010111" when"01110"=>dount25b<="00010001"dout25m<="00010110" when"01111"=>dount25b<="00010000"dout25m<="00010101&quo

48、t; when"10000"=>dount25b<="00001001"dout25m<="00010100" when"10001"=>dount25b<="00001000"dout25m<="00010011" when"10010"=>dount25b<="00000111"dout25m<="00010010" when"10011"

49、=>dount25b<="00000110"dout25m<="00010001" when"10100"=>dount25b<="00000101"dout25m<="00010000" when"10101"=>dount25b<="00000100"dout25m<="00001001" when"10110"=>dount25b<="

50、00000011"dout25m<="00001000" when"10111"=>dount25b<="00000010"dout25m<="00000111" when"11000"=>dount25b<="00000001"dout25m<="00000110" when others=>dount25b<="00000000"dout25m<="00

51、000000"end case;end process;end;设计仿真的截图:3.5 cnt05s简单思路:clk上升沿到来时,若到计时使能信号有效,cnt25s开始计数,并将输入状态通过dout05输出到主、支干道显示。设计的原理图模块:设计源程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cnt05s isport(clk,en05m,en05b:in std_logic; dout5:out std_logic_vector(7 downto 0);end cn

52、t05s;architecture art of cnt05s is signal cnt3b:std_logic_vector(2 downto 0); begin process(clk,en05m,en05b)is begin if(clk'event and clk='1')then if en05m='1'then cnt3b<=cnt3b+1; elsif en05b='1'then cnt3b<=cnt3b+1; elsif en05b='0'then cnt3b<=cnt3b-cnt3b-

53、1; end if; end if; end process; process(cnt3b) begin case cnt3b is when"000"=>dout5<="00000101" when"001"=>dout5<="00000100" when"010"=>dout5<="00000011" when"011"=>dout5<="00000010" when"100

54、"=>dout5<="00000001" when others=>dout5<="00000000" end case; end process;end;设计仿真的截图:3.6交通灯控制器的顶层原理交通灯控制器的核心范围是一个计数范围为059共(60秒)的计数器和一个根据计数值做出规定反映的控制器。另外,还需要输入clk时钟信号。最后,要驱动七段数码管,显然还需要一个译码电路来完成交通灯控制器的设计。图3.5交通灯控制器的顶层原理图结 论这次为时2周的eda课程设计,不仅使我更直观的了解了eda在实际上是如何应用的,并

55、且进一步熟练掌握max+plus的操作环境。得到题目以后,通过网络和图书馆收集、查阅相关资料,对找出的资料进行筛选。在得到充分的资料之后进行程序设计,然后熟悉max+plus的操作环境,并在此环境下对程序进行编译与仿真,检查程序是否运行正确。如果出现错误,需要进行修改,直到编译与仿真通过并完全正确为止。最终该交通灯控制器可以实现3种颜色灯的交替亮灭以及时间的倒计时,可以指挥车辆和行人安全通行。本次设计不但巩固了以前学过的基础知识,设计语言主要是采用vhdl语言的自顶向下的设计方法。eda中,自顶向下的设计方法,就是在整个设计流程中各设计环节逐步求精的过程应用vhdl运行自顶向下的设计,就是使用

56、vhdl模型在所有综合级别上对硬件进行说明、建模和仿真测试。提高了实际操作能力,而且对课程设计的设计思路和方法有了更深一步的了解,为今后的毕业设计做了很好的准备。这次课设给我带来的收获主要有: 1.进一步熟悉maxplus ii软件的使用和操作方法,以及硬件实现时的下载方法与运行方法;2.对vhdl语言的自顶向下设计方法有了进一步的认识;3.对我独立思考和解决问题的能力有了很大的锻炼;4.再次熟悉了科技论文的写法。不足之处就在于设计的东西还不完善,很多功能只是停留在表层阶段,而且还有小部分预想的功能没有实现。致 谢为期2周的eda课程设计结束了,这次设计我感觉受益匪浅,在这里我要对帮助我的尹老

57、师,包老师及同学表示感谢。首先,感谢包老师在这次eda设计对我们的关心和指导。正是他们细心的指导使得我们设计得以完成,包老师为我们耐心的讲解了每个设计应该注意的要点,使我们不至于在一些小细节上出现问题。并且在设计中遇到的疑难问题给予了一一解答,老师们严谨的治学态度与对设计产品的严格要求值得我们学习。其次,在这次课程设计中我学到了许多在平时的课堂上学不到的知识,eda技术在现实中很有用处,是一门很好的技术,所以我认为这次课程实际的过程非常重要。开始的程序不太明白,包老师该很认真负责的给我讲解,使我对电梯的控制的vhdl程序有了很好的解读,包老师在这次的课程设计过程中,给了我很多的帮助,在此我对包

58、老师很尊重,他不辞劳苦的给我们提供各方面的帮助,使我能顺利的完成设计任务,在机房的使用中也给了我们很大的支持,最后感谢包老师,他在这次设计中让我们得到了很好的知识,非常感谢我要感谢学校给我们安排这次eda设计,使我们在理论知识得以从实践上找到契合之处,正是理论与实际结合才能使我们成为合格的大学生,在未来的工作中不会缺乏动手能力。实际操作成功正是检验理论基础扎实的前提下,所以这次设计也是个复习eda理论的好机会。 最后,感谢同学们的帮助和鼓励,大家在设计期间互相探讨,互相学习,才能最终实现交通灯的设计。课程设计让我学到了书本上没有的知识,并且自己动手去完成一个项目这是一个很好的锻炼,这将是我们宝

59、贵的财富。 参考文献 1 谭会生, 张昌凡编著. eda技术及应用m. 西安:西安电子科技大学出版社。2004 2 叶建波,余志强编著. eda 技术:protel 99 se&ewb 5.0. m 北京:清华大学出版社:北京交通大学出版社。2005 3 曾繁泰等著. eda工程概论m. 北京:清华大学出版社。2002 4 曾繁泰等著. eda工程实践m. 北京:清华大学出版社。2004 5 江国强编著. eda技术习题与实验m. 北京:电子工业出版社。20056 潘松, 黄继业编著.eda技术与vhdlm. 北京:清华大学出版社。2005 127 江国强编著.eda技术与应用m. 北

60、京:电子工业出版社,2004 8 谭会生, 瞿遂春著.eda技术综合应用实例与分析m. 西安: 西安电子科技大学出版社。20049 曾建唐主编.电工电子基础实践教程(上册)实验·edam. 机械工业出版。2003 210 王金明编著.数字系统设计与vhdlm. 北京:电子工业出版社。2006 1211 朱正伟主编.eda技术及应用m. 北京:清华大学出版社。2005 1212 introduction to digital audio coding and standards13 principles of asynchronous circuit design - a system

61、s perspective14 verilog hdl synthesis, a practical primer15eda for ic lmplementation circuit design,and process technology16 an introduction to mixed signal ic test and measurement附 录主程序:library ieee;use ieee.std_logic_1164.all;entity jtdkz is port(clk,sm,sb:in std_logic; mr,my0,mg0,br,by0,bg0:out s

62、td_logic);end entity jtdkz;architecture art of jtdkz is type state_type is(a,b,c,d); signal state:state_type; begin cnt:process(clk)is variable s:integer range 0 to 45; variable clr,en:bit; begin if(clk'event and clk='1')then if clr='0'then s:=0; elsif en='0'then s:=s; el

63、se s:=s+1; end if; case state is when a=>mr<='0'my0<='0'mg0<='1'br<='1'by0<='0'bg0<='0' if(sb and sm)='1' then if s=45 then state<=b;clr:='0'en:='0' else state<=a;clr:='1'en:='1' end if

64、; elsif(sb and(not sm)='1'then state<=b;clr:='0'en:='0' else state<=a;clr:='1'en:='1' end if; when b=>mr<='0'my0<='1'mg0<='0'br<='1'by0<='0'bg0<='0' if s=5 then state<=c;clr:='0&

65、#39;en:='0' else state<=b;clr:='1'en:='1' end if; when c=>mr<='1'my0<='0'mg0<='0'br<='0'by0<='0'bg0<='1' if(sm and sb)='1'then if s=25 then state<=d;clr:='0'en:='0' else state&l

66、t;=c;clr:='1'en:='1' end if; elsif sb='0' then state<=d;clr:='0'en:='0' else state<=c;clr:='1'en:='1' end if; when d=>mr<='1'my0<='0'mg0<='0'br<='0'by0<='1'bg0<='0' if s

67、=5 then state<=a;clr:='0'en:='0' else state<=d;clr:='1'en:='1' end if; end case; end if; end process cnt;end architecture art;library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cskz is port(ina:in std_logic; outa:out std_logic);end e

68、ntity cskz;architecture art of cskz is begin process(ina)is begin if ina='1'then outa<='1' else outa<='0' end if; end process;end architecture art;library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cnt45s is port(sb,clk,en45:in std_logic; do

69、ut45m,dout45b:out std_logic_vector(7 downto 0);end cnt45s;architecture art of cnt45s is signal cnt6b:std_logic_vector(5 downto 0); begin process(sb,clk,en45) is begin if sb='0' then cnt6b<=cnt6b-cnt6b-1; elsif(clk'event and clk='1')then if en45='1'then cnt6b<=cnt6b+1; elsif en45='0'then cnt6b<=cnt6b

温馨提示

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

评论

0/150

提交评论