车辆与动力工程学院课程设计说明书.doc

  1. 1、本文档共22页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第一章 绪 论 人类社会已经进入信息化时代,信息社会的发展离不开电子产品的进步。现代电子产品在性能提高、复杂度降低的同时,价格却一直呈下降趋势,而且产品更新换代的步伐也越来越快,实现这种进步的主要原因就是生产制造技术和电子设计技术的发展。前者以微细加工技术为代表,目前已进展到深亚微米阶段,可以在几平方厘米的芯片上集成数万个晶体管;后者的核心就是 EDA 技术。没有EDA 技术的支持,想要完成超大规模集成电路的设计制造是不可想象的,反过来,生产制造技术的不断进步又必须对 EDA 技术提出新要求。EDA 代表了当今电子设计技术的必威体育精装版发展方向,它的基本特征是:设计人员按照“自顶向下”的设计方法,对整个系统进行方案设计和功能划分,系统的关键电路用一片或几片专用集成电路(ASIC)实现,然后采用硬件描述语言(VHDL)完成系统行为级设计,最后通过综合器和适配器生成最终的目标器件。 可编程逻辑器件自 20 世纪 70 年代以来,经历了 PAL、GAL、CPLD、FPGA几个发展阶段,其中 CPLD、FPGA 属高密度可编程逻辑器件,目前集成度以高达 200 万门/片,它将掩膜 ASIC 集成度高的优点和可编程逻辑器件设计生产方便的特点结合在一起,特别适合于样品研制和小批量产品开发,使产品能以最快的速度上市,而当市场扩大时,它可以和容易地转由 ASIC 实现,因此开发风险也大为降低。CPLD/FPGA 器件已成为现代高层次电子设计方法的实现载体。 VHDL 是一种全方位的硬件描述语言,包括系统行为级、寄存器传输级和逻辑门级多个设计层次,支持结构、数据流和行为 3 种描述形式的混合描述,因此 VHDL 几乎覆盖了以往各种硬件描述语言的功能,整个自顶向下或自底向上的电路设计过程都可以用 VHDL 来完成。另外,VHDL 还有以下优点:VHDL 的宽范围描述能力使它成为高层次设计的核心,将设计人员的工作重心转移到了系统功能的实现和调试上,只需要花较少的精力用于物理实现;VHDL 可以用简洁明确的代码描述来进行复杂控制逻辑的设计,灵活且方便,而且也便于设计结果的交流、保存和重用;VHDL 的设计不依赖于特定的器件,方便了工艺的转换。 第二章 总体设计 §2.1 设计思想 本次设计首先在 QuartusⅡ环境中对巴克码发生器的各个部分利用 VHDL 这一硬件描述语言予以设计,生成模块。而整个设计的核心部分就在序列产生与码数显示模块,产生模块完成的功能是八位巴克码序列随时钟脉冲逐一产生,显示模块完成的功能是将八位序列码及其变化过程在七段数码管上显示出来。随后运用 QuartusⅡ中的仿真功能对其予以仿真,从仿真的结果中分析程序的正确性。待所有模块的功能正确之后,运用原理图搭建顶层电路并进行整体仿真直至达到最初的设计要求。 §2.2设计原理 根据层次化设计理论,巴克码发生器设计可由产生及显示先后分为分频模块、序列产生模块、动态扫描显示控制模块、译码显示驱动模块,其系统框图如图2.2 所示。 图 巴克码产生器原理框图 2.4 巴克码检测器 §2.4.1巴克码检测器驱动模块。 序列检测器可用于检测一组或多组由二进制码组成的脉冲序列信号,当序列检测器连续收到一组串行二进制码后,如果这组码与检测器中预先设置的码相同,则输出1,否则输出0。由于这种检测的关键在于正确码的收到必须是连续的,这就要求检测器必须记住前一次的正确码及正确序列,直到在连续的检测中所收到的每一位码都与预置数的对应码相同。在检测过程中,任何一位不相等都将回到初始状态重新开始检测。 巴克码检测器是一个七位巴克码1110010代码检测器,当识别到一组代码时,输出一个高电平脉冲。其 VHDL 源程序如下。巴克码检测模块原件如图2.4.1 所示 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all; entity jiance is port( clk: in std_logic; x: in std_logic; y: out std_logic ); end entity; architecture behave of jiance is type states is(st0,st1,st2,st3,st4,st5,st6,st7); signal current_state,next_state : states; begin process(current_state,x) begin case current_state is when st0 = y = 0; if x=1

您可能关注的文档

文档评论(0)

mx597651661 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档