基于VHDL语言的水表抄表器的设计论文

上传人:痛*** 文档编号:44714831 上传时间:2021-12-05 格式:DOC 页数:32 大小:397.97KB
收藏 版权申诉 举报 下载
基于VHDL语言的水表抄表器的设计论文_第1页
第1页 / 共32页
基于VHDL语言的水表抄表器的设计论文_第2页
第2页 / 共32页
基于VHDL语言的水表抄表器的设计论文_第3页
第3页 / 共32页
资源描述:

《基于VHDL语言的水表抄表器的设计论文》由会员分享,可在线阅读,更多相关《基于VHDL语言的水表抄表器的设计论文(32页珍藏版)》请在装配图网上搜索。

1、1龙岩学院龙岩学院毕业论文(设计)毕业论文(设计)题目: 基于 VHDL 语言的 水表抄表器的设计 专业:电子信息工程 2龙岩学院本(专)科毕业论文(设计)开题报告学院:物理与机电工程专业:电子信息工程 课题名称 基于VHDL语言的水表抄表器的设计姓名 学号指导教师职称学历 一、开展本课题的意义及工作内容:本课题的研究意义: 利用VHDL语言,通过对CPLD或FPGA编程,生成控制电路,显示电路,存储电路,使它们完全集成在一片CPLD或FPGA上。这种设计方法使整个系统更加小型化,大大缩小了体积,易于管理和屏蔽。同时易于做成产品,大规模生产,迅速占领市场,是EDA发展的趋势。但现在CPLD或F

2、PGA价格相对单片机来说偏高,而且现阶段应用并不是很广泛。但是如果做成ASIC,大规模生产,其优势是很明显的。工作内容: 水表抄表器的方案设计 水表抄表器程序的模块化处理 水表抄表器的语言设计 VHDL 语言的综合、仿真 二、课题工作的总体安排及进度:1-3 周 开题报告,资料初步搜集。与指导老师沟通。4-5 周 方案可行性论证,论文初期撰写,同时与指导老师沟通。6-7 周 论文中后期撰写,完成论文初稿;进行系统的实验与仿真,并与指导老师沟通。 8 周 系统调试,完成毕业设计和论文修改。与指导老师沟通。 9 周 论文定稿并上交毕业论文终稿,及答辩。三、课题预期达到的效果: FPGA是新型的可编

3、程逻辑器件,能够将大量的逻辑功能集成于一个单个器件中,它所提供的门数从几百门到上百万门,可以满足不同的需要。因此用FPGA来实现抄表器从根本上解决了单片机的先天性限制问题。与以往的抄表器相比,用FPGA实现的抄表器有如下特点:1、集成度高。2、易于升级、换代,灵活适用于各种场合。 3、符合系统芯片(SOC, System On Chip)的发展要求。四、指导教师意见:签名: 年 月 日不够填写可续页3基于基于VHDLVHDL语言的水表抄表器的设计语言的水表抄表器的设计 【摘摘要要】伴随着集成电路伴随着集成电路(IC)(IC)技术的发展,电子设计自动化技术的发展,电子设计自动化(EDA)(EDA

4、)逐渐成为重要的设计手段,已逐渐成为重要的设计手段,已经广泛应用于模拟与数字电路系统等许多领域。经广泛应用于模拟与数字电路系统等许多领域。EDAEDA的一个重要特征就是使用硬件描述语言的一个重要特征就是使用硬件描述语言(HDL)(HDL)来完来完成设计文件。诞生于成设计文件。诞生于19821982年的年的VHDLVHDL语言是语言是IEEEIEEE确认的标准硬件描述语言,在电子设计领域受到了广泛确认的标准硬件描述语言,在电子设计领域受到了广泛的接受。本课题以的接受。本课题以AlteraAltera公司的公司的FLEXIOKFLEXIOK系列产品为载体,在系列产品为载体,在MAX+PLUSIIM

5、AX+PLUSII开发环境下采用开发环境下采用VHDLVHDL语言,设语言,设计并实现了水表抄表器。设计采用计并实现了水表抄表器。设计采用VHDLVHDL的结构描述风格,依据功能将系统分为四个模块,控制模块、的结构描述风格,依据功能将系统分为四个模块,控制模块、计数模块、存储模块和显示模块,每个底层模块采用计数模块、存储模块和显示模块,每个底层模块采用RTLRTL (Registers(Registers TransferLanguage)TransferLanguage)级描述,整级描述,整体生成采用体生成采用MAX+PLUSIIMAX+PLUSII的图形输入法。通过波形仿真、下载芯片的测试

6、,完成了抄表器的功能。的图形输入法。通过波形仿真、下载芯片的测试,完成了抄表器的功能。 【关键词关键词】:】:VHDL,VHDL, CPLD/FPGA,CPLD/FPGA, MAXMAX十十PLUSHPLUSH,水表抄表器,水表抄表器 【ABSTRACTABSTRACT】The Electronic Design Automation (EDA) technology has become an importantdesign method of analog and digital circuit system as the integrated circuitgrowing. One im

7、portant characteristic of the EDA is one of the standarddescription languages validated by IEEE, which was firstly introduced in 1982.And it was widely used by electronic designer now. Based on the series productsof FLEXIOK developed by Altera Company, the projected design and complete systemof the

8、reading instrument of water meter with VHDL language under the MAX+PLUSI1.The style of construction of VHDL language is adopted in the design. Accordingto the function the system is separated into four modules, the control module,the counter module, the memory module and the display module. Each bot

9、tom moduleis described by RTL (Register Transfer Language) and whole module is completedby the graphic input method of MAX+PLUS. The function of system is realizedthrough emulating the key waves and testing a chip. 【KeyKey WordsWords】:】:VHDL, CPLD/ FPGA, MAX+PLUSII, the reading instrument of water m

