FPGA毕业设计论文.docx
《FPGA毕业设计论文.docx》由会员分享,可在线阅读,更多相关《FPGA毕业设计论文.docx(37页珍藏版)》请在冰豆网上搜索。
FPGA毕业设计论文
硬盘编译码的FPGA实现
中文摘要
在硬盘的数据传输和存取过程中,信道调制编码是一个不可缺少且关系到存储系统性能的环节,它解决的问题主要是使输入的序列得以在介质中存储,并使从介质中读取得信号还原为原本的信息。
在使用峰值检测技术的磁盘驱动中的一种标准编码是码率为1/2的(d,k)=(2,7)码,也称Franaszek码。
本文阐述了硬盘编译码的FPGA实现的设计,在简要介绍了FPGA技术背景、VHDL语言和MAX+plusII开发平台的基础上,阐述了硬盘编译码的FPGA实现的各模块的设计,并设计了硬盘编译码的FPGA实现的整体架构。
Franaszek编码码元长度可变是本设计的一大难点,Franaszek编码是一种同步变长编码,其码率不变但码元长度可变,是一种特殊的变长编码。
本设计采用状态机解决了变长编码码元识别的问题,状态机思想的优越性在本设计中得到了很好的体现,在较低的时钟频率下很好地解决的变长编码码元识别的问题。
让编码序列连续输出时本设计的另一个难点,由于在编码器中最高时钟频率仅能与输出序列的时钟同步,要在同一个时钟沿解决存入与输出的问题,文中设计了一个缓存控制器用于控制输出的连续性,使输出序列保持连续。
采用了VHDL硬件描述语言对各基本模块进行了设计实现,并给出各模块和整个系统的仿真结果。
本课题的硬盘编译码器实现,为实用游程长度受限码编译码在的FPGA上的实现做了探索性尝试,为其他信道调制编译码的IP核设计和FPGA实现有一定的借鉴意义。
关键词:
游程长度受限码,FPGA,VHDL,MAX+plusII
FPGAimplementationofharddiskencodinganddecoding
Abstract
Duringtheprocessofdatatransmissionintheharddisk,channelmodulationcodingisanecessaryandalsorelatedtotheperformanceofthestoragesystem.Itsolvetheproblemwhichtheinputtedsequencecanberecordedatreadfromthestoragemedia.Oneofthecodingmodeisusedinthediskdrivewhichadoptthepeakdetectiontechnologyasastandardcode,itscoderateis1/2and(d,k)=(2,7),so-calledFranaszekcode.ThispaperintroducedthedesignoftheFPGAimplementationofharddiskencodinganddecoding,onthebasisofbrieflyintroducingthetechnicalbackgroundofFPGA\VHDLandMAX+plusIIdevelopmentsoftware.Allthemajormodulesoftheencoderanddecoderwasbeenexpoundedanddesigntheoverallstructureofthem.ThemostdifficultproblemisthelengthofcodeelementsofFranaszekcodeisvariable,Franaszekisakindofsynchronousvariablelengthcodewhosecoderateisinvariableandthelengthofcodeelementisvariable,soitisaspecialkindofvariablelengthcode.Thisdesignusesstatemachine,solvetheproblemrecognitionofcodeelementsofthevariablelengthcode,theadvantageofstatemachineprinciplewasbeenwellshown,tosolvetheproblemoftherecognitionofcodeelementsinaverylowclockfrequency.Tolettheoutputsequencecontinuousisanotherdifficultyinthisthesis,becausethehighestclockfrequencyonlycanbesynchronouswiththeclockofoutputsequenceofencoder,soitmustfinishtheoperationofstorageandoutputinthesameclockedge,thisthesisdesignabuffercontrollertoensurethecontinuityofoutput,maintainthecontinuousoutputsequence.UsingVHDLdesignedandimplementedharddiskencoderanddecoderofbasicmodeandgivesthesimulationresultofmainmodulesoftheencoderanddecoder.ThedesignandimplementationofharddiskencoderanddecoderprovidedanexploringattemptonthehardwareimplementationofpracticalRLLencoderanddecoderandareferenceonotherchannelmodulationencoderanddecodersystemIPcoreandtheirFPGAimplementation.
Keywords:
run-length-limited,FPGA,VHDL,MAX+plusII
第一章:
绪论
1.1课题概述
随着微电子技术与自动控制技术的发展,越来越多的FPGA器件正广泛应用于各种数字信号处理过程。
其特点是硬件体积小、实时性好、工作效率高,提高了系统集成度。
在一般信号处理系统中,当前比较通用的系统结构通常会分立元件,采用电子管、晶体管、中小规模集成电路来实现信号处理算法、具体控制和通信任务。
但由于半导体工艺及可编程逻辑器件的飞速发展,可编程逻辑器件的集成度越来越高,运算能力越来越强,对于完成传统的数字信号处理任务而言实在大有富余。
而电子产品市场的激烈竞争,迫切要求电子产品设计工程师缩短开发周期,加快产品的更新换代。
而又有高可靠性,小体积,造价低的要求。
在这些场合中,使用分立元件固然不可行,即便开发周期来得及,成本也无法接受。
而使用基于FPGA的平台,结合采用EDA技术的开发平台,就成为一种具有优势的方案。
本设计针对硬盘数据存储中的信道调制编码的技术问题。
采用Altera公司的FLEX10K系列FPGA,使用VHDL语言在MAX+plusII开发平台下,编写了集编码器译码器于一体的数字信号处理系统。
器件的应用状况与发展趋势
随着半导体工艺及EDA技术的飞速发展,FPGA的应用在通信、消费电子、汽车、存储、服务器、工业、航空和国防等领域日益渗透和拓宽。
几乎可以说已涉及到社会的各个方面,而数字信号处理是FPGA应用的重要领域。
实现以FPGA为核心的数字信号处理自动化和机电设备及科学仪器仪表的现代化,是我国信息产业技术进步的重要内容,是降低能源及原材料消耗、提高产品质量及性能、增强国际竞争能力缩短产品上市时间的重要技术进步手段。
EDA技术是ElectronicDesignAutomation(电子设计自动化)的缩写EDA技术就是以计算机为工具,在EDA软件平台上,根据硬件描述语言HDL完成的设计文件,自动地完成逻辑编译、化简、分割、综合及优化、布局线、仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。
[1]EDA主要包括FPGA器件、硬件描述语言HDL和EDA工具软件三大部分。
电子设计自动化技术是21世纪电子设计领域中最重要的技术之一。
EDA技术是20世纪90年代初从CAD(计算机辅助设计)、CAM(计算机辅助制造)、CAT(计算机辅助测试)和CAE(计算机辅助工程)的概念发展而来的。
可编程逻辑器件自上世纪70年代出现以来,已有了很普遍的应用,为数字系统的设计带来极大的灵活性。
20世纪末世界上最大的变化就是全球市场的形成。
全球市场导致竞争空前激烈,促使企业必须加快新产品投放市场时间(TimetoMarket)、改善质量(Quality)、降低成本(Cost)以及完善服务体系(Service),这就是企业的T.Q.C.S.。
由于可编程逻辑器件可以通过软件编程对其硬件的结构和工作方式进行重构,使得硬件的设计可以如同软件设计那样方便快捷。
这一切给数字系统的设计带来了革命性的变化。
纵观可编程逻辑器件的发展史,它在结构原理、集成规模、下载方式、逻辑设计手段等方面的每一次进步都为现代电子设计技术的革命与发展提供了不可或缺的强大动力。
可编程逻辑器件的门类较多。
先后发展出PLA、PAL、GAL、EPLD、FPGA和CPLD等类型。
事实上其中的FPGA和CPLD日益成为基本主导形式,这已成为半导体器件行业的共识。
与其他
可编程逻辑器件相比,FPGA和CPLD在结构工艺集成度、功能速度和灵活性方面都有很大的改进和提高。
CPLD是指基于乘积项技术FLASH工艺的PLD,FPGA是指基于查找表技术、SRAM工艺的PLD。
CPLD与FPGA由于各自的特点与优势,使得二者在可编程逻辑器件技术的竞争中并驾齐驱,成为两支领导可编程器件技术发展的主要力量。
对用户而言,CPLD与FPGA的内部结构确有不同,但随着技术的发展,一些厂家陆续推出了一些新的CPLD和FPGA,这些产品逐渐模糊了CPLD和FPGA的区别。
因此也很难准确定义每个型号到底属于这两种类型中的哪一种。
因此在实际应用中,用户无需深究两者的区别,习惯上都把他们叫做FPGA。
FPGA主要用于工业、农业、教学和科学研究中的实时信号处理和过程控制。
现在一些重要的消费电子产品(如移动通信设备和数字电视)和科学仪器仪表(如示波器和生物医学仪器)将FPGA作为解决方案的越来越多。
综上所述,FPGA技术是一类跨世纪的高新技术,应用广泛,发展前景良好,因此,相信以FPGA为基础的高性能数字系统将成为主流。
第二章:
FPGA介绍
的结构
FPGA是FieldProgrammableGateArray(现场可编程门阵列)的缩写,FPGA是从PAL、GAL、EPLD等传统可编程逻辑器件发展而来,它是ASIC领域中的一种半定制器件,具有可编程的特点,同时又克服了传统可编程逻辑器件逻辑门电路不足的缺点。
可编程逻辑器件(PLD)自上世纪70年代发明以来,先后有PROM、PLA、PAL、GAL和EPLD等多种实现方式或产品类型,而当前最具代表性及应用最广泛的是FPGA和CPLD器件。
[2]
FPGA器件由美国的XILINX公司于1985年首先推出。
一般把FPGA定义为基于查找表(Look-UpTable,LUT)技术和SRAM工艺的PLD,目前的FPGA已经远远超出先前产品的基本功能,并且整合了许多常用功能(如RAM、时钟管理和DSP),在新型的系统级可编程逻辑器件中还可以IP核的形式来进行功能设计。
使得FPGA中可以实现DSP、MCU等嵌入式处理器。
在未来的数字系统中,或许只需要一块FPGA芯片就可以实现所有功能,成为片上系统(SOC,SystemOnaChip)。
图2-1 FPGA的芯片结构
查找表的本质是一个RAM,用户用原理图或HDL语言描述好逻辑电路的设计后,由设计软件计算出所有可能的结果后存入相应的地址,这样,输入信号就等于RAM的地址,输入地址后就会输出相应的数据作为计算结果。
一般FPGA的查找表是一个4输入的SRAM也可以看成一个16x1的RAM。
因此FPGA是一种细粒度器件,触发器资源十分丰富适合用于时序电路的设计,但由于乘积项资源不够丰富,在用于组合逻辑的场合时就需要当量的逻辑块间的连线,而FPGA的逻辑块间的连线是分布式的,因此FPGA的延迟是不可预测的。
CPLD(ComplexProgrammableLogicDevice,复杂可编程逻辑器件)器件是一种基于乘积项(productterm)的可编程逻辑器件,CPLD利用宏单元(marcocell)实现逻辑功能,宏单元由乘积项阵列和控制清0与时钟的可编程开关与触发器组成。
其中乘积项阵列是一个“与或”阵列在与或阵列的没个交叉点上都有一个可编程熔丝如果导通就可以实现“与”逻辑,阵列后面还有乘积项选择矩阵,作为“或”阵列。
图2-2 CPLD的总体结构
通常一个宏单元包含16个乘积项,因此设计人员可部署大量的组合逻辑而不用增加额外的路径。
这就是为何CPLD被认为是“逻辑丰富”型的。
但单个CPLD中通常仅包含数百个宏单元,因此CPLD的集成度不如FPGA,寄存器资源也远不如FPGA丰富,但FPGA在逻辑块之间的连线是集总式的,相对于FPGA的分布式布线,CPLD的延迟是均匀和可预测的,且CPLD的速度比FPGA快,可以工作在较高频率,总体而言CPLD器件提供的资源比FPGA少,但CPLD具有很好的可预测性。
[3]
由于半导体技术的飞速发展,每年都有许多新器件出现,且器件的工艺和内部结构日趋复杂,很难根据传统的定义判断每个PLD产品属于FPGA或CPLD,而各PLD供应商也不断推出各种兼具两种器件特点的新型器件,再加上不同厂家对器件的定义方法各不相同,因此在许多场合都把新型的可编程逻辑器件统称FPGA,毕竟用户关心的是器件的功能而不是器件的运行原理与内部结构,而两者在功能甚至开发上并无不同。
下文也不特别区分FPGA与CPLD。
的优点
最近10年国内FPGA应用有了很快的发展,按照传统观点,FPGA仅使用于产品原型设计和ASIC的验证,用于大规模的数字系统开发就过于昂贵而且功耗过大。
但随着近年来FPGA的研发陆续突破了低功耗、低成本和先进工艺的瓶颈后,FPGA解决方案的应用领域正在日益扩张,FPGA数字系统在通信、数据处理、网络、仪器、工业控制、军事和航空航天等众多领域得到了广泛应用。
随着功能和性能的进一步提高,FPGA的应用已从可编程逻辑领域扩展到了其他技术领域,如高性能DSP、高性能嵌入式处理和高速串行连接。
FPGA解决方案之所以有如此广泛的应用,正是因为随着EDA技术和微电子技术的迅速发展,FPGA相对于其他类似功能的器件的许多优势日益凸显。
FPGA相对于DSP的优势
DSP(DigitalSignalProcessor)是一种特殊的微处理器,在一块芯片内包含了控制、运算、寄存器和一定数量的存储单元。
DSP采用流水线结构,基于冯诺依曼结构的某种变形,采用软件编程,因此它的运算基本上是串行的。
DSP在数据通信、音视频处理和数字控制等领域有广泛的应用,FPGA相对于DSP的优势是:
��.片内实现细粒度,高度并行的结构,目前串行结构的处理器发展已经遇到了瓶颈,性能难以进一步提高,近几年,并行计算正逐步成为计算机科学的热点研究方向,而DSP从根本上讲其结构只适合串行的算法结构,多处理器系统是很昂贵而且只适合粗粒度的并行运算。
这与FPGA的片内实现并行算法在开发的难度和成本上是无法相提并论的。
��.明显的性能提升,FPGA的计算能力比DSP的性能更加强大。
例如,30美元的Spartan23AFPGA性能可高达每秒200亿条乘法累加操作(GMACs),同样花30美元买一个600MHz的C64xDSP,每秒的累加操作仅仅是25亿条,后者在性能上差距了一个数量级。
FPGA允许用户构件高度并行的器件结构,使采样速率和时钟速率达到相等,再加上FPGA内部集成锁相环,可以使外部时钟倍频,在数据量大,速度要求高的场合中,FPGA是无法被替代的。
��.功能和应用更加灵活,DSP实现的是软逻辑,DSP根据烧写在存储器中的代码动作,DSP首先需要从存储器中读取代码,然后解释代码、执行代码。
FPGA实现的是硬逻辑,设计者用硬件描述语言(HDL,HardwareDescriptionLanguage)描述要实现的逻辑,然后综合下载到FPGA后,生成相应的电路,这些电路由基本的门电路和触发器构成,配置十分灵活,而且可以完全根据算法定制理想的器件结构。
另外DSP的外围扩展接口种类和数量都是固定的,不够用时无法增加,多余的时候也无法腾出来用作其他用途,因此FPGA更具灵活性,虽然FPGA本身不能实现复杂的功能但随着各厂商提供各种功能的IP核,目前FPGA中已经可以嵌入8051、ARM和高性能DSP等通用处理器,这将使FPGA实现真正的SOC。
可以毫不夸张的讲,FPGA能完成任何数字器件的功能,上至高性能CPU,下至简单的74电路,都可以用FPGA来实现。
��.降低成本,减少PCB面积,降低功耗,FPGA允许允许集成其他系统所需的元器件。
同一片FPGA,不同的编程数据就可以产生完全不同的电路功能。
因此FPGA也是提高系统集成度的最佳选择,它可以将DSP解决方案中所需的接口电路集成到FPGA中,从而降低成本和功耗,而一些新型号甚至还包含了模拟电路,一些系统中包含数十路AD、DADSP必须仔细进行资源分配、总线隔离,而FPGA中只要利用自身IO就能解决问题。
因此FPGA在提高系统集成度,降低硬件复杂性,缩短开发周期和降低成本方面具有独特的优势。
[4]
相对定制ASIC的优势
ASIC(ApplicationSpecificIntergratedCircuits)即专用集成电路,是指应特定用户要求和特定电子系统的需要而设计、制造的集成电路。
ASIC的特点是面向特定用户需求。
FPGA是ASIC的近亲,两者的应用基本相似。
FPGA相对全定制ASIC的优势在于:
��.更快的上市时间:
无需布线、掩模和其它制造步骤。
FPGA无需任何制造过程,可以直接实现现场编程,用户也不需要考虑掩膜设计,布线和电路参数等具体问题,而ASIC无论在设计还是制造上都要比FPGA花费更多时间。
��.缩短了设计周期。
目前主流EDA软件已经能够很好地实现综合、布线和配置的自动化,设计者只需要关注器件的功能就可以了,利用VHDL等硬件描述语言在EDA软件中描述好器件的行为之后就可以进行实际电路的仿真,然后就可以在具体的器件上设计方案。
而ASIC的设计者需要完成所有电路的设计,这需要大量的人力物力也需要不少时间,但却只能带来很小的性能提升。
��.现场可重编程能力。
今年来在自动控制技术和数字电子技术飞速发展,设计出一个数字系统通常不需要多久就被淘汰,而ASIC一旦制造出来就无法再改变其内部电路结构和功能,再加上设计耗时太久,经常在产品上市不久就被淘汰,而FPGA内部的电路结构可以在现场通过多种方式重新编程,使产品更能适应新技术和市场需求的变化。
由于技术的发展,市场需求的不断变化,导致产品的生命周期越来越短,可编程技术势在必行。
目前,ASIC开发公司和FPGA开发公司的比例约为30:
1,但由于技术的不断进步和FPGA成本优势的不断凸显,FPGA在未来将不断蚕食ASIC的市场,并逐步成为专用集成电路市场的主流。
[5]
的性能
FPGA自上世纪80年代诞生以来,其性能就一直保持很快的上升速度,如Altera公司推出的基于40nm工艺的StratixIVGT系列FPGA包含24个工作速率高达的收发器,逻辑单元增加至最多530K。
速度提高的同时功耗也有所下降,Xilinx公司推出的Virtex-6功耗较之Virtex-5降幅多达50%,成本也有20%的下降。
另外FPGA还支持多种不同的IO标准,FPGA的IO可以按组分类,每组可以支持完全不同的IO标准,灵活的IO使FPGA的接口电路设计大幅简化。
另外FPGA还提供嵌入式的存储器,这些片上存储器的延时通常很低,跟普通的门电路差不多。
而且配置相当灵活,大多数支持双端口模式。
运算速度则是FPGA最大的优点,根据测试,同样价格的FPGA在通信应用中吞吐量为同样价格DSP的5~10倍。
因此在DSP的传统应用数字信号处理领域,FPGA的性能也具有明显的优势,由于FPGA中包含大量的低功耗、高密度乘法器、存储器和逻辑资源,在低成本领域,目前,已经有不少低成本FPGA能够满足1080pHDTV的性能要求。
因此在复杂的信号处理方面,FPGA也有其它处理器无法比拟的优势,随着并行处理在各个领域的逐渐普及,FPGA将完成许多以前由DSP或DSP阵列来完成的工作。
除了FPGA本身的发展之外,近几年FPGA开发工具的发展也十分迅速,业界也普遍认为当前FPGA的普及度不如DSP和单片机最主要的原因是各行业的开发人员还难以适应FPGA的全新的设计方法和技巧,各大FPGA厂商无疑也意识到了这一点,近两年来,FPGA各种开发工具版本不断更新,说明各厂商都一直为设计工具的开发投入精力,当前主流FPGA厂商都提供了丰富的IP核,其中还有许多是包含处理器和DSP功能的软核,这些模块库和工具的完善将为FPGA的普及消除最后一道障碍,大幅提高FPGA解决方案的新引力和易用性。
当然在遇到复杂的串行算法时,DSP的流水线处理器结构则比FPGA更适合,而对于侧重控制的场合,仍然是单片机更合适,总之FPGA是属于并行计算时代的器件。
的FLEX10K系列FPGA
FLEX10K是业界第一款嵌入式PLD,采用了重复可构造的CMOSSRAM工艺,把连续的快速通道互连与独特的嵌入式阵列结构相结合,同时FLEX(FlexibleLogicElementMatriX)架构可结合众多可编程器件来完成普通门阵列的宏功能,具有强大的系统集成功能。
由于其具有高密度、低成本、低功率等特点,所以脱颖而出,成为当今AlteraPLD中应用最好的器件系列。
型号
典型门数
逻辑单元LE数
逻辑阵列块LAB数
EAB数
最大IO引脚
EPF10K10
10000
576
72
3
150
EPF10K20
20000
1152
144
6
189
EPF10K30
30000
1728
216
6
246
EPF10K40
40000
2304
288
8
189
EPF10K50
50000
2880
360
10
310
EPF10K70
70