EDA技术7_典型时序电路设计实例_第1页
EDA技术7_典型时序电路设计实例_第2页
EDA技术7_典型时序电路设计实例_第3页
EDA技术7_典型时序电路设计实例_第4页
EDA技术7_典型时序电路设计实例_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

1、典型时序电路设计实例C H A P T E R主要内容 7段数码管显示的模段数码管显示的模10计数器(计数器(SSD) 移位寄存器电路移位寄存器电路2 7段数码管显示的模段数码管显示的模10计数器(计数器(SSD) 移位寄存器电路移位寄存器电路3 实验4:计数器+7段LED数码管显示1.7段LED数码管显示模块2.计数器模块3.顶层文件-例化计数器+译码器显示译码器显示译码器-复习数电复习数电 用来驱动各种显示器件,从而将用二进制代用来驱动各种显示器件,从而将用二进制代码表示的数字、文字、符号翻译成人们习惯的码表示的数字、文字、符号翻译成人们习惯的形式直观地显示出来的电路,称为形式直观地显示出

2、来的电路,称为显示译码器显示译码器。数字、文字、数字、文字、符号代码符号代码译码器译码器显示器显示器67 半导体数码管半导体数码管显示器件显示器件: 常用的是常用的是七段显示器件七段显示器件abcdefgabcdefgh a b c d a f b e f g h g e c d(a) 外形图(b) 共阴极(c) 共阳极+VCCabcdefghabcdefg510510 YaYaYbYbYgYga ab bg g510510 510510 发光二极管发光二极管Ya-Yg: Ya-Yg: 控制信号控制信号高电平时高电平时, ,对应的对应的LEDLED亮亮低电平时低电平时, ,对应的对应的LEDL

3、ED灭灭输入输入4 4位位BCDBCD码,产生码,产生7 7个输出,分别驱动个输出,分别驱动相应显示器件相应显示器件; ;考虑考虑7 7段输出与数字的对应关系,可以得出如下关系段输出与数字的对应关系,可以得出如下关系 abcdefg abcdefg 0 010000-1111110 10001-0110000 2 230010-1101101 3:0011-11110010011-1111001 abcdfga b c d e f g1 1 1 1 1 1 00 1 1 0 0 0 01 1 0 1 1 0 1

4、e有有4个共阳极个共阳极7段显示管,段显示管,所有的阳极所有的阳极都连接在一都连接在一起,并通过起,并通过一个一个PNP晶晶体管接到体管接到+3.3V电压上。电压上。abcdfga b c d e f g0 0 0 0 0 0 11 0 0 1 1 1 10 0 1 0 0 1 0e XABCDEFGDP000000011110011111200100101300001101410011001501001001601000001700011111800000001900001001 BCDBCD七段显示译码器七段显示译码器A A3 3-A-A0 0: : 输入数据输入数据要设计的七段显示译码器

5、要设计的七段显示译码器a aYaYaYbYbYcYcYdYdYeYeYfYfYgYg译译 码码 器器A A3 3A A2 2A A1 1A A0 0b bc cd de ef fg g电子与通信工程系十进制数十进制数 A A3 3A A2 2A A1 1A A0 0 Y Ya a Y Yb b Y Yc c Y Yd d Y Ye e Y Yf f Y Yg g 显示字形显示字形 0 0 0 0 0 00 0 0 0 1 1 1 1 1 11 1 1 1 1 0 01 0 0 1 1 0 0 0 10 0 0 1 0 0 1 1 0 0 0 0 1 1 1 0 0 0 0 1 2 2 0 0

6、1 0 0 0 1 0 1 1 1 0 1 1 0 1 2 1 0 1 1 0 1 2 3 3 0 0 1 1 0 0 1 1 1 1 1 1 1 0 0 1 3 1 1 1 0 0 1 3 4 4 0 1 0 0 0 1 0 0 0 0 1 1 0 0 1 1 4 1 1 0 0 1 1 4 5 5 0 1 0 1 0 1 0 1 1 1 0 1 1 0 1 1 50 1 1 0 1 1 5 6 0 1 1 0 6 0 1 1 0 0 0 0 1 1 1 1 1 60 1 1 1 1 1 6 7 7 0 1 1 1 0 1 1 1 1 1 1 1 0 0 0 0 7 1 1 0 0 0 0

7、7 8 8 1 0 0 0 1 0 0 0 1 1 1 1 1 1 1 1 8 1 1 1 1 1 1 8 9 9 1 0 0 1 1 0 0 1 1 1 1 1 0 0 1 1 9 1 1 0 0 1 1 9 LIBRARY IEEE ;USE IEEE.STD_LOGIC_1164.ALL ;ENTITY SSD ISPORT ( data : IN STD_LOGIC_VECTOR(3 DOWNTO 0); LED7S : OUT STD_LOGIC_VECTOR(6 DOWNTO 0) ) ;END ;ARCHITECTURE one OF SSD ISBEGINPROCESS( da

8、ta )BEGIN为方便标示,为方便标示,Yx 我们使用我们使用LED7S(x)来标示)来标示CASE data IS 方向为6 downto 0,gfedcbaWHEN 0000 = LED7S LED7S LED7S LED7S LED7S LED7S LED7S LED7S LED7S LED7S LED7S LED7S LED7S LED7S LED7S LED7S NULL ;END CASE ;END PROCESS ;END ;带有复位和时钟使能的带有复位和时钟使能的10进制计数器进制计数器LIBRARY IEEE;ENTITY CNT IS PORT (CLK,RST,EN :

9、 IN STD_LOGIC; CQ : OUT STD_LOGIC_VECTOR(3 DOWNTO 0); COUT : OUT STD_LOGIC;) END CNT;ARCHITECTURE behav OF CNT IS SIGNAL CQI : STD_LOGIC_VECTOR(0 DOWNTO 3); BEGIN PROCESS(CLK, RST, EN) IF (RST = 1) THEN CQI 0) ; -计数器复位计数器复位 ELSIF (CLKEVENT AND CLK=1 )THEN -检测时钟上升沿检测时钟上升沿 IF (EN = 1 ) THEN -检测是否允许计数检