10、eter4 目目 录录 1. 绪论 (1)1.1 电子设计自动化(EDA)发展概述 (1)1.2 EDA 的 FPGA/CPLD 开发 (1)1.3 硬件描述语言(VHDL) (2)1.4 水表抄表器的发展现状及本课题的研究意义 (2) 2. 水表抄表器的方案设计 (3)2.1 水表抄表器的几种方案比较 (3)2.2 用 FPGA 实现水表抄表器 (4)2.3 水表抄表器的 VHDL 设计(4) 3. 水表抄表器程序的模块化处理 (5)3.1 控制模块 (6)3.1.1 模块输入、输出 (6)3.1.2 模块流程 (6)3.2 计数模块 (7)3.2.1 模块输入、输出 (8)3.2.2 模块

11、流程 (8)3.3 存储模块 (9)3.3.1 模块输入、输出 (9)3.3.2 模块流程 (9)3.4 显示模块 (11)3.4.1 模块输入、输出 (11)3.4.2 模块流程 (11)3.5 抄表器模块构成 (12)3.5.1 抄表器的输入、输出 (12) 3.5.2 抄表器系统说明 (12) 4. 水表抄表器的语言设计 (13)4.1 VHDL 语言的描述方式 (13)4.2 控制模块的 VHDL 设计 (14)4.3 计数模块的 VHDL 设计 (14)4.4 存储模块的 VHDL 设计 (15)4.5 显示模块的 VHDL 设计 (16) 4.6 整体设计模块的 VHDL 描述 (

12、16) 5. VHDL 语言的综合、仿真 (17)5.1 综合 (17)5.2 系统 VHDL 描述波形仿真 (17) 5.2.1 控制模块仿真 (17) 5.2.2 计数模块仿真(18) 5.2.3 显示模块仿真(18)结论 (18)致谢 (18)参考文献 (19)附录5 1. 绪 论 21世纪人类将全面进入信息化社会,对微电子信息技术和微电子基础技术将不断提出更高的发展要求,微电子技术仍将继续是21世纪若干年代中最为重要的和最有活力的高科技领域之一。而集成电路(IC)技术在微电子领域占有重要的地位。伴随着IC技术的发展,电子设计自动化(Electronic Design Automatio

13、n, EDA)已经逐渐成为重要设计手段,其广泛应用于模拟与数字电路系统等重要领域。1.1 电子设计自动化(EDA)发展概述1.1.1 EDA的发展历史2电子设计自动化(EDA)是一种实现电子系统或电子产品自动化设计的技术,它与电子技术、微电子技术的发展密切相关,吸收了计算机科学领域的大多数最新研究成果,以高性能的计算机作为工作平台,是20世纪90年代初从CAD(计算机辅助设计),CAM(计算机辅助制造)、CAT(计算机辅助测试)和CAE(计算机辅助工程)的概念发展而来的。设计者的工作仅限于利用软件的方式来完成系统硬件功能的描述,在EDA 工具的帮助下和应用相应的FPGA/CPLD器件,就可以得

14、到最后的设计结果。此外,从应用的广度和深度来说,由于电子信息领域的全面数字化,基于EDA的数字系统的设计具有更大的应用市场和更紧迫的需求性。1.1.2 EDA的应用随着大规模集成电路技术和计算机技术的不断发展,在涉及工业自动化、计算机应用、仪器仪表等领域的电子系统设计工作中,EDA技术的含量正以惊人的速度上升,电子类的高新技术项目的开发也日益依赖于EDA技术的应用。EDA技术将成为电子设计领域中的极其重要的组成部分。电子设计专家认为,单片机时代已经结束,未来将是EDA的时代。随着微电子技术的飞速进步,电子技术的应用以空前规模和速度渗透到各行各业。各行业对自己专用集成电路(ASIC)的设计要求日

15、趋迫切,可编程器件的广泛应用,为各行业的电子系统设计工程师自行开发本行业专用的ASIC提供了技术和物质条件。1.2 EDA的FPGA/CPLD开发3FPGA/CPLD不但包括了MCU的特点,并兼有串、并行工作方式,高速、高可靠性以及宽口径适用性等诸多方面的特点。1.2.1 FPGA/CPLD简介FPGA/CPLD都是高密度现场可编程逻辑芯片,都能够将大量的逻辑功能集成于一个单片集成电路中,其集成度已发展到现在的几百万门。复杂可编程逻辑CPLD是由PAL或GAL发展而来的。1.2.2 用FPGA/CPLD进行开发的优缺点优点:1、编程方式简便、先进。2、高速。3、高可靠性。4、开发工具和设计语言

16、标准化,开发周期短。5、功能强大,应用广阔。同时,FPGA/CPLD设计方法也有其局限性。这体现在以下几点:1、FPGA/CPLD设计软件一般需要对电路进行逻辑综合优化,以得到易于实现的结果,因此,最终设计和原始设计之间在逻辑实现和时延方面具有一定的差异。2、 FPGA/CPLD的容量和数目都是有限的。3、由于目标系统的PCB板的修改代价很高,用户一般希望能固定引出端分配的前提下对电路进行修改。但在芯片利用率提高,或者芯片v0引出端很多的情况下,微小的修改往往会降低芯片的布通率。4、早期的FPGA芯片不能实现存储器、模拟电路等一些特殊形式的电路。最新的一些FPGA产品集成了通用的RAM结构。但

17、这些结构要么利用率不高,要么不符合设计者的需要。这种矛盾来自于FPGA本身的结构局限性,短期内很难得到好的解决。5、尽管FPGA实现了ASIC设计的硬件仿真,但是由于FPGA和门阵列、等传统ASIC形式的延时不尽相6同,在将FPGA设计转向其他ASIC设计时标准单元仍然存在由于延时不匹配造成设计失败的可能性。1.3 硬件描述语言(VHDL)16硬件描述语言(HDL)是相对于一般的计算机软件语言如C而言的。硬件描述语言具有以下几个优点:1、设计技术齐全,方法灵活,支持广泛。2、加快了硬件电路的设计周期,降低了硬件电路的设计难度。3、采用系统早期仿真,在系统设计早期就发现并排除存在的问题。4、语言

