基于FPGA的简易逻辑分析仪的设计

上传人:猪** 文档编号:70265398 上传时间:2022-04-06 格式:DOC 页数:45 大小:1.52MB
收藏 版权申诉 举报 下载
基于FPGA的简易逻辑分析仪的设计_第1页
第1页 / 共45页
基于FPGA的简易逻辑分析仪的设计_第2页
第2页 / 共45页
基于FPGA的简易逻辑分析仪的设计_第3页
第3页 / 共45页
资源描述:

《基于FPGA的简易逻辑分析仪的设计》由会员分享,可在线阅读,更多相关《基于FPGA的简易逻辑分析仪的设计(45页珍藏版)》请在装配图网上搜索。

1、442007届湖南冶金职业技术学院应用电子专业毕业设计 目 录摘 要1前 言2第一章 课题概述31.1、选题背景31.2、设计任务31.3、基本要求4第二章、设计方案52.1、总体设计方案62.2、元件说明8第三章、系统实现与理论分析93.1、数字信号发生器93.1.1、数字信号发生器的软件流程图和组成框图93.1.2、带异步置位/复位的通用八位寄存器的VHDL的源程序113.1.3、任意分频器的源程序113.1.4、循环移位寄存器源程序123.2、门限电压控制器133.3、触发电路133.3.1、触发电路软件流程图和组成框图133.3.2、转换接口电路模块功能的VHDL源程序143.3.3、

2、四位移位寄存器VHDL源程序153.3.4、比较器的VHDL的源程序163.3.5、锁存储器VHDL源程序163.4、数据采集和处理173.4.1、数据采集和处理的软件流程图和组成框图173.4.2、存储器REGN的VHDL程序203.4.3、系统控制器CONTROL的VHDL程序203.4.4、数据处理器CALC的VHDL程序213.5、存储器RAM的实现223.6、示波器通道控制253.6.1、多波形显示软件流程图和组成框图253.6.2、多波形显示理论分析253.7、键盘输入293.8、液晶显示303.8.1、液晶显示软件流程图303.8.2、1602C液晶和单片机的接线原理图303.8

3、.3、单片机液晶显示源程序31第四章、系统仿真测试344.1、数字信号发生器344.2、触发电路364.3、数据采集和处理384.4、RAM随机存储器404.5、DAC控制器40总 结41致 谢42参考文献43附录 EPM7032LC44-6硬件管脚分部图44附录 硬件图.45电气工程系应用电子专业毕业设计成绩评定表46摘 要本设计应用了FPGA芯片和VHDL硬件描述语言设计8位简易逻辑分析仪在模拟示波器上显示可移动的时间标志线,并采用LCD方式显示时间标志线所对应时刻的8路输入信号逻辑状态。.采用FPGA作为数据判断、存储、采集和处理的核心控制系统之一。以单片机AT89S51作为外部主控制器

4、,控制外部按键输入和点阵LCD的显示,并产生触发状态字;FPGA作为以软件编程为主,只要软件能够仿真通过,硬件元件只要满足有效的I/O端口就可以。在利用单片机AT89S51有限的I/O上和各个端口的功能是不能完全达到要求的,还需要在单片机AT89S51外围上加上必要的器件,这样可以减少单片机(AT89S51)复杂的编程和硬件I/O上的冲突。测试结果表明,我们充分发挥FPGA速度快,可并行处理的特点,因此被测信号最高频率可达到很高。这种方案结合了上述两种方案的优点,既能实现良好的人机交互,又能工作在较高的频率,可以很好的实现题目要求。我们在实现的过程中,利用EDA工具预测系统上限频率可达30M以

5、上。在测试过程中限于仪器设备,我们采用1M测试信号,系统工作稳定可靠,测量结果准确无误。关键词:数字逻辑,数据采集,多波形显示,数字信号发生, Keyword: digital logic, data collection, multi-waveform display, digital signal generator , 前 言在信息技术高速发展的今天,电子系统数字化已成为有目共睹的趋势。从传统的应用中小规模芯片构成电路系统得到广泛地应用的单片机,直至今天FPGA/CPLD在系统设计中的应用,电子设计技术已迈入一个全新的阶段。FPGA/CPLD不仅具有容量大,逻辑功能强的特点,而且兼有高速

