通信原理课程设计_第1页
通信原理课程设计_第2页
通信原理课程设计_第3页
通信原理课程设计_第4页
通信原理课程设计_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

1、 基于FPGA的数字式集成运放参数测试仪摘 要本次课题是采用VHDL语言编写源程序,并且通过QuartusII进行编译和仿真实现其功能。模拟信号检测处理系统大致结构可以分为七个主要部分,即:8位二进制循环加法计数器、数据锁存器、数据处理模块、片选信号模块、进制转换模块、小数点控制模块和七段译码显示模块等。另外,在进行数据比较时上升沿和下降沿都会有毛刺出现,所以在CPLD的输入管脚出添加了消抖动模块。整体上看来,模块间的布局与功能衔接都是非常重要的。模拟信号的检测及处理可以在数字电子的基础上实现。本次课题把它纳入计算机编程行列。理论的软件仿真可以通过,这样就利用FPGA建模系统可以大大简化操作流

2、程,减少器材用量,并且还可以把这一功能用集成芯片的方式构造,最后使其运作成本降低,携带十分方便。最关键部位采用FPGA可编程器件,借助于大规模集成的FPGA和高效的设计软件。通过直接对芯片结构的设计能够实现模拟信号检测处理的功能。这个检测系统完全采用数字化的测量,采用VHDL硬件描述语言,以FPGA器件作为控制的核心,使整个系统显得精简,能达到所要求的技术指标。相比较其他传统的检测系统具有灵活的现场更改性,还有处理速度快,实时性好、精确可靠、抗干扰性强等优点。关键词:QuartusII、CPLD、VHDL;数模(DA)转换、8位加法计数、数据锁存、数据处理、七段译码显示; IEDA技术课程设计

3、1、设计目的训练学生综合运用学过的基础知识,独立进行查找资料、选择方案、代码设计、撰写报告,进一步加深对EDA技术的理解。2、设计要求和任务(1)功能要求:检测可变电阻器送出的电压。原理如下:CPLD产生8位二进制循环加法计数值D7-D0,它们与数模转换芯片DAC0832的数据端相连,使其产生0-5V的斜坡电压。可变电阻器模拟0-5V的模拟量输入值,这个值被接入另一个运放的反相输入端。而D/A转换的0-5V电压量被接入运放的同相输入端,比较运放的输出端接CPLD的输入管脚cha。当cha得到一个上升沿时,表示DAC0832输出的电压与可变电阻器送出的电压相同,此时得到的值即为可变电阻器送出的电

4、压。(2) 设计任务本课题要求利用可编程逻辑器件为主系统芯片,用VHDL对其进行设计开发,设计并制作一个能测试通用型模拟信号的基本参数的测量系统。模拟信号检测处理系统设计框图如图2.1所示。 图2.1 模拟信号检测处理系统原理框图3 总体设计思路及原理描述3.1 主控芯片部分根据课题的要求,控制单元主要用于对电路采集转换后的测量结果进行运算,处理并控制显示器显示输出。因为课题任务对主控制单元的芯片作了要求,由此我们在对主控单元芯片的选择上没有什么大的异议,根据实际条件选择了ALTERA公司的FLEX系列器件EPF30TC144-3芯片作为主控单元芯片。图3.1 EPF30TC144-3芯片示意

5、图本设计采用ALTERA公司的FLEX系列器件EPF30TC144-3芯片作为主控制器,如上图3.1所示,主要完成以下操作:(1)控制电路切换,构成各参数检测所要求的环路。(2)控制测试电路采锁存检测结果,进行数据处理。(3)控制显示器,显示并输出测检测结果。3.2 数模/模数转换数模转换器是将数字信号转换为模拟信号的系统,一般用低通滤波即可以实现。数字信号先进行解码,即把数字码转换成与之对应的电平,形成阶梯状信号,然后进行低通滤波。实现该功能的电路或器件称为数模转换电路,通常称为D/A转换器或DAC(Digital Analog Converter)。我们知道数分可为有权数和无权数,所谓有权