18、设计可与工艺技术无关。5、与标准,规范,易于共享和复用。1.3.1 VHDL语言简介在大规模数字系统设计中,VHDL语言将逐步取代如逻辑状态表和逻辑电路等级别较低的繁琐的硬件描述方法,而成为主要的硬件描述语言。1.3.2 VHDL语言设计步骤利用VHDL语言进行设计可分为以下几个步骤:1、设计要求的定义。2、用VHDL语言进行设计描述。3、用VHDL仿真器对VHDL原代码进行功能仿真。4、利用VHDL综合优化软件对VHDL原代码进行综合优化处理。5、配置将综合优化处理后得到的优化了的网络表,安放到前面选定的CPLD或FPGA目标器件之中,这一过程成为配置。6、配置后的时序仿真。7、器件编程。1

19、.3.3 利用VHDL语言开发的优点VHDL语言与其他语言相比有一些自己的优点:1、设计功能强、方法灵活、支持广泛。2、系统硬件描述能力强。3、可以进行与工艺无关编程4、 VHDL语言标准、规范,易于共享和复用。5、方便ASIC移植。1.4 水表抄表器的发展现状及本课题的研究意义1.4.1 水表抄表器的发展现状近年来,随着科学技术的不断发展和人民生活水平的不断提高,“智能化住宅”这一概念正在逐步地被引入到普通住宅小区的建设之中。其中最典型的应用便是自来水表、电表、管道煤气表等三表的集中自动抄表系统。随着人们生活水平的不断提高和生活节奏的日益加快,现代家庭中的煤气、电、水费的核算和收缴工作日益成

20、为一种负担。传统的计量器采用各自独立的感应式计量表,这种抄表器有很多弊端,诸如必须逐门入户抄表,收费困难,易造成漏抄、误抄或多抄,需投入大量的抄表统计人员,而且存在抄表效率低、速度慢、成本高等问题。不仅工作量大、数据统计麻烦,而且容易出错,费用收缴工作也极其麻烦。本设计的抄表系统,它可把多用户的水量用量集中记录在一部表中,而且采用多用户联网的形式,进行集中抄写,数据统计简单,费用收缴周期可以大幅度的缩减。它对用户水、电、气等量的自动计费、收费联网,状态报警提示和防止用户使用非法手段窃水、窃电等功能于一体,是适应管理现代化的最佳计量器具之一。由此设计了一套远传抄表系统。由于它们的出现既方便了广大

21、用户,又大大减轻了抄表员的工作量,同时由于计量精确,因而己具有成为该领域中主流技术的趋势。抄表系统基本工作原理:利用电子技术和传感技术,对传统电表、水表、气表加以改进,使其成为远传表,在户外装一套计量系统,将每一个计量表传感器传出的数据,送到每个表的采集器存储,经过函数变换送到智能电路单元,各单元通过数据总线并联,在数据总线上任何一点皆可以与计算机通讯,自动抄收三表数据。系统包括远传检测表头、数据抄表器、上位控制器等三个部分。7(1)远传检测表头:通过对现有电表、水表、煤气表加装传感器,使其既能就地显示计量数据,又能产生相关计量脉冲信号的新型计量表具。传感器实质上是一种基于磁电转换技术或光电转

22、换技术的脉冲发生电路单元。远传检测表头均为机械转盘式,将磁感应探头装在检测表头的某一刻度上,并通过磁屏蔽防止外界磁场的干扰后,便将一台一次表改制成远传检测表头。转轴的圈数通过探头组件的输出端送到数据采集器,该数据通过一定的倍率计算便成为最终的计量数据。例如,在现有转盘计数的水表中加装霍尔元件和磁铁,即可构成基于磁电转换技术的传感器,霍尔元件固定安装在计数转盘附近,永磁铁安装在计数盘上,则当转盘每转一圈,永磁铁经过霍尔元件一次。即在信号端产生一个计量脉冲。(2)数据抄表器:其主要功能是采集检测表头数据,累积表头数据,通过系统总线上传至上位控制器。其一般具有8个通道,每个通道连接1个检测表头。为保

23、障系统的安全性及可靠性,数据采集器应具有表底数据及采集数据的存储功能。(3)上位控制器:上位控制器可与数据采集器、检测表头组成完整的小规模抄表系统,标准型上位控制器通过屏蔽双绞线可挂接多个数据采集器。上位控制器主要功能是,对数据采集器硬件设备管理,历史数据存储、累积,采集器数据显示、打印等功能。本设计主要是针对该系统的核心部分数据抄表器,抄表器接受已处理好的脉冲信号,每1000个脉冲记为1度。一个抄表器可以记录一户的用水量,同时循环显示各户现在的用水量。1.4.2 本课题的研究意义本课题的研究意义有以下几个:首先,就是完成本课题的具体设计,通过这次设计,掌握用VHDL设计数字系统的方法。16其

24、次是探讨用VHDL实现数字系统设计应当注意的方面。再次探讨VHDL语言的具体特点。最后注意编码的效率,以求速度和功耗的最优化。 2. 水表抄表器的方案设计2.1 水表抄表器的几种方案比较根据抄表系统的特点,可以采用几种方案来实现。第一种方案:采用以80C31为核心的单片机扩展系统。系统可对来自多路的脉冲进行实时采集、计算,变成各路表的用水量数据进行保存。用外设对系统初始化设置和数据抄录,初始化设置包括系统编号、水表常数和表底数设置,系统依据这些参数进行水量转换。系统内还配有电源监视器和看门狗电路,保证系统可靠运行。下图为原理框图:8 CPU(单(单 片片 机)机)键盘接口电路数据存储器脉冲复位

25、时钟电路显示电路电源监视看 门 狗通信电路 图2-1 原理框图主要功能:1、 具有户内户外两套显示,且数据一致。2、 低功耗,普通5号电池可用三年,更换电池数据不丢。3、 显示仪可通过键盘送入初值。4、 通用于所有符合国家标准的普通水表或气表。5、 八位数据显示,整数位与小数位任意设定,可显示八户的户号及用各自用水量。6、 具有防盗窃功能。7、 停电数据自动保护功能。第二种方案:采用ASIC技术,把上述除了CPU(单片机)以外的各外围功能芯片集成在CPLD或FPGA上,应用VHDL语言对其编程,使其完成各个功能芯片的功能,然后再应用VHDL语言设计一个专用串行通信芯片,使整个系统能够小型化。这