6、,高可靠性。同时使得硬件的设计可以如软件设计一样方便快捷,使电子设计的技术操作和系统构成在整体上发生了质的飞跃。随着FPGA/CPLD器件的日益成熟和应用,在通信,国防,工业自动化,仪器仪表等领域的数字电子系统设计工作中,它们正在成为电子设计的主要角色。基于强大的EDA技术的支持,以VHDL为主要设计手段,充分开发利用CPLD芯片丰富而灵活的逻辑资源,成为当前数字系统设计的主要发展方向。目前广范围、高精度数字式频率和功率因数的测量,大都用单片机加高速,专用计数器芯片来实现。本设计除了对被测信号的整形部分、键输入和最后的液晶显示部分必须用单片机实现外,其于可采用VHDL语言编程设计,并下载在一片

7、FPGA芯片上,整个系统非常精简,并能够达到同样的技术指标。根据不同的需要还可以重新编程下载,进行升级。FPGA器件作为控制核心之一,其灵活的现场可更改性,可再配置能力,对系统的各种改进非常方便,在不更改硬件电路的基础上还可以进一步提高系统的性能。具有高速、精确、可靠、抗干拢性强和现场可编程先进优点。第一章 课题概述1.1、选题背景: 高校电气类及相关专业教学中,实践环节越来越被重视。在数字电路的实验及数字系统的设计中,示波器已远远不能满足教学要求。例如在一些数字电路的研究和实验中,往往需要同时查看多路数字信号的时序关系,甚至有时因为信号不会重复出现,因此只用示波器往往无法完整了解信号的相对关

8、系,在这种场合有台逻辑分析仪就显得相当必要。然而自1973年世界上第一台逻辑分析仪至今,逻辑分析仪的普及率仍然很低,30%以上的数字设计师没有使用逻辑分析仪,80%的高校实验室没有普及逻辑分析仪。最重要的原因在于其高昂的价格。逻辑分析仪昂贵的价格和越来越广泛的应用前景之间的矛盾使逻辑分析仪高精度智能化方向以展,同时也催生了很多降低成本和拓展功能的方案。 逻辑分析仪的主要功能就是分析测量数字系统的逻辑波形和逻辑关系。它利用时钟脉冲采样,在达到预设的触发条件时,将触发前后的状态进贮存、显示和处理,展示数据流的内容,从而发现和解决故障。1.2、设计任务: 设计并制作一个8路数字信号发生器与简易逻辑分

9、析仪,其结构框图如图1所示: 图1.2 逻辑分析系统框图 1.3、基本要求 (1) 制作数字信号发生器能产生8路可预置的循环移位信号序列,输出信号为TTL电平,序列时钟频率为100Hz,并能够重复输出。逻辑信号序列示例如图示所示。(2) 制作简易逻辑分析仪 A、具有采集8路信号的功能,并可设置单级触发字。信号采集的触发条件为各路被测信号电平与触发字所设定的逻辑状态相同。在满足触发条件时,能对被测信号进行一次采集,存储。 B、能利用模拟示波器清晰稳定地显示所采集的8路信号波形,并显示触发点位置。 C、8位输入电路的输入阻抗大于50K,其逻辑信号门限电压可在0.254V范围内按16级变化,以适应各

10、种输入信号的逻辑电平。 D、每通道的存储深度为20bit.(3) 能在示波器上显示可移动的时间标志线,并采用LED或其它方式显示时间标志线所对应时刻的8路输入信号逻辑状态。(4) 简易逻辑分析仪应具备3级逻辑状态分析触发功能,即当连续依次捕捉到设定的3个触发字时,开始对被测信号进行一次采集,存储与显示,并显示触发点位置。3级触发字可以任意设定(例如:在8路信号中指定连续依次捕捉到两路信号11、01、00作为三级触发状态字)。(5) 触发位置可调(即可选择显示触发前、后所保存的逻辑状态字数)。(6) 其它(如增加存储深度后分页显示)。第二章、设计方案 2.1、总体设计方案: 从整个系统的框图和功