6、数就是其每一位的数码有一个系数,如十进制数的45中的4表示为4×10,而5为5×1,即4的系数为10,而5的系数为1,数模转换从某种意义上讲就是把二进制的数转换为十进制的数。最原始的DAC电路由以下几部分构成:参考电压源、求和运算放大器、权产生电路网络、寄存器和时钟基准产生电路,寄存器的作用是将输入的数字信号寄存在其输出端,当其进行转换时输入的电压变化不会引其输出的不稳定。时钟基准产生电路主要对应参考电压源,它保证输入数字信号的相位特性在转换过程中不会混乱,时钟基准的抖晃(jitter)会制造高频噪音。模数转换的原理是数模转换原理的逆过程,所以模数转换器是将模拟信号转换成数

7、字信号的系统,是一个滤波、采样保持和编码的过程。模拟信号经带限滤波,采样保持电路,变为阶梯形状信号,然后通过编码器,使得阶梯状信号中的各个电平变为二进制码。通常的模数转换器是将一个输入电压信号转换为一个输出的数字信号。由于数字信号本身不具有实际意义,仅仅表示一个相对大小。故任何一个模数转换器都需要一个参考模拟量作为转换的标准,比较常见的参考标准为最大的可转换信号大小。而输出的数字量则表示输入信号相对于参考信号的大小。D/A转换器根据工作原理基本上可分为二进制权电阻网络D/A转换器和T型电阻网络D/A转换器两大类。由于T型电阻网络D/A转换器只要求两种阻值的电阻,因此最适合于集成工艺,集成D/A

8、转换器普遍采用这种电路结构。模数转换器最重要的参数是转换的精度,通常用输出的数字信号的位数的多少表示。转换器能够准确输出的数字信号的位数越多,表示转换器能够分辨输入信号的能力越强,转换器的性能也就越好。本次设计中数模转换要求采用DAC0832芯片实现。8位并行、中速(建立时间1us)、电流型。当要求多个模拟量同时输出时,可采用双重缓冲方式,可根据需要系统处理的就一组数据D7D0,所以就采用单缓冲工作方式:一个寄存器工作于直通状态,另一个工作于受控锁存器状态。此时只需一次写操作,就开始转换,可以提高D/A的数据吞吐量。DAC0832数模转换参数功能简介如图3.2所示: 图3.2 DAC0832内

9、部管脚图各引脚功能描述如下:Vcc 芯片电源电压, +5V+15VVREF 参考电压, -10V+10V RFB 反馈电阻引出端, 此端可接运算放大器输出端AGND 模拟信号地DGND 数字信号地DI7DI0 数字量输入信号(其中:DI0为最低位,DI7为最高位)ILE 输入锁存允许信号, 高电平有效CS 片选信号, 低电平有效WR1 写信号1,低电平有效当ILE、CS、WR1同时有效时, LE=1,输入寄存器的输出随输入而变化;WR1上升沿时,LE=0,将输入数据锁存到输入寄存器XFER 转移控制信号,低电平有效WR2 写信号2,低电平有效当XFER、WR2同时有效时, LE2=1;DAC寄

10、存器输出随输入而变化;WR1、LE=0, 将输入数据锁存到DAC寄存器,数据进入D/A转换器,开始D/A转换;IOUT1 模拟电流输出端1;当输入数字为全“1”时, 输出电流最大;全“0”时, 输出电流为0;IOUT2 模拟电流输出端2; DAC0832时序图如下图3.3所示: 图3.3 DAC0832数模转换时序图3.3 集成运放(电压比较器)该系统硬体设计中运用了运放电路,我们将采用双运放LM358。其功能是同相端连接来自DAC0832输出的控制模拟量,另一反相端就连接可变电阻器的模拟量输入值。当调节可变电阻器时,可以得到05V左右的模拟电压被测值,这个值被接入另一个作为比较器的运放的反相

11、输入端TESTIN;而DA转换放大的00.49V的电压量被接入运放的同相输入端,这时,运放就作为一个电压比较器对两个模拟信号进行比较,并把比较结果反馈到CPLD的输入管脚jmp。长期以来,受运算放大器的影响,比较器的应用一直没有得到应有的重视。直到目前随着比较器性能指标的改进,使其更好地胜任电压比较这一基本任务,这一状况才得到改善,本文主要介绍新型比较器的性能及其典型应用。比较器的两路输入为模拟信号,输出则为二进制信号,当输入电压的差值增大或减小时,其输出保持恒定。从这一角度来看,可以将比较器当作一个1位模/数转换器(ADC)。不仅可用作模拟电路和数字电路的接口,还可以作波形产生和变换电路等。

