(精品)第6章EDA课件.ppt

上传人:gsy****95 文档编号:85125513 上传时间:2023-04-10 格式:PPT 页数:86 大小:641.50KB
返回 下载 相关 举报
(精品)第6章EDA课件.ppt_第1页
第1页 / 共86页
(精品)第6章EDA课件.ppt_第2页
第2页 / 共86页
点击查看更多>>
资源描述

《(精品)第6章EDA课件.ppt》由会员分享,可在线阅读,更多相关《(精品)第6章EDA课件.ppt(86页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社4/6/20232007-2-16第1页第第6章章 CPLD/FPGA在数字系统中的应用在数字系统中的应用u6.1 正负脉宽数控调制信号发生器的设计 u6.2 智能函数发生器的设计 u6.3 序列检测器的设计 u6.4 数字频率计的设计 u6.5 数字秒表的设计 u6.6 交通信号控制器的设计 u6.7 三层电梯控制器的设计 EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社4/6/20232007-2-16第2页4/6/2023教学目标教学重点教学过程第第6章章

2、CPLD/FPGA在数字系统中的应用在数字系统中的应用EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社4/6/20232007-2-16第3页教学目标:教学目标:l掌握应用掌握应用VHDL语言和原理图设计方法来设计复杂的逻辑语言和原理图设计方法来设计复杂的逻辑电路电路l内容有正负脉宽数控调制信号发生器的设计、内容有正负脉宽数控调制信号发生器的设计、l智能函数发生器的设计、智能函数发生器的设计、l序列检测器的设计、序列检测器的设计、l数字频率计的设计、数字频率计的设计、l数字秒表的设计、数字秒表的设计、l交通信号控制器的设计。交通信号控制器的设计。第第6

3、章章 CPLD/FPGA在数字系统中的应用在数字系统中的应用EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社4/6/20232007-2-16第4页教学重点:掌握应用VHDL语言和原理图设计方法来设计复杂的逻辑电路掌握智能函数发生器的设计方法数字频率计的设计方法交通信号控制器的设计方法EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社4/6/20232007-2-16第5页教学过程本章通过若干数字电子系统的设计实例,详细说明如何在实际设计中,应用VHDL语言和原理图设计方法来设计复杂的逻辑电路 这些设计可以直接成

4、为数字系统或电子产品电路中的实际模块EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社4/6/20232007-2-16第6页6.1 正负脉宽数控调制信号发生器的设计正负脉宽数控调制信号发生器的设计正负脉宽数控调制信号发生器在工业控制及数控系统中应用非常广泛,本节主要描述了一个可自加载的脉宽数控调制信号发生器。6.1.1 设计思路 图6-1 是脉宽数控调制信号发生器逻辑图,此信号发生器是由两个完全相同的可自加载加法计数LCNT8组成的,它的输出信号的高低电平脉宽可分别由两组8位预置数进行控制。EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程

5、清华大学出版社清华大学出版社4/6/20232007-2-16第7页图6-1 脉宽数控调制信号发生器逻辑图EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社4/6/20232007-2-16第8页6.1.2 VHDL源程序源程序1.8位可自加载加法计数器的源程序位可自加载加法计数器的源程序LCNT8.VHDLIBRARY IEEE;USE IEEE.STD_LOGIC_1164,.ALL;ENTITY LCNT8 IS -8位可自加载加法计数器 PORT(CLK,LD:IN STD_LOGIC;-工作时钟/预置值加载信号 D:IN INTEGER RAN

6、GE 0 TO 255;-8位分频预置数 CAO:OUT STD_LOGIC);-计数溢出输出END LCNT8;ARCHITECTURE ART OF LCNT8 IS SIGNAL COUNT:INTEGER RANGE 0 TO 255;-8位计数器设置 BEGIN PROCESS(CLK)EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社4/6/20232007-2-16第9页BEGIN IF CLKEVENT AND CLK=1 THEN IF LD=1 THEN COUNT=D;-LD为高电平时加载预置数 ELSE COUNT=COUNT+1

7、;-否则继续计数 END IF;END IF;END PROCESS;PROCESS(COUNT)BEGIN IF COUNT=255 THEN CAO=1;-计数满后,置于溢出位 ELSE CAOCLK,LD=LD1,EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社4/6/20232007-2-16第12页 D=A,CAO=CAO1);U2:LCNT8 PORT MAP(CLK=CLK,LD=LD2,D=B,CAO=CAO2);PROCESS(CAO1,CAO2)BEGIN IF CAO1=1 THEN PSINT=0;-如CAO1=1则把D触发器清