26、种设计方法采用单片机和CPLD或FPGA相结合的方法,既能兼顾单片机技术比较成熟。易于设计,同时也能利用最新的VHDL语言进行设计一些比较简单的集成电路。第三种方案:完全采用CPLD或FPGA器件。对其编程,使其产生各个功能模块,生成ASIC专用集成电路10,然后辅于外围电路,使之完全符合上述功能的要求。在以上两种设计方案中,控制器都是采用的51系列的单片机,然后外围一些电路,构成一个完整的单片机系统。在第三种方案中,利用VHDL语言,通过对CPLD或FPGA编程,生成控制电路,计数电路、存储电路,显示电路,使它们完全集成在一片CPLD或FPGA上。与以上两种方案比较,这种设计方法使整个系统更

27、加小型化,大大缩小了体积,易于管理和屏蔽。同时易于做成产品,大规模生产,迅速占领市场,是EDA发展的趋势。但现在CPLD或FPGA价格相对单片机来说偏高,而且现阶段应用并不是很广泛。但是如果做成ASIC,大规模生产,其优势是很明显的。现代电子产品的设计,离不开EDA技术。所以决定采用第三种方案,利用可编程逻辑器件和VHDL语言设计的优点。2.2 用FPGA实现水表抄表器18传统的水表抄表器一般是由分离元件搭接而成的。随着单片机的大规模的应用,单片机在水表抄表方面也越来越多的被使用,出现了不少单片机控制的水表抄表器。相对于以前用分离元件搭接起来的集中抄表器,单片机控制的集中抄表器在测量精度和测量

28、速度上都有了很大的提高。但由于单片机先天性的限制(如单片机工作频率的限制、单片机内部计数器位数的限制),由单片机控制的抄表器无法测量精度和测量速度上取得重大突破。若在增加别的器件,以弥补单片机的不足,不仅会大大增加系统的复杂性,而且不利于系统的集成化。FPGA是新型的可编程逻辑器件,能够将大量的逻辑功能集成于一个单个器件中,它所提供的门数9从几百门到上百万门,可以满足不同的需要。因此用FPGA来实现抄表器从根本上解决了单片机的先天性限制问题。与以往的抄表器相比,用FPGA实现的抄表器有如下特点:1、集成度高。2、易于升级、换代,灵活适用于各种场合。 3、符合系统芯片(SOC, System O

29、n Chip)的发展要求。2.3 水表抄表器的VHDL设计由图2-2所示,可以把它分为以下四个模块:控制模块、计数模块、存储数据的存储模块、显示数据的显示模块。控制模块是整个系统的控制部分,计数模块是整个测量系统的核心,进行计数,计数结果送到存储模块。存储模块的复位信号由控制模块提供,它从计数模块接受到新的计数结果,测量结果经存储后送模块显示,显示模块从存储模块得到结果。整个系统模块如图2-2所示:图2-2 系统图各模块功能描述如下:控制模块CONTROL:控制模块相当于控制电路部分,它的主要功能是控制整个抄表器系统的复位,测量的开始等。计数模块COUNTER:计数模块是整个抄表器的核心部分,

30、它通过对被测脉冲计数来进行测量。计数模块在每次测量前,从控制模块接受复位信号RESET,对模块进行复位,清除上次的测量结果,为新的一次测量做准备。模块在当计数器计数完成并且测量结果输出信号TKEEP上的结果稳定后,才输出使能信号OUTEN,使得存储模块可以读取测量结果,从而保证了所读测量结果的准确性。存储模块IICCONTROL:存储模块通过对计数模块的测量结果的存储。工作过程如下:存储模块从控制模块接受系统开始信号START,还从计数模块接受使能信号WREN和测量结果信号TKEEP。只有当使能信号WREN到来时,存储模块才能从计数模块读取结果信号TKEEP。当RDEN到来时,结果信号TKEE

31、P被送到存储芯片上。 显示模块DISPLAY:显示模块主要作用是生成共阴极数码管显示测量结果所需的控制信号和数据信号。模块从控制模块接受模块输入复位信号SYSSTART对模块进行复位操作。模块输入的基准时钟CLKDISP为分频电路分频处理后,频率为100K的时钟,用于数码管的循环显示。模块同时从存储模块接受模块输入测量结果信号DATA。该测量结果信号是用二进制表示的,显示模块首先将该信号转换成BCD10码表示的形式,以用于数码管的显示。模块输出的各个数码管选通信号GATE1-GATE3为各个数码管的选通信号,当某一选通信号为高电平时,表示该选通信号对应的数码管被选中有效,可以进行显示操作。模块

32、输出的数据信DIGITOUT各位上的信号是否为高电平来决定是否点亮数码管中对应的显示段。3. 水表抄表器程序的模块化处理集中抄表器系统共分为四个模块:控制模块、计数模块、存储模块和显示模块。下面将依次介绍其各模块的实现。3.1 控制模块7控制模块是整个系统的控制部分,它控制着其他四个模块的工作。图3-1是控制模块的模块图。 K KO ON NG GZ ZH HI I RESET RESETOUT SYSSTART STOPFLAG STARTCUNCHUBASECLK图3-1控制模块的模块图3.1.1 模块输入、输出控制模块的输入信号有:RESET:为系统复位信号。当需要复位系统时(一般在进行

33、新的测量前),只需使RESET变为高电平(RESET=1)即可将整个系统复位,处于等待侧量状态。SYSSTART:为系统开始测量脉冲信号。在进行一次新的测量前需要也仅需要给SYSSTART一个脉冲,系统就开始进行连续不间断的测量。其中,SYSSTART的脉冲宽度要大于模块中所有时钟(经分频电路分频后得到)的一个周期。FLAG:为存储模块反馈回来的标志信号。它标志着存储模块已经从计数模块取得此次测量的结果。控制模块接受到此脉冲信号后,就发出STARTCUNCHU脉冲信号,使系统进行下一次测量,而不再需要SYSSTART信号,从而实现了连续不间断测量。BASECLK:为基准时钟,它由外加的晶振所提