12、 注:电压比较器中的集成运放通常工作在非线性区,其功能为:比较两个电压的大小(用输出电压的高或低电平,表示两个输入电压的大小关系)及满足如下关系: U->U+ 时 UO=UOL U-<U+ 时 UO=UOH下面介绍下常用集成运放的结构和功能如图3.4所示,集成运算放大器是一种具有很高放大倍数的多级直接耦合放大电路,是发展最早、应用最广泛的一种模拟集成电路。图3.4 运放结构框图各模块的功能如下:输入级:由具有恒流源的差动放大器组成,以获得尽可能低的零点漂移和尽可能高的共模抑制比,还要求输入电阻要高。要求输入电阻高,差模放大倍数高,抑制零点漂移和共模干扰信号的能力强。都采用差分放大电

13、路。中间级:由多级电压(共射或共源)放大器组成,为集成运放提供电压增益。为提高电压放大倍数,经常采用复合管,以恒流源做集电极负载。还担负将双端输入转换为单端输出的作用。要求电压放大倍数高。常采用带恒流源的共发射极放大电路构成。输出级:多为互补对称射极跟随器,用于提高集成运放带负载的能力,输出级往往还设置有过流保护电路。偏置电路:为各级放大电路提供稳定和合适的偏置电流,决定各级的静态工作点,一般由恒流源电路构成。集成运放的性能指标: 1、开环差模电压放大倍数 Aod 它是指集成运放在无外加反馈回路的情况下的差模电压的放大倍数。 2、最大输出电压 Uop-p 它是指一定电压下,集成运放的最大不失真

14、输出电压的峰-峰值。 3、差模输入电阻rid 其大小反映了集成运放输入端向差模输入信号源索取电流的大小。要求它愈大愈好。 4、输出电阻 rO 它的大小反映了集成运放在小信号输出时的负载能力。 5、共模抑制比 CMRR 它放映了集成运放对共模输入信号的抑制能力,其定义同差动放大电路。CMRR越大越好。本次设计中使用的芯片LM358 内部包括有两个独立的、高增益、内部频率补偿的双运算放大器,适合于电源电压范围很宽的单电源使用,也适用于双电源工作模式。在推荐的工作条件下,电源电流与电源电压无关。它的使用范围包括传感放大器、直流增益模块和其他所有可用单电源供电的使用运算放大器的场合。LM358 的封装

15、形式有塑封8引线双列直插式和贴片式,如图3.5所示:图3.5 双运放LM358芯片管脚和内部结构图特性(Features): · 内部频率补偿· 直流电压增益高(约100dB) · 单位增益频带宽(约1MHz)· 电源电压范围宽:单电源(330V);双电源(±1.5±15V) · 低功耗电流,适合于电池供电· 低输入偏流· 低输入失调电压和失调电流· 共模输入电压范围宽,包括接地· 差模输入电压范围宽,等于电源电压范围· 输出电压摆幅大(0 至Vcc1.5V)通过在设计中使用

16、LM358,大大简化了运放电路,还使得这种含有CPLD器件的联合装置充分代替低频AD转换器,实现数码显示的功能。 3.4 七段数码管显示显示模块可以让测量的数据直观的显示出来,方便数据的读取记录和对测试系统状态的监控。所以这个模块是系统使用是否方便的关键之一。方案一:采用点阵式液晶显示器(LCD)。如果采用这种显示方案,虽然显示功能强大,可显示各种字体的英文字母,汉字,数字和字符,但编程复杂,而且器件成本比较高。方案二:采用LED数码管。如果采用这种显示方案,虽只能显示非常有限的符号和数码。但是完全能够满足本课题的要求,并且编程简单,便于实现,同时成本也很低。对于预算紧张的本设计课题,这种显示

17、方案是种不错的选择。所以我们当然选择更方便实用而且廉价的方案二。该模块可对表示转换后的十进制数的4 位2 进制代码进行编码,此模块可直接连接数码管驱动器, 从而驱动数码管显示出相应阿拉伯数字等字符。与上述电路模块设计一样,它也只需要先设计一个单个的译码器,然后通过连接组合就可构成系统的译码电路模块,从而实现系统的译码功能。为实现系统的功能,单个译码器需要设置4个数据输入端:即A0、A1、A2 和A3 ,并由这些端口输入锁存电路模块输出的4 位2 进制数据。需要设置7个输出端:即Q0、Q1、Q2、Q3、Q4、Q5 和Q6 ,它们分别连接7段数码管的7个显示输入端。本次设计中需要用到74LS47作

