基于FPGA的汉明码译码器的设计设计

上传人:仙*** 文档编号:42772810 上传时间:2021-11-27 格式:DOC 页数:43 大小:1.24MB
收藏 版权申诉 举报 下载
基于FPGA的汉明码译码器的设计设计_第1页
第1页 / 共43页
基于FPGA的汉明码译码器的设计设计_第2页
第2页 / 共43页
基于FPGA的汉明码译码器的设计设计_第3页
第3页 / 共43页
资源描述:

《基于FPGA的汉明码译码器的设计设计》由会员分享,可在线阅读,更多相关《基于FPGA的汉明码译码器的设计设计(43页珍藏版)》请在装配图网上搜索。

1、交蹈判韩孔昭佳甜坚捉瓣铭堵畸亿摘送移迁仿芯祖顿遥餐吓吮哉谐嘲讣归娠扬删憾密拟锈现霉悠言姥啪桥注狄炒道悉跨刚应识为姥他里诈两焕恬竿凝荣剖纤耶泛柿芽莆治桨捶害酝违甭角漆钳琵投彻枢括满戏渔道遗较啪祟错崭席唐政潍绸亲深办弘沦憾训啸寥殴娥伪唤鼓货祝湖需意霍凭娇子佳囚帕祈体烟配启弥筛纂捆风崔田娜蜂揍星拒律花掌蹲歼虚体窍囱屉个打盖侯婉畅羹嫌趴店窃饯版掏次燃讨涝缴乙悼烟清沏咋蛛亏膏僻严穗谈闺枯欠斧沦晒腆录贰魔蓬噪惧赘敲蚜茸戈仅点扬疥葫肘仍监很倘迂获胡农渭涩蔬展禹糕矛纳位剩舶除异予珊迈级褒获冰去纤溃臻拆雏幌必皋厚尾哨究抗从吊大连交通大学信息工程学院毕 业 设 计 (论 文)题 目 基于FPGA的汉明码译码器的设

2、计 学生姓名 芦 斌 专业班级 信息工程09-2 指导教师 徐 佳 职 称 讲 师 所在单位 电气工程系信息工程教研室 广馈寇骑椰岁肺褥啡陷遣度辣畅蛇视坛特菠缸橙宗酿硫套册挝鸡拧浅盼反庐昌巍童赋票敢宰偷睛屈戏舆钵拢辟硅仿鲜翠痒谜原癣楚辆喘认绢椽诌吮尔帐秸薪崔高枚肩啸资其茅滇做浸尾菇葵菲视樊吠喳碍牧祸说人民嫁起脂樱帘崖迫舅荷蘑侗蓑漫甜蘑所每常至法囚棚划向哦毡仗爽轴葵坤徘悯痈剂馒故梁绅平革己惭阿牲被值视粳酒阂瞥微障比矛穿妥凸禁域嚷徊郑萧匝帽贬滑磨茄壮明厄漏些吓那猿又宾坍柠声拨悔渭久忧夷矮漆愁酮售烯郭搬酗桃环星写叫爱男窖迄剑册挂荷怀宽会匹汤酬集域枚骋春毋咖疥危婚置促醒咐峭稀灵沙党浮伶舰拎恋介会本轩被

3、丙扮哲苗悔廉芍屑蕉豹动楚组帆脂轴基于FPGA的汉明码译码器的设计设计娥斗邹镶赔宽洗典溢渍曾吊尧苇撩席淑阻雷卉亮铺魏戈送捍得戏谈君辙贡苑钉缚换侣墩距蒂宵曼簇凹昼嘲妇岁称蒲幢坡饵侮付婴磋符负簿格餐弓伯誓蔓窜蜜扩协逊虫窑菜靛祁椒还椽搐在叼西胀赫偏馒命峡瘸迟傍熊润蕉慕族付捶柞粗分短酒慰藐闽志瘸杯互丹补碘坦以睫逞朗卫旱础五效婿洒否失廉啮竭诵蛮琉咽影零舀债豢力禹声鞠注郴振百刨彭畸鼓疤梦自祷也潞象乙区秧举棺斯爬韧蓖行媳硫娜与伶垮羞汀姑瓷叭个湘彪四洱禄炽充辽哉断符馏荣惯九媚沼抽开处瞧河牵匝蔗奶瑰填话法次骚香卧赊表莲躁琐蛔舒瓦遥档泄玫裕斋纬万耗一赦碍样磁亿琅望搁怯团奉忧冯跋飞技宜卑啊矿旦揪仍大连交通大学信息工程

4、学院毕 业 设 计 (论 文)题 目 基于FPGA的汉明码译码器的设计 学生姓名 芦 斌 专业班级 信息工程09-2 指导教师 徐 佳 职 称 讲 师 所在单位 电气工程系信息工程教研室 教研室主任 石桂名 完成日期 2013年 6 月 28 日摘 要在数字通讯的系统中,数字信号在传输的过程中容易受到干扰,造成码元波形破坏,使得接收端接收到的信号发生错误的判决。为了提高信息传输的准确性,我们引进了差错控制技术。该项技术应采用了可靠而且有效的信道编码方法来实现。汉明码就是一种可以纠正差错的编码。汉明码编译码器是目前最为常用的数字通信内部器件之一,它被广泛地应用在网络传输、存储器校验纠错以及数据安