34、供。输出信号有:RESETOUT:为输出复位脉冲信号。它由系统复位信号RESET产生,主要为计数模块、显示模块的复位。STARTCUNCHU:为存储开始脉冲信号。STOP:为存储停止信号,它由反馈信号FLAG产生。3.1.2 模块流程控制模块的流程如图3一2所示:11开开 始始Reset=1?sysstart event and sysstart=1?-Flag event And flag=1?Reset=1?Sysstart 是否启动?变 量 复 位Resetout=1输 出 图3-2 控制模块流程图控制模块首先检测三个输入信号:系统复位信号RESET、系统开始测量脉冲SYSSTART和存

35、储模块反馈信号FLAG的变化。当RESET变为高电平(RESET=1)时,先对控制模块内的变量进行复位,然后输出RESETOUT脉冲信号,对其它模块进行复位操作。当系统开始测量脉冲信号SYSSTART来临(SYSSTARTEVENT ANDSYSSTART=1)且脉冲宽度满足条件时,控制模块先检查是否处于系统复位期间(RESET=1),若不是,则输出测量开始脉冲信号STARTCUNCHU、当要结束正在进行的测量,开始另外一次新的测量时,需要给控制模块施加系统复位信号,然后再施加开始测量脉冲信号STARTCUNCHU,开始新一轮测量,同时送到存储模块,以使存储模块能够再次输出反馈信号FLAG。这

36、样系统只需在开始施加一次测量开始脉冲信号SARTCUNCHU,以后在无须施加,从而实现了连续不间断的测量。3.2 计数模块715计数模块是整个系统的核心模块,测量的主要工作由它来完成,它通过计数器对被测信号基准时间内进行计数来测量,其模块图如图3-3所示: C CO OU UN NT TE ER R12RESET OUTENCLK TKEEP13.0 TKEEP23.0 CHECLK TKEEP33.0图3-3 计数模块的模块图3.2.1 模块输入、输出由图3-3可知,计数模块的输入模块信号有:CHECLK:为被测的信号。其电压幅度为0-5v,CLK:为基准时钟,与前面两个模块一样,有外加的晶

37、振提供。RESET:为计数脉冲的输入复位信号。RESETOUT:主要用于对计数模块进行复位操作,清除计数结果,保证系统在连续不间断测量的正确性。输出信号:TKEEP:为计数模块的测量结果输出信号。它由模块复位信号RESET复位清零,在送到存储模块后,由存储模块送显示模块显示。OUTEN:为计数模块的输出使能信号。其主要用途是通知存储模块可以读取测量结果输出信号TKEEP上的值。只有当测量结果输出信号TKEEP上的结果正确、稳定后,计数模块才输出使能信号OUTEN (OUTEN=1),让存储模块读取测量结果,确保了数据传输的正确。输出使能信号OUTEN由每次测量前的复位信号RESET复位清零。3

38、.2.2 模块流程其流程如图3-4所示:开开 始始Reset=1?输出使能信号outen=1输出计数结果模 块 复 位图3-4 计数模块流程图3.3 存储模块713存储模块主要是对计数模块输出的计数结果进行存储,因此存储模块是一个必要的模块。其模块图如图3-5所示: I II IC CC CO ON NT TR RO OL L CLKSTARTSTOP FLAGWREN SDA RDEN SCLIIDATAIN13.0IIDATAIN23.0IIDATAIN33.0图3-5存储模块的模块图3.3.1 模块翰入、输出由图3-5可知,存储模块的输入信号有:IIDATAIN:为存储模块输入的测量结果

39、信号。WREN:为存储模块写入的使能信号。RDEN:为存储模块的读出使能信号,它来源于计数模块输出的输出使能信号OUTEN:主要用于控制模块内写入的数据传送到IIC器件。START:为存储模块输入的系统开始信号,它来源于控制模块输出的输出脉冲信号。STOP:为存储模块输入的系统停止信号,它来自于控制模块输出的信号STOP。输出信号有:SDA:为存储模块输出的IIC总线信号,它将被送到EEPROM器件。SCL:为存储模块输出的IIC总线信号,它将被送到EEPROM器件。FLAG:为存储模块输出的标志信号,它标志着存储模块已经存储完毕,可以进行下一轮的存储。标志信号被送到控制模块后,将使控制模块开

40、始新的一轮存储。3.3.2 模块流程存储模块首先检测模块的系统开始信号START是否为高电平,若是则检测写入使能信号WREN,当使能信号WREN到来时,意味着模块输入的结果信号IIDATAIN上的数据已经准备就绪,模块才开始从IIDATAIN上读取数据,保证了测量结果读取的准确性。数据读取后将储存到内部。再检测读出使能信号RDEN,当使能信号RDEN到来时,意味着数据将要送到EEPROM器件,然后模拟II总线的起始信号,开始存储4位数据的最高位,依次左移,直到4位传送完毕,然后发应答信号,然后模拟IIC总线的终止信号,停止一个字节的存储,同时开始下一字节的存储。当STOP到来时,存储模块停止工

41、作,发出反馈信号FLAG,准备下一次的存储。14 开始Start=1?Wren=1?数据输入Rden=1?模拟 IIC 总线起始信号存储一个字节的数据模拟总线终止信号停 止 存 储发应答信号stop=1?153.4 显示模块7显示模块主要用于测量结果的数码管显示。模块从存储模块接受测量的结果,输出共阴极数码管显示所需的控制信号。其模块图如图3-7所示: D DI IS SP PL LA AY Y1 1DATA13.0 GATE1DATA13.0 GATE2DATA13.0 GATE3SYSSTART IGITOUT6.0CLKDISP 图3-7 显示模块模块图3.4.1 模块输入、输出由图3-

