用VHDL语言设计基于FPGA器件高采样率FIR滤波器.doc_第1页
用VHDL语言设计基于FPGA器件高采样率FIR滤波器.doc_第2页
用VHDL语言设计基于FPGA器件高采样率FIR滤波器.doc_第3页
用VHDL语言设计基于FPGA器件高采样率FIR滤波器.doc_第4页
用VHDL语言设计基于FPGA器件高采样率FIR滤波器.doc_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

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

文档简介

471 课题的主要内容和设计方案1.1 课题主要任务使用硬件描述语言(VHDL)设计基于FPGA 器件的高采样率 FIR 滤波器。1.2 课题内容1 对传统的数字硬件系统设计方法和以采用硬件描述语言的数字硬件系统设计方法进行比较,指出采用硬件描述语言设计数字硬件系统的优势。2 使用 EDA 工具并利用 VHDL 硬件描述语言设计基于 FPGA 器件的高采样率 FIR 滤波器。其设计要求为:采样频率: fs = 12 . 5MHz ;截止频率: fc = 2 . 0MHz ; 类型:低通;阶数: 64 阶;输入数据宽度: 8 位;输出数据宽度: 8 位。3 设计的电路要能用 EDA 工具完成仿真验证工作。1.3 设计目的试将硬件描述语言设计技术应用于数字处理技术当中,利用一块集成芯片设计一个数字滤波器,缩短设计周期,提高设计性能。探索一下使用 VHDL 硬件描述语言设计基于 FPGA 可编程逻辑器件高采样率 FIR 数字滤波器的方法,以满足高采样率环境的需要。1.4滤波器单元电路设计方案比较1 快速加法器通过各种途径均可实现加法器的功能,如串联型、并联型和流水线型等等,各种加法器特色不一,串联型加法器结构简单,但速度慢。并联型加法器速度快,对于实现 4 位以下的加法器较合适,增加位数在 PLD 中受到资源限制。流水线加法器将每一步运算结果都用寄存器暂存,总的效果是每个加法运算平均耗费的时间等于锁存时钟周期,但其占用资源也较串联型大很多。由于设计的是高采样率滤波器,需要很快的速度,我们选用流水线技术实现快速加法器。2 快速乘法器快速乘法器可以采用移位相加型、查找表型、加法器树型等。移位相加实现起来简单,但速度慢。查找表型速度快,但随着操作数精度的提高,查找表变得庞大。加法器树乘法器是由移位相加器和查找表组成, 8 位乘法器需要15个 16 位加法器和 64 个与门。综合考虑,采用查找表型乘法器,以提高电路的速度。1.5 设计实现数字滤波器的实现,通常有两种方法。一是软件实现,利用计算机选择相应的算法,编制出高质量的正确程序。另一种方法是硬件实现,利用数字器件,例如:加法器、常数乘法器和延迟器等装配成专门设备,但硬件方案的确定一般通过编程,即在计算机上进行仿真。所以一个功能优良的硬件实现与软件实现有着密切的关系。而这次利用 EDA 技术来设计低通数字滤波器,有着非常优越的软件条件。可以实现以少量集成芯片实现高质量滤波器的设计。而且在硬件实现前用软件方法仿真模拟,以此来缩短设计周期,减少工作量,提高设计成功率。具有以往设计方法所没有的优越性。而且它具有硬件调试方便的优点。按照最优方案进行设计。先进行软件编程,将系统分成若干层次,每层分成若干模块,分别编程实现。程序编译通过后,进行波形仿真,若干个模块都仿真成功,则可以进行模块连接,生成系统,再进行系统编译和仿真。系统仿真通过后,下载录入芯片。1.6 本文所作的工作硬件描述语言(VHDL)是数字系统高层设计的核心,是实现数字系统设计新方法的关键技术之一。当前,无论在军事还是民用方面,对于数字信号处理的实时性、快速性的要求越来越高。随着可编程逻辑器件在集成度和速度方面的飞速提高,并且日益复杂,越来越多的数字信号处理系统采用可编程逻辑器件来实现数字滤波,用其实现某种算法的专用集成电路(ASIC)在信号处理中应用非常广泛。有限脉冲响应(FIR)数字滤波器在数字信号处理系统中非常普遍,常被用来对原始(或输入)样本数据进行消除高频、抑制噪声等处理以产生所需的输出。 FIR 滤波器在设计中可以采用多种方法加以实现。目前最为常用的方法有两种,一种是采用专用的 DSP 芯片(如 TMS320CXX 系列),但当滤波器的抽头数增加或者字长增加时,会成倍增加计算时间,从而降低了最大有效数据采样率,加之 DSP 芯片本身的时钟速度是有限的,所以这种方法往往应用于音频信号的处理较为合适,当数据采样率提高时,就不适用了。另一种方法就是采用市场上通用的 FIR 滤波器集成电路,但是由于设计者的不同设计要求,有限的通用滤波器很难满足设计者的独特要求,而且,为了器件的通用性,该类滤波器电路工作的有效采用率也不是很高,仍然无法满足高采样率环境的需要。 ALTERA 公司的 FLEX 系列器件芯片密度大,适用频率高,是目前大规模数字逻辑设计的发展趋势,是用户专用数字滤波器设计的理想载体。本文作者基于 ALTERA 公司的 FPGA 系列,利用硬件描述语言设计高采样率 FIR 数字滤波器。本文主要从以下几个方面做了深入的工作:1. 对传统的数字硬件系统设计方法和以采用硬件描述语言的数字硬件系统设计方法进行比较,指出采用硬件描述语言设计数字硬件系统的优势。 2. 将硬件描述语言的功能特点作了归纳,对硬件描述语言的基本构成和综合技术作了详细的阐述,并说明了应用 VHDL 的 EDA 设计流程。 3. ALTERA 公司作为世界上最大的可编程逻辑器件供应商之一,其 FLEXI0K 器件是工业界第一个嵌入式可编程器件,基于可重构的 CMOS SRAM 单元,这种灵活逻辑单元阵( Flexible Logic Element Matrix )具有一般门阵列的所有优点。作者将 FLEXI0K 系列的结构、功能特点进行了总结。 4. 利用硬件描述语言以自顶向下的方法,对有限脉冲响应( FIR )数字滤波器采用流水线技术进行设计,以满足高采样率环境的需要。在快速乘法器中采用查找表的方法,以提高工作速度。在快速加法器中采用流水线技术,以提高采样率。着重叙述了利用 VHDL 设计 FIR 滤波器的详细过程,给出了各模块的具体程序和仿真图。正是由于 VHDL 语言的出现,现代数字系统设计技术从传统的逻辑概念设计方式(系统构思、电路图设计与输入、综合与仿真、系统实现、系统仿真)进入到 VHDL 行为概念设计方式(系统构思、 VHDL 设计与输入、综合与仿真、系统实现、系统仿真)。随着大规模可编程逻辑器件在数字硬件设计系统中的应用,用 VHDL 语言设计数字系统,逻辑综合和仿真等 EDA 技术将起着十分重要的作用。2 数字硬件系统设计新方法随着计算机软件、硬件和集成电路制造技术的飞速发展,以及数字硬件设计复杂度快速增长和设计成果可继承性的需要,对数字硬件系统的设计方法产生了极大的影响,传统的以线路图为基础的数字硬件系统设计方法正逐步被以硬件描述语言为基础的设计方法所取代。21 传统的数字硬件系统设计方法特点数字硬件系统像其他电子系统一样,采用积木式的方法进行设计。由器件搭成电路板,由电路板搭成电子系统。数字系统最初的“积木块”是具有固定功能的标准集成电路,用户只能根据需要选择合适的器件,并按照器件推荐的电路搭成系统,在设计时,设计者没有灵活可言,搭成的系统需要的芯片种类多且数目大。以线路图为基础的数字硬件系统的设计方法一直为许多硬件开发工程师所沿用。这种设计方法有以下几个主要特点:1. 采用自底而上( Bottom Up )的设计方法 自底而上的数字硬件电路设计方法的主要步骤是:根据系统对硬件的要求,详细编制技术规格书,并画出系统控制流程图;然后根据技术规格书和系统控制流程图,对系统的功能进行细化,合理地划分功能模块,并画出系统功能框图;接着进行各功能模块的细化和电路设计;各功能模块电路设计、调试完成后,将各功能模块的硬件电路连接起来再进行系统的调试,最后完成整个数字系统的硬件设计。从设计步骤可以看出,系统硬件的设计是从选择具体元器件开始的,并用这些元器件进行逻辑电路设计,即从最底层开始设计,完成系统各独立功能模块设计,然后再将各功能模块连接起来,直至到最高层,完成整个系统的硬件设计,这种设计方法称为自底而上的设计方法2. 在数字系统硬件设计的后期进行仿真和调试 由于进行仿真和调试的仪器一般为系统仿真器、逻辑分析仪和示波器等,所以在传统硬件电路设计中,仿真和调试只能在系统硬件设计完成后期进行,系统设计存在的问题也只能在后期出现,对系统设计人员有较高的要求。3. 采用符号和电路原理图输入的设计描述方式 通常由线信号和表示基本设计单元的符号连在一起组成线路图,符号取自设计者用于构造线路图的零件库。符号通过信号(或网线)连在一起,信号使符号互连并建立设计所需要的特定连接,这样从互连得出一种网表,设计实现之前网表建立验证设计的仿真模型,一旦设计已经被验证,为了由实际的设计网表向布线软件包提供所需的信息,布线软件将建立实际的连接数据,或者建立为 PCB 板所需的连线信息,或者是建立为 ASIC 所需的层信息。 用上述设计方法设计的数字硬件系统最后形成的设计文件,主要是由若干张电路原理图构成的文件。在电路原理图中详细标注了各逻辑单元、器件的名称和相互之间的信号连接关系。对于小的系统,这种电路原理图只要几十张或几百张就行了。但是,系统比较大,硬件比较复杂,那么这种电路原理图可能需要更多张。这样多的电路原理图给设计归档、阅读、修改和使用带来很大的不便。更主要的是传统设计过程过多地依赖设计者的知识与经验,只能定量地和有条件地实现电子产品的设计目标,很难预料在一个产品设计过程中有多少次工程返复的操作,又由于系统级综合能力的不足,使设计者很难优化设计目标并加大后续设计(电气与物理级)的难度。22 采用硬件描述语言(HDL)的数字硬件系统设计方法可编程逻辑器件在电子技术领域中的应用,为数字硬件电路系统的设计带来了极大的灵活性。由于可编程逻辑器件可以通过软件编程而对其硬件结构和工作方式进行重构,使得硬件的设计可以如同软件设计那样方便快捷。这一切极大地改变了传统的数字硬件电路系统设计方法、设计过程、乃至设计观念。纵观可编程逻辑器件的发展史,它在结构原理、集成规模、下载方式、逻辑设计手段等方面的每一次进步都为现代电子设计技术的革命与发展提供了不可或缺的强大动力。随着可编程逻辑器件集成规模不断扩大,自身功能的不断完善和计算机辅助设计技术的提高,在现代电子系统设计领域中的电子设计自动化(EDA)便应运而生了,而电子设计自动化的关键技术之一就是采用硬件描述语言(HDL)来设计数字硬件系统。这样,传统的数字硬件电路设计模式,就将被人们慢慢地淘汰。2 .2 .1 EDA 技术EDA 是 Electronic Design Automation 的缩写,意为电子设计自动化,即利用计算机自动完成电子系统的设计。1 . EDA 技术的发展回顾近 30 年的电子设计技术的发展历程,可将 EDA 技术分为三个阶段,如图2.1所示:七十年代为 CAD 阶段。这个阶段主要分别研制了一个个单独的软件工具,主要有电路模拟、逻辑模拟、版图编辑、 PCB 布局布线等,从而可以利用计算机把设计人员从大量繁琐、重复的计算与绘图工作中解脱出来。其核心是电路 CAD 技术,产生了计算机辅助设计概念。 八十年代为 CAE 阶段。这个阶段在集成电路与电子系统方法学,以及设计工具集成方面取得了众多成果,与 CAD 相比,除了纯粹的图形绘制功能外,又增加了电路功能设计和结构设计,并且通过电气连接网络表将两者结合在一起,实现了工程设计,这就是计算机辅助工程的概念。 CAE 的主要功能是:原理图输入,逻辑仿真,电路分析,自动布局布线, PCB 后分析。这个阶段中主要采用基于单元库的半定制设计方法。采用门阵列和标准单元法设计的各种 ASIC 得到了极大的发展,将集成电路工业推入了 ASIC 时代。九十年代为 ESDA 阶段。尽管 CAD / CAE 技术取得了巨大的成功,但并没有把人从繁重的设计工作中彻底解放出来。在整个设计过程中,自动化和智能化程度还不高,各种 EDA 软件界面千差万别,学习使用困难,并且互不兼容,直接影响到设计环节间的衔接。基于以上不足,人们开始追求贯彻整个设计过程的自动化,这就是 ESDA ,即电子系统设计自动化。2 、 EDA 技术EDA 技术的每一次进步,都引起了设计层次的飞跃,如图 2 . 1 所示,由上而下可分为系统级设计、电路级设计和物理实现级设计。物理级设计主要是指 IC版图设计,一般由半导体厂家完成。 EDA 的发展趋势是与工艺无关的系统设计,即高层设计,使设计与制作分开,这里只论述电路级设计和系统级设计。图2.1 EDA技术设计层次的变化(1)电路级设计电路级设计主要指设计师根据设计任务,首先要查阅芯片和元器件手册,选择合适的器件来实现系统的功能,然后根据芯片和元器件的性能设计电路图,制作 PCB 板,用示波器和信号源对系统进行调试。电路级 EDA 设计流程如图 2 . 2 。电路级 EDA 技术向设计师提供了仿真,后分析以及后仿真的功能,使设计师在微机或工作站上就可以进行逻辑功能的仿真以检验方案在功能设计方面的可行性。由此可见,电路 EDA 技术可使设计师在系统还没有制作之前就可全面了解系统的功能及 PCB 板的各种性能参数,比传统的设计方法大大提高了一步。(2)系统级设计系统级设计是设计人员无须通过门级原理图描述电路,而是针对设计目标进行功能描述,由于摆脱了电路细节的束缚,设计人员可以把精力集中于创造性的方案与概念构思上,一旦这些概念构思以高层次描述的形式输入计算机后, EDA 系统就能够以规则驱动的方式自动完成整个设计,从而大大缩短了产品的研制周期。而且高层次设计只是定义系统的行为特性,可以不涉及实现工艺,在厂家综合库的支持下,利用综合优化工具可以将高层次描述转换成针对某种工艺优化的网表,工艺转化变得轻松容易。系统级设计采用的是自顶向下的正向设计思想。设计人员按照“自顶向下”的设计方法,对整个系统进行方案设计和功能划分,系统的关键电路用一片或几片专用集成电路(ASIC)实现,然后采用硬件描述语言( HDL )完成系统行为级设计,最后通过综合器和适配器生成最终的目标器件。其设计流程如图 2 . 3 。系统设计的关键技术之一是用形式化方法来描述数字系统的硬件电路,即采用硬件描述语言来描述硬件电路。所以硬件描述语言及相关的仿真、综合等技术的研究是当今电子设计自动化领域的一个重要课题。 图2.2 EDA电路设计工作流程图图2.3 EDA系统设计工作流程图2 .2 .2 什么是硬件描述语言(HDL)硬件描述语言(HDL)是相对于一般的计算机软件语言如 C 、 Pascal 而言的。HDL 是用于设计硬件电路系统的计算机语言,它描述电子系统的逻辑功能、电路结构和连接方式。设计者可以利用HDL 程序来描述所希望的电路系统,规定其结构特征和电路的行为方式,然后利用综合器和适配器将此程序变成能控制 CPLD 内部结构,并实现相应逻辑功能的门级或更底层的结构网表文件和下载文件。硬件描述语言的发展至今已有几十年的历史,并已成功地应用到系统的仿真、验证和设计综合等方面。到本世纪 80 年代后期,已出现了上百种硬件描述语言,它们对硬件设计自动化起到了巨大的促进和推动作用。就 CPLD 开发来说,比较常用的 HDL主要有 ABEL _HDL、 AHDL 和 VHDL等。 ABEL _HDL是一种支持各种不同输入方式的HDL ,其输入方式,即电路系统设计的表达方式,包括布尔方程、高级语言方程、状态图和真值表。由于其语言描述的独立性,以及上至系统、下至门级的宽口径描述功能,因而适合不同规模的可编程器件的设计。但它不是国际标准,缺乏延迟描述,几千门的小系统可用,大系统不便使用。 . AHDL 是 Altera 公司为其著名的 Max+plusEDA软件配置的一种硬件描述语言,只在 Max+plus中使用,适用面比较窄,其语言格式与 ABEL_VHDL 相似。 VHDL 是超高速集成电路硬件描述语言( Very-High-Speed Integrated Circuit Hardware Description Language )的英文缩写。 1987 年 12 月, IEEE 公布了 VHDL 的标准版本 IEEE STD 1076 - 1987 ( LRM87 ) , 1993 年,经过修改,新版本为 IEEE STD 1076 - 1993 ( LRM93 )。这样, VHDL 被正式确定为硬件设计时采用的描述性语言,成为硬件设计师们从事硬件设计所必须掌握的工具语言。 VHDL 主要用于描述数字系统的结构、行为、功能和接口,与其它的 VHDL 相比, VHDL 具有更强的行为描述能力,从而决定了它成为系统设计领域最佳的硬件描述语言。2 .2 .3 利用 HDL 语言设计数字硬件系统的特点利用 HDL 语言设计数字硬件系统的特点,归纳起来有以下几个特点:1 、采用自顶向下( TOP _ DOWN )的设计方法自顶向下是指从系统总体要求出发,在顶层进行功能方框图的划分和结构设计。在方框图一级进行仿真、纠错,并用硬件描述语言对高层次的系统行为进行描述,在系统一级进行验证。然后用综合优化工具生成具体门电路的网表,其对应的物理实现级可以是印刷电路板或专用集成电路。由于设计的主要仿真和调试过程是在高层次上完成的,这一方面有利于早期发现结构设计上的错误,避免设计工作的浪费,同时也减少了逻辑功能仿真的工作量,提高了设计的一次成功率。2 、降低了硬件电路的设计难度在用 HDL 语言设计硬件电路时,可以使设计者免除在传统硬件电路设计时编写逻辑表达式或真值表之苦。3 、主要设计文件是用 HDL 语言编写的源程序在传统的硬件电路设计中,最后形成的主要文件是电路原理图,而采用 HDL 语言设计系统硬件电路时主要的设计文件是HDL 编写的源程序。如果需要也可以转换成电路原理图输出。用 HDL 语言的源程序作为归档文件有很多好处:资料量小,便于保存;可寄存性好;阅读方便。4 、HDL 语言可以与工艺无关编程在用 HDL 语言设计系统硬件时,没有嵌入与工艺有关的信息其编辑综合生成的是一种标准的电子设计互换格式文件,它独立于采用的实现工艺。有关工艺参数的描述可通过 HDL 提供的属性包括进去,然后利用不同厂家的布局布线工具,将设计映射成不同工艺,在不同的芯片上实现。这使得工程师在功能设计、编辑、验证阶段,可以不必过多的考虑工艺实现的具体细节。5 、系统中可大量采用 ASIC 芯片由于目前众多的制造 ASIC 芯片的厂家,它们的工具软件都可以支持 HDL 语言的编程,因此,硬件设计人员在设计硬件电路时,无须受只能使用通用元器件的限制,而可以根据硬件电路设计需要,设计自用的 ASIC 芯片或可编程逻辑器件。随着设计方法学的更新和现代 EDA 工具的发展,大大地增强了设计者对设计过程的分析和制造的可控制能力,因而在设计过程中能够预知设计的结果。3 硬件描述语言VHDLVHDL 作为 IEEE 标准的硬件描述语言和 EDA 的重要组成部分,经过十几年的发展、应用和完善,以其强大的系统描述能力、规范的程序设计结构、灵活的语句表达风格和多层次的仿真测试手段,深受业界的普遍认同和广泛地接受,从数十种国际流行的硬件描述语言中脱颖而出,成为现代 EDA 领域首选的硬件设计计算机语言,而且目前流行的 EDA 工具软件全部支持 VHDL 。显然, VHDL 已成为硬件工程师们的共同语言。3 .1 VHDL的特点VHDL 是一种全方位的硬件描述语言,包括系统行为级、寄存器传输级和逻辑门级多个设计层次,支持结构、数据流、行为三种描述形式的混合描述,因此 VHDL 几乎覆盖了以往各种硬件描述语言的功能,整个自顶向下或自底向上的电路设计过程都可以用 VHDL 来完成。VHDL 主要用于描述数字系统的结构、行为、功能和接口。其程序结构特点是将一项设计实体分成外部和内部,即设计实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其它的设计就可以直接调用这个实体。这种设计实体分成内外部分的概念是 VHDL 系统设计的基本点。应用 VHDL 设计硬件系统具有如下一些特点: 1.与其它的硬件描述语言相比, VHDL 具有更强的行为描述能力,从而决定了它成为系统设计领域最佳的硬件描述语言。强大的行为描述能力是避开具体的器件结构,从逻辑行为上描述和设计大规模电子系统的重要保证。 2.VHDL 有丰富的仿真语句和库函数,使得在任何大系统的设计早期,就能查验设计系统的功能可行性,随时可对设计进行仿真模拟。即在远离门级的高层次上进行模拟,使设计者对整个工程设计的结构和功能的可行性作出决策。 3.VHDL 的语句描述和程序结构决定了它具有支持大规模设计的分解和已有设计的再利用功能。符合市场需求的大规模系统高效、高速的完成必须由多人甚至多个开发组共同进行工作才能实现。 VHDL 中设计实体的概念、程序包的概念、设计库的概念为设计的分解和并行工作提供了有力的支持。 4.对于用 VHDL 完成的一个确定的设计,可以利用 EDA 工具进行逻辑综合和优化,并自动地把 VHDL 描述设计转变成门级网表。这种方式突破了门级设计的瓶颈,极大地减少了电路设计的时间和可能发生的错误,降低了开发成本。应用 EDA 工具的逻辑优化功能,可以自动地把一个综合后的设计变成一个更小、更高速的电路系统。反过来,设计者还可以容易地从综合和优化后的电路获得设计信息,反过去更新修改 VHDL 设计描述,使之更为完善。 5.VHDL 对设计描述具有相对独立性,设计者可以不懂硬件的结构,也不必管最终设计实现的目标器件是什么,而进行独立的设计。即 VHDL 的硬件描述与具体的工艺技术和硬件结构无关。 6.由于 VHDL 具有类属描述语句和子程序调用等功能,对于已完成的设计,在不改变源程序的条件下,只需改变类属参量或函数,就能轻易地改变设计的规模和结构。3 .2 VHDL语言的基本构成VHDL 语言的语法比较严格,一段完整的 VHDL 代码通常由实体语句、构造体语句、配置说明语句、以及库、包说明语句组成。其中库是用来存放己经编译过的实体、构造体、包和配置数据;包主要用于存放各设计模块都能共享的数据类型、常量和子程序;实体语句用于描述设计单元的外部接口信号;构造体语句用于描述设计单元内部的结构和行为。由于 VHDL 代码完全由文字组成,而传统的设计往往是一张张原理图,这两者之间存在一定的对应关系,我们都知道传统的原理图总是由线和一些符号相互连接而构成,实体是与符号相对应的,因为它规定了一个设计单元对外的接口信号。构造体则是与某一层的原理图相对应,因为它总是与某个实体相关,并对该实体的结构和行为进行描述。配置说明语句用于从库中选取不同的元件来构成设计单元的不同版本,是描述层与层之间的连接关系以及实体与结构体之间的连接关系。设计者可以利用这种配置说明语句来选择不同的结构体,使其与要设计的实体相对应。在仿真某一实体时,可以利用配置来选择不同的结构体,进行性能对比试验以得到性能最佳的结构体。配置说明语句的基本格式:CONFIGURATION 配置名 OF 实体名 IS 说明语句;END 配置名;3.2.1 VHDL的功能描述结构体对设计单元内部的功能描述有三种方式:结构描述、数据流描述和行为描述。下面在给出这三种描述具体解释的同时,针对同一个设计实体 RS触发器,以此为例,分别写出它的三种不同的描述。1.结构描述结构描述体现的是具体的硬件线路图结构,是根据子元件及其端口连接来描述的。即说明一个电路由哪些基本元件组成,以及这些基本元件的相互连接关系。在结构描述中,所描述对象的行为和功能无法从程序中直接得知。程序中采用元件例化语句ARCHITECTURE STRUCTURE OF RSFF IS COMPONENT NAND2 PORT ( a b in BIT ;Y out BIT ) ; END COMPONENT ; BEGIN U1 : NAND2 PORT MAP ( set , q bar , q ) ; U2 : NAND2 PORT MAP ( reset , q , q bar ) ; END STRUCTURE ;2.行为描述行为描述实质上是对整个系统的数学模型描述。一般来说,对系统行为描述的目的是试图在系统设计的初始阶段,通过对系统描述的仿真,来发现设计中存在的问题。在行为描述阶段并不真正考虑其实际的操作和算法用什么方法来实现,考虑更多的是系统的结构及其工作过程是否能够达到系统设计书的要求。行为描述较为抽象,它根据输入输出函数关系来描述数据的转换,很少或几乎没有结构信息。通过过程( process )格式实现。多采用一些顺序执行的语句,例如, IF 、 ZHEN 、 CASE 、 WHILE 等语句,其程序方式与其他高级程序很接近。行为描述适用于描述抽象算法,主要应用于系统数学模型的仿真或者工作原理的仿真。ARCHITECTURE behavior OF RSFF IS BEGIN PROCESS ( set , reset ) BEGIN IF set = l AND reset = 0 THEN q = 0 AFTER 2ns ; q bar = l AFTER 2ns ; ELSIF set = 0 AND reset = 1 THEN q = 1 AFTER 2ns ; ELSIP set = 0 AND reset = 0 THEN q = l AFTER 2ns ; q bar = l AFTER 2ns ; ELSIF set = l AND reset = l THEN q = q AFTER 2ns ;q bar = q AFTER 2ns ; END IF ; END PROCESS ; END BEHAVIOR ;3. 数据流描述数据流描述稍微抽象一些,是由并发执行的寄存器传输级( Register : Transfer , Lever , RTL )语句来描述数据的转换。并行是指程序中各语句的实际执行顺序不取决于程序字面上的顺序,程序中多采用并行信号赋值语句。Architecture DATAFLOW of RSFF is Begin q = NOT ( q bar AND set ) after 2 ns ; q bar = NOT ( q AND reset ) after 2 ns ; End DATAFLOW ;一个硬件实体的 VHDL 描述可以只采用上述三种描述中的一种,也可以采用多种,用以体现该硬件实体结构、行为等多方位的特征。至于具体操作时选取何种表达方式,取决于所需精度,以及是否需要结构信息。使用结构描述,可以较快地打印出电路图。使用行为描述或数据流描述,即采用串行或并行形式,可以更有效地利用存储空间,提高运行速度。对于综合过程而言,描述的出发点不同,综合效果也不同。3.3 VHDL的综合技术综合是VHDL 最有利用价值的一点,也是 VHDL 之所以流行的关键所在。通常大家接触比较多的是模拟和仿真。模拟和仿真是验证某一数字系统是否实现了预期的功能,其前提是已有了现成的设计方案。可综合与模拟或仿真不同,是其逆过程。综合的前提是给定了电路应实现的功能和实现此电路的约束条件(速度、功耗、成本及电路类型等),目标是得到一个满足上述要求的设计方案,这将借助于电子系统设计自动化工具的帮助自动生成。 VHDL 的综合,就是将抽象的硬件源描述转化为门级电路的过程。综合过程包括了两个关键性问题:一是转换,不同抽象层次之间的转换,由较高抽象层次向较低抽象层次进行自动转换;二是优化,依据现有的设计单元技术库,综合生成满足预期功能和约束条件的设计方案。满足条件的设计方案可能会有多个,那么综合生成的设计方案应是最优的或接近最优的。图 2 . 2 是综合过程的示意图。由于一个数字系统可以在多个不同抽象层次上进行描述,这就给了综合过程以不同的出发点。综合可以在多个层次上进行。一般地,综合过程的出发点是由算法所表达的行为特性描述,不包含或包含尽量少的结构信息。在行为特性描述中,可将数字系统的操作模型限制在代数和逻辑操作类型中,比如加法、减法、比较、赋值、循环等操作类型,更为复杂的操作类型可以借助于函数或子程序来表达。这一类程序可认为是与工艺无关( technology _independent )。而采用结构描述的程序,因为在结构描述中涉及到元件的具体结构,而被认为是与工艺有关的 ( technology _ independent)。一旦支持综合工具的元件技术库因工艺的改进而变化,那么原先的结构描述程序就必须进行相应的改动。相比而言,行为特性描述则不会有此类问题,程序中没有指定使用某个元件,综合工具利用现有的设计单元库,自由地选择元件,只要所需功能即可。比如,在前面提到的 RS 触发器,若采用结构描述去综合,则必须选用二输入与非门。而采用数据流或行为描述去进行综合,设计工具既可选用与非门,也可选用与门和反相器。图3.2 VHDL综合过程综合过程首先将行为特性描述编译转换到一种中间表达形式,通常是包含了数据流和控制流的语法分析图或分析树。编译过程与其他计算机高级程序设计语言的编译相类似。接下来是由行为到结构转换的核心步骤:调度和分配。调度是将操作赋给控制步。一个控制步是一个基本时序单位,在同步系统中,通常对应于一个或几个时钟周期。调度的目的在于,在满足约束条件的情况下,将操作赋给各操作步,以使得给定的目标函数最小,这个目标函数包括所需控制步数目、延迟、功耗等。分配是将操作和变量赋给相应的功能单元和寄存器进行计算和存放。分配的目的在于。使所占用的硬件资源,包括功能单元、存储单元和数据传输通路,花费最少。调度技术和分配技术是综合过程中最为关键的部分,涉及到大量的优化算法。经过调度和分配后,数字系统转换到寄存器传输级( Register Translation Level , RTL )。在 RTL 级,数字系统可分为控制部分和数据通路部分。其中,控制部分需要综合出一个按调度要求驱动数据通路的控制器。可以由一个控制器来控制整个数据通路,也可以对控制功能进行划分,由多个控制器来控制数据通路中的数据传输。控制器可以由多种方法来实现。实际运用中多采用硬连逻辑或固件来实现。用硬连逻辑实现时,每一个控制步对应于有限状态机的一个状态,控制器的综合问题就变换为有限状态机的综合问题。用固件实现时,每一个控制步对应于微程序的一条指令,控制器的综合问题就转换为微程序的综合问题。数据通路部分是由功能单元、存储单元和互连线网这三类硬件模块所构成的模块集合,用以实现数据传输。功能单元是数据通路中用于实现一种或多种操作类型的组合逻辑单元。存储单元包括寄存器和内存单元,其中的使能输入与控制器相连,用以控制其读写操作。互连线网包括连线、多路器和总线,其中的选择输入与控制器相连用以选择输入数据。电路中的组合逻辑部分要进一步进行逻辑综合,利用布尔代数法进行优化。在得到优化过程的布尔表述后,就可以利用现有的设计单元技术库将布尔表述映射成具体的电路图。设计单元技术库除了指明 ASIC 元件的逻辑功能外,还标明元件的面积、元件的输入输出上的时间调配、元件的扇出限制等。可以想象,存在不止一个的电路结构,完成同样的逻辑功能,但在面积、速度方面却相距甚远。此时,就需要设计者在综合的过程中,通过人机交互界面进行人工干预,加以约束条件,表明设计者在某些方面的特殊要求,以使得综合工具遵循设计者的意愿来选择设计方案。上面介绍了 VHDL 的综合过程,此外还有一点值得提出的是,利用综合工具可以进行逆综合过程(rdverse synthesis)。前面已经提到,结构描述因为涉及到具体元件,而容易因为工艺的改进过时。现在可以利用逆综合过程,对于业已存在的电路图,将其以结构形式描述给综合工具,而综合工具可以从结构描述形式,也就是从与工艺有关的描述提取出与工艺无关的行为特性描述,待工艺改进后,可以利用新的设计技术单元库重新综合出效率更高的芯片,无需重新设计。这样就节省了大量人工,提高了已有设计的再利用率。3.4 应用VHDL的EDA设计流程VHDL 最初的目的就是用于大规模及超大规模集成电路的设计,作为一种标准硬件描述语言,在工程应用上需要 EDA 工具的支持。一般地, VHDL 的设计文件需依靠 EDA 软件转换为实际可用的电路网表,最后生成用于 IC 生产的版图,或由适配软件用此网表对 FPGA 进行布线。图 3 . 3 是应用 VHDL 的 EDA 设计流程图。VHDL源文件编译VHDL逻辑综合、优化FPGA自动优化、布局、布线/适配编程、下载网表文件(EDIF、VHDL)熔丝图、SRAM文件VHDL网表门级仿真器(功能、时序仿真)VHDL仿真器(行为、功能、时序仿真)硬件测试图3.3 应用VHDL的EDA设计流程图首先以 VHDL 描述设计概念,利用 EDA 工具的文本编辑器或图形编辑器将它用文本方式或图形方式表达出来。这两种表达方式必须首先通过 EDA 工具进行排错编译,变成 VHDL 文件格式,为进一步的逻辑综合做准备。在综合以前可以先对 VHDL 所描述的内容进行行为仿真。在这时的仿真中,可以充分发挥 VHDL 中的适用于仿真控制的语句、有关的预定义函数和库文件。利用VHDL 综合器对设计进行综合是十分重要的一步,因为综合过程将把 VHDL 的软件设计与硬件的可实现性挂钩,是软件转化为硬件电路的关键一步。由于 VHDL 仿真器的行为仿真功能是面向高层次的系统仿真,只能对 VHDL 的系统描述作可行性的评估测试,不针对任何硬件系统,因此基于这一仿真层次的许多 VHDL 语句不能被综合器所接受,这类语句的描述无法在硬件系统中实现,综合器不支持的语句在综合过程中将忽略掉。综合器对源 VHDL 文件的综合是针对某一 PLDS 供应商的产品系列的,因此,综合后的结果是可以为硬件系统接受,具有硬件可实现性。逻辑综合通过后必须利用适配器将综合后的网表文件针对某一具体的目标器件进行逻辑映射操作,其中包括底层器件配置、逻辑分割、逻辑优化、布线与操作,适配完成后可以利用适配所产生的仿真文件作精确的时序仿真。综合后, VHDL 综合器一般都可以生成一个 VHDL 网表文件。网表文件中描述的电路与生成的 EDIF / XNF 等网表文件一致。 VHDL 网表文件采用 VHDL 语法,只是其中的电路描述采用了结构描述方法,即首先描述了最基本的门电路,然后将这些门电路用例化语句连接起来,这样的 VHDL 网表文件再送到 VHDL 仿真器中进行功能仿真,仿真结果与门级仿真器功能仿真结果基本一致。综合后的 EDIF /XNF 门级网表文件通常作为 FPGA 布线器的输入文件,通过布线适配处理后,将生成一个 VHDL 网表文件,这个网表文件包含了较为精确的延迟信息,网表文件中描述的电路结构与布线适配后的结果是一致的。如果以上所有过程,包括编译、综合、布线适配和行为仿真、功能仿真、时序仿真都没有发现问题,即满足原设计要求,就可以由 FPGA / CPLD 布线适配器产生配置下载文件通过编程或下载电缆载入目标芯片 FPGA / CPLD 中。最后就是硬件测试。尽管进行了各层次的软件仿真,硬件测试仍然是十分必要的。因为直接的硬件测试能在更真实的环境中检验 VHDL 设计的运行情况。在实际的 VHDL 设计应用中,上述步骤需反复进行,直至将即定的 VHDL 设计通过所有的测试为止。我们在用 VHDL 进行数字硬件系统设计时,采用美国 ALTERA 公司的 MAX+PLUS EDA 软件,该软件支持 VHDL 等多种文本输入及图形输入,可完成对 ALTERA 芯片下载的全部工作。在设计具体的数字硬件系统时,对于不同层次的模块,应采用不同的输入方式进行描述。由于 VHDL 擅长描述模块的逻辑功能,而原理图擅长描述硬件连接关系,所以我们在数字硬件系统底层设计中,对底层所有模块使用 VHDL 语言进行描述,在顶层设计中,使用原理图输入方法。4 FLEX10K系列可编程逻辑器件介绍4 .1 系统设计中采用可编程逻辑器件的优点可编程逻辑器件( Programmable Logic Devices-PLDS )是新一代的数字逻辑器件,它提供了一系列功能强、速度高、灵活性大的器件。 PLDS 的出现改变了传统的数字硬件系统的设计方法,不仅可以简化设计过程,而且可以降低整个系统的体积和成本,增加系统的可靠性。 PLDS 的出现给设计者提供了一种简便的工具去解决它的全部要求,实现各种逻辑功能的逻辑系统。1 简化设计可编程逻辑器件提供了用户可定义的功能,它可进行优化裁剪,以适合任何应用的要求,更有效地利用芯片,极大地简化印刷板的设计,所以设计过程不仅在构思阶段,而且在设计阶段都更为精简并提高效率。使用 PLDS ,可不受标准系列器件在逻辑功能上的限制。而且修改逻辑可在系统设计和使用过程的任一阶段中进行,并且只需通过对所用的某些 PLDS 器件进行重新编程即可完成,给系统设计提供了很大的灵活性。由于 PLDS 的可编程性和灵活性,用它来设计一个系统所需时间比传统方法大为缩短。同样,在样版设计成功后,对其进行逻辑修改也十分简便迅速,无需重新布线和生产印制板,缩短了系统设计周期。2 增大功能密集度功能密集度是指在给定的空间能集成的逻辑功能数量。可编程逻辑器件芯片内的组件门数高,具有很高的功能密集度,从而减少芯片使用数目,减少印刷板面积和减少印刷板数目,最终导致系统规模的全面缩减。3 提高可靠性减少芯片和印刷板数目,缩小系统规模远不只能降低成本。事实上它还极大地提高了系统的可靠性。统计表明:具有较高集成度的系统比用许多低集成度的标准组件设计的等效系统具有高得多的可靠性。可能失效的组件少,印刷板上的互连线较少,良好的运行环境,比较容易制造系统等,都有助于获得较高的可靠性。4 降低系统成本采用 PLD 器件来实现一个系统设计,由于使用器件少,系统规模小,器件测试及装配的工作量大大减少,可靠性得到提高,加上避免了修改逻辑带来的重新设计和生产等一系列问题,所以有效地降低了成本。因此,可编程逻辑器件受到了设计者们的广泛欢迎,在当今通信、数据处理、网络、仪器、工业控制、军事以及航空航天等很多领域,全世界的主要电子产品制造者们都在纷纷利用 PLD 器件。当今,可编程逻辑器件己从简单的以 PAL 、 GAL 发展到 CPLD 、 EPLD 和 FPGA 。而且仍朝着高密度、高速度的方向迅速发展着。4.2 基于EDA工具的 CPLD / FPGA 开发流程CPLD / FPGA 是一种大规模的可编程门阵列器件。它是利用计算机辅助设计技术,根据用户设计要求,通过一系列的自动编辑、布线布局和模拟仿真,形成可卸载文件,装入 EPROM 或者 EEPROM ,对 CPLD / FPGA 器件实现初始化,实现满足用户要求的专用集成电路。图 4 . 1 的流程是针对目标器件为 CPLD / FPGA 的设计流程。设计开始须利用 EDA 工具的文本或图形编辑器将设计者的设计意图用文本方式(如 VHDL 程序)或图形方式(原理图、状态图等)表达出来。完成设计描述后即可通过编译器进行排错编译,变成特定的文本格式,为下一步的综合做准备。原理图输入方式与传统的器件连接方式完全一样,所画的电路原理图,很容易被人所接受,而且编辑器中有许多现成的单元器件可以利用,自己也可以根据需要设计元件。图4.1 基于EDA工具的FPGA开发流程编译形成标准 VHDL 文件后,在综合前即可以对所描述的内容进行仿真,称为行为仿真。即将源程序直接送到 VHDL 仿真器中仿真。设计的第三步是综合,将软件设计与硬件的可实现性挂钩,这是软件转化为硬件电路的关键步骤。综合器对源文件的综合是针对某一 CPLD / FPGA 供应商的产品系列的,因此综合后,生成 VHDL 网表文件,利用网表文件进行功能仿真,以便了解设计描述与设计意图的一致性。功能仿真仅对设计描述的逻辑功能进行测试模拟,以了解其实现的功能是否满足原设计要求,仿真过程不涉及具体器件的硬件特性,如延迟特性。综合通过后必须利用 FPGA 布局布线适配器将综合后的网表文件针对某一具体的目标器件进行逻辑映射操作,其中包括底层器件配置、逻辑分割、逻辑优化、布局布线。如果以上的所有过程,包括编译、综合、布线适配和行为仿真、功能仿真、时序仿真都没有发现问题,即满足原设计要求,就可以将适配器产生的配置下载文件通过 CPLD / FPGA编程器或下载电缆载入目标芯片 CPLD / FPGA中。目前, CPLD/FPGA器件的主要生产厂家有 Xilinx 、 Altera 、 Actel 、 AMD 等公司。 FPGA 器件的结构分为两大类:逻辑单元阵列( LCA )结构和复合 PLD 结构。 LCA 结构包括 PLD 逻辑块、互连阵列和 I / O块;复合 PLD 结构包括 PLD 逻辑块和互连矩阵开关。 Altera 公司作为目前世界上最大的可编程逻辑器件供应商之一,其产品主要有 FLEX10K , FLEX8000 , FLEX6000 , MAX900O , MAX7000 ,以 X5000 以及 Classic 等七大系列,而 FLEX10K 系列是 ALTERA 1995 年推出的一个新的产品系列,因其规模大且价格便宜,倍受人们关注, Altera 的 FLEX10K 器件是工业界第一个嵌入式可编程器件,基于可重构的 CMOS SRAM 单元,这种灵活逻辑单元阵( Flexible Logic Element Matrix )具有一般门阵列的所有优点。 FLEX10K 系列器件规模从 l 万门到 25 万门,它无论在密度或者速度上都可以将一定规模的子系统集成到一个芯片上,采用快速、可预测连线延时的连续式布线结构,在某种意义上说,是一种将 EPLD 和 FPGA 优点结合于一体的新型器件。4 . 3 FLEX10K的内部结构FLEX10K 系列器件在结构上大同小异,它们都包含有四大部分:输入输出单元IOE 、逻辑阵列块( LAB )、嵌入阵列块 EAB 及行、快速通道( Fast Track )互

温馨提示

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

评论

0/150

提交评论