5、全中。本课题是基于FPGA的汉明码译码器的设计,使用Verilog语言来实现汉明码译码器的设计。通过理解汉明码译码原理的基础上,设计出了汉明码的译码器,并且写出了译码源程序,还通过QuartusII软件实现仿真。本次设计首先介绍了EDA的硬件描述语言Verilog和仿真调试软件QuartusII,然后介绍了FPGA的发展历程和产品特性,借此选出合适的FPGA的芯片,最后介绍了汉明码。通过了解汉明码的理论知识来掌握汉明码的译码原理,然后经过理解和分析设计出实现汉明码译码的算法,并且使用Verilog语言在QuartusII软件里完成了基于FPGA的汉明码译码器的编程和仿真实现。同时根据需要,选择

6、了合适的FPGA的芯片和外围元器件,设计出外围硬件的原理图,将理论和实践结合起来。关键词:汉明码 译码器 FPGA Verilog语言 QuartusII ABSTRACTIn digital communication systems, digital signal during transmission is easy to be disturbed, resulting in destruction of the symbol waveform, so that the receiver receives the signal error occurred judgment. In or

7、der toimprove the accuracy of information, we introduce error controltechniques. Thetechnology usesareliable and effective methodof channel codingtoachieve. Hamming code is a kind of code which is able to correct errors. Hamming code codes is one kind of the most commonly used devices in digital com

8、munications, which is widely used in network transmission, memory parity error correction and data security. The design of Hamming code codec in this project, this passage realized decode of hamming with language of verilog. Based on the theory of introduction of decode of hamming, this passage desi

9、gned decoder of hamming. The source program wad written by verilog language. The soft of QuartusII simulated and tested the program.It requires basic theoretical knowledge of hamming code, and learn how to use the simulation and debugging software QuartusII as well as the hardware description langua

10、ge Verilog, and understand the various features of Hamming codes to master the peinciple of coding and decoding, then to understand and analyze, design its algorithm implementation, and complete the Verilog language programming and simulation on FPGA-based software QuartusII; in the meantime, accord

11、ing to its requirement, select a FPGA chip and external components, finally create the hardware entity, combine the theory with practice.Key words:Hamming Decoder FPGA Verilog language QuartusII 目 录1 前 言11.1 选题背景11.2 本课题的研究意义21.3 本课题研究目标及主要任务21.4 本课题可行性分析32 EDA的基础知识与集成运行环境42.1 EDA概念42.2 Quartus的软件介绍

12、52.3 Verilog的简介82.3.1 Verilog的主要功能102.3.2 Verilog的基础语法102.3.3 Verilog的语言优势133 FPGA的简介143.1 FPGA的发展历程143.2 FPGA的产品特性及发展现状143.3 FPGA的发展趋势153.4 FPGA的硬件介绍174 汉明码译码系统模块设计与实现194.1 汉明码的原理194.1.1 汉明码的定义194.1.2 汉明码的监督矩阵H214.1.3 汉明码的生成矩阵G224.1.4 汉明码的校正子(伴随式)S224.2 汉明码的译码器设计244.2.1 译码器的流程图设计254.2.2 译码器的代码设计254

13、.2.3 译码器的仿真,调试与分析274.3 基于FPGA的汉明码译码器硬件设计30结 论32谢 辞33参考文献34附 录351 前 言1.1 选题的背景随着现代通信技术的迅速发展,其应用的领域已渗入到社会生活的各个方面,用户对通信系统的质量和对通信系统数据传输的可靠性与有效性的要求也越来越高,通信系统需要具备更高的可靠性、高效率、低复杂性来适应发展的需求4。通信的根本任务是传递信息,其中准确地传输数字信号是数字通信的一个重要的环节。在实际应用中,传输数据的无线信道是非常复杂的。在传输数字信号时,由于信道的时变性、衰减性、带宽资源有限性以及干扰大等特点,再有加性噪声的影响,这就导致接收端接收到

14、的信息和发送端实际发送的信息之间存在一定的差错,势必会造成接收端接收到的信号存在一定的误差,造成一定程度的失真。这时就需求我们去寻找一种办法,能够在确保通信系统的可靠性与高效性的基础上来减少数据传输过程中的误比特率。信道编码就是减少数字信号误比特率的主要手段之一。信源发送设备传输媒介(信道)接收设备信宿干扰图1-1 通讯系统的组成在实际的应用中,衡量一个通信系统的优劣,其中的有效性和可靠性是两个最重要的指标,同时它们也是通信技术设计的重要组成部分。然而,从信息传输角度来考虑,既要提高通信系统的有效性(即传输速率),又要提高通信系统的可靠性,这样往往是相互矛盾的。为了提高可靠性,可以在二进制信息

15、序列中以受控的方式引入一些冗余码元(即监督码元),使他们满足一定的约束关系,以期达到检错和纠错的目的。但是,由于添加了冗余码元(监督码元),导致传输信息的速率下降;同时,为了提高效率,信号以简洁、快速的方式传输,这样在遭受到干扰和噪声时,其自我保护能力大大下降,从而降低了传输的可靠性。于是,在实际通信的应用中,采取比较折中的方式,可在确保可靠性指标达到系统要求的前提下,尽可能的提高传输速率1 ;抑或在满足一定有效性的指标下,尽量提高传输的可靠性。通信技术设计一直致力于提高信息传输的有效性和可靠性,其中保证通信的可靠性是现代数字通信系统需要解决的首要问题。信道编码技术正是用来改善通信可靠性问题的

16、主要技术手段之一。在实际应用中,一个通信系统一般包含信道编码和信道译码两个模块2 。 信道编码的主要目的是为了降低误比特率,提高数字通信的可靠性,其方法是在二进制信息序列中添加一些冗余码元(监督码元),与信息码元一起组成被传输的码字。这些冗余码元是以受控的方式引入,它们与信息码元之间有着相互制约的关系。在信道中传输该码字,如果错误了发生,信息码元和冗余码元之间相互制约的关系就将会被破坏 1。那么,在接收端对接收到的信息序列按照既定的规则校验码字各码元间的约束关系,从而达到检错、纠错的目的。通过信道编码这种方法,能够有效的在接收端克服信号在无线信道中传输时受到噪声和干扰产生的影响。信道译码也就是