42、7可知,显示模块的输入信号有:CLKDISP: 为显示模块输入的基准时钟。与前面的模块一样,由外加晶振所提供。CLKDISP:经分频后,生成频率为100K的时钟,主要用于数码管的循环显示。SYSRESET:为显示输入的复位信号,它来自于控制模块输出的复位脉冲信号RESETOUT.DATA:为显示模块输入的测量结果信号(二进制表示),它来自于计数模块输出的测量结果信号TKEEP。显示模块将对测量结果用数码管适时显示出来。输出信号有:GATE 1-GATE3:为显示输出的各个数码管选通信号,GATE 1为个位数码管的选通信号,GATE2为十位数码管的选通信号,GATE3为百位数码管的选通信号,也就

43、是说最大显示数据为999。DIGITOUT:为显示模块输出的数据信号,它的信号宽度为7位,分别对应于数码管的7个显示段。信号高电平表示点亮对应的显示段,低电平表示关闭对应的显示段,从而显示正确的测量结果。3.4.2 模块流程显示模块首先从显示模块输入的测量结果信号DATAOUT上得到的用二进制表示的测量结果转换为用BCD码表示,以便下一步用数码管显示。显示模块在显示测量结果前先检测模块的复位信号SYSRST是否为高电平(SYSRST=1),若是,则对整个模块进行复位操作。否则对输入的测量结果进行显示。模块首先测量结果的个数位(即选通位信号GATE1=1)。模块在显示测量结果的各个数字时采用的相

44、同的方法:即在时钟作用下,第一次根据DIGITOUT决定是否点亮数码管的第一个显示段;第二次根据职GITOUT是否点亮数码管的第一第二个显示段;以次类推,第七次根据DIGITOUT决定是否点亮数码管的一、二、三、四、五、六、七个显示段。从而显示整个数字。显示完个数位后,模块接着显示十位数、百位数。模块接着反过来显示个数位。从而实现测量结果的循环显示。16 开 始sysreset=1?根据 digitout 决定是否点亮数码管的第一个数码段相同的方法现实十位、百位个 位 数 显 示 完 毕根据 digitout 决定是否点亮数码管的第一、二个数码段开始显示测量结果的个数位 gate1=1二进制表

45、示的结果信号binput 转换成 BCD 码表示 图3-8 显示模块流程图3.5 抄表器模块构成将抄表器系统的四个模块:控制模块、计数模块、存储模块和显示模块按照其相互间的信号连接关系组合起来就构成了整个抄表器。3.5.1抄表器的输入、输出系统的输入信号有:CLK:为系统输入的基准时钟信号,它将同时作用于系统的四个分离模块。CHECLK:为系统输入的被测信号,作用于计数模块的被测时钟信号CHECLK。RESET:为系统输入的复位信号(高电平有效),作用于控制模块的复位信号RESETSYSSTART:为系统输入的开始测量脉冲信号,作用于控制模块的开始测量脉冲信号SYSSTART输出信号有:GAT

46、E 1-GATE3:为系统输出的各个数码管选通信号(低电平有效),即显示模块输出信号,各个数码管选通信号GATE 1-GATESDIGITOUT:为系统输出的数据信号,用于显示。SDA: 为系统输出的IIC总线信号,用于存储SCL: 为系统输出的IIC总线信号,用于存储3.5.2 抄表器系统说明整个系统有四个输入信号,分别为系统基准时钟信号CLK、被测时钟信号CHECLK,系统复位信号17RESET和开始测量脉冲信号SYSSTART。其中CLK为整个系统的基准时钟,整个系统的工作都是以它为基准,系统实现由外加晶振提供:CHECLK为被测的外部信号:RESET作为系统的复位信号,用于对整个系统的

47、复位工作,一般在开始一次新的测量之前,都需对系统进行一次复位操作;SYSSTART用于通知系统开始进行测量,并输出测量结果。抄表器的输出信号GATE1-GATE3为数码管的显示控制信号,DIGITOUT为数码管的显示数据信号。系统在接受到开始测量脉冲信号SYSSTART,开始测量,计数器开始计数,当有计数到999时,计数器自动复位为0,同时往存储模块输出数据1,显示模块控制信号GATE1= 1,显示个数位的数码管点亮,显示数据1,当再有1000个脉冲时,显示2,依次进位,完成抄表器的计量功能,同时实时显示,完成抄表的功能。系统连续不间断的测量,保证测量的准确性。14 4. 水表抄表器程序模块的

48、VHDL语言设计4.1 VHDL语言的描述方式19VHDL语言的描述共有三种构造体描述方式:行为描述方式、寄存器传输描述方式、结构化描述方式。行为描述方式是对系统数学模型的描述,其抽象程度比寄存器传输方式和结构化描述方式的程度更高。在行为描述方式的程序大量采用算术运算、关系运算、惯性延时、传输延时等难以进行逻辑综合和不能进行逻辑综合的VHDL语句。RTL描述方式是一种明确规定寄存器描述的方法。由于受逻辑综合的限制,采用RTL描述方式时,所用的VHDL语言的语句有一定的限制。在RTL描述方式上、可以采用寄存器硬件的一一对应的直接描述,也可以采用寄存器之间的功能描述。从编程效率和编程难度上来看,采

49、用第二种方法的功能描述较好。但从控制的准确度和连贯性考虑,用第一种较好。具体设计流程如下:18设计开始设计开始编辑输入( VHDL 描述 )编 译布 线综 合仿 真下 载 图4-1 VHDL设计流程图4.2 控制模块的VHDL设计首先将介绍控制模块的设计,控制模块是整个系统的控制部分,它控制着其他四个模块的工作。图4-2是控制模块的模块图。 K KO ON NG GZ ZH HI IRESET RESETOUT SYSSTART STOPFLAG STARTCUNCHUBASECLK 图4-2控制模块图4.2.1 模块输入输出信号定义RESET: INPUT系统复位信号,在系统开始测量前,一般