18、为译码显示输出的主体芯片,是BCD-7段译码器/驱动器,采用共阳极接线方式,是数字集成电路,用于将BCD码转化成数码块中的数字,然后我们就能看到从0-9的数字。其外管脚如下图3.6所示。7段数码管又分共阴和共阳两种显示方式。如果把7段数码管的每一段都等效成发光二极管的正负两个极,那共阴就是把abcdefg这7个发光二极管的负极连接在一起并接地;它们的7个正极接到7段译码驱动电路74LS48的相对应的驱动端上(也是abcdefg)。此时若显示数字1,那么译码驱动电路输出段bc为高电平,其他段扫描输出端为低电平,以此类推。如果7段数码管是共阳显示电路,那就需要选用74LS47译码驱动集成电路。共阳

19、就是把abcdefg的7个发光二极管的正极连接在一起并接到5V电源上,其余的7个负极接到74LS47相应的abcdefg输出端上。无论共阴共阳7段显示电路,都需要加限流电阻,否则通电后就把7段译码管烧坏了。限流电阻的选取是:5V电源电压减去发光二极管的工作电压除上10ma到15ma得数即为限流电阻的值。发光二极管的工作电压一般在1.8V-2.2V,为计算方便,通常选2V即可。发光二极管的工作电流选取在10-20ma,电流选小了,7段数码管不太亮,选大了工作时间长了发光管易烧坏。对于大功率7段数码管可根据实际情况来选取限流电阻及电阻的瓦数。图3.6 74LS47外引脚图注:Vcc=Pin16,G

20、ND=Pin8译码为编码的逆过程。它将编码时赋予代码的含义“翻译”过来。实现译码的逻辑电路成为译码器。译码器输出与输入代码有唯一的对应关系。74LS47是输出低电平有效的七段字形译码器,它在这里与数码管配合使用。下面列出了74LS47的真值表,表示出了它与数码管之间的关系。LT(-)RBI(-)A3A2A1A0BI(-)/RB0(-)a(-)b(-)c(-)d(-)e(-)f(-)g(-)1100001000000101X00011100111111X00101001001021X00111000011031X01001100110041X01011010010051X011011100000

21、61X01111000111171X10001000000081X1001100011009XXXXXX01111111熄灭10000001111111熄灭0XXXXX100000008表3.1 74LS47真值表各控制端功能描述: (1)LT(-):试灯输入,是为了检查数码管各段是否能正常发光而设置的。当LT(-)=0时,无论输入A3 ,A2 ,A1 ,A0为何种状态,译码器输出均为低电平,若驱动的数码管正常,是显示8。 (2)BI(-):灭灯输入,是为控制多位数码显示的灭灯所设置的。BI(-)=0时。不论LT(-)和输入A3 ,A2 ,A1,A0为何种状态,译码器输出均为高电平,使共阳极数

22、码管熄灭。 (3)RBI(-):灭零输入,它是为使不希望显示的0熄灭而设定的。当对每一位A3= A2 =A1 =A0=0时,本应显示0,但是在RBI(-)=0作用下,使译码器输出全为高电平。其结果和加入灭灯信号的结果一样,将0熄灭。 (4)RBO(-):灭零输出,它和灭灯输入BI(-)共用一端,两者配合使用,可以实现多位数码显示的灭零控制。3.5 外围辅助电路因为本设计最后要完成硬件下载,所以除了大部分的软件编程和基础电路外,还包括+5V信号源、运放电压比较器和可调电阻模拟电路等模拟和数字电路组成。用EPF30TC144-3芯片作为核心能将程序语言下载并调试运行。外围辅助电路框图如图3.7所示

23、: 图3.7 模拟信号检测系统外围电路方框图4 分层次方案设计及代码描述和仿真分析4.1 系统程序说明系统软件编程采用VHDL硬件描述语言,对可编程逻辑器件进行编程实现各项功能。系统程序可以实现对同步信号脉冲的输入、待测模拟信号检测和处理、显示等功能。具体由8位二进制循环加法计数器、数据锁存器、数据处理模块、片选信号模块、消抖动模块、进制转换模块、小数点控制模块和七段译码显示模块等8个不同功能系统。其实现主要是通过调用各项具体的子程序来完成。4.2 各模块程序清单及仿真4.2.1 八位二进制循环加法计数模块该模块AAA由CPLD语言直接产生一个8位的二进制循环加法计数器,其数值为D7D0。它的