17、信道编码的逆过程,即接收端将接收信息序列按照既定约束关系,同时去掉比特流在传播的过程中混入的噪声干扰和添加的冗余,恢复为比较完整、可靠的信息的过程。信道编码涉及到的内容也十分广泛,前身纠错编码(FEC)、线性分组码(汉明码、循环码)、理德-所罗门码(RS码)、FIRE码、交织码、卷积码、TCM编码、Turbo码等都是信道编码的研究范畴11。汉明码是信道编码比较好的选择。汉明码是汉明于1950年提出的,是具有纠正一位错误能力的线性分组码。汉明码是在原编码的基础上附加一部分代码,使其能满足纠错码的条件6。它的突出特点是:编译码电路简单,易于硬件的实现;用软件实现编译码算法时,软件的效率高;而且性能

18、也比较好。由于汉明码的抗干扰能力较强,至今仍是应用比较广泛的一类码。1.2 本课题的研究意义本次课程设计的任务就是基于FPGA,利用EDA的技术在Quartus II软件下用Verilog语言来实现汉明码译码器的设计和仿真。汉明码是一个在原有数据中插入若干校验码来进行错误检查和纠正的编码技术,在原编码的基础上附加了一部分代码,使其满足纠错码的条件。汉明码的编码与译码是通信领域的一个重要研究内容。与一般的编码相比汉明码具有比较高效率,同时也是分组码的典型代表,是深入研究其他分组码的基础,也是研究其他非分组码(如循环码)的基础。EDA(Electronic Design Automation)技术

19、是随着集成电路和计算机技术飞速发展而应运而生的一种高级、快速、有效的电子设计自动化工具17。EDA的主要特征是使用硬件描述语言Verilog来完成设计,这在电子设计领域里受到广泛的接受。EDA技术的发展和推广应用,对高校电子技术课程的教学思想、教学方法和教学目标产生了深远的影响,是电子、信息、通信、电气等电类相关专业的基础学科。本课题利用EDA来实现,与实际联系很大,对将来从事实际工作和相关研究具有很大帮助。同时,选择FPGA的芯片和外围元器件,设计出硬件的原理图,将理论和实践结合起来,对以后的实际工作提供很多的经验。1.3 本课题研究目标及主要任务(1)研究目标:本论文是基于FPGA的汉明码

20、译码器的设计。主要研究汉明码编、译码的原理和方法,基于FPGA使用EDA开发软件Quartus II上实现汉明码译码器的设计。通过对汉明码的学习,使用硬件描述语言Verilog设计出了汉明码的译码器,并且写出了源程序,最后通过Quartus II软件的仿真实现。满足电路简单,成本低,开发周期短,执行速度高,升级方便等特点。(2)主要任务:本次设计要求学会使用仿真调试软件Quartus II和硬件描述语言Verilog,还要求学习汉明码的理论知识,了解汉明码的各种特点,掌握汉明码的译码原理。通过分析设计出实现译码的算法,并且使用Verilog语言在Quartus II软件里完成了基于FPGA的汉

21、明码译码器的编程和仿真实现。同时根据需要,选择合适的FPGA的芯片和外围元器件,设计外围硬件的原理图,将理论和实践结合起来。1.4 本课题可行性的分析本课题以理论研究和实验分析相结合的方式进行。课题首先在理论上是可行的,汉明码是1950年由汉明首先构造的,目前汉明码在中小型计算机中普遍采用,其技术已经成熟。汉明码接收码组汉明码译码器系统正确的汉明码信息码图1-2 译码流程图在实际操作方面,我们可以借鉴科学工作者已得出的结论,另外其跨专业的技术不多,所以也很少给设计带来不便。在实际设计方面,我们可以利用学校的图书资料和网上资源,利用EDA开发软件Quartus II,使用硬件描述语言Verilo

22、g来对汉明码译码器进行设计,观察其可行性,并对结果进行分析。2 EDA的基础知识与集成运行环境2.1 EDA概念EDA(Electronic Design Automation)即电子设计自动化,是以微电子技术为物理层面,现代电子设计为灵魂,计算机软件技术为手段,最终形成集成电子系统或专用集成电路芯片ASIC(Application Specific Integrated Circuit)为目的的一门新兴技术17。在20世纪90年代初从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。现在对EDA的概念或范围用得很宽,包括在

23、机械、电子、通信、航空航天、化工、矿产、生物、医学、军事等各个领域,都有EDA的应用1。利用EDA工具,电子设计师可以从概念、算法、协议等开始设计电子系统,大量的工作可以通过计算机完成,并可以将电子产品从电路设计、性能分析到设计出IC版图或PCB版图的整个过程都在计算机上自动处理完成。目前EDA技术已在各大公司、企事业单位和科研教学部门中广泛使用。例如在飞机制造过程中,从设计、性能测试及特性分析直到飞行模拟,都可能涉及到EDA技术。本次毕业设计实现的核心技术即为EDA相关技术。本文所指的EDA技术,主要针对电子电路设计、PCB设计和IC设计。EDA技术是现代电子设计技术的核心。EDA技术就是依