8、零。ELSIF CAO2 EVENT AND CAO2=1 THEN PSINT=1;描述D触发器 END IF;END PROCESS;LD1=NOT PSINT;LD2=PSINT;PSOUT=PSINT;-描述输出信号和加载信号之间的关系。END ART;EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社4/6/20232007-2-16第13页6.1.3 仿真结果 6-2 脉宽数控调制信号发生器EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社4/6/20232007-2-16第14页函数发生器在测量中作为

9、信号源的应用是非常广泛的,要得到一个频率稳定的正弦波、矩形波、锯齿波的方法很多。这里介绍的智能函数发生器能够产生递增谐波、递减斜波、方波、三角波、正弦波及斜梯波,并可通过开关选择输出的波形。6.2.1 智能函数发生器的设计思路智能函数发生器的设计思路智能函数发生器可由递增谐波产生模块(zeng)、递减斜波产生模块(jian)、方波产生模块(square)、三角波产生模块(delta)、正弦波产生模块(sin)、阶梯波产生模块(ladder)和输出波形选择模块组成。总体框图如图6-3所示。图中输出Q接在D/A转换的数据端。在D/A转换器的输出端即可得到各种不同的函数波形。6.2 智能函数发生器的

10、设计智能函数发生器的设计EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社4/6/20232007-2-16第15页图6-4是模块ZENG,它递增斜波产生模块。6.2.2 模块及模块功能模块及模块功能EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社4/6/20232007-2-16第16页LIBRARY IEEE;USE IEEE.std_logic_1164.ALL;USE IEEE.std_logic_unsigned.ALL;entity zeng.is port(clk,reset:in std_logi

11、c;图6-4 ZENG q:out std_logic_vector(7 downto 0);end zeng;architecture zeng_arc of zeng is beginprocess(clk,reset)variable tmp:std_logic_vector(7 downto 0)递增斜波产生模块递增斜波产生模块ZENG的的VHDL程序设计程序设计 EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社4/6/20232007-2-16第17页beginif reset=0 then tmp:=“00000000”;elsif clk

12、event and clk=1 then if tmp=“11111111”then tmp:=“00000000”;else tmp:=tmp+1;end if;end if;q=tmp;end process;end zeng_arc;EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社4/6/20232007-2-16第18页模块JIAN见图6-5 它是递减斜波产生模块LIBRARY IEEE;USE IEEE.std_logic_1164.ALL;USE IEEE.std_logic_unsigned.ALL;entity.JIAN is port

13、(clk,reset:in std_logic;q:out std_logic_vector(7 downto 0);图6-5 JIANend JIAN;architecture JIAN _arc of JIAN is beginprocess(clk,reset)EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社4/6/20232007-2-16第19页variable tmp:std_logic_vector(7 downto 0);beginif reset=0 then tmp:=“11111111”;elsif clkevent and cl

14、k=1 then if tmp=“00000000”then tmp:=“11111111”;else tmp:=tmp-1;end if;end if;q=tmp;end process;end JIAN _arc;EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社4/6/20232007-2-16第20页模块DELTA见图6-6。它是三角波产生模块,LIBRARY IEEE;USE IEEE.std_logic_1164.ALL;USE IEEE.std_logic_unsigned.ALL;entity DELTA is port(clk,rese

15、t:in std_logic;q:out std_logic_vector(7 downto 0);end DELTA;architecture DELTA_arc of DELTA is beginprocess(clk,reset)variable tmp:std_logic_vector(7 downto 0);variable a:std_logic;EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社4/6/20232007-2-16第21页beginif reset=0 then tmp:=“00000000”;elsif clkevent a

16、nd clk=1 then if a=0then if tmp=“11111110”then tmp:=“11111111”;a:=1;else tmp:=tmp+1;图6-6 DELTA end if;图6-6 DELTA EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社4/6/20232007-2-16第22页else if tmp=“00000001”then tmp:=“00000000”;a:=0;else tmp:=tmp-1;end if;end if;end if;q=tmp;end process;end DELTA_arc;EDA技

17、术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社4/6/20232007-2-16第23页模块LADDER见图6-7,它是阶梯产生模块,改变递增的常数,可改变阶梯的多少。LIBRARY IEEE;USE IEEE.std_logic_1164.ALL;USE IEEE.std_logic_unsigned.ALL;entity LADDER is port(clk,reset:in std_logic;q:out std_logic_vector(7 downto 0);end LADDER;architecture LADDER_arc of LADDER

18、is beginprocess(clk,reset)EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社4/6/20232007-2-16第24页variable tmp:std_logic_vector(7 downto 0);variable a:std_logic;beginif reset=0 then tmp:=00000000;elsif clkevent and clk=1 then if a=0then if tmp=11111111 then图6-7 LADDER 模块 tmp:=00000000;a:=1;else EDA技术及技术及C

19、PLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社4/6/20232007-2-16第25页 tmp:=tmp+16;a:=1;end if;else a:=0;end if;end if;q=tmp;end process;end LADDER _arc;图6-7 LADDER 模块EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社4/6/20232007-2-16第26页图6-8 模块SIN模块SIN见图6-8,它是正弦波产生模块,一个周期取64个点计算出64个常数后,查表输出。LIBRARY IEEE;USE IEEE.std_

20、logic_1164.ALL;USE IEEE.std_logic_unsigned.ALL;entity SIN is port(clk,clr:in std_logic;d:out integer range 0 to 255);end SIN;architecture SIN_arc of SIN is begin EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社4/6/20232007-2-16第27页process(clk,clr)variable tmp:integer range 0 to 63;beginif clr=0 then dd

21、dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddnull;end case;end if;end process;end sin_arc;图6-9 模块 SQUAREEDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社4/6/20232007-2-16第31页图6-10 是模块 SQUARE 仿真图LIBRARY IEEE;USE IEEE.std_logic_1164.ALL;USE IEEE.std_logic_unsigned.ALL;entity SQUARE is po

22、rt(clk,clr:in std_logic;q:out integer range 0 to 255);end SQUARE;architecture SQUARE_arc of SQUARE is EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社4/6/20232007-2-16第32页LIBRARY IEEE;USE IEEE.std_logic_1164.ALL;USE IEEE.std_logic_unsigned.ALL;entity SQUARE is port(clk,clr:in std_logic;q:out integer ra

23、nge 0 to 255);end SQUARE;architecture SQUARE_arc of SQUARE is signal a:bit;EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社4/6/20232007-2-16第33页beginprocess(clk,clr)variable cnt:integer range 0 to 63;beginif clr=0 then a=0;elsif clkevent and clk=1 thenif cnt63 then cnt:=cnt+1;elsecnt:=0;a=not a;end if;

24、end if;end process;EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社4/6/20232007-2-16第34页process(clk,a)begin if clkevent and clk=1 thenif a=1 thenq=255;elseqqqqqqqnull;end case;end process;end ch41_arc;图6-11 模块 CH41AEDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社4/6/20232007-2-16第38页8位数字频率计是用8个十进制数字显示的数字式

25、频率计组成。其频率测量范围可以达到100MHz。它由一个测频控制信号发生器TESTCTL、8个有时钟使能的十进制计数器CNT10、一个32位锁存器REG32B组成。以下分别叙述频率计各逻辑模块的功能与设计方法。6.4 数字频率计的设计数字频率计的设计EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社4/6/20232007-2-16第39页6.4.1 数字频率计设计思路数字频率计设计思路图6-14 8位十进制数字频率计逻辑图EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社4/6/20232007-2-16第40页

26、频率测量的基本原理是计算每秒钟内待测信号的脉冲个数。这就要求TESTCTL的计数使能信号TSTEN能产生一个1秒脉宽的周期信号,并对频率计的每一计数器CNT10的ENA使能端进行同步控制。当TSTEN高电平时,允许计数;低电平时,停止计数,并保持其所计的数。在停止计数期间,首先需要一个锁存信号LOAD的上跳沿将计数器在前1秒钟的计数值锁存进32位锁存器REG32B中,并由外部的7段译码器译出并稳定显示。锁存信号之后,必须有一清零信号CLR_CNT对计数器进行清零,为下1秒钟的计数操作作准备。测频控制信号发生器的工作时序如图6-15所示。为了产生这个时序图,需首先建立一个由D触发器构成的二分频器

27、,在每次时钟CLK上沿到来时其值翻转。1.测频控制信号发生器的设计测频控制信号发生器的设计EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社4/6/20232007-2-16第41页其中控制信号时钟CLK的频率取1 Hz,而信号TSTEN的脉宽恰好为1 s,可以用作闸门信号。此时,根据测频的时序要求,可得出信号LOAD和CLR_CNT的逻辑描述。由图6-15可见,在计数完成后,即计数使能信号TSTEN在1 s的高电平后,利用其反相值的上跳沿产生一个锁存信号LOAD,0.5 s后,CLR_CNT产生一个清零信号上跳沿。EDA技术及技术及CPLD/FPGA应

28、用简明教程应用简明教程 清华大学出版社清华大学出版社4/6/20232007-2-16第42页图6-15 测频控制信号发生器工作时序EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社4/6/20232007-2-16第43页2.寄存器REG32B的设计设置锁存器的好处是,显示的数据稳定,不会由于周期性的清零信号而不断闪烁。若已有32位BCD码存在于此模块的输入口,在信号LOAD的上升沿后即被锁存到寄存器REG32B的内部,并由REG32B的输出端输出,然后由实验板上的7段译码器译成能在数码管上显示输出的相对应的数值。EDA技术及技术及CPLD/FPGA应

29、用简明教程应用简明教程 清华大学出版社清华大学出版社4/6/20232007-2-16第44页3.十进制计数器CNT10的设计如图6-16所示,此十进制计数器的特殊之处是,有一时钟使能输入端ENA,用于锁定计数值。当高电平时计数允许,低电平时禁止计数 EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社4/6/20232007-2-16第45页6.4.2 数字频率计的VHDL源程序1.有时钟使能的十进制计数器的源程序CNT10.VHDLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;-有时钟使能的十进制计数器ENTITY C

30、NT10 IS PORT(CLK:IN STD_LOGIC;-计数时钟信号 CLR:IN STD_LOGIC;-清零信号 ENA:IN STD_LOGIC;-计数使能信号 CQ:OUT INTEGER RANGE 0 TO 15;-4位计数结果输出 CARRY_OUT:OUT STD_LOGIC);-计数进位END CNT10;EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社4/6/20232007-2-16第46页ARCHITECTURE ART OF CNT10 IS SIGNAL CQI:INTEGER RANGE 0 TO 15;BEGIN P

31、ROCESS(CLK,CLR,ENA)BEGIN IF CLR=1 THEN CQI=0;-计数器异步清零 ELSIF CLKEVENT AND CLK=1 THEN IF ENA=1 THEN IF CQI9 THEN CQI=CQI+1;ELSE CQI=0;END IF;-等于9,则计数器清零 END IF;EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社4/6/20232007-2-16第47页 END IF;END PROCESS;PROCESS(CQI)BEGIN IF CQI=9 THEN CARRY_OUT=1;-进位输出 ELSE C

32、ARRY_OUT=0;END IF;END PROCESS;CQ=CQI;END ART;EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社4/6/20232007-2-16第48页十进制计数器的仿真结果如图6-16所示EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社4/6/20232007-2-16第49页2.32位锁存器的源程序REG32B.VHDLIBRARY IEEE;-32位锁存器USE IEEE.STD_LOGIC_1164.ALL;ENTITY REG32B IS PORT(LOAD:IN STD_

33、LOGIC;DIN:IN STD_LOGIC_VECTOR(31 DOWNTO 0);DOUT:OUT STD_LOGIC_VECTOR(31 DOWNTO 0);END REG32B;ARCHITECTURE ART OF REG32B IS EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社4/6/20232007-2-16第50页BEGINPROCESS(LOAD,DIN)ISBEGINIF LOAD EVENT AND LOAD=1 THEN DOUT=DIN;-锁存输入数据 END IF;END PROCESS;END ART;32位锁存器的仿

34、真结果如图6-17所示EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社4/6/20232007-2-16第51页图6-17 32位锁存器的仿真结果EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社4/6/20232007-2-16第52页3.测频控制信号发生器的源程序TESTCTL.VHDLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;-测频控制信号发生器USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY TESTCTL IS PORT(CLK:IN S

35、TD_LOGIC;-1 Hz测频控制时钟 TSTEN:OUT STD_LOGIC;-计数器时钟使能 CLR_CNT:OUT STD_LOGIC;-计数器清零 LOAD:OUT STD_LOGIC);-输出锁存信号END TESTCTL;EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社4/6/20232007-2-16第53页ARCHITECTURE ART OF TESTCTL IS SIGNAL DIV2CLK:STD_LOGIC;BEGINPROCESS(CLK)BEGINIF CLKEVENT AND CLK=1 THEN -1 Hz时钟二分频D

36、iv2CLK=NOT Div2CLK;END IF;END PROCESS;EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社4/6/20232007-2-16第54页PROCESS(CLK,Div2CLK)BEGIN IF CLK=0 AND Div2CLK=0 THEN -产生计数器清零信号 CLR_CNT=1;ELSE CLR_CNT=0;END IF;END PROCESS;LOAD=NOT Div2CLK;TSTENCLK,TSTEN=TSTEN,CLR_CNT=CLR_CNT,LOAD=LOAD);U1:CNT10 PORT MAP(CLK=

37、FSIN,CLR=CLR_CNT,ENA=TSTEN,CQ=DIN(3 DOWNTO 0),CARRY_OUT=CARRY1);U2:CNT10 PORT MAP(CLK=CARRY1,CLR=CLR_CNT,ENA=TSTEN,CQ=DIN(7 DOWNTO 4),CARRY_OUT=CARRY2);U3:CNT10 PORT MAP(CLK=CARRY2,CLR=CLR_CNT,ENA=TSTEN,CQ=DIN(11 DOWNTO 8),CARRY_OUT=CARRY3);U4:CNT10 PORT MAP(CLK=CARRY3,CLR=CLR_CNT,ENA=TSTEN,CQ=DIN(1

38、5 DOWNTO 12),CARRY_OUT=CARRY4);EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社4/6/20232007-2-16第60页U5:CNT10 PORT MAP(CLK=CARRY4,CLR=CLR_CNT,ENA=TSTEN,CQ=DIN(19 DOWNTO 16),CARRY_OUT=CARRY5);U6:CNT10 PORT MAP(CLK=CARRY5,CLR=CLR_CNT,ENA=TSTEN,CQ=DIN(23 DOWNTO 20),CARRY_OUT=CARRY6);U7:CNT10 PORT MAP(CLK=C

39、ARRY6,CLR=CLR_CNT,ENA=TSTEN,CQ=DIN(27 DOWNTO 24),CARRY_OUT=CARRY7);U8:CNT10 PORT MAP(CLK=CARRY7,CLR=CLR_CNT,ENA=TSTEN,CQ=DIN(31 DOWNTO 28),CARRY_OUT=CARRY8);U9:REG32B PORT MAP(LOAD=LOAD,DIN=DIN(31 DOWNTO 0),DOUT=DOUT);END ART;EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社4/6/20232007-2-16第61页图6-19 数字

40、频率计的仿真图EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社4/6/20232007-2-16第62页6.5.1 数字秒表设计思路数字秒表设计思路今需设计一个计时范围为0.01秒1小时的秒表,首先需要获得一个比较精确的计时基准信号,这里是周期为1/100 s的计时脉冲。其次,除了对每一计数器需设置清零信号输入外,还需在6个计数器设置时钟使能信号,即计时允许信号,以便作为秒表的计时起停控制开关。因此秒表可由1个分频器、4个十进制计数器(1/100秒、1/10秒、1秒、1分)以及2个六进制计数器(10秒、10分)组成,如图6-20所示。6个计数器中的每一

41、计数器的4位输出,通过外设的BCD译码器输出显示。图6-20中6个4位二进制计数输出的最小显示值分别为:DOUT3.01/100秒、DOUT7.41/10秒、DOUT11.81秒、DOUT15.1210秒、DOUT19.161分、DOUT23.2010分。6.5 数字秒表的设计数字秒表的设计EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社4/6/20232007-2-16第63页6.5.2 数字秒表的VHDL源程序1)六进制计数器的源程序CNT6.VHDLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.

42、STD_LOGIC_UNSIGNED.ALL;ENTITY CNT6 ISPORT(CLK:IN STD_LOGIC;CLR:IN STD_LOGIC;ENA:IN STD_LOGIC;CQ:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);CARRY_OUT:OUT STD_LOGIC);EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社4/6/20232007-2-16第64页END CNT6;ARCHITECTURE ART OF CNT6 ISSIGNAL CQI:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGI

43、NPROCESS(CLK,CLR,ENA)BEGIN IF CLR=1 THEN CQI=0000;ELSIF CLKEVENT AND CLK=1 THEN IF ENA=1 THEN IF CQI=0101 THEN CQI=0000;ELSE CQI=CQI+1;END IF;EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社4/6/20232007-2-16第65页 END IF;END IF;END PROCESS;PROCESS(CQI)BEGIN IF CQI=0000 THEN CARRY_OUT=1;ELSE CARRY_OUT=0;E

44、ND IF;END PROCESS;CQ=CQI;END ART;EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社4/6/20232007-2-16第66页图6-20 秒表电路逻辑图EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社4/6/20232007-2-16第67页2)十进制计数器的源程序CNT10.VHDLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT10 ISPORT(CLK:IN S

45、TD_LOGIC;CLR:IN STD_LOGIC;ENA:IN STD_LOGIC;CQ:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);CARRY_OUT:OUT STD_LOGIC);END CNT10;EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社4/6/20232007-2-16第68页ARCHITECTURE ART OF CNT10 ISSIGNAL CQI:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINPROCESS(CLK,CLR,ENA)BEGIN IF CLR=1 THEN CQI=000