50、需要输入一个高电平。SYSSTART: INPUT系统开始测量信号,在脉冲的上升沿开始触发。FLAG: INPUT存储模块反馈回来的标志信号,表示测量结果已存储完毕。BASECLK:INPUT系统时钟,由晶振电路提供,系统设计为20MHZ,为调试时方便,仿真时为1KHZ。RESETOUT: OUTPUT控制模块产生的复位信号,用于显示模块的复位。STARTCUNCHU: OUTPUT存储开始信号,主要控制存储模块的开始存储。STOP: OOUTPUT存储停止信号,控制存储模块的停止存储。4.3 计数模块的VHDL设计4.3.1 模块输入输出信号定义 C CO OU UN NT TE ER R1

51、9RESET OUTENCLK TKEEP13.0 TKEEP23.0 CHECLK TKEEP33.0图4-3 计数模块图计数模块的实质是一个计数器,具体的计数器的计数范围可在程序中定义,本设计假定为1000进制。上图为计数模块的模块图,模块的输入和输出信号定义如下:CHKCLK: INPUT为被测的系统输入信号,为了便于仿真,输入的是由分频电路产生的频率为1HZ的周期方波信号CLK: INPUT为系统的工作时钟,同控制模块一样,频率为1KHZ RESET: INPUT为计数模块的复位信号,来自于控制模块产生的输出信RESETOUT.TKEEP: OUTPUT计数模块的测量结果,它包括三个信

52、号,TKEEP1, TKEEP2, TKEEP3分别表示个位数、十位数、百位数,用四位二进制表示,这样做的目的是为了显示的方便。OUTEN: OUTPUT计数模块的输出使能信号,同时也是计数器的进位信号。它的作用主要用于通知存储模块读取QOUT的数值。4.4 存储模块的VHDL设计4.4.1 IIC总线的基本原理17IIC总线的时钟线SCL和数据线SDA都是双向传输线。总线备用时SDA和SCL都必须保持高电平状态,只有关闭IIC总线时才使SCL钳位在低电平。在标准IIC模式下数据下传送速率可达1OOKBIT/S,高速模式下可达40OKBIT/S。1、IIC总线的接口电路为了使总线上所有电路的输

53、出能实现线“与”的逻辑功能,各个IIC总线的接口电路的输出端必须是漏极开路或集电极结构,输出端必须接上拉电阻。2、IIC总线的信号及时序定义在IIC总线上每传输一位数据都有一个时钟脉冲相对应,其逻辑0”和“1”的信号电平取决于该接点的正端电压VDD的电压。3、总线上数据的有效性IIC总线数据传输时,在时钟线高电平期间数据线上必须保持有稳定的逻辑电平状态,高电平为数据1,低电平为数据0。只有在时钟线为低电平时,才允许数据线上的电平状态变化.4、总线数据传送的起始与停止IIC总线数据传送时有两种时序状态被分别定义为起始信号和终止信号:起始信号:在时钟线保持高电平期间,数据线出现由高电平向低电平变化

54、时启动IIC总线,为HC总线的起始信号。终止信号:在时钟线保持高电平期间,数据线上出现由低到高的电平变化时将停止IIC总线的数据传送,为HC总线的终止信号。起始信号与终止信号都是由主控制器产生。总线上带有IIC总线接口的器件很容易检测到这些信号。5、IIC总线上的数据传送格式IIC总线上传送的每一个字节均为8位,但每启动一次IIC总线,其后的数据传输字节数是没有限制的。每传送一个字节都必须跟随一个应答位,并且首先发送的数据位为最高位,在全部数据传送结束20以后主控制器发送终止信号。所以本模块主要是设计一个工IC总线的控制器,完成数据的存储。4.4.2 模块的输入、输出信号定义 I II IC

55、CC CO ON NT TR RO OL LCLKSTARTSTOP FLAGWREN SDA RDEN SCLIIDATAIN13.0IIDATAIN23.0IIDATAIN33.0图4-4 存储模块图输入信号:IIDATAINI, IIDASTA2, IIDATA3: INPUT 4位数据输入,来自计数模块。CLK: INPUT控制器的工作时钟,由外加的分频电路提供,工作频率为1KHZ。WREN: INPUT控制器的写入使能信号,来自于计数模块的输出信号OUTEN。RDEN: INPUT控制器的读出使能信号,来自于计数模块的输出信号OUTEN。START:INPUT控制器的开始信号,来自于

56、控制模块的输出信号STARTCUNCHU。STOP: INPUT控制器的停止信号,来自于控制模块的输出信号STOP。输出信号:SDA: OUTPUT控制器输出的数据信号。SCL: OUTPUT控制器输出的时钟信号。FLAG: OUTPUT标志信号,表示这一轮存储结束。4.5 显示模块的VHDL设计4.5.1 显示模块的输入、输出信号 D DI IS SP PL LA AY Y1 1DATA13.0 GATE1DATA23.0 GATE2DATA33.0 GATE3SYSSTART IGITOUT6.0CLKDISP 图4-5显示模块图输入信号CLKDISP: INPUT显示模块的时钟。SYSS

57、TART: NPUT显示模块的复位信号,来自于控制模块的输出信号RESETOUT。DATAIN1: IINPUT输入的个位测量结果。DATAIN2 INPUT输入的十位测量结果。DATAIN3: INPUT输入的百位测量结果。21GATEI-GATE3: OUTPUT显示模块输出的三个数码管的选通信号。DIGITOUT: OUTPUT输出的数据信号,送至七段数码管显示。4.6 整体设计模块的VHDL描述4.6.1 模块端口信号定义系统的输入信号有:BASECLK:为系统输入的基准时钟信号,它将同时作用于系统的四个分离模块。CHECLK:为系统输入的被测信号,作用于计数模块的被测时钟信号CHEC

58、LK。RESET:为系统输入的复位信号,作用于控制模块的复位信号RESET。SYSSTART:为系统输入的开始测量脉冲信号,作用于控制模块的开始测量脉冲信号SYSSTART。输出信号有:GATE1-GATE3:为系统输出的各个数码管选通信号,即显示模块输出信号,各个数码管选通信号GATE1-GATE3。DIGITOUT:为系统输出的数据信号。SDA:为系统输出的IIC总线信号。SCL:为系统输出的IIC总线信号。4.6.2 整体模块VHDL设计流程下面给出此模块结构体(ARCHITECTURE)的设计流程图:开 始定 义 control 模 块 为 元 件定 义 counter 模 块 为 元