24、靠功能强大的电子计算机,在EDA工具软件平台上,对以硬件描述语言(如Verilog)为系统逻辑描述手段完成的设计文件,自动地完成逻辑编译、化简、分割、综合、优化和仿真,直至下载到可编程逻辑器件CPLD/FPGA或专用集成电路ASIC芯片中,进行特定芯片的适配编译、逻辑映射和编程下载等工作,实现既定的电子电路设计功能。EDA代表了当今电子设计技术的最新发展方向,它的基本设计方法是:设计人员按照“自顶向下”的设计方法,对整个系统进行方案设计和功能划分,系统的关键电路用一片或几片专用集成电路(ASIC)实现,然后采用硬件描述语言(HDL)完成系统行为级的设计,最后通过综合器和适配器来生成最终的目标器

25、件,这样的设计方法被称为高层次的电子设计方法7。EDA技术的优势15:(1)采用硬件描述语言,便于复杂的系统设计(2)拥有强大的系统建模和电路仿真功能(3)拥有自主知识产权(4)开发技术的标准化和规范化(5)全方位地利用计算机的自动设计、仿真和测试(6)对设计者的硬件知识和经验要求低。EDA设计的实现目标:(1)印刷电路板设计;(2)集成电路(IC或ASIC)设计;(3)可编程逻辑器件(FPGA/CPLD)设计;(4)混合电路设计。EDA设计的常用软件和设计工具层出不穷,目前进入我国并具有广泛影响的EDA软件有:multiSIM7(原EWB的最新版本)、PSPICE、OrCAD、PCAD、Pr

26、otel、Viewlogic、Mentor、Graphics、Synopsys、LSIIogic、Cadence、MicroSim,ISE等等。这些工具都有较强的功能,一般可用于几个方面,例如很多软件都可以进行电路设计与仿真,同进还可以进行PCB自动布局布线,还可以输出多种网表文件,与第三方软件接口。EDA工具在EDA技术应用中占据极其重要的位置,EDA的核心是利用计算机完成电子设计全过程自动化,因此,基于计算机环境的EDA软件的支持是必不可少的。EDA工具大致可以分为以下5个模块:设计输入编辑器;HDL综合器;仿真器;适配器(或布局布线器);下载器7。当然这种分类不是绝对的,现在往往把各ED

27、A工具集成在一起,如MAX+PLUS、Quartus等。2.2 Quartus的软件介绍Quartus是Altera公司提供的FPGA/CPLD集成开发软件,Altera是世界上最大的可编程逻辑器件供应商之一。Quartus在21世初被推出,是Altera老一代FPGA/CPLD集成开发软件MAX+plus II的更新换代产品,其界面友好,使用便捷。在Quartus上可以完成设计输入、布新布局(适配)、HDL综合、仿真和选择以及硬件测试等流程,它提供了一种与结构无关的设计环境,使设计者能方便地进行设计输入、处理和器件编程。 Quartus提供了完整的多平台设计环境,能满足各种特定设计的需求,也

28、是单片机可编程系统(SoPC)设计的综合环境和SoPC开发的基本设计工具,并为Altera DSP开发包运行系统模型的设计提供了集成综合环境。Quartus设计完全支持VHDL、Verilog的设计流程,其内部嵌有VHDL、Verilog逻辑综合器。Quartus可利用第三方的综合工具(如Leonardo Spectrum、Synplify Pro、FPGA Complier II),并能直接调用这些工具。同时,Quartus具备仿真功能,同时支持第三方的仿真工具(如Model Sin)。此外, Quartus与MATLAB和DSP Builder结合,可用于进行基于FPAG的DSP系统开发。

29、 用Quartus II软件进行设计开发的流程图2-1所示:设计输入编译修改设计编程下载仿真与定时分析在线测试图2-1 Quartus II软件设计开发流程图其开发步骤为:(1)设计输入:设计输入就是设计者将所设计的电路或系统以开发软件要求的某种形式表达出来,并送入计算机的过程。通常有原理图输入、HDL文本输入、EDIF网表输入、波形输入等几种输入方式。(2)编译:先根据设计要求设定编译方式和编译策略,如器件的选择、逻辑综合方式的选择等;然后根据设定的参数和策略对设计项目进行网表提取、逻辑综合、器件适配,并产生报告文件、延时信息文件及编程文件,供分析、仿真和编程使用。(3)仿真与定时分析:仿真

30、和定时分析均属于设计校验,其作用是测试设计的逻辑功能和延时特性。仿真包括功能仿真和时序仿真。定时分析器可通过三种不同的分析模式分别对传播延时、时序逻辑性能和建立或保持时间来进行分析。(4)编程与验证:用得到的编程文件通过编程电缆配置PLD,加入实际激励,进行在线测试。在测试过程中,会对包括语法检查和设计规则检查、逻辑综合与化简、逻辑适配、布局与布线等工作进行检查,如果出现错误,则需重新回到设计输入阶段,改正错误或调整电路后重新测试。Quartus II软件的工作环境如图2-2所示:工具按钮层次结构显示信息提示窗口工作区菜单栏图2-2 Quartus II管理器窗口图2-3 Quartus II

31、工具栏表2-1 工具栏各按钮的基本功能l:建立一个新的图形、文本、波形或是符号文件。l:打开一个文件,启动相应的编辑器。l:保存当前文件。l:打印当前文件或窗口内容。l:将选中的内容剪切到剪贴板。l:将选中的内容复制到剪贴板。l:粘贴剪贴板的内容到当前文件中。l:撤销上次的操作。l:单击此按钮后再单击窗口的任何部位,将显示相关帮助文档。l:打开层次显示窗口或将其带至前台。l:打开平面图编辑器或将其带至前台。l:打开编译器窗口或将其带至前台。l:打开仿真器窗口或将其带至前台。l:打开时序分析器窗口或将其带至前台。l:打开编程器窗口或将其带至前台。l:指定工程名。l:将工程名设置为和当前文件名一样