10、测是否允许计数 IF (CQI 1001) THEN CQI = CQI + 1; ELSE CQI 0); END IF; END IF; END IF; IF (CQI = 1001 ) THEN COUT = 1; -计数大于计数大于9,输出进位信号,输出进位信号 ELSE COUT = 0; END IF; CQ CNT_TO_SSD, LED7S=LED);UUT_CNT: CNT PORT MAP (CLK=CLK,RST=RST,EN=EN,CQ=CNT_TO_SSD,COUT=COUT);END;如果模10000计数器显示需要4个SSD,我们这里可以用一个dig来表示数码管的位

11、选信号,用一个位宽为4的dig(3 downto 0)来表示数码管段选信号。当你想最后一个数码管显示数字1时,只需给dig(3 downto 0)赋值“1110”选中最后一位数码管,并且seg7:0赋值 “10011111”即可。26由于数码管动态显示,在轮流显示过程中,每位数码管的点亮时间为1ms16ms,由于人的视觉暂留现象及发光二极体的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示资料,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O口,而且功耗更低。Clk来决定,例如Spartan6的时钟频率为100Mhz,周期为1

12、0ns,需要时钟分频。选用refresh周期为4ms。 动态扫描原理 在许多情况下为了节省IO管脚和内部逻辑资源,常用动态扫描的方法进行显示。动态扫描显示利用了时分原理和人的视觉暂留现象。例如,4位扫描数码显示器将时间划分为4个扫描周期: 周期1一周期2一周期3一周期4 每个周期只选通一位数据。在周期1显示第1个数码,周期2显示第2个数码管。在扫描四个周期后,又重新按顺序循环。如果扫描的速度足够快,人的感觉就象4个数码同时显示。 扫描模块文件扫描模块文件 LIBRARY IEEELIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALLUSE IEEE.STD_LOGIC

13、_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALLUSE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY SCAN4A ISENTITY SCAN4A ISPORT(CLK_SCAN: IN STD_LOGICPORT(CLK_SCAN: IN STD_LOGIC; DATA_IN:IN STD_LOGIC_VECTOR (3 DOWNTO 0); DATA_IN:IN STD_LOGIC_VECTOR (3 DOWNTO 0); SEL:OUT STD_LOGIC_VECTOR(3 DOWNTO 0) SEL:OUT STD_LOGIC_

14、VECTOR(3 DOWNTO 0); DOUT:OUT STD_LOGIC_VECTOR(6 DOWNTO 0) DOUT:OUT STD_LOGIC_VECTOR(6 DOWNTO 0);END SCAN4AEND SCAN4A; ARCHITECTURE BEHAVE OF SCAN4A ISARCHITECTURE BEHAVE OF SCAN4A ISSIGNAL S1:STD_LOGIC_VECTOR(1 DOWNTO 0)SIGNAL S1:STD_LOGIC_VECTOR(1 DOWNTO 0);SIGNAL BCD_OUT:STD_LOGIC_VECTOR(3 DOWNTO

15、0)SIGNAL BCD_OUT:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINBEGINPROCESS(CLK_SCAN)PROCESS(CLK_SCAN)BEGINBEGINIF (CLK_SCANEVENT AND CLK_SCAN=1 )THEN IF (CLK_SCANEVENT AND CLK_SCAN=1 )THEN IF (S1=“11) THEN S1=00 IF (S1=“11) THEN S1=00; ELSE S1=S1+1 ELSE S1SELSELSELSELSELSELSELSELSELSELDOUTDOUTDOUTDOUTDOUTDOUTD

16、OUTDOUTDOUTDOUTDOUTDOUTDOUTDOUTDOUTDOUTDOUTDOUTDOUTDOUTDOUTDOUT= 00000011 ;END CASEEND CASE;END PROCESSEND PROCESS;END BEHAVEEND BEHAVE; 7段数码管显示的模段数码管显示的模10计数器(计数器(SSD) 移位寄存器电路移位寄存器电路33带有并行置位的移位寄存器带有并行置位的移位寄存器LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY SHFRT IS - 8位右移寄存器位右移寄存器 PORT ( CLK,LOAD :

17、IN STD_LOGIC; DIN : IN STD_LOGIC_VECTOR(7 DOWNTO 0); QB : OUT STD_LOGIC );END SHFRT;ARCHITECTURE behavior OF SHFRT ISSIGNAL REG8 : STD_LOGIC_VECTOR(7 DOWNTO 0);BEGIN PROCESS (CLK, LOAD) BEGIN IF (CLKEVENT AND CLK = 1) THEN IF (LOAD = 1) THEN - 装载新数据装载新数据 REG8 = DIN; ELSE REG8(6 DOWNTO 0) = REG8(7 DOWNTO 1); QB REG(0) = C0 ; REG(7 DOWNTO 1) =

温馨提示

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

评论

0/150

提交评论