24、功能是送出连续增加的8位数据给数模转换芯片DAC0832,同时送给模块BBB锁存。其顶层原理图如图4.1所示:图4.1 八位二进制循环加法计数器程序清单如下所示:#-AAA.VHDLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY AAA IS PORT(CLK:IN STD_LOGIC; DATA:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);END AAA;ARCHITECTURE AAA_ARC OF AAA ISBEGINPROCESS(CLK)VARIABL

25、E CNT:STD_LOGIC_VECTOR(7 DOWNTO 0);BEGIN IF CLK'EVENT AND CLK='1' THEN CNT:=CNT+1; END IF; DATA<=CNT; END PROCESS;END AAA_ARC;仿真时序图如图4.2所示图4.2 八位二进制循环加法计数器仿真图4.2.2 数据锁存模块该模块为锁存模块,当CHA信号上升沿到来时将端口DATA的数据锁存。即就表示DAC0832输出的电压值与可变电阻器送出的电压相同。顶层原理图如图4.3所示: 图4.3 数据锁存模块顶层原理图程序清单如下所示:#-BBB.VHDLI

26、BRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY BBB ISPORT(DATA: IN STD_LOGIC_VECTOR(7 DOWNTO 0); CHA: IN STD_LOGIC; DOUT:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);END BBB;ARCHITECTURE BBB_ARC OF BBB IS BEGIN PROCESS(CHA)VARIABLE TMP:STD_LOGIC_VECTOR(7 DOWNTO 0);BEGIN IF CHA'EVENT AND CHA='1'THENTM

27、P:=DATA;END IF;DOUT<=TMP;END PROCESS;END BBB_ARC;数据锁存仿真时序图如下图4.4所示:图4.4 数据锁存模块仿真图4.2.3 数据处理模块本次设计中会有两个模块为数据处理模块,如图3.5和图3.6所示。其功能分别是模块EEE将得到的0255的二进制数转换为0500的二进制数;模块CC则是将0500变化的二进制数转换为3为十进制数,以便于用数码管显示。 图4.5 二进制范围扩大顶层原理图其程序清单如下所示:%-EEE.VHDLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY EEE ISPORT(D

28、IN: IN INTEGER RANGE 0 TO 255; DOUT:OUT INTEGER RANGE 0 TO 511);END EEE;ARCHITECTURE EEE_ARC OF EEE ISBEGIN PROCESS(DIN)VARIABLE TMP:INTEGER;BEGIN TMP:=DIN*500; DOUT<=TMP/256; END PROCESS;END EEE_ARC;二进制转三位十进制数顶层原理图: 图4.6 二进制转三位十进制顶层图程序清单如下所示:#-CC.VHDLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE I