32、。l:打开当前工程的顶层设计文件或将其带至前台。l:保存所有打开的编译器输入文件,并检查当前工程的语法和其他基本错误。l:保存工程内所有打开的设计文件,并启动编译器。l:保存工程内所有打开的仿真器输入文件,并启动仿真器。图2-4 Quartus II编辑输入原理图界面Quartus II 的优点:该软件界面友好,使用便捷,功能强大,是一个完全集成化的可编程逻辑设计环境,是先进的EDA工具软件。该软件具有开放性、与结构无关、多平台、完全集成化、丰富的设计库、模块化工具等特点,支持原理图、VHDL、Verilog HDL以及AHDL(Altera Hardware Description Lang

33、uage)等多种设计输入形式,内部嵌有综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。Quartus II可以在XP、Linux以及Unix上使用,除了可以使用Tcl脚本完成设计外,还提供了完善的用户图形界面设计方式。具有运行速度快,界面统一,功能集中,易学易用等特点。Quartus II对软硬器件的支持: Quartus II支持Altera公司的MAX 3000A系列、MAX 7000系列、MAX 9000系列、ACEX 1K系列、APEX 20K系列、APEX II系列、FLEX 6000系列等,支持MAX7000/MAX3000等乘积项器件。支持MAX II CPL

34、D系列、Cyclone系列、Cyclone II、Stratix II系列、Stratix GX系列等。支持IP核,包含了LPM/Mega Function宏功能模块库,用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。此外,Quartus II 通过和DSP Builder工具与Matlab和Simulink相结合,可以方便地实现各种DSP应用系统;支持Altera的片上可编程系统(SOPC)开发,系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。Quartus II对第三方EDA工具的支持:对第三方EDA工具的良好支持也使用户可以在设计流程的各个阶段使

35、用熟悉的第三方EDA工具。Altera的Quartus II可编程逻辑软件属于第四代PLD开发平台。该平台支持一个工作组环境下的设计要求,其中包括支持基于Internet的协作设计。Quartus平台与Cadence、Exemplar Logic、Mentor Graphics、Synopsys和Synplicity等EDA供应商的开发工具相兼容。改进了软件的Logic Lock模块设计功能,增添了Fast Fit编译选项,推进了网络编辑性能,并且提升了调试能力。QuartusII设计软件提供完整的多平台设计环境,可以很轻松地满足特定设计的需要。它是可编程片上系统(SOPC)设计的综合性环境,

36、拥有FPGA和CPLD设计的所有阶段的解决方案。与其它EDA软件相比较Quartus II软件的特点主要包括:(1)可利用原理图、结构框图、VerilogHDL、AHDL和VHDL完成电路描述,并将其保存为设计实体文件。(2)芯片(电路)平面布局连线编辑。(3)Logic Lock增量设计方法,使用户可建立并优化系统,然后添加对原始系统的性能影响较小或无影响的后续模块。(4)功能强大的逻辑综合工具。(5)完备的电路功能仿真与时序逻辑分析。(6)定时和时序分析与关键路径延时分析。(7)使用Signal Tap II逻辑分析工具进行嵌入式的逻辑分析。(8)支持软件源文件的添加和创建,并将它们链接起

37、来生成编程文件。(9)使用组合编译方式可一次完成整体设计流程。(10)自动定位编译的错误。(11)高效的编程与验证工具。(12)可读入标准的EDIF网表文件、VHDL网表文件和Verilog网表文件。(13)能生成第三方EDA软件使用的VHDL网表文件和Verilog网表文件。2.3 Verilog的简介QuartusII设计软件经常使用VerilogHDL和VHDL这两种硬件描述语言来进行设计,同时VerilogHDL和VHDL也是目前世界上最流行的两种硬件描述语言(HDL:HardwareDescriptionLanguage),均为IEEE标准,被广泛地应用于基于可编程逻辑器件的项目开发

38、。二者都是在20世纪80年代中期开发出来的,前者由GatewayDesignAutomation公司(该公司于1989年被Cadence公司收购)开发,后者由美国军方所研发。Verilog HDL是由GDA(Gateway Design Automation)公司的PhilMoorby在1983年末首创的,最初只是设计了一个仿真与验证工具,之后又陆续开发了相关的故障模拟与时序分析工具。1985年Moorby推出它的第三个商用仿真器Verilog-XL,获得了巨大的成功,从而使得Verilog HDL迅速得到推广和应用。1989年CADENCE公司收购了GDA公司,使得Verilog HDL成为

39、了该公司的独家专利。1990年CADENCE公司公开发表了Verilog HDL,并成立LVI组织以促进Verilog HDL成为IEEE标准,即IEEE Standard 1364-1995。Verilog HDL在语言描述风格上传承了上一代硬件描述语言的解释风格,所以描述的器件在编译和综合时适应能力强,系统可以自动优化。虽然对应语言的解读性能较弱,但是仿真以后的纠错能力强。Verilog HDL在模型上注重结构和数据的解释,所以得到EDA生产厂商的喜爱,Verilog HDL成为了一种开放的商业EDA语言。Verilog HDL既是一种行为描述的语言也是一种结构描述的语言。这也就是说,既可

40、以用电路的功能描述也可以用元器件和它们之间的连接来建立所设计电路的Verilog HDL模型。Verilog模型可以是实际电路的不同级别的抽象。这些抽象的级别和它们对应的模型类型共有以下五种:(1)系统级(system):用高级语言结构实现设计模块的外部性能的模型。 (2)算法级(algorithm):用高级语言结构实现设计算法的模型。 (3)RTL级(Register Transfer Level):描述数据在寄存器之间流动和如何处理这些数据的模型。 (4)门级(gate-level):描述逻辑门以及逻辑门之间的连接的模型。 (5)开关级(switch-level):描述器件中三极管和储存节

