一种基于CPLD的伪随机序列发生器
扫描二维码
随时随地手机看文章
摘 要:介绍了一种利用EDA技术,在Altera的MAX 7000S系列芯片上实现的伪随机序列发生器,为产生低成本的电子系统测试信号提供了一种简单易行的方法。 关键词:EDA;VHDL;CPLD;伪随机序列 1 引 言 EDA(Electronic Design Automation,电子设计自动化)是以大规模可编程逻辑器件替代中小规模集成电路作为硬件载体,以EDA软件编程的方式对可编程器件进行电子系统设计的计算机辅助电路设计技术。目前已经广泛应用于电子电路与系统的设计和产品的开发,逐渐取代了传统的手工硬件电路设计方式。设计的系统具有体积小、重量轻、功耗小、速度快、价格低、可靠性高、设计周期短等优点。一个功能完备的EDA设计软件加上一片普通功能的可编程逻辑芯片就可以构成以前需几百个集成电路才能构成的电子系统。 目前常用的可编程逻辑器件有CPLD(ComplexProgrammable Logic Device,复杂可编程逻辑器件)和FPGA(Field Programmable Gate Array,现成可编程门阵列)。常用的EDA软件包括VHDL,Verilog HDL,ABEL等硬件描述语言。其中,VHDL作为IEEE的工业标准硬件描述语言,又受到众多EDA工具厂家的支持,在电子工程领域,已成为事实上的通用硬件描述语言。许多主流EDA开发软件使用集成设计环境,支持多种输入方式,具有综合、适配、仿真和在系统下载等功能,界面友好,操作方便,功能强大,并与第 三方EDA工具兼容良好。 伪随机信号在雷达、遥控、遥测、通信加密和无线电测量系统领域有着广泛的应用。利用VHDL语言进行软件编程,通过EDA设计软件对程序编译、优化、综合、仿真、适配,最后将生成的网表文件配置于制定的目标芯片中,可以实现不同序列长度的伪随机信号发生器。 2 伪随机序列的原理 图1为4级伪随机序列产生的逻辑框图。给寄存器赋除全零外的任何二进制序列作为初始值,当移位时钟脉冲上升沿到来时,每级寄存器的输出作为近邻寄存器的输入,实现数值的右移。其中,第4级与第3级的输出模二加(异或)后移入第1级寄存器。产生一个长度为15个时钟脉冲周期的二进制伪随机序列。 对于一个n级的线性反馈移位寄存器所产生的二进制序列而言,把产生的最大长度序列称为m序列,其长度N=2n-1。不同长度的m序列由不同的线性反馈结构决定,可以用n次本原多项式进行表示: 其中:Ci为第i级的反馈系数,取值为1或0。 表1为部分本原多项式系数,其中列出的整数表示反馈系数为1的级数。 此外,产生相同长度m序列的反馈结构也不是唯一的,由所对应的不同本原多项式决定,其不同本原
3 伪随机序列发生器的VHDL实现 伪随机序列发生器的外部引脚如图2所示。CLK为时钟脉冲,RESET为清零信号,OE为输出使能端,当RESET和OE都为高电平时,序列跟随着CLK的节拍一位一位的从DOUT端输出。除此之外,该伪随机序列发生器最大的特点在于,他能根据SEL端的选择信号产生不同长度的M序列,对应的级数n取值为5~20。基本能够满足各种情况对不同长度伪随机信号的需要。 根据伪随机序列产生的原理,采用行为描述方式用VHDL语言对该逻辑进行硬件描述,程序如下: 4 时序仿真 程序经过编译、优化后,就要选择合适的目标芯片进行综合、管脚配置。选用Altera公司的MAX7000S系列中的EPM7128S芯片,宏单元数为128,采用基于E2PROM的在系统可编程结构,系统时钟频率可达178 MHz,引脚间5 ns恒定延迟,兼容IEEE标准JTAG边界扫描测试(BST)界面。我们选用优化效率和兼容性优秀的综合器Synplify对程序进行综合,将综合生成的网表文件由MAX+Plus II进行仿真,得到如图3所示的结果。 从图3中可以看出,时钟脉冲CLK的周期为20 ns,当模式选择端SEL的组合信号取值为“0000”时,输出端DOUT输出的是5级伪随机序列,长度N=25-1=31,周期为31×20 ns=620 ns;当SEL取值为“0001”时,DOUT输出的是6级伪随机序列,长度为N=26-1=63,周期为63×20 ns=1.26μs。在一个序列周期(长度)内,输出端的信号是无规律的,但是,经过一段较长时间的观测,信号仍然是有规律的。这就是为什么称为“伪”随机信号的原因。 5 结 语 本文介绍的伪随机序列发生器,与由多个分立元件和集成块构成的信号发生器相比,克服了易受温度变化和电磁干扰影响的缺点,具有功能齐全、性能稳定、成本低廉的特点。可以根据需求随时调整序列长度以及时钟脉冲周期,具有较为广泛的应用功能。他既可以作为信号源单独使用,也可以作为一个电子系统的测试信号部分,在系统相关辨识中起着非常重要的作用。
参考文献
[1]潘松,等.VHDL使用教程[M].成都:电子科技大学出版社,2000.
[2]MAX7000 programmable logic device family.Ver.6.6.Altera,2003.6.
[3]QiDa,Yu Cheng.Systemidentification basedon MCUand EDA[J].Proceedings ofthe 2001International Conference on Embedded Systems[M],Beijing,2001:84-87.
[4]张登福,等.伪随机序列及PLD实现在程序和系统加密中的应用[J].电子技术应用,2000,(6):12.
[5]CPLDdatasheethttp://www.dzsc.com/datasheet/CPLD_1136600.html.
[6]MAX7000Sdatasheethttp://www.dzsc.com/datasheet/MAX7000S_1018714.html.
[7]EPM7128Sdatasheethttp://www.dzsc.com/datasheet/EPM7128S_301040.html.
来源:零八我的爱