29、EEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CC ISPORT(CLK:IN STD_LOGIC; DIN:IN STD_LOGIC_VECTOR(8 DOWNTO 0); Q2,Q1,Q0:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END CC;ARCHITECTURE CCC_ARC OF CC ISBEGINPROCESS(CLK,DIN)VARIABLE CNT:INTEGER RANGE 0 TO 511;VARIABLE A2,A1,A0:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINIF CLK'EVE

30、NT AND CLK='1' THENIF CNT<DIN THENCNT:=CNT+1;IF A0<"1001"THENA0:=A0+1;ELSEA0:="0000"IF A1<"1001"THENA1:=A1+1;ELSEA1:="0000"A2:=A2+1;END IF;END IF;ELSEQ2<=A2;Q1<=A1;Q0<=A0;CNT:=0;A2:="0000"A1:="0000"A0:="0000&q

31、uot;END IF;END IF;END PROCESS;END CCC_ARC;EEE模块仿真时序如图4.7所示:图4.7 二进制范围扩大模块仿真CCC模块仿真时序如图4.8所示: 图4.8 二进制转三位十进制数模块仿真图4.2.4 消抖动模块在VHDL中我们可以采用类似的办法,对于小于触发器建立时间的毛刺可以用时钟打一下实现滤波。但对于开关或按键抖动等较大的干扰,我们可以采用延时比较法或积分法,或者二者并用。 比较法:这个方法很好理解,就是若干个时钟周期读取的数据相同时我们认为收到了一个稳定的数据,否则认为是过渡态。即采用若干位的移位寄存器,当寄存器是全“1”或全“0”时才开始读数。这种

32、方法的缺点是,当干扰脉冲较宽时我们必须等比地扩大移位寄存器的比特,消耗较大资源。 积分法:用一个增减计数器,当输入信号为“1”时计数器递增计数直到计数器全“1”停止计数、否则计数器递减计数直到全“0”停止计数。那么计数器的 MSB即为输入信号的去抖信号。你也可以用时钟再加上一个速度较慢的使能来对输入信号计数。显然计数器的位数要求与要去抖的抖动脉冲宽度的对数关系。当然也可以二者结合,前端用几个比特的移位寄存器实现比较,比较结果作为计数使能来控制接下来的增减计数器的计数。本次设计中因为比较器的上升沿和下降沿都会有毛刺出现,会对检测的结果造成误差影响。所以就用此模块进行简单的消抖动处理如下图4.9所

33、示:图4.9 消抖动模块顶层图程序清单如下所示:#-DDD.VHDLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY DDD IS PORT(CLK,A:IN STD_LOGIC; Q:OUT STD_LOGIC);END DDD;ARCHITECTURE DDD_ARC OF DDD ISBEGIN PROCESS(CLK) BEGIN IF CLK'EVENT AND CLK='1' THENQ<=A;END IF; END PROCESS;END DDD_ARC;仿真时序图如图4.10所示:图4.10 消抖动模块仿

34、真图4.2.5 片选信号模块该模块将送出数码管片选信号。当它有效时,选中芯片,芯片开始起作用。并且输出为控制数码管工作的四个输入信号,即Q3、Q2、Q1和Q0。顶层原理图下图4.11所示:图4.11 片选模块顶层图程序清单如下所示:#-SEL.VHDLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY SEL ISPORT(CLK:IN STD_LOGIC; Q:OUT STD_LOGIC_VECTOR(1 DOWNTO 0);END SEL;ARCHITECTURE SEL_ARC OF

35、 SEL ISBEGINPROCESS(CLK)VARIABLE CNT:STD_LOGIC_VECTOR(1 DOWNTO 0);BEGIN IF CLK'EVENT AND CLK='1' THENCNT:=CNT+1;END IF;Q<=CNT;END PROCESS;END SEL_ARC;片选模块仿真时序如图4.12所示:图4.12 片选信号模块仿真图4.2.6 数据及小数点控制模块模块CHA的功能是对应数码管的片选信号送出相应的数据,同时控制哪一位的小数点点亮。如下图4.13所示:图4.13 小数点控制模块顶层图程序清单如下所示:#-CHA.VHD.L

36、IBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY CHA ISPORT(A2,A1,A0:IN STD_LOGIC_VECTOR(3 DOWNTO 0); CH:IN STD_LOGIC_VECTOR(1 DOWNTO 0); DIAN:OUT STD_LOGIC; Q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END CHA;ARCHITECTURE CH_ARC OF CHA ISBEGINPROCESS(CH,A2,A1,A0)BEGINCASE CH IS WHEN "00"=>Q<=A

37、0; DIAN<='0'WHEN "01"=>Q<=A1;DIAN<='0'WHEN "10"=>Q<=A2;DIAN<='1'WHEN OTHERS=>Q<="1111"DIAN<='0'END CASE;END PROCESS;END CH_ARC;仿真时序图如下图4.14所示:图4.14 数据及小数点控制模块4.2.7 七段数码管显示模块七段数码是纯组合电路,通常用小规模专用IC,如74或者4000系列的器

38、件只能作十进制BCD码译码,然而数字系统中的数据处理和运算都是二进制。该模块就是运用此原理设计,其顶层原理图如下4.15所示: 图4.15 七段数码显示模块顶层图程序清单如下所示:#-DISP.VHDLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY DISP ISPORT(A:IN STD_LOGIC_VECTOR(3 DOWNTO 0); Q:OUT STD_LOGIC_VECTOR(6 DOWNTO 0);END DISP;ARCHITECTURE DISP_ARC OF DISP ISBEGINPROCESS(A)BEGINCASE A IS

39、WHEN "0000"=>Q<="0111111";WHEN "0001"=>Q<="0000110";WHEN "0010"=>Q<="1011011";WHEN "0011"=>Q<="1001111";WHEN "0100"=>Q<="1100110";WHEN "0101"=>Q<="1101101";WHEN "0110"=>Q&

温馨提示

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

评论

0/150

提交评论