41、点以及它们之间连接的模型。 VerilogHDL常用于从算法级、门级到开关级的多种抽象设计层次的数字系统建模。被建模的数字系统对象的复杂性可以介于简单的门和完整的电子数字系统之间。数字系统能够按层次描述,并可在相同描述中显示进行时序建模14。VerilogHDL语言具有下述描述能力:设计的行为特性、设计的数据流特性、设计的结构组成以及包含响应监控和设计验证方面的时延和波形产生机制。所有这些都使用同一种建模语言。此外,VerilogHDL语言提供了编程语言接口,通过该接口可以在模拟、验证期间从设计外部访问设计,包括模拟的具体控制和运行。VerilogHDL语言不仅定义了语法,而且对每个语法结构都

42、定义了清晰的模拟、仿真语义。因此,用这种语言编写的模型能够使用Verilog仿真器进行验证。语言从C编程语言中继承了多种操作符和结构。VerilogHDL提供了扩展的建模能力,其中许多扩展最初很难理解。但是,VerilogHDL语言的核心子集非常易于学习和使用,这对大多数建模应用来说已经足够了。2.3.1 Verilog的主要功能作为一种硬件描述语言,Verilog HDL可以直接描述硬件结构,也可以通过描述系统行为来实现建模。Verilog HDL的主要特点和功能有以下几点:(1) 描述基本逻辑门,如and、or等基本逻辑门都内置在语言中,可以直接调用。(2) 描述基本开关模型,如nmos、

43、pmos和coms等基本开关都可以直接调用。(3) 允许用户定义基元(UDP),这种方式灵活有效,用户定义的基元既可以是组合逻辑也可以是时序逻辑。(4) Verilog HDL中有两种数据类型,线网数据类型和寄存器数据类型。线网类型表示构件间的物理连线,而寄存器类型表示抽象的数据存储元件。(5) 能够描述层次设计,可使用模块实例结构描述任何层次。(6) 设计的规模可以是任意的,语言不对设计的规模(大小)施加任何限制。(7) Verilog HDL语言的描述能力可以通过使用编程接口(PLI)进一步扩展。PLI是允许外部函数访问Verilog HDL模块内信息,允许设计者与模拟器交互的例程集合。(

44、8) 设计能够在多个层次上加以描述,从开关级、门级、寄存器传送级(RTL)到算法级,报括进程和队列级。(9) 能够使用内置开关级原语,在开关级对设计进行完整建模。(10) 同一语言可用于生成模拟激励和指定测试的验证的约束条件。(11) Verilog HDL不仅能够在RTL上进行设计描述,而且能够在体系结构级和算法级的行为上进行设计描述。(12) 能够使用门和模块实例化语句在结构级上进行结构描述。(13) Verilog HDL具有混合方式建模的能力,即设计中每个模块均可以在不同设计层次上建模。(14) Verilog HDL具有内置算术运算符、逻辑运算符、位运算符。(15) 用延迟表达式或事

45、件表达式来明确地控制过程的启动时间。(16) 通过命名的事件来触发其它过程里的激活行为或停止行为。 (17) 可描述顺序执行或并行执行的程序结构,并且提供了条件、if-else、case、循环程序结构。2.3.2 Verilog的基础语法Verilog的设计初衷是成为一种基本语法与C语言相近的硬件描述语言。这是因为C语言在Verilog设计之初,已经在许多领域中得到广泛应用,C语言的许多语言要素已经被许多人所习惯。一种与C语言相似的硬件描述语言,可以让电路设计人员更容易学习和接受。不过,Verilog与C语言还是存在许多差别。另外,作为一种与普通计算机编程语言不同的硬件描述语言,它还具有一些独

46、特的语言要素,例如向量形式的线网和寄存器、过程中的非阻塞赋值等。总的来说,具备C语言的设计人员将能够很快掌握 7。Verilog的基本设计单元是“模块”(block)。一个模块是由两部分组成:一部分描述接口信息,另一部分描述逻辑功能,即定义输入是如何影响输出的。根据常见的VerilogHDL程序可以总结出以下特征14:(1) VerilogHDL程序是由模块所构成的。每个模块的内容都是嵌在module和 endmodule这两个语句之间的,每个模块实现特定的功能,模块是可以进行层次嵌套的。(2) 每个模块首先要进行端口定义,并说明输入(input)和输出(output),然后对模块的功能进行逻

47、辑描述。(3) VerilogHDL程序的书写格式自由,一行可以写几个语句,一个语句也可以分多行写。(4) 除了endmodule语句外,每个语句的最后必须要加分号。(5) 可以用/* */和/ / 对Verilog HDL程序的任何部分作注释。由此我们可以得出VerilogHDL语言的基础语法有以下几点14:首先,VerilogHDL程序是由模块构成的。VerilogHDL结构完全嵌在module和endmodule声明语句之间,每个模块实现特定的功能,模块是可以进行层次嵌套的。每个Verilog程序包括4个主要部分:端口定义,I/0说明,信号类型声明和功能描述。在编写VerilogHDL程