11、能要求可以看出,该系统由两个主要控制核心,一个由VHDL语言组成的FPGA(可编程逻辑器件)的主要完成输入信号判断、比较、存储、采集和处理,并且同时完成对数模转换的控制输出的核心。一个由AT89S51单片机外部主要控制核心。并且由VHDL语言描述的控制器均可构造于一个芯片中。根据上述功能和控制器工作流程图,可以由图1框图配置大概所需要的组成电路图。该系统组成主要有如下:(1)、数字信号发生器:该系统采用是用VHDL语言来描述8路数字信号发生器的发生,它主要由预置寄存器、分频器和循环移位寄存器组成,其中预置寄存器预置信号由AT89S51的I/O输出口控制输入。(2)、CPLD控制核心:它主要对数

12、据进行采集、存储、处理和输出、输入控制,其中START是对判断、比较电路使能,启动触发器全整运行,EOC是整个触电路最终产生的通知信号,反馈到控制器,把所需的信号输入到电路中,进行处理、存储和输出显示,NWR端既是RAM的写入信号同时也DAC控制电路的使能信号。而DAC控制电路是使8路数字信号能够清晰、稳定显示在示波上,它能把从RAM读出每页存储的信号通计数器控制8路显示。(3)、单片机控制本核心:该核心主要控制由键盘输入控制,键盘控制触发字、预置信号产生,用常用的P0口作为液晶接口。用RD和WR控制P0输出输入信号。(4)、键盘输入:采用外部电路实现按键输入,只有16个按键,并连接入到8-3

13、编码器中和四个与门组成信号输入。2.2、元件说明: CD4051引脚功能见图2。CD4051相当于一个单刀八掷开关,开关接通哪一通道,由输入的3位地址码ABC来决定。其真值表见表1。“INH”是禁止端,当“INH”=1时,各通道均不接通。此外,CD4051还设有另外一个电源端VEE,以作为电平位移时使用,从而使得通常在单组电源供电条件下工作的CMOS电路所提供的数字信号能直接控制这种多路开关,并使这种多路开关可传输峰峰值达15V的交流信号。例如,若模拟开关的供电电源VDD=5V,VSS=0V,当VEE=5V时,只要对此模拟开关施加05V的数字控制信号,就可控制幅度范围为5V5V的模拟信号。 图

14、 3.5 CD4051芯片图CD4051的功能描述表:输入状态接通通道INHCBA0000“0”0001“1”0010“2”0011“3”0100“4”0101“5”0110“6”0111“7”1均不接通第三章、系统实现与理论分析3.1、数字信号发生器3.1.1、数字信号发生器的软件流程图和组成框图:八数字信号发生器的设计由VHDL语言实现,其硬件图如图3所示,预置数据可以通过单片机同步串行口输入;100Hz时钟由1MHz晶振提供的信号经过1/10000分频后产生,CPLD芯片选用EPM7032LC44-6来产8路信号发生器。图3.1.1 8 路信号发生器软件流程图从流程图可以看出它的设计过程

