《学位论文-—课程论文基于fpga的m序列发生器.doc》由会员分享,可在线阅读,更多相关《学位论文-—课程论文基于fpga的m序列发生器.doc(25页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、基于FPGA的序列发生器基于FPGA的序列发生器摘要序列广泛应用于密码学、通信、雷达、导航等多个领域,本文提出了一种基于FPGA的伪随机序列产生方法,应用移位寄存器理论从序列的本原多项式出发,获得产生该序列的移位寄存器反馈逻辑式,结合FPGA芯片结构特点,在序列算法实现中采用元件例化语句。算法运用VHDL语言编程,以A1tera的Quartus软件为开发平台,给出了序列的仿真波形。序列的统计特性分析表明:该方法产生的序列符合序列的伪随机特性,验证了算法的正确性。关键词:序列;移位寄存器理论;VHDL语言I目 录摘要I1 m序列11.1 理论基础11.1.1 线性反馈移位寄存器32 m序列的性质
2、52.1 均衡性52.2游程特性52.4 自相关特性52.5 伪噪声特性83 m序列的应用93.1 扩展频谱通信93.2 通信加密104 开发工具简介124.1 Quartus II简介124.2 数字系统开发流程134.3 FPGA简介145 m序列生成器仿真分析195.1 反馈系数表存储器设计195.2 移位存储器设计205.3 仿真分析22参考文献24附 录251 m序列m序列是伪随机序列的一种 ,结构简单 ,实现方便。在现代工程实践中 , m 序列在通讯、导航、雷达、通信系统性能的测量等领域中有着广泛的应用。例如 , 在连续波雷达中可用作测距信号 , 在遥控系统中可用作遥控信号 , 在
3、多址通信中可用作地址信号 , 在数字通信中可用作群同步信号 ,还可用作噪声源及在保密通信中起加密作用等。伪噪声发生器在测距、通信等领域的应用日益受到人们重视。目前,m序列产生实现方法主要有3种:(1)门电路实现该方法设计简单,但随移位寄存器级数的增长,电路装调困难,且占用的印制板面积较大。(2)DSP编程实现该方法专业性过强,不适合一般用户。(3)VHDL与CPLD实现由于CPLD的高集成度,而且VHDL语言编程较为方便,故可以大大减少电路的装调的困难。文章提出VHDL语言实现,l序列电路是周期、初相位可编程变化的,其应用较为灵活,通过微处理器对其进行适当的初始化,即可产生用户所需周期、初相位
4、的m序列输出。用软件方式构成的特点是采用灵活的数据查询方式可以获得任意级数 n 的本原多项式系数 ,从而实现 m 序列的产生 , 但速度受到单片机工作速度的限制。而 FPGA 具有硬件电路实现的优点 , 又具有设计上的灵活性 , 并且由于 FPGA 便于实现大规模的数字系统 。1.1 理论基础 m 序列是最长线性反馈移位寄存器序列的简称,它是由带线性反馈的移位寄存器产生的周期最长的一种序列。m 序列发生器的结构主要分为两类,一类称为简单型码序列发生器,另一类称为模块型码序列发生器。原理图如图 1 所示。 图1-1 m列原理图扰码的目的是使短周期输入序列变为长周期的信道序列。从原则上看,就可以用
5、将一个长周期序列叠加在输入序列上的方法来实现,并且叠加序列的周期越长越好。从理论上说,一个真正的随机(二进制)序列的“周期”是无限长的,但是,采用这种序列时在接收端将无法产生相同的序列与之同步。所以,人们就不得不企图用简单电路来产生尽量长的序列。同时随机噪声在通信技术中,首先是作为有损通信质量的因素受到人们重视的。信道中存在的随机噪声会使模拟信号产生失真,或使数字信号解调后出现误码;同时,它还是限制信道容量的一个重要因素。因此,最早人们是企图设计消除或减小通信系统的随机噪声,但是,有时人们也希望获得随机噪声。例如,在实验室中对通信设备或系统进行测试时,有时要故意加入一定的随机噪声,这时则需要产
6、生它。20世纪40年代末,随着通信理论的发展,仙农(Shannon)就曾指出,在某种情况下,为了实现最有效的通信,应采用具有白噪声的统计特性的信号。另外,为了实现高可靠的保密通信,也希望利用随机噪声。然而,利用随机噪声的最大困难是它难以产生和处理。直到60年代,伪随机噪声的出现才使上述困难得到解决。伪随机噪声具有类是与随机噪声的一些统计特性,同时又便于重复产生和处理。由于它具有随机噪声的优点,又避免了它的缺点,因此获得了日益广泛的实际应用。目前广泛应用的伪随机噪声都是由数字电路产生的周期序列(即滤波等处理后)得到的。今后我们将这种周期序列称为伪随机序列。通常产生伪随机序列的电路为一反馈移存器。
7、他又可分为线性反馈移存器和非线性反馈遗存器两类。由线性反馈遗存器产生出的周期最长的二进制数字序列,称为最大长度线性反馈遗存器序列,通常简称为m序列。由于它的理论比较成熟,实现比较简便,实际应用也比较广泛7。m序列是最长线性反馈移存器序列的简称,它是由带线性反馈的移存器产生的周期最长的一种序列 。图2-2中示出了n级移位寄存器,其中有若干级经模2加法器反馈到第1级。不难看出,在任何一个时刻去观察移位寄存器的状态,必然是个状态之一,其中每一状态代表一个n位的二进制数字;但是,必须把全0排斥在外,因为如果一个进入全0,不论反馈线多少或在哪些级,这种状态就不会再改变。所以,寄存器的状态可以是非全0的状
8、态之一。这个电路的输出序列是从寄存器移出的,尽管移位寄存器的状态每一移位节拍改变一次,但无疑地是循环的。如果反馈线所分布的级次是恰当的,那么,移位寄存器的状态必然各态历经后才会循环。这里所谓“各态历经”就是所有个状态都经过了。由此可见,应用n级移位寄存器所产生的序列的周期最长是。同时由于这种序列虽然是周期的,但当n足够大时周期可以很长,在一个周期内0和1的排列有很多不同方式,对每一位来说是0还是1,看来好像是随机的,所以又称为伪随机码;又因为它的某一些性质和随机噪声很相似,所以又称为伪噪声码(PN码)。1.1.1 线性反馈移位寄存器图1-2 线性移位寄存器由于带有反馈,因此在移位脉冲作用下,移
9、位寄存器各级的状态将不断变化,通常移位寄存器的最后一级做输出,输出序列为 输出序列是一个周期序列。其特性由移位寄存器的级数、初始状态、反馈逻辑以及时钟速率(决定着输出码元的宽度)所决定。当移位寄存器的级数及时钟一定时,输出序列就由移位寄存器的初始状态及反馈逻辑完全确定。当初始状态为全零状态时,移位寄存器输出全 0 序列。为了避免这种情况,需设置全 0 排除电路。 (1)线性反馈移位寄存器的递推关系式 递推关系式又称为反馈逻辑函数或递推方程。设图10-1 所示的线性反馈移位寄存器的初始状态为(a0 a1 an-2 an-1), 经一次移位线性反馈,移位寄存器左端第一级的输入为 若经k次移位,则第
10、一级的输入为 其中,l=n+k-1n, k=1,2,3, (2)线性反馈移位寄存器的特征多项式 用多项式f(x)来描述线性反馈移位寄存器的反馈连接状态:若一个n次多项式f(x)满足下列条件 f(x)为既约多项式(即不能分解因式的多项式);f(x)可整除(xp+1), p=2n-1;f(x)除不尽(xq+1), qp。则称f(x)为本原多项式。 2 m序列的性质2.1 均衡性 在一个周期中,m 序列中“1”的个数比“0”的个数多一个。N级移位寄存器有2n状态,这些状态对应二进制有一半为偶数(即末位数为0),另一半为奇数(即末尾数为1)。m序列一个周期经历2n-1个状态,少一个全0状态(属于偶数状
11、态),因此在一个周期中“1”的个数比“0”的个数多一个。例如,级数n=3,码序列周期P=23-1=7时,起始状态为“111”,Ci=(13)8=(1011)2,即C0=1、C1=0、C2=1、C3=1。产生的m序列为1110010,其中码元为“1”的有4个,码元为“0”的有3个,即在一个周期中“1”的个数比“0”多一个。2.2游程特性长度为k的游程数占游程总数的1/2k。一个周期中长度为1的游程数占游程总数的1/2;长度为2的游程数占游程总数的1/4;其中1=k=n-1。2.3 移位相加特性一个m序列与其循环移位逐次比较,相同码的位数与不同码的位数相差1位。例如原序列Xi=1110010,那么
12、右移2位的序列Xi-2=0011101.2.4 自相关特性M序列具有非常重要的自相关特性。在m序列中,常用+1代表0,用-1代表1.此时定义:设长为p的m序列,记作 经过j次移位后,m序列为 其中ai+p=ai(以 p 为周期),以上两序列的对应项相乘然后相加, 利用所得的总和 来衡量一个m序列与它的j次移位序列之间的相关程度,并把它叫做m序列(a1,a2,a3,ap)的自相关函数。记作 经过j次移位后,m序列为 其中ai+p=ai(以 p 为周期),以上两序列的对应项相乘然后相加, 利用所得的总和 来衡量一个m序列与它的j次移位序列之间的相关程度,并把它叫做m序列(a1,a2,a3,ap)的
13、自相关函数。记作 当采用二进制数字 0 和 1 代表码元的可能取值时 由移位相加特性可知,仍是m序列中的元素, 所以式(10-7)分子就等于m序列中一个周期中 0 的数目与 1 的数目之差。 另外由m序列的均衡性可知, 在一个周期中 0 比 1 的个数少一个, 故得A-D=-1(j为非零整数时)或p(j为零时)。 因此得m序列的自相关函数只有两种取值(1和-1/p)。R(j)是一个周期函数,即 式中,k=1,2, p=(2n-1)为周期。 而且R(j)是偶函数, 即 图2-1 m序列自相关函数2.5 伪噪声特性如果我们对一个正态分布白噪声取样, 若取样值为正, 记为+1,取样值为负,记为-1,
14、将每次取样所得极性排成序列, 可以写成+1,-1,+1,+1,+1,-1,-1,+1,-1, 这是一个随机序列,它具有如下基本性质:(1) 序列中+1 和-1 出现的概率相等;2) 序列中长度为 1 的游程约占 1/2, 长度为 2 的游程约占 1/4,长度为 3 的游程约占 1/8, 一般地, 长度为k的游程约占1/2k,而且+1, -1 游程的数目各占一半;(3) 由于白噪声的功率谱为常数,因此其自相关函数为一冲击函数()。 3 m序列的应用3.1 扩展频谱通信扩展频谱通信(Spread Spectrum Communication)是将待传送的信息数据被伪随机编码(扩频序列:Spread
15、 Sequence)调制,实现频谱扩展后再传输,接收端则采用同样的编码进行解调及相关处理,恢复原始信息数据。显然,这种通信方式与一般常见的窄带通信方式相反,是在扩展频谱后,宽带通信,再相关处理恢复成窄带后解调数据。扩展频谱通信方式有许多优点,如抗干扰、抗噪音、抗多径衰落、低功率谱密度下工作、有保密性、可多址复用和任意选址、高精度测量等。扩展频谱通信作为新型通信方式,特别引人注目,得到了迅速发展,如今在移动通信、卫星通信、宇宙通信、雷达、导航以及测距等领域得到越来越广泛的应用。扩频通信的优势主要来自于伪随机码具有白噪声的统计特性。而随着扩频速率的不断提高,扩频码的长度急剧增加,利用计算机设计并验
16、证扩频码的各项指标能大大提高效率。m序列是伪随机序列中最重要的序列中的一种,是最长的线性移位寄存器序列。既然,m序列在扩频通信中占据着极其重要的位置,而对于m序列的产生及仿真的研究,自然也就有很大的必要性。在雷达信号设计中的应用 近年兴起的扩展频谱雷达所采用的信号是已调制的具有类似噪声性质的伪随机序列,它具有很高的距离分辨力和速度分辨力。这种雷达的接收机采用相关解调的方式工作,能够在低信噪比的条件下工作,同时具有很强的抗干扰能力。该型雷达实质上是一种连续波雷达,具有低截获概率性,是一种体制新、性能高、适应现代高技术战争需要的雷达。采用伪随机序列作为发射信号的雷达系统具有许多突出的优点。首先,它
17、是一种连续波雷达,可以较好地利用发射机的功率。其次,它在一定的信噪比时,能够达到很好的测量精度,保证测量的单值性,比单脉冲雷达具有更高的距离分辨力和速度分辨力。最后,它具有较强的抗干扰能力,敌方要干扰这种宽带雷达信号,将比干扰普通的雷达信号困难得多。在通信系统中的应用1 伪随机序列是一种貌似随机,实际上是有规律的周期性二进制序列,具有类似噪声序列的性质,在CDMA中,地址码都是从伪随机序列中选取的,在CDMA中使用一种最易实现的伪随机序列:m序列,利用m序列不同相位来区分不同用户;为了数据安全,在CDMA的寻呼信道和正向业务信道中使用了数据掩码(即数据扰乱)技术,其方法是用长度为2的42次方减
18、1的m序列用于对业务信道进行扰码(注意不是扩频),它在分组交织器输出的调制字符上进行,通过交织器输出字符与长码PN码片的二进制模工相加而完成。 扩展频谱技术的理论基础是山农公式。对于加性白高斯噪声的连续信道,其信道容量C与信道传输带宽B及信噪比S/N之间的关系可以用下式表示 这个公式表明,在保持信息传输速率不变的条件下,信噪比和带宽之间具有互换关系。就是说,可以用扩展信号的频谱作为代价, 换取用很低信噪比传送信号,同样可以得到很低的差错率。扩频系统有以下特点:(1) 具有选择地址能力;(2) 信号的功率谱密度很低, 有利于信号的隐蔽;(3) 有利于加密, 防止窃听;(4) 抗干扰性强;(5)
19、抗衰落能力强;(6) 可以进行高分辨率的测距。 扩频通信系统的工作方式有:直接序列扩频、跳变频率扩频、 跳变时间扩频和混合式扩频。3.2 通信加密 图 3-1 m序列加密m序列自相关性较好,容易产生和复制,而且具有伪随机性,利用m序列加密数字信号使加密后的信号在携带原始信息的同时具有伪噪声的特点,以达到在信号传输的过程中隐藏信息的目的;在信号接收端,再次利用m序列加以解密,恢复出原始信号。4 开发工具简介4.1 Quartus II简介Quartus II design 是最高级和复杂的,用于system-on-a-programmable-chip (SOPC)的设计环境。 QuartusI
20、I design 提供完善的 timing closure 和 LogicLock 基于块的设计流程。QuartusII design是唯一一个包括以timing closure 和 基于块的设计流为基本特征的programmable logic device (PLD)的软件。 Quartus II 设计软件改进了性能、提升了功能性、解决了潜在的设计延迟等,在工业领域率先提供FPGA与mask-programmed devices开发的统一工作流程。Altera Quartus II 作为一种可编程逻辑的设计环境, 由于其强大的设计能力和直观易用的接口,越来越受到数字系统设计者的欢迎。当前官
21、方提供下载的最新版本是v12.1。Altera Quartus II (3.0和更高版本)设计软件是业界唯一提供FPGA和固定功能HardCopy器件统一设计流程的设计工具。工程师使用同样的低价位工具对 Stratix FPGA进行功能验证和原型设计,又可以设计HardCopy Stratix器件用于批量成品。系统设计者现在能够用Quartus II软件评估HardCopy Stratix器件的性能和功耗,相应地进行最大吞吐量设计。Altera的Quartus II可编程逻辑软件属于第四代PLD开发平台。该平台支持一个工作组环境下的设计要求,其中包括支持基于Internet的协作设计。Quar
22、tus平台与Cadence、ExemplarLogic、 MentorGraphics、Synopsys和Synplicity等EDA供应商的开发工具相兼容。改进了软件的LogicLock模块设计功能,增添 了FastFit编译选项,推进了网络编辑性能,而且提升了调试能力。该软件有如下几个显著的特点:1、Quartus II 的优点该软件界面友好,使用便捷,功能强大,是一个完全集成化的可编程逻辑设计环境,是先进的EDA工具软件。该软件具有开放性、与结构无关、多平台、完全集成化、丰富的设计库、模块化工具等特点,支持原理图、VHDL、VerilogHDL以及AHDL(Altera Hardware
23、 Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。Quartus II可以在XP、Linux以及Unix上使用,除了可以使用Tcl脚本完成设计流程外,提供了完善的用户图形界面设计方式。具有运行速度快,界面统一,功能集中,易学易用等特点。2、Quartus II对器件的支持Quartus II支持Altera公司的MAX 3000A系列、MAX 7000系列、MAX 9000系列、ACEX 1K系列、APEX 20K系列、APEX II系列、FLEX 6000系列、FLEX 10K系列,支持MAX7000
24、/MAX3000等乘积项器件。支持MAX II CPLD系列、Cyclone系列、Cyclone II、Stratix II系列、Stratix GX系列等。支持IP核,包含了LPM/MegaFunction宏功能模块库,用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。此外,Quartus II 通过和DSP Builder工具与Matlab/Simulink相结合,可以方便地实现各种DSP应用系统;支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。3、Quartus II对第三方EDA工具的支持对第三
25、方EDA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三放EDA工具。Altera的Quartus II可编程逻辑软件属于第四代PLD开发平台。该平台支持一个工作组环境下的设计要求,其中包括支持基于Internet的协作设计。Quartus平台与Cadence、ExemplarLogic、 MentorGraphics、Synopsys和Synplicity等EDA供应商的开发工具相兼容。改进了软件的LogicLock模块设计功能,增添 了FastFit编译选项,推进了网络编辑性能,而且提升了调试能力。4.2 数字系统开发流程(1)设计输入:包括原理图输入、HDL文本输入、EDIF
26、网表输入、波形输入等几种方式。(2)编译:先根据设计要求设定编译方式和编译策略,如器件的选择、逻辑综合方式的选择等;然后根据设定的参数和策略对设计项目进行网表提取、逻辑综合、器件适配,并产生报告文件、延时信息文件及编程文件,供分析、仿真和编程使用。(3)仿真与定时分析:仿真和定时分析均属于设计校验,其作用是测试设计的逻辑功能和延时特性。仿真包括功能仿真和时序仿真。定时分析器可通过三种不同的分析模式分别对传播延时、时序逻辑性能和建立/保持时间进行分析。(4)编程与验证:用得到的编程文件通过编程电缆配置PLD,加入实际激励,进行在线测试。在设计过程中,如果出现错误,则需重新回到设计输入阶段,改正错
27、误或调整电路后重新测试。4.3 FPGA简介FPGA(FieldProgrammable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。目前以硬件描述语言(Verilog 或 VHDL)所完成的电路设计,可以经过简 单的综合与布局,快速的烧录至 FPGA 上进行测试,是现代 IC 设计验证的技术主流。这些可编辑元件可以被用来实现一些基本的逻辑门电路(比如AND、OR、XOR、NOT)或者更复杂一些的组
28、合功能比如解码器或数学方程式。在大多数的FPGA里面,这些可编辑的元件里也包含记忆元件例如触发器(Flipflop)或者其他更加完整的记忆块。 系统设计师可以根据需要通过可编辑的连接把FPGA内部的逻辑块连接起来,就好像一个电路试验板被放在了一个芯片里。一个出厂后的成品FPGA的逻辑块和连接可以按照设计者而改变,所以FPGA可以完成所需要的逻辑功能。 FPGA一般来说比ASIC(专用集成芯片)的速度要慢,无法完成复杂的设计,而且消耗更多的电能。但是他们也有很多的优点比如可以快速成品,可以被修改来改正程序中的错误和更便宜的造价。厂商也可能会提供便宜的但是编辑能力差的FPGA。因为这些芯片有比较差
29、的可编辑能力,所以这些设计的开发是在普通的FPGA上完成的,然后将设计转移到一个类似于ASIC的芯片上。另外一种方法是用CPLD(复杂可编程逻辑器件备)。CPLD与FPGA的关系早在1980年代中期,FPGA已经在PLD设备中扎根。CPLD和FPGA包括了一些相对大数量的可以编辑逻辑单元。CPLD逻辑门的密度在几千到几万个逻辑单元之间,而FPGA通常是在几万到几百万。 CPLD和FPGA的主要区别是他们的系统结构。CPLD是一个有点限制性的结构。这个结构由一个或者多个可编辑的结果之和的逻辑组列和一些相对少量的锁定的寄存器。这样的结果是缺乏编辑灵活性,但是却有可以预计的延迟时间和逻辑单元对连接单
30、元高比率的优点。而FPGA却是有很多的连接单元,这样虽然让它可以更加灵活的编辑,但是结构却复杂的多。 CPLD和FPGA另外一个区别是大多数的FPGA含有高层次的内置模块(比如加法器和乘法器)和内置的记忆体。一个因此有关的重要区别是很多新的FPGA支持完全的或者部分的系统内重新配置。允许他们的设计随着系统升级或者动态重新配置而改变。一些FPGA可以让设备的一部分重新编辑而其他部分继续正常运行。FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输出输入模块IOB(Input Outp
31、ut Block)和内部连线(Interconnect)三个部分。 一、采用FPGA设计ASIC电路(特定用途集成电路),用户不需要投片生产,就能得到合用的芯片。 二、FPGA可做其它全定制或半定制ASIC电路的中试样片。 三、FPGA内部有丰富的触发器和IO引脚。 四、FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。 五、FPGA采用高速CHMOS工艺,功耗低,可以与CMOS、TTL电平兼容。 可以说,FPGA芯片是小批量系统提高系统集成度、可靠性的最佳选择之一。 FPGA是由存放在片内RAM中的程序来设置其工作状态的,因此,工作时需要对片内的RAM进行编程。用户可以
32、根据不同的配置模式,采用不同的编程方式。 加电时,FPGA芯片将EPROM中数据读入片内编程RAM中,配置完成后,FPGA进入工作状态。掉电后,FPGA恢复成白片,内部逻辑关系消失,因此,FPGA能够反复使用。FPGA的编程无须专用的FPGA编程器,只须用通用的EPROM、PROM编程器即可。当需要修改FPGA功能时,只需换一片EPROM即可。这样,同一片FPGA,不同的编程数据,可以产生不同的电路功能。因此,FPGA的使用非常灵活。 FPGA有多种配置模式:并行主模式为一片FPGA加一片EPROM的方式;主从模式可以支持一片PROM编程多片FPGA;串行模式可以采用串行PROM编程FPGA;
33、外设模式可以将FPGA作为微处理器的外设,由微处理器对其编程。 如何实现快速的时序收敛、降低功耗和成本、优化时钟管理并降低FPGA与PCB并行设计的复杂性等问题,一直是采用FPGA的系统设计工程师需要考虑的关键问题。如今,随着FPGA向更高密度、更大容量、更低功耗和集成更多IP的方向发展,系统设计工程师在从这些优异性能获益的同时,不得不面对由于FPGA前所未有的性能和能力水平而带来的新的设计挑战。 例如,领先FPGA厂商Xilinx最近推出的Virtex-5系列采用65nm工艺,可提供高达33万个逻辑单元、1,200个I/O和大量硬IP块。超大容量和密度使复杂的布线变得更加不可预测,由此带来更
34、严重的时序收敛问题。此外,针对不同应用而集成的更多数量的逻辑功能、DSP、嵌入式处理和接口模块,也让时钟管理和电压分配问题变得更加困难。 幸运地是,FPGA厂商、EDA工具供应商正在通力合作解决65nm FPGA独特的设计挑战。不久以前,Synplicity与Xilinx宣布成立超大容量时序收敛联合工作小组,旨在最大程度地帮助系统设计工程师以更快、更高效的方式应用65nm FPGA器件。设计软件供应商Magma推出的综合工具Blast FPGA能帮助建立优化的布局,加快时序的收敛。 最近FPGA的配置方式已经多元化! FPGA主要生产厂商1、Altera 2、Xilinx 3、Actel 4、
35、Lattice 其中Altera和Xilinx主要生产一般用途FPGA,其主要产品采用RAM工艺。Actel主要提供非易失性FPGA,产品主要基于反熔丝工艺和FLASH工艺。FPGA设计的注意事项:不管你是一名逻辑设计师、硬件工程师或系统工程师,甚或拥有所有这些头衔,只要你在任何一种高速和多协议的复杂系统中使用了FPGA,你就很可能需要努力解决好器件配置、电源管理、IP集成、信号完整性和其他的一些关键设计问题。不过,你不必独自面对这些挑战,因为在当前业内领先的FPGA公司里工作的应用工程师每天都会面对这些问题,而且他们已经提出了一些将令你的设计工作变得更轻松的设计指导原则和解决方案。I/O信号
36、分配可提供最多的多功能引脚、I/O标准、端接方案和差分对的FPGA在信号分配方面也具有最复杂的设计指导原则。尽管Altera的FPGA器件没有设计指导原则(因为它实现起来比较容易),但赛灵思的FPGA设计指导原则却很复杂。但不管是哪一种情况,在为I/O引脚分配信号时,都有一些需要牢记的共同步骤: 1. 使用一个电子数据表列出所有计划的信号分配,以及它们的重要属性,例如I/O标准、电压、需要的端接方法和相关的时钟。 2. 检查制造商的块/区域兼容性准则。 3. 考虑使用第二个电子数据表制订FPGA的布局,以确定哪些管脚是通用的、哪些是专用的、哪些支持差分信号对和全局及局部时钟、哪些需要参考电压。
37、 4. 利用以上两个电子数据表的信息和区域兼容性准则,先分配受限制程度最大的信号到引脚上,最后分配受限制最小的。例如,你可能需要先分配串行总线和时钟信号,因为它们通常只分配到一些特定引脚。 5. 按照受限制程度重新分配信号总线。在这个阶段,可能需要仔细权衡同时开关输出(SSO)和不兼容I/O标准等设计问题,尤其是当你具有很多个高速输出或使用了好几个不同的I/O标准时。如果你的设计需要局部/区域时钟,你将可能需要使用高速总线附近的管脚,最好提前记住这个要求,以免最后无法为其安排最合适的引脚。如果某个特定块所选择的I/O标准需要参考电压信号,记住先不要分配这些引脚。差分信号的分配始终要先于单端信号
38、。如果某个FPGA提供了片内端接,那么它也可能适用于其他兼容性规则。 6. 在合适的地方分配剩余的信号。 在这个阶段,考虑写一个只包含端口分配的HDL文件。然后通过使用供应商提供的工具或使用一个文本编辑器手动创建一个限制文件,为I/O标准和SSO等增加必要的支持信息。准备好这些基本文件后,你可以运行布局布线工具来确认是否忽视了一些准则或者做了一个错误的分配。 这将使你在设计的初始阶段就和布局工程师一起工作,共同规划PCB的走线、冗余规划、散热问题和信号完整性。FPGA工具可能可以在这些方面提供帮助,并协助你解决这些问题,因此你必须确保了解你的工具包的功能。 你咨询一位布局专家的时间越晚,你就越
39、有可能需要去处理一些复杂的问题和设计反复,而这些可能可以通过一些前期分析加以避免。一旦你实现了满意的信号分配,你就要用限制文件锁定它们。 - 基于CMOS的设计主要消耗三类功率:内部的(短路)、漏电的(静态的)以及开关的(电容)。当门电路瞬变时,VDD与地之间短路连接消耗内部功率。漏电功耗是CMOS工艺普遍存在的寄生效应引起的。而开关功耗则是自负载电容,放电造成的。开关功耗与短路功耗合在一起称为动态功耗。下面介绍降低静态功耗和动态功耗的设计技巧。电路设计中FPGA的应用:连接逻辑,控制逻辑是FPGA早期发挥作用比较大的领域也是FPGA应用的基石事实上在电路设计中应用FPGA的难度还是比较大的这
40、要求开发者要具备相应的硬件知识(电路知识)和软件应用能力(开发工具)这方面的人才总是紧缺的,往往都从事新技术,新产品的开发成功的产品将变成市场主流基础产品供产品设计者应用在不远的将来,通用和专用IP的设计将成为一个热门行业!搞电路设计的前提是必须要具备一定的硬件知识在这个层面,干重于学,当然,快速入门是很重要的,越好的位子越不等人电路开发是黄金饭碗产品设计:把相对成熟的技术应用到某些特定领域如通讯,视频,信息处理等等开发出满足行业需要并能被行业客户接受的产品这方面主要是FPGA技术和专业技术的结合问题,另外还有就是与专业客户的界面问题产品设计还包括专业工具类产品及民用产品,前者重点在性能,后者
41、对价格敏感产品设计以实现产品功能为主要目的,FPGA技术是一个实现手段在这个领域,FPGA因为具备接口,控制,功能IP,内嵌CPU等特点有条件实现一个构造简单,固化程度高,功能全面的系统产品设计将是FPGA技术应用最广大的市场,具有极大的爆发性的需求空间产品设计对技术人员的要求比较高,路途也比较漫长不过现在整个行业正处在组建首发团队的状态,只要加入,前途光明产品设计是一种职业发展方向定位,不是简单的爱好就能做到的!产品设计领域会造就大量的企业和企业家,是一个近期的发展热点和机遇。系统级的应用是FPGA与传统的计算机技术结合,实现一种FPGA版的计算机系统如用XilinxV-4, V-5系列的F
42、PGA,实现内嵌POWERPCCPU, 然后再配合各种外围功能,实现一个基本环境,在这个平台上跑LINUX等系统这个系统也就支持各种标准外设和功能接口(如图象接口)了这对于快速构成FPGA大型系统来讲是很有帮助的。这种山寨味很浓的系统早期优势不一定很明显,类似ARM系统的境况但若能慢慢发挥出FPGA的优势,逐渐实现一些特色系统也是一种发展方向。若在系统级应用中,开发人员不具备系统的扩充开发能力,只是搞搞编程是没什么意义的,当然设备驱动程序的开发是另一种情况,搞系统级应用看似起点高,但不具备深层开发能力,很可能会变成爱好者,就如很多人会做网页但不能称做会编程类似以上是几点个人开发,希望能帮助想学
43、FPGA但很茫然无措的人理一理思路。这是一个不错的行业,有很好的个人成功机会。但也肯定是一个竞争很激烈的行业,关键看的就是速度和深度当然还有市场适应能力。5 m序列生成器仿真分析图 5-1 m序列生成器框图5.1 反馈系数表存储器设计反馈系数表存储器设计 设计Galois型反馈系数表存储器结构如图5-2所示。该结构由FPGA中内嵌的E2PROM构成,只要图3 Galois型反馈系数表存储器结构图给定n,经过级数调整模块运算得到其相应地址addr,即可从E2PROM的输出端feedfactor输出其相应的反馈系数。故存储器中要存储27组反馈系数值,若设计级数的最小级数为ns,最大级数为ne,则E
44、2PROM的地址空间范围是从0至ne-ns。将这27组反馈系数值做成一个ROM表,则需要一个5位二进制数字作为地址输入来提取与之相应的反馈系数值。 该模块的VHDL程序如下entity rom is port (rst : in std _ logic; addr : in std _ logic _ vector (4 downto 0); feedfactor : out std _ logic _ vector (0 to 27); end rom; architecture feedTable of rom is type memory is array (0 to 26) of st
45、d _ logic _ vector (0 to 27); signal data1 : memory: = (/10000000000000000000000000000, /10000000000000000000000000000, /01000000000000000000000000000); signal addr1 : integer range 0 to 26; begin addr1=conv _ integer (addr); process (rst, addr1, addr, data1) begin if rst=-1.then feedfactor =data1 (
46、addr1); else feedfactor -Z.); end if; end process; end feedTable;5.2 移位存储器设计 为实现级数n值在329可调的m序列,先生成一个29级的Galois型移位寄存器,该结构的第29位D触发器的输出是否反馈取决于级数n。可用一个信号X来表征相应级数的Galois型结构中的反馈特征,X在移位寄存器状态输出(S(1), S(28)中取值。通过输入5位二进制信号addr 4, 0来确定末位反馈信号X的取值。如当输入addr 4, 0为00000时,反馈信号X=S(1),这样就生成了一个3级的m序列发生器;当输入addr 4, 0为00001时,反馈信号X= S(2),这样就生成了一个4级的m序列发生器;依此类推。该模块的VHDL程序 PROCESS (clk, rst, addr) BEGIN IF (rst =-0.) THEN S-1.); ELSIF (CLKevent and CLK=-1.) THE