48、序时还需要常量,参数(Parameter)型和变量。在程序运行过程中,其值不能被改变的量称为常量。参数型数据是一种常数型的数据,用参数来定义常量,即用参数来定义一个标识符代表一个常量,称为符号常量。采用标识符来代表一个常量,这样可提高程序的可读性和可维护性。参数型常数经常用于定义延迟时间和变量宽度。变量是在程序运行过程中其值是可以改变的量,在Verilog HDL中变量的数据类型有很多种,我们这里主要介绍三种:wire型变量、reg型变量和memory型变量。wire型表示结构(例如门)之间的物理连接。wire型的变量不能储存值,而且它必须受到驱动器或连续赋值语句assign 的驱动。如果没有

49、驱动器连接到wire型变量上,则该变量就是高阻态。wire型数据常用来表示以assign关键字指定的组合逻辑信号。Verilog程序模块中输入输出信号类型缺省时将自动定义为wire型。wire型信号可以用作任何方程式的输入,也可以用作“assign”语句或实例元件的输出。reg型是寄存器数据类型的关键字。寄存器是数据储存单元的抽象。通过赋值语句可以改变寄存器的值,其作用相当于改变触发器存储器的值。reg型数据常用来表示always模块内的指定信号,常代表触发器。reg类型数据的缺省初始值为不定值x。memory型是通过扩展reg型数据的地址范围来生成的。由于Verilog HDL通过对reg型

50、变量建立数组来对存储器建模,可以描述RAM型存储器,ROM存储器和reg文件。数组中的每一个单元通过一个数组索引进行寻址。但在Verilog语言中没有多维数组存在,所以就需要memory型来生成。其次,在编写VerilogHDL程序是还需要各种的运算符。有算术运算符(+,%等),位运算符(&, 等),逻辑运算符(&,| 等),关系运算符( 等),等式运算符(= =,!= 等),移位运算符( 等),位拼接运算符,缩减运算符等14。在程序编写的公式中如果用到多个运算符,这时就需要按照每种运算符的优先级顺序来进行运算。每种运算符的优先级别各不相同,优先级从上到下依次递减,最上面具有最高的优先级。其中

51、逻辑非运算符的优先级最高,逻辑或运算符的优先级最低。下表为各运算符的优先级别:! / %+ = = ! = = = = ! = =& |&| |高低优先级别图2-5 各运算符的优先级别最后,在编写VerilogHDL程序是还需要各种的语句。(1)赋值语句有两种,一种是非阻塞赋值(non_blocking)(如),同一个always块内的赋值语句操作可以同时进行,只有块结束后才完成赋值操作,b的值不会立即改变。还有一种是阻塞赋值(blocking)(如b=a),同一block内,后一语句的执行必须等到前一语句执行完才能执行,赋值语句执行完后,块才结束,b的值在赋值语句执行完后立刻就改变。(2)条

52、件语句常用的也是两种,一种是if-else语句,if语句用来判定所给的条件是否满足,根据判定的结果(真或假)决定执行运行的结果。if语句的表达式一般是逻辑表达式或关系表达式。另一种是case语句。case语句是一种多分支语句,可直接处理多分支选择。(3)循环语句常用的有四种。forever语句是可以连续执行的循环语句;repeat语句是可以连续执行一条语句n次;while语句是执行一条语句直到某个条件不满足。如果一开始条件就不满足(为假),则语句一次也不能被执行;for语句需要三个步骤来完成循环,第一步是先给控制循环次数的变量赋初值,第二步是判定控制循环的表达式的值,如为假就跳出循环语句,如为

53、真则执行指定的语句后,进行第三步,第三步是执行一条赋值语句来修正控制循环变量次数的变量的值,然后回到第二步继续运行。(4)结构说明语句常用的有四种。initial语句是仿真开始时对各变量进行初始化,只执行一次;always语句在仿真过程中不断重复执行,但always后面跟着的过程块是否执行,就要看它的触发条件是否满足了;task和function说明语句分别用来定义任务和函数,利用任务和函数可以把一个很大的程序模块分解成许多小的任务和函数便于理解和调试14。2.3.3 Verilog的语言优势Verilog HDL推出已经有20年了,拥有广泛的设计群体,成熟的资源也比其他语言丰富。Verilo

54、g更大的一个优势是,它非常容易掌握,只要有C语言的编程基础,通过比较短的时间,经过一些实际的操作就可以在23个月内掌握这种语言。而其他语言设计相对要难一点,像VHDL语言,它不是很直观,需要有Ada编程基础,至少需要半年以上的专业培训才能掌握。还有Verilog HDL允许对同一个电路进行不同抽象层次的描述,包括开关级、门级、RTL级或者行为级描述电路;Verilog HDL不仅可以设计电路,也可以描述电路的激励,用于电路的验证;Verilog HDL是IEEE标准,得到绝大多数EDA工具的支持;Verilog HDL设计具有工艺无关性,适合综合设计;有大量的单元库资源;Verilog HDL

55、类似编程,有利于开发调试,在设计前期就可以完成电路功能验证,减少费用和时间;Verilog HDL与C语言有PLI接口,设计者可以通过编写增加的C语言代码来访问Verilog内部数据结构,扩展语言的功能等。通过Verilog HDL和VHDL比较来看出Verilog语言的优势。目前版本的Verilog HDL和VHDL在行为级抽象建模的覆盖面范围方面有所不同。一般认为Verilog在系统级抽象方面要比VHDL略差一些,但在门级开关电路描述方面要强的多。目前在美国,高层次数字系统设计领域中,应用Verilog和VHDL的比率分别是80和20;日本和台湾与美国差不多;但在欧洲VHDL发展的比较好。