46、0;ELSIF CLKEVENT AND CLK=1 THEN IF ENA=1 THEN IF CQI=1001 THEN CQI=0000;ELSE CQI=CQI+1;END IF;END IF;END IF;END PROCESS;PROCESS(CQI)BEGIN IF CQI=0000 THEN CARRY_OUT=1;EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社4/6/20232007-2-16第69页ELSE CARRY_OUT=0;END IF;END PROCESS;CQCLK,CLR=CLR,ENA=ENA,CQ=DOUT(3

47、 DOWNTO 0),CARRY_OUT=CARRY1);U2:CNT10 PORT MAP(CLK=CARRY1,CLR=CLR,ENA=ENA,CQ=DOUT(7 DOWNTO 4),CARRY_OUT=CARRY2);U3:CNT10 PORT MAP(CLK=CARRY2,CLR=CLR,ENA=ENA,CQ=DOUT(11 DOWNTO 8),CARRY_OUT=CARRY3);U4:CNT6 PORT MAP(CLK=CARRY3,CLR=CLR,ENA=ENA,CQ=DOUT(15 DOWNTO 12),CARRY_OUT=CARRY4);U5:CNT10 PORT MAP(CL

48、K=CARRY4,CLR=CLR,ENA=ENA,CQ=DOUT(19 DOWNTO 16),CARRY_OUT=CARRY5);U6:CNT6 PORT MAP(CLK=CARRY5,CLR=CLR,ENA=ENA,CQ=DOUT(23 DOWNTO 20);END ART;EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社4/6/20232007-2-16第72页秒表的仿真结果如图6-23所示EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社4/6/20232007-2-16第73页该交通信号控制器控制十字路口

49、甲、乙两条道路的红、黄、绿三色灯,指挥车辆和行人安全通行。本节主要描述了交通信号控制器的设计思路、设计实现、功能仿真和功能验证。6.6.1 交通信号控制器设计思路设计一个由一条主干道和一条支干道的汇合点形成的十字交叉路口的交通灯控制器,具体要求如下:(1)主、支干道各设有一个绿、黄、红指示灯,两个显示数码管。6.6 交通信号控制器的设计交通信号控制器的设计EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社4/6/20232007-2-16第74页(2)主干道处于常允许通行状态,而支干道有车来才允许通行。当主干道允许通行亮绿灯时,支干道亮红灯。而支干道允许

50、通行亮绿灯时,主干道亮红灯。(3)当主、支道均有车时,两者交替允许通行,主干道每次放行45 s,支干道每次放行25 s,在每次由亮绿灯变成亮红灯的转换过程中,要亮5 s的黄灯作为过渡,并进行减计时显示。EDA技术及技术及CPLD/FPGA应用简明教程应用简明教程 清华大学出版社清华大学出版社4/6/20232007-2-16第75页交通控制器拟由单片的CPLD/FPGA来实现,经分析设计要求,拟定整个系统由9个单元电路组成,其中U1为交通灯控制器JTDKZ,它根据主、支干道传感器信号SM、SB以及来自时 基发生电路的时钟信号CLK,发出主、支干道指示灯的控制信号,同时向各定时单元、显示控制单元

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 生活常识

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

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