59、 件定 义 IICCcontrol 模 块 为 元 件定 义 display 模 块 为 元 件例 化 control 模 块例 化 counter 模 块例 化 IICCcontrol 模 块结 束例 化 display 模 块 图4-7 整体模块流程图22 5. VHDL程序的综合、仿真5.1 编译、综合逻辑综合就是将较高抽象层次的描述自动转换到较低抽象层次描述的一种方法,就设计而言,既将RTL级的描述转换成网表的过程,编译的最终目的是为了生成可以进行仿真、定时分析及下载到可编程逻辑器件的相关文件,如.enf,*.rpt,*.snf,*.pof等。5.2 系统VHDL描述波形仿真5115.

60、2.1 控制模块仿真当RESET= 1时,波形如下:当RESET= 0时,波形如下:5.2.2 计数模块仿真5.2.3 显示模块仿真显示电路的波形图:至此完成了系统软件上的仿真。 结 论本课题设计了基于VHDL语言的水表抄表器的几个模块:控制模块、计数模块、存储模块、显示模块。FPGA芯片中每个模块都通过了功能仿真与时序仿真,生成了可综合的网表。仿真和测试的结果表明每个模块均完成了其逻辑功能,并且介绍了使用VHDL语言设计数字频率计的方法,并下载到CPLD中组成实际电路,这样可以简化硬件的开发和制造过程,而且使硬件体积大大缩小,并提高了系统的可靠性。23同时在基本电路模块基础上,不必修改硬件电

61、路,通过修改VHDL源程序,增加一些新功能,满足不同用户的需要,实现数字系统硬件的软件化。虽然设计完成了其逻辑功能,但是整个设计还存在许多可改进之处:首先,逻辑综合过程中,系统优化的许多约束条件是相互关联的,须反复设定约束条件,以求设计芯片面积、功耗减小。其次,需要提高VHDL语言代码的效率,力求用最简洁的描述方式描述模块的结构和功能,以获得最优化硬件电路结构。再次,本系统可以补充键盘模块,控制模块将更复杂,由于时间的关系,没有键盘模块。 致 谢 在这一次的毕业设计中,本人查阅了大量的资料,参考书,期刊,集成电路手册,并且通过网络获得了很多与设计有关的相关资料。通过对所学专业基础课和专业课的理

62、论知识的进一步学习,复习、巩固和加深,做到了更深入地了解了:当前电子设计自动化(EDA)的基本理论;学习了用 VHDL 语言进行数字系统设计的一般方法。在这 23 个月的毕业设计,我开始学着自己独立的思考问题,通过自己的努力最终解决问题。相信这对我以后走上工作岗位为有很大帮助的。 本设计的工作是在吴春富老师的精心指导下完成的,吴老师兢兢业业,治学严谨,处事踏实。在毕业设计中给了我很多的帮助,是我今后工作学习的榜样。在这里衷心地感谢老师,谢谢! 衷心的感谢在毕业设计给予我帮助同学,他们在 VHDL 语言学习,MAXPLUS软件的使用及毕业论文的撰写上给了很多的指导意见。在这里,向你们表示真诚的感

63、谢。参考文献1 潘松,王国栋.VHDL实用教程,成都:电子科技大学出版社,2000.32 潭会生,张昌凡.EDA技术及应用(第二版),西安电子科技大学出版社,2004.43 黄正瑾,徐坚,章小丽,熊明珍.CPLD系统设计技术入门与应用M,北京:电子工业出版社,2002.34 徐志军,王金明,尹廷辉,苏勇 EDA技术与PLD设计,人民邮电出版社,2006.25 廖裕评,陆瑞强.CPLD数字电路设计一使用MAX+PLUSII入门篇M,北京:清华大学出版社,2001.106 李宗伯,王蓉晖,王蕾.VHDL设计表示和综合M,北京:机械工业出版社,2002.57 付家才.EDA工程实践技术,化学工业出版

64、社,2004.128 乔长阁,薛宏熙.用VHDL设计电子线路M,北京:清华大学出版社,2000.89 Kevin Skahill.可编程逻辑系统的VHDL设计技术M,南京:东南大学出版社1998.910 VHDL语言100例详解北京理工大学ASIC研究所M.北京:清华大学出版社,1999.1211 Victor P.Nelson, H.TroyNagle, Bill D.Carroll, J.David Irwin. DIGITAL LOGIC CIRCUITANALYSIS&DESIGNM,北京:清华大学出版社,1997.1112 John F.Wakerly. DIGIT-Principl

65、es and PracticesM,北京:高等教育出版社,200113 孙华锦,基于VHDL语言的电子设计自动化及其研究D,西安:西北工业大学,200114 王波.利用可编程逻辑器件设计LED显示屏D,南京:南京理工大学,200215 Altera公司,Data Book 200216 刘明业.数字系统自动设计M,北京:高等教育出版社,199617 何立民.IIC总线应用系统设计M,北京:北京航空航天大学出版社,199518 徐志军,徐光辉.CPLD/FPGA的开发与应用M,北京:电子工业出版社,200219 吴建国,张建勋.VHDL综合系统中若干问题处理方法J,安徽大学学报,2002.624

66、20 郭锋,刘凯.用VHDL语言设计数字系统事例J,微处理机,2001.3附录 各部分以及整体的源程序1.控制模块的VHDL设计此模块采用进程PROCESS设计。下面是程序清单:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY KONGZHI3 ISPORT(RESET:IN STD_LOGIC;SYSSTART: IN STD_LOGIC;FLAG: IN STD_LOGIC;BASECLK: IN STD_LOGIC;STOP: IN STD_LOGIC;RESETOUT:OUT STD_LOGIC;STARTCUNCHU:OUT STD_LOGIC);END KONGZHI3;ARCHITECTURE BEHAV OF KONGZHI3 ISSIGNAL KRESETOUT: STD_LOGIC;SIGNAL KSTARTOUT: STD_LOGIC;BEGINPl:PROCESS (RESET, SYSSTART

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