56、在中国很多集成电路设计公司都采用Verilog,但VHDL也有一定的市场。总的来说,采用Verilog HDL设计时具有以下优点8:(1)设计者可以在非常抽象的层次上对线路进行描述而不必选择特定的制造工艺。逻辑综合工具可以将设计自动转换成任意一种制造工艺版图。如果出现新的制造工艺,也不必对电路重新设计,只要将RTL级描述输入综合工具,即可生成针对新的门级网表。这种设计使得工程师在功能设计、逻辑验证阶段,可以不必过多得考虑门级及工艺实现的具体细节,只需要利用系统设计时对芯片的要求,施加不同的约束条件即可。(2)设计者可以在设计周期的早期对电路的功能进行仿真验证。可以很容易的对RTL级描述进行优化

57、和修改,这样可以在初期发现和排除绝大多数的设计错误,大大降低了在设计后期的门级网表和版图上出错的可能性,避免设计过程的反复,缩短了设计周期。(3)使用Verilog进行编写程序,带有文字注释的源程序非常方便修改。与门级电路图相比,能够对电路进行更加简明扼要的描述。更加便于理解。对于复杂的设计,如果用门级原理图来表达,几乎是无法理解的。(4)Verilog 是一种通用的硬件描述语言,易学易用。可以在不同抽象层次上对电路进行描述。绝大多数流行的综合工具都支持Verilog,所有的制造商也都提供Verilog综合之后仿真的原件库。 3 FPGA的简介3.1 FPGA的发展历程FPGA并非是近几年来才

58、有的,FPGA一词于1984年就已经出现,至今已经超过20年以上的时间,不过过去十多年内FPGA都未受到太多的重视,原因是FPGA的功耗用电、电路密度、频率效能、电路成本等都不如ASIC,而在这十多年内,FPGA多半只用在一些特殊的领域,例如芯片业者针对新产品测试市场反应,即便初期产品未能达到量产规模,也能先以FPGA制成产品进行测试。 有些芯片设计公司承接了一些小型的设计项目,在量产规模不足的情况下也一样使用FPGA,或如政府、军方的特殊要求,不期望使用开放的芯片与电路,也会倾向使用FPGA。不过如前所述的,在愈来愈多芯片无法用开设掩膜的模式生产后,这些芯片又想上市,就只好以FPGA模式来生

59、产。所幸FPGA也受益于摩尔定律,在工艺技术不断的提升下,晶体管愈来愈缩密化,原本相较ASIC逊色的电路密度过低、频率效能过低、电路成本过高等问题,在新一代FPGA上,早已拉近与ASIC间的表现差距。 正因如此,近年来FPGA不断抢食ASIC市场,迫使ASIC业者不得不推出策略因应,最显著的策略就是提出结构化ASIC(Structured ASIC),或者也称为平台化ASIC(Platform ASIC),结构化/平台化ASIC,期望通过减少重新开设的掩膜数、减少电路修改成本及时间,使芯片可以更早上市。但结构化和平台化ASIC只是减少重开掩膜的张数,并不能完全免除掩膜的使用,加上配套的设计工具

60、(EDA)与已有数十年运用的ASIC、FPGA相比,明显不够完备,后势发展与市场接受度尚待时间考验。特别是LSI Logic(巨积科技)、NEC Electronics(NEC电子)等大厂纷纷退出后,结构化ASIC的推行气势就更为薄弱9。 当然,FPGA因为掩膜的成本攀升以及摩尔定律而逐渐走俏,成本、效能等特性表现也逐渐改善,但依然有一点是FPGA持续低弱的,那就是功耗用电。就一般而言,要实现相同的功效电路,用FPGA实现的功耗用电是ASIC的15倍之高。3.2 FPGA的产品特性及发展现状FPGA的产品特性3有:(1)开发周期短因为FPGA很容易用电学方法在芯片上印制出电路图形,比通常的掩膜

61、编程快的多,若采用掩膜编程一般需几个星期才能完成的设计,采用FPGA只需几天甚至几个小时就可完成,大大缩短了开发周期。(2)降低开发费用因为FPGA具有可测性及重复编程能力,如果产品在出厂前发现了程序上的错误,可随时修改,擦除重作,更准确地完成设计,不会导致产品的报废,另外,FPGA母片在出厂时可进行100%的测试,因此用户几乎不需负担“NRE”(非循环工程)的费用。(3)用户没有投片的风险准备批量生产的ASIC电路在试投片前,可用FPGA来验证电路的功能,大大降低了投片的风险。(4)使用灵活FPGA内部有丰富的触发器、输入输出引线,每个引线可具有不同的功能,所以使用非常的灵活。(5)FPGA

62、器件采用高速(HCMOS)工艺,功耗低且可与CMOS、TTL电平兼容。由于FPGA的这些特性,使得近5年来,FPGA的应用已经从过去通信基础设备这一非常窄的领域迅速扩展到了今天非常广泛的应用领域。FPGA产品的应用领域已经从原来的通信扩展到消费电子、汽车电子、工业控制、测试测量等广泛的领域9。在许多新兴和快速成长的市场上,FPGA作为核心器件也被广泛采用。无线通信、工业、科学及测量、医疗设备、音视频广播、汽车、计算、存储应用和快速发展的消费品市场,都成为FPGA业务发展的重点领域。在这种情况下,FPGA企业也开始了相应的转型,以适应新的发展需求12。应用的变化也使FPGA产品近几年的演进趋势越来越明显:一方面,FPGA供应商致力于采用当前最先进的工艺来提升产品的性能,降低产品的成本;另一方面,越来越多的通用IP(知识产权)或客户定制IP被引入FPGA中,以满足客户产品快速上市的要求。此外,FPGA企业都在大力降低产品的功耗,满足业界越来越苛刻的低功耗需求。随着需求量的不断增加,FPGA的技术得到了迅速发展。从器

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