15、简单可靠,由一个小FPGA的芯片可以完成。从图3.1.2软件设计的顶层图都非常的清楚。SCK、SDA的串行输入、CLOCK时钟信号主要控制循环移位寄存器,而任意分频的设计使有源晶振的输入可以由选取。实现了CPLD的所具备的优越性。图3.1.2 数字信号发生器的组成框图基于CPLD的数字信号发生器的顶层VHDL源程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;PACKAGE SHUZI IS COMPONENT REGISTERN PORT( D : IN STD_LOGIC_VECTOR(7 DOWNTO 0); CLK,EN,SET,RESET : I

16、N STD_LOGIC; Q : BUFFER STD_LOGIC_VECTOR(7 DOWNTO 0); END COMPONENT; COMPONENT FREQ_DIV PORT(CLK1 : IN STD_LOGIC; OUTPUT : OUT STD_LOGIC); END COMPONENT; COMPONENT SHIFTX PORT(CLK,LOAD : IN STD_LOGIC; D : IN STD_LOGIC_VECTOR(7 DOWNTO 0); Q : OUT STD_LOGIC_VECTOR(7 DOWNTO 0); END COMPONENT; END SHUZI

17、; LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE WORK.SHUZI.ALL; ENTITY SHU IS PORT( CLK,EN,SET,RESET,CLK1,LOAD :IN STD_LOGIC; D :IN STD_LOGIC_VECTOR(7 DOWNTO 0); Q :OUT STD_LOGIC_VECTOR(7 DOWNTO 0) ); END SHU; ARCHITECTURE A OF SHU IS SIGNAL CLK2:STD_LOGIC; SIGNAL REGOUT:STD_LOGIC_VECTOR(7 DOWNTO 0

18、); BEGIN REG_1: REGISTERN PORT MAP(D,CLK,EN,SET,RESET,REGOUT); FREV_1:FREQ_DIV PORT MAP(CLK1,CLK2); SHIFT_1:SHIFTX PORT MAP(CLK2,LOAD,REGOUT,Q); END A; 3.1.2、带异步置位/复位的通用八位寄存器的VHDL的源程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY REGISTERN ISGENERIC(N : INTEGER:=1); -参数传递语句PORT( D : IN STD_LOGIC_V

19、ECTOR(7 DOWNTO 0); CLK,EN,SET,RESET : IN STD_LOGIC; Q : BUFFER STD_LOGIC_VECTOR(7 DOWNTO 0);END REGISTERN;ARCHITECTURE A OF REGISTERN ISBEGINPROCESS(CLK,SET,RESET)BEGIN IF(SET=0 AND RESET=1) THEN Q1); -输出全部置为1 ELSIF(SET=1 AND RESET=0) THEN Q0); -输出全部置为0 ELSIF(CLKEVENT AND CLK=1) THEN IF(EN=1) THEN Q

20、=D; ELSE Q=Q; END IF; END IF; END PROCESS;END A;3.1.3、任意分频器的源程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY FREQ_DIV ISPORT(CLK : IN STD_LOGIC; OUTPUT : OUT STD_LOGIC);END FREQ_DIV;ARCHITECTURE A OF FREQ_DIV ISSIGNAL COUNT_SIGNAL : INTEGER RANGE 0 TO 9;SIGNAL MIDL : STD_LOGIC;BEGINPROCESS(CLK)BE

21、GIN IF(CLKEVENT AND CLK=1) THEN IF COUNT_SIGNAL=9 THEN COUNT_SIGNAL=0; MIDL=NOT MIDL; ELSE COUNT_SIGNAL=COUNT_SIGNAL+1; END IF; OUTPUT=MIDL; END IF; END PROCESS;END A;3.1.4、循环移位寄存器源程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY SHIFTX IS PORT(CLK,LOAD : IN STD_LOGIC; D : IN STD_LOGIC_VECTOR(7 DO

22、WNTO 0); Q : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);END SHIFTX;ARCHITECTURE AA OF SHIFTX ISSIGNAL TMP : STD_LOGIC_VECTOR(7 DOWNTO 0);BEGINQ=TMP;PROCESS(CLK)BEGINIF(CLKEVENT AND CLK=1) THEN IF(LOAD=0) THEN TMP=D; ELSE TMP(0)=TMP(7); FOR I IN 1 TO 7 LOOP TMP(I)THR_0=DIN_1&DIN_2&DIN_3&DIN_4;STATETHR_1=DIN_1&

23、DIN_2&DIN_3&DIN_4;STATETHR_2=DIN_1&DIN_2&DIN_3&DIN_4;STATETHR_3=DIN_1&DIN_2&DIN_3&DIN_4;STATE=S0;READSTATE=S0;END CASE ;END IF;END IF;END PROCESS;PROCESS(CLK)BEGIN IF RISING_EDGE(CLK) THEN IF READ=1 THENCQOUT=THR_0&THR_1&THR_2&THR_3;END IF;END IF;END PROCESS;END BEHAV;3.3.3、四位移位寄存器VHDL源程序:LIBRARY IE

24、EE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY SHIFTER_4 ISPORT(CLK,CE,CLR: IN BIT; DATA_IN:IN STD_LOGIC_VECTOR(3 DOWNTO 0); DATA_OUT:OUT STD_LOGIC);END SHIFTER_4; ARCHITECTURE DENG OF SHIFTER_4 ISSIGNAL A: STD_LOGIC_VECTOR(3 DOWNTO 0); BEGINPROCES

25、S(CLR,CLK,CE,DATA_IN)BEGINIF CLR=0 THEN A = 0000; ELSIF CLKEVENT AND CLK=1 THEN IF CE=0 THEN A=DATA_IN; ELSE A(3 DOWNTO 1)=A(2 DOWNTO 0); A(0)=A(3); END IF; END IF; DATA_OUT=A(0); END PROCESS; END DENG ;3.3.4、比较器的VHDL的源程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY HCT688 IS PORT(Q, P : IN STD_L

26、OGIC_VECTOR(15 DOWNTO 0); GBAR : IN STD_LOGIC; PEQ : OUT STD_LOGIC);END HCT688;ARCHITECTURE VER1 OF HCT688 ISBEGIN PEQ =0 WHEN (Q(15 DOWNTO 0)=P(15 DOWNTO 0)AND(GBAR=0) ELSE 1;END VER1;3.3.5、锁存储器VHDL源程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY REG16B IS PORT( CLK:IN STD_LOGIC; CLR:IN STD_LOGI

27、C; D :IN STD_LOGIC_VECTOR(15 DOWNTO 0); Q :OUT STD_LOGIC_VECTOR(15 DOWNTO 0);END REG16B;ARCHITECTURE BEHAV OF REG16B IS SIGNAL R16S : STD_LOGIC_VECTOR(15 DOWNTO 0);BEGIN PROCESS(CLK,CLR) BEGIN IF CLR=1 THEN R16S=0000000000000000; ELSIF CLKEVENT AND CLK=1 THEN R16S(15 DOWNTO 0)=D; END IF; END PROCESS

28、; Q=R16S; END BEHAV; 3.4、数据采集和处理3.4.1、数据采集和处理的软件流程图和组成框图:-工作速率由时钟信号CLK的速率决定。图书馆6-26 数据采集控制系统的组成框图图6-27 系统控制器工作流程图从系统示意图和功能要求可能性看出,该系统属于数据处理类型,其控制和数据处理器均可构造于一片单元型CPLD或FPGA系列芯片中,输入信号和DAC均在控制器下控制运行。因此有如图6-27所示控制器工作流程图。根据上述功能和控制器工作流程图,配置相应的控制器和数据处理器CODP的硬件结构图如6-28所示。CODP由存储器REGN,数据处理电路CALC和状态控制器CONTROL三

29、个部分组成。图6-28给出了它们各自输入、输出和互联关系,以及整个CODP与外部的联系。图6-28是CODP的最高层次的逻辑框图。图中,存储器REGN实现8路采集数据的绶冲,由控制器送出的EN作为存储器使能信号。数据处理电路CALC实现采样值和标准值(假设任意选择标准值为(18)10)的相减运算,并完成极性位的判断别(0为正极性,1为负极性)。状态控制器CONTROL是系统正确有交工作的指挥枢纽,它发出对输入信号、DAC、REGN和CALC的控制信号,并接收它们的反馈应答信号,做出判断和决策。 图6-28 CODP的逻辑框图 数据采集和处理(CODP)的顶层VHDL的源程序:根据图6-27、图

30、6-28首先给出CODP的顶层VHDL语言描述源程序文件如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;PACKAGE CODP_LIB IS -程序包说明,CODP_LIB是程序包名 COMPONENT REGN -REGN单元说明 PORT( CLK,EN :IN STD_LOGIC; DATA :IN STD_LOGIC_VECTOR(7 DOWNTO 0); Q :OUT STD_LOGIC_VECTOR(7 DOWNTO 0) ); END COMPONENT; COMPONENT CALC -CALC单元说明 PORT( DATA :IN S

31、TD_LOGIC_VECTOR(7 DOWNTO 0); Q :OUT STD_LOGIC_VECTOR(8 DOWNTO 0) ); END COMPONENT; COMPONENT CONTROL -CONTROL单元说明 PORT( CLK,EOC :IN STD_LOGIC; START,OE,NWR,EN1 :OUT STD_LOGIC ); END COMPONENT; END CODP_LIB; -程序包CODP_LIB说明结束 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE WORK.CODP_LIB.ALL; -用户自定义的COD

32、P_LIB库 ENTITY CODP IS -实体CODP说明部分 PORT( CLK,EOC :IN STD_LOGIC; DATA :IN STD_LOGIC_VECTOR(7 DOWNTO 0); DOUT :OUT STD_LOGIC_VECTOR(8 DOWNTO 0); START,NWR,OE :OUT STD_LOGIC ); END CODP; ARCHITECTURE A OF CODP IS -CODP实体内结构A说明 SIGNAL EN:STD_LOGIC; -内部信号EN说明 SIGNAL REGIOUT:STD_LOGIC_VECTOR(7 DOWNTO 0); B

33、EGIN -内部信号REGIOUT说明 REG8_1:REGNPORT MAP(CLK,EN,DATA,REGIOUT); -端口映射,PORTMAP是关键词, -各端口名称相同时为同一信号 CONTR:CONTROL PORT MAP(CLK,EOC,START,OE,NWR,EN); -端口映射 C1:CALC PORT MAP(REGIOUT,DOUT); -端口映射 END A;在以上顶层的VHDL描述文件中,用元件例化语句定义了三个单元REGN、CALC和CONTROL,这三个单元的逻辑功能可用下述VHDL文件述。3.4.2、存储器REGN的VHDL程序:LIBRARY IEEE;U

34、SE IEEE.STD_LOGIC_1164.ALL;ENTITY REGN IS -实体REGN说明 PORT( CLK,EN :IN STD_LOGIC; DATA :IN STD_LOGIC_VECTOR(7 DOWNTO 0); Q :OUT STD_LOGIC_VECTOR(7 DOWNTO 0) );END REGN;ARCHITECTURE A OF REGN IS BEGIN PROCESS(CLK) BEGIN IF (CLK EVENT AND CLK=1) THEN-如果CLK有效 IF EN=1 THEN -如果使能端EN有效 Q STATESTATEIF EOC=1

35、THEN -如果ECO=1,状态转向S3STATESTATESTATESTATESTATE=S0;END CASE; -状态分支结束END IF;END PROCESS;START=1 WHEN STATE=S1 ELSE 0;OE=1 WHEN STATE=S3 ELSE 0; -输出信号赋值语句,例如-状态S1时,START=1,EN1=1WHEN STATE=S4 ELSE 0; -否则START=0NWR=0WHEN STATE=S6 ELSE 1;END A;3.4.4、数据处理器CALC的VHDL程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL

36、;USE IEEE.STD_LOGIC_UNSIGNED.ALL; -使用IEEE标准中的UNSIGNED库ENTITY CALC IS -实体CALC说明 PORT( DATA :IN STD_LOGIC_VECTOR(7 DOWNTO 0); Q :OUT STD_LOGIC_VECTOR(8 DOWNTO 0) );CONSTANT STAND:STD_LOGIC_VECTOR(8 DOWNTO 0):=111101110;END CALC; -标准值(补码)赋值负数ARCHITECTURE A OF CALC IS BEGINPROCESS (DATA)VARIABLE INTER1,

37、INTER2,INTER3:STD_LOGIC_VECTOR(8 DOWNTO 0); -3个中间变量说明VARIABLE C:STD_LOGIC; -极性位变量说明 BEGIN FOR I IN 0 TO 8 LOOP INTER1(I):=0; -循环语句 INTER2(I):=0; -3个中间变量各位均清0 INTER3(I):=0; END LOOP; FOR I IN 0 TO 7 LOOP INTER1(I):=DATA(I); -循环语句,DATA各位值赋给变量 END LOOP; -INTER1的各对应位 INTER2:=INTER1+STAND; -输入和标准值补码相加,完成

38、减法运算 IF INTER2(8)=1 THEN C:=0; FOR I IN 0 TO 7 LOOP INTER3(I):=INTER2(I) XOR C; -极性位生成 C:=INTER2(I) OR C; -如果运算结果极性位1 END LOOP; -则数值位求补 INTER3(8):=1; ELSE FOR I IN 0 TO 8 LOOP -如果极性位0,则数值位不变 INTER3(I):=INTER2(I); END LOOP; END IF; Q=INTER3; -运算结果(低8位送DAC变换,高位极性位直接输出) END PROCESS; END A;:3.5、存储器RAM的实

39、现该模块的作用:当使能信号有及时,对脉冲信号进行采样存储,存入RAM中,存储20bit每一路,然后结束存储,接着读出RAM中存储的数据。根据题目中对存储深度的要求,每次触发存储4页的数据,触发位置前后各存储2页数据,这样可满足基本和扩展要求。FLEX 10K中的嵌入式阵列由一系列具有实现逻辑功能和存贮功能的FAB组成。EAB是在输入、输出口上带有寄存器的RAM块,利用它可以非常方便地实现一些规模不太大的ROM、RAM、双端口RAM和FIFO等功能。数据存储读写模块的VHDL源程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOG

40、IC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY RAM IS GENERIC(WIDTH: INTEGER := 16; - USED TO CHANGE THE MEMORY DATAS WIDTH DEPTH: INTEGER := 16); - USED TO CHANGE THE MEMERY ADDRESS WIDTH DURING - INSTANTIATION. PORT( CLK : IN STD_LOGIC; -CLOCK ADDR : IN STD_LOGIC_VECTOR(3 DOWNTO 0); -ADDRESS

41、BUS CS : IN STD_LOGIC; -CHIP SELECT OE : IN STD_LOGIC; -OUTPUT ENABLE DATA_I: IN STD_LOGIC_VECTOR(7 DOWNTO 0); -WRITE DATA BUS DATA_O: OUT STD_LOGIC_VECTOR(7 DOWNTO 0) );END RAM;ARCHITECTURE BEHAVIORAL OF RAM ISTYPE RAM IS ARRAY(15 DOWNTO 0) OF STD_LOGIC_VECTOR(7 DOWNTO 0);SIGNAL RAM1 : RAM; BEGIN P

42、ROCESS(CLK) BEGIN IF(CLKEVENT AND CLK = 1) THEN IF(CS = 0) THEN IF(OE = 0) THEN DATA_O = RAM1(CONV_INTEGER(ADDR); ELSE RAM1(CONV_INTEGER(ADDR) = DATA_I; END IF; END IF; END IF; END PROCESS;END BEHAVIORAL;3.6、示波器通道控制3.6.1、多波形显示软件流程图和组成框图:图4.7 多波形显示流程图3.6.2、多波形显示理论分析:为了将CPLD还原的八路TTL逻辑电平清晰稳定地显示在逻辑示波器上,

43、首先需要将八路信号分别移位到不同的电平等级上。为此,我们采用了8个T型电阻组成的网络来进行电平移位。T型电阻的结构如下: 图3.5 设Vin=0V 时,V0=V1;Vin=5V时,V0=V2。 根据KCL原理,利用下列二元一次方程组求出R1、R2:V1 / R0 = (5 V1) / R1 V1 / R2V2 / R2 = (5 V2) / R0 (5 V2) / R1 其中,V1为脉冲序列的低电平,电压从1V开始,每路信号增加0.1V。V2为脉冲序列的高电平,电压为 V1 0.2V设R0 = 51K解此方程组可得R1、R2 列如下表:1路2路3路4路5路6路7路8路R1/K10.007.6926.2505.2634.5454.0003.5713.226R2/K2.6322.8573.1253.4483.8464.3485.0005.882V1/V1.01.31.61.92.22.52.83.1V2/V1.21.51.82.12.42.73.03.3其次,需要一个8路转换开关。在此我们采用了模拟开关4051,通过一个8进制计数器循环转换8个通道的信号。只要信号还

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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