可控m序列发生器的VHDL实现
基于VHDL的m序列
(1) 随机性 m 序列一个周期N = 2n- 1 内“1”和“0”的码元 数大致相等, “0”出现 2n- 1- 1 次, “1”出现 2n- 1次 (“1”比“0”只多一个) 。m 序列中连续的为“1”或
收稿日期: 2003 数称为游程长度。一个周期 P = 2n- 1 内, 共有 2n- 1个游程, 其中长度为 1 (单“1”, 或 单 “0 ”, ) 的 游 程 占 总 游 程 的 1 2, 长 度 为 2 ( “11”或 “00”) 的游程占总游程的 1 4, 长度为 3 ( “111”或“000”) 的游程占总游程的 1 8, 长度为 k 的 游程占总游程的 1 2k, 只有一个包含 (n 一 l) 个 “0”的游程, 也只有一个包含 n 个 “1”的游程。
示断开, C i= 1 表示连接。因此这个N 阶移位寄存器的
反馈函数为:
n
∑ F (X 1, X 2, …, X n) =
C iX i
i= 1
特征多项式是:
n
∑ f (x ) =
C iX i = C 0 + C 1X 1 + C 2X 2 + … + C nX n
i= 0
特征多项式中的 X i ( i= 0, 1, 2111n) 与移位寄
m Sequence Ba sed on VHDL
FAN Q iuhua, J I Hongyan
(D ep artm en t of Com p u ter Engineering, Q ingdao In stitu te of A rch itech tu re Engineering, Q ingdao, 266033, Ch ina)
《现代电子技术》2003 年第 7 期总第 150 期
vhdl实现SVPWM信号发生器
摘要:本文利用VHDL硬件描述语言设计了一种SVPWM信号发生器,该信号发生器不仅成功实现了输入时间信号到SVPWM触发信号的转换,而且具有良好的抗干扰能力。
此外,其并行处理结构可以保证三相桥臂开关同时动作,有效地提升了控制系统的整体性能。
关键词:FPGA;空间矢量脉宽调制;FSM;SVPWM信号发生器;IP核引言近年来,DSP在SVPWM(空间矢量脉宽调制)控制领域得到了广泛应用。
但是使用DSP单核心的控制方法仍然存在一些缺陷:基于软件的DSP 在实现SVPWM触发信号时需要较长的时钟周期;微处理器中不确定的中断响应会导致PWM脉冲的相位抖动。
针对以上问题,本文提出了一种利用FPGA实现的SVPWM信号发生器,系统结构如图1所示。
作为DSP的外围接口电路,该信号发生器能够屏蔽DSP内部错误中断对输入时间信号的影响,保证输出完整的SVPWM触发信号波形,其三相并行处理结构还能够有效提升系统的动态响应速度。
图1 系统结构图图2 SVPWM信号发生器顶层文件原理图图3 FSM工作流程图图4 SVPWM信号发生器仿真结果SVPWM简介SVPWM的主要思想在于利用逆变器空间电压矢量的切换合成参考电压矢量。
具体方法如下:在桥式电路中,同一桥臂上两个开关的工作状态在任意时刻都是互补的,所以可以用二值逻辑函数表示6个开关的工作状态:k=(A,B,C) (1)由式1可见,3组开关的工作状态共有23=8种,不同的开关工作状态对应着不同的三相输出电压。
这8种工作状态分别对应着8条基本空间电压矢量,任意区域内的空间电压参考矢量都可以由2条非零矢量以及2条零矢量合成。
在进行电压矢量合成时,规定每一次开关动作只能有一相桥臂的工作状态发生转换,目的是为了降低电路中的谐波含量,确定基本电压矢量的切换顺序。
SVPWM信号发生器的设计基本原理图1中DSP采集逆变器交流侧输出电压值,并通过计算得到桥式电路开关的状态保持时间。
SVPWM信号发生器将DSP的输入时间信号转换为开关触发信号,在结构上可以分为数据锁存器和有限状态机两个模块,其顶层文件原理图如图2所示。
基于VHDL可编程m序列发生器的设计及应用
m 序列 广泛应 用 于数字基 带信 号进行 加扰 , 改 善 数字 序列 的位 定 时质 量 与 帧 同步 和 自适 应 时 域 均 衡性 能 , 同时 也是 构 造 平衡 G L O D码 的基 础 . 目 前 , 序 列产 生 电路 的实 现方 法主要 有 3种 : i n 1 )门电路实 现 . 方法设 计简 单 , 随移位 寄 该 但 存 器级 数 的增长 , 电路 装 调 困难 , 占用 的 印制 板 且
计输 入 、 速处 理和器 件编 程 引. 快
线 性反 馈移 位寄存 器 的特征 多项 式 :
摘要 : 介绍 了在 实 际教 学 中应 用 V L设计 出一 种能产 生 1 序 列数 字信 号 的发 生 器. HD T I 该序 列发 生 器具 有序 列长 度 和反 馈 连 接 设 置 , 能产 生 多种 i 列 波形 的 特 点. 软 件 上 采 用 Ata公 司 的 n序 在 lr e
种 序列 . 在今 天 的数 字 信 号 的传 输 中 , 发送 机往
往要 加扰码 器 , 对应 的接 收 端要 加 解 扰器 , n 相 而 l
序列 属 于伪 噪声 序列 和 伪 随 机序 列 , 容 易产 生 、 它
规律 性强 、 很 好 的 自相 关 性 和 较 好 的互 相 关 特 有
一
2 S 程实现 . )D P编 该方 法专 业性 过强 , 适合 不
实际教 学 中应 用. 3 H L与 C L )V D P D实现 . 由于 C L P D的高 集成
度, 而且 V L语 言 编程 较 为 方便 , 可 以大 大减 HD 故
少 电路 的装调 的 困难.
V D H L已成 为 电子工 程 领 域 事实 上 的 通 用硬
基于VHDL的m序列伪随机信号发生器设计 精品
成都电子机械高等专科学校毕业设计论文作者姚世刚学号2009111733系部电子与电气工程系专业电子测量技术与仪器题目基于VHDL的m序列伪随机信号发生器的设计指导教师赵茂林评阅教师完成时间:2012年4 月30日毕业设计(论文)中文摘要题目:基于VHDL的m序列发生器的设计摘要:VHDL/CPLD即复杂可编程逻辑器件作为一种大规模集成电路,可根据用户的需要自行构造逻辑功能,可实现较大规模的电路设计,因此被广泛应用于产品的原型设计和产品生产之中。
几乎所有应用中小规模通用数字集成电路的场合均可应用CPLD器件。
本文介绍了基于CPLD的m序列发生器的设计方法。
关键词:CPLD;MAX+PLUS II;伪随机码;m序列发生器毕业设计(论文)外文摘要Title : M—sequence Generator Based CPLDAbstract: VHDL/CPLD Complex Programmable Logic Device that is, as a large scale integrated circuits can be constructed according to the needs of users on their own logic, enabling large-scale circuit design, it is widely used in product design and prototype production into. Almost all applications of small and medium general-purpose digital integrated circuits may be applied CPLD devices occasions. This article describes the m-sequence generator based on CPLD design method.Key words: CPLD;MAX+PLUS II;Pseudorandom Code;m sequence code Generator目录前言 (6)1课题介绍 (7)1.1为什么研究此课题 (7)1.2伪随机序列的应用与意义 (7)1.3伪随机序列的研究现状 (8)1.4研究内容 (8)2设计中使用芯片及VHDL语言介绍 (9)2.1 CPLD芯片介绍 (9)2.1.1概述 (9)2.1.2 MAX7000特点 (9)2.1.3 EPM7128LC84-7 (11)3 伪随机序列介绍 (12)3.1 伪随机序列理论的发展史 (13)3.2 伪随机序列的构造方法 (13)4 序列信号发生器原理 (14)4.1序列信号发生器的设计 (15)4.1.1反馈移位型序列信号发生器 (15)4.1.2计数型序列码发生器 (18)5 移位寄存器 (20)5.1移位寄存器 (20)5.1.1 寄存器 (20)5.1.2移位寄存器 (21)5.2 线性反馈移位寄存器结构 (22)5.2.1 D触发器 (22)5.2.1.1 D触发器工作原理 (22)5.2.1.2 D触发器真值表 (23)5.2.1.3 特征方程 (23)5.2.1.4 状态转移图 (23)5.2.1.5时序图 (24)5.2.1.6 脉冲特性 (24)5.2.2异或门 (25)5.2.2.1 基本原理 (25)5.2.2.2 异或门逻辑符号 (25)5.2.2.3 逻辑表达式 (25)5.2.2.4 真值表 (25)5.3 线性反馈移位寄存器 (26)5.3.1 什么是反馈移位寄存器 (26)5.3.2 线性反馈移位寄存器 (26)5.3.3 性质 (26)6 伪随机信号 (27)6.1 伪随机信号 (27)6.2 m序列码发生器 (30)7 m序列性质 (33)7.1 均衡性 (33)7.2游程特性 (33)7.3 移位相加性 (33)7.4 相关特性 (33)7.5 伪随机特性 (34)8 序列信号发生器的设计和仿真实现 (35)8.1 m序列生成单元的电路设计 (35)8.1.1 系统组成 (35)8.1.2 程序方框图 (36)8.2 m序列发生器 (36)8.3 VHDL语言实现 (37)8.4 仿真数据及结论 (39)结论 (42)致谢 (43)参考文献 (43)前言CPLD(Complex Programmable Logic Device)复杂可编程逻辑器件,是从PAL和GAL器件发展出来的器件,相对而言规模大,结构复杂,属于大规模集成电路范围。
M序列用于防窃听技术的VHDL实现
第4卷第2期2005年5月 淮阴师范学院学报(自然科学版)JOURNA L OF HUAIYIN TE ACHERS CO LLEGE (NAT URA L SCIE NCE E DITION ) V ol 14N o 12May.2005 M 序列用于防窃听技术的VHDL 实现尹晓琦1,2,殷奎喜1,万惠琳1(1.南京师范大学物理科学与技术学院,南京 210097;2.淮阴工学院电子信息工程系,江苏淮安 223001)摘 要:介绍了m 序列的性质、产生方法及m 序列在保密通信中的应用.利用m 序列使加密的信号具有伪噪声的特点,以达到隐藏信息的目的,在信号接收端再加以解密,恢复出原始信号.文中给出了原理框图和基于MAX +PlusII 平台用VH D L 语言实现的仿真波形.关键词:m 序列;VH D L ;加密;移位寄存器;伪随机序列中图分类号:TP33211 文献标识码:A 文章编号:167126876(2005)022******* 收稿日期:2004212212 作者简介:尹晓琦(19752),女,江苏淮阴人,讲师,在读硕士,主要从事通信和数字逻辑电路方面的研究.0 引言伪随机序列(Pseudonoise Sequence )又称伪噪声或伪随机码,具有类似随机信号的一些统计特性,但又是有规律的,容易产生和复制的.最大长度线性移位寄存器序列(m 序列)是保密通信中非常重要的一种伪随机序列,它具有随机性、规律性及较好的自相关和互相关性,而且密钥量很大,可以用于数字通信的加密和解密处理[1].本文主要介绍了m 序列的性质[2,3],产生方法及m 2序列在保密通信中的应用,给出了原理框图和仿真波形.1 m 序列的性质1.1 均衡特性m 序列每一周期中1的个数比0的个数多1个.由于p =2n -1为奇数,因而在每个周期中1的个数为(p +1)/2=2n -1为偶数,而0的个数为(p -1)/2=2n -1-1为奇数.1.2 随机性一个序列中取值(1或0)相同连在一起的元素合称为一个游程.一个游程中元素的个数称为游程长度.m 序列的一个周期(p =2n -1)中,游程总数为2n -1.其中长度为1的游程个数占游程总数的1/2;长度为2的游程个数占游程总数的1/4;长度为3的游程个数占游程总数的1/8;长度为k 的游程个数占游程总数的1/2k ,其中1≤k ≤(n -2).而且在长度为k 的游程中,连1游程与连0游程各占一半,长为(n -1)的游程是连0游程,长为n 的游程是连1游程.1.3 自相关性和互相关性m 序列和其移位后的序列逐位模2加,所得的序列还是m 序列,只是相位不同.m 序列发生器中的对于2个不同相位的m 序列,当周期p 很大并且τ模p ≠0时,这2个序列几乎是正交的.2 m 序列的产生m 序列是由带线性反馈的移位寄存器产生的周期最长的一种二进制序列.线性反馈移位寄存器的一般结构如图1所示.它由n 级移位寄存器、若干模二加法器组成线性反馈逻辑网络和时钟脉冲产生器连接而成.图1 线性反馈移位寄存器图中移位寄存器的状态用a i 表示(i =0,1,…,n -1),c i 表示反馈线的连接状态,相当于反馈系数,c i =1表示此线接通,参与反馈逻辑运算,c i =0表示此线断开,不参与运算,c 0=c n =1.通常移位寄存器的最后一级做输出,输出序列为{a k }=a 0a 1…a n -1…输出序列是一个周期序列,其特性由移位寄存器的级数、初始状态、反馈逻辑及时钟频率所决定.211 递推关系式设图1中的线性反馈移位寄存器的初始状态为(a 0a 1…a n -1),经一次移位线性反馈,移位寄存器左端第一级的输入如式1所示:a n =c 1a n -1+c 2a n -2+…+c n -1a 1+c n a 0=∑ni =1c i a n -i (1)若经k 次移位,则第一级的输入为a l =∑ni =1c i a l -i (2)其中,l =n +k -1≥n ,k =1,2,3,…212 特征多项式用特征多项式f (x )来描述线性反馈移位寄存器的反馈连接状态:f (x )=c 0+c 1x +…+c n x n =∑ni =0c i x i (3)其中,x i 存在表明c i =1,否则c i =0,x 本身的取值无实际意义,c i 的取值决定了移位寄存器的反馈连接.由于c 0=c n =1,因此f (x )是一个常数项为1的n 次多项式,n 为移位寄存器的级数.213 产生m 序列的充要条件一个n 级线性反馈移位寄存器能产生m 序列的充要条件是它的特征多项式为一个n 次本原多项式[3].即f (x )满足下列条件:1)f (x )为既约多项式;2)f (x )可整除(x p +1),p =2n -1;3)f (x )除不尽(x q +1),q <p.3 数字通信的加密加密的基本思想是:用m 序列将携带信息的数字信号在统计结构上随机化,即“白化”,以达到隐藏信息的目的,对于0、1序列,在实现时只要用m 序列与原信号进行异或,得到的密文是类似于白噪声的伪随机序列[3,4].将这种加密序列在信道里传输,被他人窃听也无法理解其内容.解密时只有用完全相同的m 序列对密文再次进行异或,才能还原出原信号.原理框图如图2所示.311 m 序列产生器用线性反馈移位寄存器构成m 序列产生器,关键是由特征多项式f (x )来确定反馈线的状态.图3为4级m 序列产生的逻辑框图.对应的本原多项式为711第2期尹晓琦:M 序列用于防窃听技术的VH D L 实现f (x )=(x 4+x 3+1)(4)给寄存器赋除全零外的任何二进制序列作为初始值当移位时钟脉冲上升沿到来时,每级寄存器的输出作为近邻寄存器的输入,实现数值的右移.其中,第4级与第3级的输出模二加(异或)后移入第1级寄存器.产生一个长度为15个时钟脉冲周期的二进制伪随机序列.设4级移位寄存器的初始状态为a 13a 22a 31a 40=1111,则输出序列为:1111→0111→0011→0001→1000→0100→0010→1001→1100→0110→1011→0101→1010→1101→1110→1111,输出序列{a k }的周期长度为15.312 数字信号的加密与解密如图2所示,信源发送的数码为X ,数码X 与m 序列Y 的各对应位分别进行模二加运算后,获得序列E ,这时E 序列已失去了原信息的意义,将这种加密序列在信道中传输,即使被别人窃听,如果不知道m 序列Y ,就无法解出携带原信息的数码X ,从而起到加密的作用.假设信道传输过程中无误码,序列E 到达接收端后与m 序列Y 再进行模二加运算,可恢复原数码X ,即:E Y =X Y Y =X.313 VHDL 语言的仿真波形硬件描述语言VHDL (VHSIC Hardware Description Language )是电子设计自动化(EDA )的工具,主要用于描述数字系统的结构、行为、功能和接口.EDA 技术以计算机为工具,完成数字系统的逻辑综合、布局布线和设计仿真等工作,极大地提高了设计效率[5][6].设计仿真是进行设计验证的主要手段.逻辑仿真能够验证设计的功能,时序仿真可以估计系统时延.选用Altera 公司的MAX7000S 系列中的EPM7128S 芯片,宏单元数为128,采用可编程逻辑设计软件平台MAX +PlusII 进行仿真,得到如图4、图5所示结果.设信源发送的数码为X ={100101101010…},m 序列Y ={110001011011…}.源程序如下:图2 加密的原理框图①信号加密程序:library ieee ;use ieee.std -logic -1164.all ;entity jiami isport (X ,Y :in bit ; E :out bit );End ;architecture a of jiami isbegin E <=X nor Y ;End;图3 m 序列产生器②信号解密程序:library ieee ;use ieee.std -logic -1164.all ;entity jiemi isport (E ,Y :in bit ; X :out bit );End ;architecture a of jiemi isbegin X <=E nor Y ;End ;811淮阴师范学院学报(自然科学版)第4卷图4 信源端加密波形图5 用户端解密波形从仿真波形可以看出,解密输出的信号X 就是原始信码,而在信道中传输的E 信号为加密信号,并且,由于m 序列Y 的伪噪声特性,使得E 信号具有类似白噪声的特点,有效的防止了通信过程中信号被窃取.4 结束语由于m 序列的伪随机性、较好的自相关性等特点,用m 序列加密数字信号,加密后的信号类似白噪声,在通信过程中具有实时性、可靠性高等优点.参考文献:[1] 张登福.伪随机序列及P LD 实现在程序和系统加密中的应用[J ].电子技术应用,2000,27(6):1214.[2] 范秋华,季鸿雁.基于VH D L 的m 序列[J ].现代电子技术,2003,15(7):3233.[3] 王兴亮等.数字通信原理与技术[M].西安:西安电子科技大学出版社,20001239247.[4] 胡德文.伪随机整数串与伪随机序列产生的新方法[J ].中国科学,2000,30(3):258263.[5] 张亦华等.数字逻辑设计实验技术与E DA 工具[M].北京:北京邮电大学出版社,20031124145.[6] 宋万杰,罗丰.CP LD 技术及其应用[M].西安:西安电子科技大学出版社,200112330.M Sequence B ased on VH DL and Applied to Bugging DefenseYI N X iao 2qi 1,2,YI N K ui 2xi 1,WAN Hui 2lin 1(1.C ollege of Physical Science and T echnology ,Nanjing N ormal University ,Nanjing 210097,China )(2.Department of E lectronics and In formation ,Huaiyin Industry C ollege ,Jiangsu Huaian 223001,China )Abstract : Introduced the character 、the mading way of m sequence and its application to secret communication.T o make the encryption signal be like pseudonoise in order to hide in formation ,and decrypt the encryption signal at the receiving port to resume the original signal.given the m odule chart of principle and simulating waveform relized by VH D L language on MAX +PlusII.K ey w ords : m 2sequence ;VH D L ;encryption ;shift register ;pseudonoise sequence[责任编辑:李晓薇]911第2期尹晓琦:M 序列用于防窃听技术的VH D L 实现。
基于VHDL的多波形m序列发生器的设计
1 、引言
VHDL(超高速硬件描述语言)是一种 符合 I E E E 工业标准的硬件描述语言,在 EDA(电子设计自动化)领域得到广泛的 应用。应用 VHDL 进行电子系统设计,可 以使用自顶向下的设计方法,设计成果标 准化,可移植性好,具有与硬件无关的特 性,因此特别适合于大规模的专用电子系 统的开发。
3.2 一般情况 为了得到纳米摩擦在一般情况下的规 律性,模拟过程中设置了相关可调参数,如 表 1 所示。 在 KBT=0.1 ε,势能 u0(0.01 ε~0.04 ε),UP(0.03~0.09),UA(0.03~0.09)情况 下,模拟 C 在(0.03~0.09)之间对摩擦系数 的影响。图 3 给出了不同势能 u0 大小,不 同 UP,UA 情况下得到的摩擦系数的倒数 随 C 的变化曲线。 由图可以看出,最显著的特点是在不 同摩擦条件下的摩擦系数倒数曲线随 C 的 变化在 C=0.5 处出现了汇聚且出现最小值, 而在两侧则离散增加。当 C=0.5 时出现摩 擦系数倒数最小值,也就是出现了摩擦系 数最大值,即在完全匹配的情况下出现摩 擦最大值。完全匹配处之所以出现摩擦最 大值的原因在于此时所有的附加原子步伐 统一,能够同时受到衬底原子的拉力而加 速移动,又能够同时受到阻力减速,相互之 间无法将能量转化为势能保存,而只能以 热量的形式进行耗散。曲线的聚合同时说 明对于纳米摩擦无论势能形式如何组合变 化,势能大小的如何变化,在对摩擦的调制 作用中界面晶格匹配度 C 对整个摩擦过程 的调制作用最为明显,在完全匹配的情况 下摩擦最大。 由图可以发现另一个特点,摩擦系数 在 C 为 0.5 两侧随C的增大或者减少而迅速 减小,但在 C 为 0.8 时出现了转折点。此转 折点在不同的条件下,对摩擦的调制作用 表现出不同程度的影响,说明此转折点为 复合势能情况下产生的影响,而这种调节 作用与势能周期比例 U P 和势能振幅比例 UA 之间存在非线性关系。转折点的出现原 因为附加原子在不同的衬底复合势能阱中 进行运动时受到衬底原子的拉扯作用产生 了强烈的声子振动所带来的影响,这种拉 扯作用主要受到势能振幅比例与势能周期 之间的比例关系的影响。当处于衬底势能 最高点时,附加原子将出现失稳并自动跳跃 到下一势能最低点,然后在此平衡位置剧烈 震荡和激发声子,从而使能量不可逆地以声
基于FPGA的M序列的设计与实现_冀勇钢
参考文献
ቤተ መጻሕፍቲ ባይዱ
[1] Application Using the TMS320C6000 Enhanced DMA . TI,2001.
66
2007.9 www.ecda.cn
!!!!!!!!!!!!!"
!!!!!!!!!!!!!!!!!!!!"
[2] TMS320C6000 Optimizing Compiler User’s Guide .TI , 2001.
0 引言
扩频通信系统与传统通信系统的区别在于其 利用伪随机序列来实现扩频与解扩步骤。而伪随 机序列作为扩频通信系统的关键, 将直接影响到 系统的性能。
信息论的奠基人香农提出的编码定理指出: 只要信息速率Rb小于信道容量C, 那么, 就总 可 以找到某种编码方法, 在码周期相当长的条件 下, 几乎无差错的从受到高斯噪声干扰的信号中 复制出原来发送的信息。这里有两个条件: 一是 Rb小 于C, 二 是 编 码 的 码 长 周 期 足 够 长 。 同 时 , 香农在证明编码定理的时候, 也提出了使用具有 白噪声统计特性的信号来编码。
[3] 江 思 敏 、刘 畅.TMS320C6000DSP应 用 开 发 教 程[M].北 京: 机械工业出版社, 2005.
!!!!!!!!!!!!!!!!!!!!"
本刊启事
为适应我国信息化建设, 扩大本刊及作 者知识信息交流渠道, 本刊已被CNKI中国期 刊全文数据库网络出版, 其作者著作权使用 费与本刊发表费用一次性处理。如作者不同 意文章被收录, 请在来稿时向本刊声明, 本 刊将做适当处理。
行仿真, 本例程在QuartusII下得到的寄存器传输 级电路图和仿真波形如图5所示。
3 结束语
基于FPGA可配置m序列发生器的设计与实现
基于FPGA可配置m序列发生器的设计与实现晏浩文;陈伟;吴琼;黄庆超;刘建国;祝宁华【摘要】In allusion to the demand of variable m-sequence in some design occasions,an m-sequence generator scheme based on FPGA is proposed and verified. In the scheme,the linear feedback shift register structure is adopted,and the generat-ed m-sequence can be changed by using peripherals to configure the initial state of the generator. The Modelsim simulation soft-ware is used to perform simulation for the design,and the m-sequence generator is applied to a certain optical frequency hop-ping secure communication system to accomplish the experimental verification. The results show that the m-sequence generator realized by this scheme has simple structure,is easy to be integrated,can produce a large number of different m-sequences, and has the characteristic of dynamic configuration.%针对某些设计场合对可变m序列的需求,提出并验证了一种基于FPGA的m序列发生器方案.该方案采用线性反馈移位寄存器的结构,可通过外设对发生器的初始状态进行配置来改变所产生的m序列.使用ModelSim仿真软件对此设计进行了仿真,并将该m序列发生器应用于某光跳频保密通信系统中完成了实验验证.结果表明,使用该方案实现的m序列发生器结构简单、易于集成,可产生大量不同的m序列,且具有可动态配置的特点.【期刊名称】《现代电子技术》【年(卷),期】2018(041)008【总页数】4页(P1-4)【关键词】FPGA;m序列;信号发生器;移位寄存器;ModelSim仿真软件;光跳频通信系统【作者】晏浩文;陈伟;吴琼;黄庆超;刘建国;祝宁华【作者单位】中国科学院半导体研究所,北京100083;中国科学院大学,北京100049;中国科学院半导体研究所,北京100083;中国科学院半导体研究所,北京100083;中国科学院半导体研究所,北京100083;中国科学院半导体研究所,北京100083;中国科学院半导体研究所,北京100083【正文语种】中文【中图分类】TN911-34;TN918m序列作为伪随机序列[1]的一种,具有优良的伪随机序列性质,在雷达[2]、导航[3]、常规通信[4-5]、保密通信[6]、地球物理勘察[7]和电子对抗[8]等领域中都有着广泛的应用。
任意级数的快速m序列发生器的设计
任意级数的快速m序列发生器的设计邹学玉【摘要】设计了一种基于Galois结构的任意级数的快速m序列发生器,详细介绍了各功能模块,通过QuartusⅡ对系统进行了仿真与验证.结果表明,该方法实现的m 序列发生器结构简单,延时小,速度快,适用范围广.【期刊名称】《长江大学学报(自然版)理工卷》【年(卷),期】2010(007)003【总页数】4页(P89-92)【关键词】m序列;FPGA;Galois结构【作者】邹学玉【作者单位】长江大学电子信息学院,湖北,荆州,434023【正文语种】中文【中图分类】TN914.4;TP312m序列是一种伪随机序列, 具有优良的自相关函数, 容易产生和复制,在数字基带信号的加扰、扩频通信、雷达、通信系统的测量、石油地震勘探等领域都有着广泛的应用,因而m序列的产生一直是国内外信息领域的研究热点[1~4]。
近年来,随着可编程逻辑器件FPGA/CPLD的不断发展,在很多高速设计和高速测试的场合,都希望能够在FPGA中直接实现不同级数的m序列发生器。
传统的大数乘法产生伪随机数方法受到时钟频率不能太高的限制,并且需要消耗FPGA/CPLD内大量的资源[4],因而要找到一种合适的逻辑结构来高速产生任意级数的m序列并运行于较高的工作频率。
基于Fabonacci结构的FPGA设计一种任意级数和初始相位均可调的m序列发生器,因Fabonacci结构的反馈网络较大延时随级数的增加而增加,制约了m序列产生速度的提升[5]。
基于Galois结构的m序列发生器,其反馈网络简单,其运算延时基本不随级数的变化而变化,这有利于以相同的高速产生不同级数的m序列。
由于Galois结构与Fabonacci结构的反馈系数不同,因而需要从Fabonacci结构的反馈系数中导出Galois结构的反馈系数[6]。
为此,笔者基于Galois结构的反馈系数表设计出快速m序列发生器。
m序列信号发生器是在n级线性移位寄存器[6~8]的基础上,加上反馈逻辑电路构成的。
基于FPGA的VHDL语言m序列生成详解+源码
说明可控m序列产生器我分成四个小模块来做,M,M1,M2,M3分别对应为:m序列产生器、控制器、码长选择器、码速率选择器。
一、M: m序列产生器这是该设计的核心部分,原理就是设计一个通用m序列产生子单元,然后由外部选择器来写入码型,码长等参数,加以循环可连接成任意长度的m序列产生器,其子单元结构如下:如上图,若N=15,就有15个这样的子单元首尾相接。
注意:开头和结尾的两个子单元会有所不同,因为首单元需要输入初值,尾单元要进行直通反馈,在程序里请多留意。
图中,主要部件是一个D触发器,Q(N+1)为上一级输出;Q(N)既是本级输出;CP为选择后的时钟脉冲;B(N)为本级参数选择控制;A(N)受控于B(N),决定本级输出Q(N)是否反馈(B(N)为1时反馈);C(N)为本级反馈;C(N-1)为下一级反馈。
具体原理参看m序列组成结构。
此外,本程序还加入了EN(发送控制)、RN(首单元置数)、SEL1(码长选择,即N的选择,N=2-15)、SEL2(码型选择,即正逆码选择)四个控制端,可满足设计要求。
OP为码输出端。
二、M1:控制器控制器主要是将外部的序列发送控制信号STA转换为EN和RN 两个控制信号。
其中,EN与STA的波形基本一致,只是它与CP进行了同步处理;RN在EN为‘1’的头一个脉冲周期里置高电平,以达到为序列发生器的首端置数的目的。
如果不清楚的话可以看一下它的模拟波形。
(注意:STA要采用自锁定开关,高电平有效)三、M2:码长选择序列的码长选择既是N值的选择,码长=2**N-1。
核心就是一个计数器,可从2计到15。
按一次PUSH就可以自动加一(注意:按键建议采用自弹跳按键,如过需要软件清除按键震颤的话,我再做发给你),没有0,1两个状态。
如果需要的话还可以扩展7段数码管的接口,以显示N值。
四、M3:码速率选择器码的传输速率是靠CP来控制的,CP的频率就等于码元速率。
这段程序包含一个倍频器,一个5分频的分频器,可把5MHZ的脉冲源CLK扩展成1MHZ和10MHZ。
课程设计论文基于FPGA的m序列发生器
基于FPGA的m序列发生器摘要m序列广泛应用于密码学、通信、雷达、导航等多个领域,本文提出了一种基于FPGA的伪随机序列产生方法,应用移位寄存器理论从序列的本原多项式出发,获得产生该序列的移位寄存器反馈逻辑式,结合FPGA芯片结构特点,在序列算法实现中采用元件例化语句。
算法运用VHDL语言编程,以A1tera的QuartusⅡ软件为开发平台,给出了序列的仿真波形。
序列的统计特性分析表明:该方法产生的序列符合m序列的伪随机特性,验证了算法的正确性。
关键词:m序列;移位寄存器理论;VHDL语言目录摘要 (I)1 m序列 (1)1.1 理论基础 (1)1.1.1 线性反馈移位寄存器 (2)2 m序列的性质 (5)2.1 均衡性 (5)2.2游程特性 (5)2.4 自相关特性 (5)2.5 伪噪声特性 (7)3 m序列的应用 (9)3.1 扩展频谱通信 (9)3.2 通信加密 (10)4 开发工具简介 (11)4.1 Quartus II简介 (11)4.2 数字系统开发流程 (12)4.3 FPGA简介 (12)5 m序列生成器仿真分析 (16)5.1 反馈系数表存储器设计 (16)5.2 移位存储器设计 (17)5.3 仿真分析 (18)参考文献 (20)附录 (22)1 m序列m序列是伪随机序列的一种 ,结构简单 ,实现方便。
在现代工程实践中 , m 序列在通讯、导航、雷达、通信系统性能的测量等领域中有着广泛的应用。
例如 , 在连续波雷达中可用作测距信号 , 在遥控系统中可用作遥控信号 , 在多址通信中可用作地址信号 , 在数字通信中可用作群同步信号 ,还可用作噪声源及在保密通信中起加密作用等。
伪噪声发生器在测距、通信等领域的应用日益受到人们重视。
目前,m序列产生实现方法主要有3种:(1)门电路实现该方法设计简单,但随移位寄存器级数的增长,电路装调困难,且占用的印制板面积较大。
(2)DSP编程实现该方法专业性过强,不适合一般用户。
学号-姓名-PN码的产生基于VHDL仿真
PN码发生器的设计及CPLD芯片的仿真实现姓名:_ _ 专业及年级:_电子2009__ 学号:_______ 一.课题目标研究PN码的基本原理,以及CPLD数字可编程逻辑芯片下的编程仿真实现。
二.基本原理1、伪随机序列产生原理及作用:伪随机噪声具有类似于随机噪声的一些统计特性,同时又便于重复产生和处理。
由于它具有随机噪声的优点,又避免了它的缺点,因此获得了日益广泛的应用。
目前广泛应用的伪随机序列都是由数字电路产生的周期序列得到的,我们称这种周期序列为伪随机序列。
对与伪随机序列有如下几点要求:①应具有良好的伪随机性,即应具有和随机序列类似的随机性;②应具有良好的自相关、互相关和部分相关特性,即要求自相关峰值尖锐,而互相关和部分相关值接近于零。
这是为了接收端准确检测,以减少差错;③要求随机序列的数目以保证在码分多址的通信系统中,有足够的地址提供给不同的用户;④要求设备简单,易实现,成本低。
通常产生伪随机序列的电路为一反馈移存器。
它又分为线形反馈移存器和非线形反馈移存器两类。
由线形反馈移存器产生出的周期最长的二进制数字序列称为最大长度线形反馈移存器,通常称为m序列。
由于它的理论比较成熟,实现比较简便,实际应用也比较广泛,故在这里以m序列发生器为例,设计伪随机序列发生器。
m序列是由带线形反馈的移存器产生的周期最长的一种序列。
线形反馈移位寄存器由时钟控制若干个串接的存储器所组成。
在时钟信号的控制下,寄存器的存储信号由上一级向下一级传递。
如果让某些寄存器的输出反馈回来进行运算,运算结果作为第一级寄存器的输入,则我们可以得到一个移位寄存器序列。
如果移位寄存器的反馈函数和初始状态不同,那么可得到不同的移位寄存器序列。
线性移位寄存器的一般形式如图1所示,总共有1,2,3,…,N 个寄存器,他们的状态为X i (i=1,2,3,…,n ),经C i (I=1,2,3,…,n )相乘后模2加,再反馈。
这里C i ∈(0,1),且乘法规则是0·0=0·1=1·0=0,1·1=1。
基于VHDL的m序列伪随机信号发生器设计 精品
成都电子机械高等专科学校毕业设计论文作者姚世刚学号2009111733系部电子与电气工程系专业电子测量技术与仪器题目基于VHDL的m序列伪随机信号发生器的设计指导教师赵茂林评阅教师完成时间:2012年4 月30日毕业设计(论文)中文摘要题目:基于VHDL的m序列发生器的设计摘要:VHDL/CPLD即复杂可编程逻辑器件作为一种大规模集成电路,可根据用户的需要自行构造逻辑功能,可实现较大规模的电路设计,因此被广泛应用于产品的原型设计和产品生产之中。
几乎所有应用中小规模通用数字集成电路的场合均可应用CPLD器件。
本文介绍了基于CPLD的m序列发生器的设计方法。
关键词:CPLD;MAX+PLUS II;伪随机码;m序列发生器毕业设计(论文)外文摘要Title : M—sequence Generator Based CPLDAbstract: VHDL/CPLD Complex Programmable Logic Device that is, as a large scale integrated circuits can be constructed according to the needs of users on their own logic, enabling large-scale circuit design, it is widely used in product design and prototype production into. Almost all applications of small and medium general-purpose digital integrated circuits may be applied CPLD devices occasions. This article describes the m-sequence generator based on CPLD design method.Key words: CPLD;MAX+PLUS II;Pseudorandom Code;m sequence code Generator目录前言 (6)1课题介绍 (7)1.1为什么研究此课题 (7)1.2伪随机序列的应用与意义 (7)1.3伪随机序列的研究现状 (8)1.4研究内容 (8)2设计中使用芯片及VHDL语言介绍 (9)2.1 CPLD芯片介绍 (9)2.1.1概述 (9)2.1.2 MAX7000特点 (9)2.1.3 EPM7128LC84-7 (11)3 伪随机序列介绍 (12)3.1 伪随机序列理论的发展史 (13)3.2 伪随机序列的构造方法 (13)4 序列信号发生器原理 (14)4.1序列信号发生器的设计 (15)4.1.1反馈移位型序列信号发生器 (15)4.1.2计数型序列码发生器 (18)5 移位寄存器 (20)5.1移位寄存器 (20)5.1.1 寄存器 (20)5.1.2移位寄存器 (21)5.2 线性反馈移位寄存器结构 (22)5.2.1 D触发器 (22)5.2.1.1 D触发器工作原理 (22)5.2.1.2 D触发器真值表 (23)5.2.1.3 特征方程 (23)5.2.1.4 状态转移图 (23)5.2.1.5时序图 (24)5.2.1.6 脉冲特性 (24)5.2.2异或门 (25)5.2.2.1 基本原理 (25)5.2.2.2 异或门逻辑符号 (25)5.2.2.3 逻辑表达式 (25)5.2.2.4 真值表 (25)5.3 线性反馈移位寄存器 (26)5.3.1 什么是反馈移位寄存器 (26)5.3.2 线性反馈移位寄存器 (26)5.3.3 性质 (26)6 伪随机信号 (27)6.1 伪随机信号 (27)6.2 m序列码发生器 (30)7 m序列性质 (33)7.1 均衡性 (33)7.2游程特性 (33)7.3 移位相加性 (33)7.4 相关特性 (33)7.5 伪随机特性 (34)8 序列信号发生器的设计和仿真实现 (35)8.1 m序列生成单元的电路设计 (35)8.1.1 系统组成 (35)8.1.2 程序方框图 (36)8.2 m序列发生器 (36)8.3 VHDL语言实现 (37)8.4 仿真数据及结论 (39)结论 (42)致谢 (43)参考文献 (43)前言CPLD(Complex Programmable Logic Device)复杂可编程逻辑器件,是从PAL和GAL器件发展出来的器件,相对而言规模大,结构复杂,属于大规模集成电路范围。
基于VHDL可编程m序列发生器的研制
基于 VHDL 可编程 m 序列发生器的研制赵林军(陕西理工学院 电子与信息工程系 陕西 汉中 723003)摘 要: 提出一种可实现周期ƒ初相位编程控制的 m 序列发生器逻辑电路的设计方案。
给出了 V HDL 与 C P L D 的实现 方 案。
程序经编译、仿真、测试后, 可以实现设计要求。
该器件在M C S 51 的控制下, 实现m 序列的周期、初相位的编程变关键词: m 序列发生器; V HDL ; 逻辑电路; C P L D中图分类号: TN 914142文献标识码: B文章编号: 1004 373X (2004) 14 033 02Re s ea r ch an d D eve lop m en t of Programm a b le m Sequen ce Gen e ra tor Ba sed on VHDLZHA O L in jun(D ep a r t m en t o f E lec t ro n i c & Info rm a t i o n E ng inee r ing , Shaanx i U n i ve r s ity o f T echno lo gy , H anzho ng , 723003, C h ina )A b stra c t : T h e a r t i c l e in t r o d uce s o n e o f m sequ en ce gen e r a t o r s , w h ich deve l op ed ba s in g o n V HDL lan guage an d can beenp ro g r am m ab le o n p e r i o d s f r om 22 - 1 to 232- 11 W e exp lica t ed m ak in g p r i n c i p le an d w o rk i n g co u r s e , fu r t h e r m o re , gave th e h a r d w ir ec i rcu it o f th e i m p lem en t th a t h a s g r ea t l y p rac t i ca l and refe r en t i a l va l ue 1Keywords : m sequ en ce gen e r a t o r ; V HDL ; lo g i ca l c i rcu it ; C P L Dm 序列广泛应用于数字基带信号进行加扰, 改善数字 序列的位定时质量与帧同步和自适应时域均衡性能, 同时 也是构造平衡 G OL D 码的基础。
序列信号发生器VHDL设计实验报告
实验三序列信号发生器VHDL设计一、实验目的1、设计一个序列信号发生器,可以在时钟的作用下周期性的产生1110010序列信号2、学习时序电路的设计方法;3、掌握产生周期性信号电路的设计方法;4、掌握同步和异步概念;5、掌握仿真的目的和作用;二、实验环境QuartusII 、PC机、GW-PK2 EDA实验箱三、实验原理给出原理图,说明行为描述方式设计序列信号发生器的原理。
可以产生周期信号的序列信号发生器由计数器和译码器构成。
若想产生1110010序列信号,则需要三位二进制计数器,从000记到110,当时钟是上升沿时,若当前记到110,则将计数清为000,再从头开始,否则计数加1,译码器将每个三位二进制数转换为一位序列信号,计数器和译码器分别由两个进程实现。
四、实验内容及要求利用QuartusII完成序列信号发生器的VHDL设计及仿真测试,给出仿真波形,进行引脚锁定,并在实验箱上进行硬件验证。
五、实验步骤(1)用文本方式输入设计文件并存盘①创建工程,利用“New Preject Wizard”创建此设计工程。
选择菜单“File” “New Preject Wizard”,点击Next,即可弹出工程设置对话框点击此框最上一栏右侧的按钮“…”,设置工程路径,找到文件夹D:\Quartus8\vhdl_code\three,填写工程名和顶层文件名称后,点击Next按钮进行下一步。
②添加设计源程序。
如果已有源程序,可以在此加入到工程中,如果没有点击Next进行下一步。
③选择目标芯片。
首先在“Family”栏选芯片系列,在此选“ACEX1K”系列,选择此系列的具体芯片:EP1K30TC144-3。
④选择仿真器和综合器类型。
点击上图的Next按钮,这时弹出的窗口是选择仿真器和综合器类型的,如果都是选默认的“NONE”,表示都选QuartusII中自带的仿真器和综合器,因此,在此都选默认项“NONE”。
⑤结束设置。
基于VHDL语言的序列发生器设计
基于VHDL语言的序列发生器设计
焦鹏;邓正万
【期刊名称】《数字技术与应用》
【年(卷),期】2023(41)1
【摘要】在介绍了序列信号发生器的基础上,给出了利用VHDL语言设计的具体方法。
结合MAX+PLUS II的波形仿真功能,验证设计的正确性。
1序列信号发生器简介数字信号采用二值信息“0”和“1”来表示两个相对的状态,如脉冲的有、无或电平的高、低。
例如:若用“1”表示高电平,则“0”可表示低电平;若用“0”表示有脉冲,则“1”可表示无脉冲。
数字电路中,“0”和“1”仅表示两种相对独立的状态,没有数值上的大小概念,在实际应用中,两个相对独立的状态可用电子器件的开关特性来实现,就是利用二极管、三极管、场效应管等元器件的开关特性,如完全导通表示一种状态,完全截止表示另一种状态。
因此,数字电路的传输与信号处理无论在电路结构还是研究内容、分析方法均与模拟电路不同。
【总页数】3页(P171-173)
【作者】焦鹏;邓正万
【作者单位】江苏商贸职业学院
【正文语种】中文
【中图分类】TP391.9
【相关文献】
1.基于VHDL的GOLD序列发生器的设计与实现
2.基于VHDL可编程m序列发生器的设计及应用
3.基于VHDL语言的数字波形发生器的设计
4.基于VHDL全状态伪随机序列发生器的设计
5.基于VHDL的多波形m序列发生器的设计
因版权原因,仅展示原文概要,查看原文内容请购买。
可控m序列发生器的VHDL实现
可控m序列发生器的VHDL实现杨晶超1.设计类型图1 n位线性反馈移位寄存器结构(1) n=5的m序列;(2) 反馈系数Ci=45(八进制),转化为二进制为100101,即C0=1,C1=0,C2=0,C3=1,C4=0,C5=1;(3) 5级移位寄存器(D5~D1)初始状态为10000。
基于以上条件,得到输出周期为31的m序列为1000010010110011111000110111010。
2.可控目标(1) 可以控制延迟若干个码元后开始发送;(2) 可以控制相邻两组m序列之间的发送间隔码元数;(3) 可以控制在发送若干组m序列之后结束。
其中,延迟、间隔和结束均用高电平表示。
3.程序流程图2 主流程图图3 延迟X个码元发送图4 间隔Z个码元发送图5 发送Y组m序列4.实现结果图6 延迟0个码元,间隔5个码元,发送2个周期图7 延迟1个码元,间隔10个码元,发送3个周期图8 延迟2个码元,间隔15个码元,发送4个周期附程序代码:library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity m_sequence isgeneric (length : positive: =4;tap1 : positive: =4;tap2 : positive: =2);port (clk, reset : in bit;prbs : out bit);end m_sequence;architecture Behavioral of m_sequence issignal prreg : bit_vector (length downto 0);signal enable : std_logic:='0';signal enable2 : integer: =0;signal cnt : integer: =0;beginprocess (clk)variable count: integer: =0;beginif (clk'event and clk='1') thenif (count < 2 or cnt = 4) then --延迟2个码元,发送4个周期count: = count + 1;enable <='0';else enable <='1';end if;end if;end process;process (clk, reset, prreg, enable)beginif reset='0' thenprreg<=(length=>'1',others=>'0'); --初始状态elsif (clk'event and clk='1') and enable='1' thenprreg<=prreg ((length-1) downto 0) & (prreg (tap1) xor prreg (tap2));if prreg="01000" thenenable2<=15; --间隔15个码元cnt<=cnt+1;else enable2<=0;end if;if enable2 /= 0 thenenable2 <= enable2 - 1;prreg<= (length=>'1', others=>'0');end if;end if;end process;process (enable, prreg (length))beginif enable='1' thenprbs<=prreg (length);else prbs<='1';end if;end process;end Behavioral;。
基于FPGA的m序列发生器要点
基于FPGA的m序列发生器摘要m序列广泛应用于密码学、通信、雷达、导航等多个领域,本文提出了一种基于FPGA的伪随机序列产生方法,应用移位寄存器理论从序列的本原多项式出发,获得产生该序列的移位寄存器反馈逻辑式,结合FPGA芯片结构特点,在序列算法实现中采用元件例化语句。
算法运用VHDL语言编程,以A1tera的QuartusⅡ软件为开发平台,给出了序列的仿真波形。
序列的统计特性分析表明:该方法产生的序列符合m序列的伪随机特性,验证了算法的正确性。
关键词:m序列;移位寄存器理论;VHDL语言1 m序列m序列是伪随机序列的一种 ,结构简单 ,实现方便。
在现代工程实践中 , m 序列在通讯、导航、雷达、通信系统性能的测量等领域中有着广泛的应用。
例如 , 在连续波雷达中可用作测距信号 , 在遥控系统中可用作遥控信号 , 在多址通信中可用作地址信号 , 在数字通信中可用作群同步信号 ,还可用作噪声源及在保密通信中起加密作用等。
伪噪声发生器在测距、通信等领域的应用日益受到人们重视。
目前,m序列产生实现方法主要有3种:(1)门电路实现该方法设计简单,但随移位寄存器级数的增长,电路装调困难,且占用的印制板面积较大。
(2)DSP编程实现该方法专业性过强,不适合一般用户。
(3)VHDL与CPLD实现由于CPLD的高集成度,而且VHDL语言编程较为方便,故可以大大减少电路的装调的困难。
文章提出VHDL语言实现,,l序列电路是周期、初相位可编程变化的,其应用较为灵活,通过微处理器对其进行适当的初始化,即可产生用户所需周期、初相位的m序列输出。
用软件方式构成的特点是采用灵活的数据查询方式可以获得任意级数 n 的本原多项式系数 ,从而实现 m 序列的产生 , 但速度受到单片机工作速度的限制。
而 FPGA 具有硬件电路实现的优点 , 又具有设计上的灵活性 , 并且由于FPGA 便于实现大规模的数字系统。
1.1 理论基础m 序列是最长线性反馈移位寄存器序列的简称,它是由带线性反馈的移位寄存器产生的周期最长的一种序列。
VHDL做PWM发生器的大作业
VHDL 大作业――PWM发生器姓名:贾胜文学号:036086279一.功能描述如下图所示:D0-D7为8位数据输入,A为内部脉宽寄存器/计数分频器选择信号,LOAD为所存信号输入,当有上升沿在LOAD上时,D0-D7上的数据被锁存进内部脉宽寄存器(A为高电平)或计数分频器(A为低电平)。
COUNTCLK为内部8位分频计数器时钟,当有上升沿出现在COUNTCLK上时,内部分频计数器值减1,当计数值0时再减1,分频计数器就重新从分频寄存器中装入计数初值,准备进行下一论计数,同时让内部的PWM周期计数器加1。
RS为内部PWM周期计数器、分频计数器清零信号,高电平有效。
PWMOUT为PWM信号输出端。
内部PWM周期计数器计数的同时与脉宽寄存器值比较,前者比后者小时,PWMOUT 输出高电平否则输出低电平。
这样通过改变分频寄存器中的值就可以改变PWM信号的周期,改变脉宽寄存器中的值就可以改变PWM信号的脉宽。
二.源程序:LIBRARY ieee;USE ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity pwm isport(a:in std_logic; --脉宽寄存器/分频寄存器选择.1-脉宽寄存器,0-分频寄存器countclk: in std_logic;--分频计数器计数信号rs: in std_logic;--分频计数器、PWM周期计数器清零信号load: in std_logic;--数据装载信号dat: in std_logic_vector(7 downto 0);--8位数据输入pwmout: out std_logic);--PWM信号输出end pwm;architecture work of pwm issignal mycounter,cmpdat,fenpindat,fenpincount:integer range 0 to 255;signal theout:std_logic;begindataload_block:process(load)beginif(load'event and load='1') thenif a='1' thencmpdat<=conv_integer(dat);elsefenpindat<=conv_integer(dat);end if;end if;end process;counter_block:process(countclk,rs)beginif (countclk'event and countclk='1') then if rs='0' thenif fenpincount=0 thenfenpincount<=fenpindat;mycounter<=mycounter+1;if cmpdat<mycounter thentheout<='0';elsetheout<='1';end if;elsefenpincount<=fenpincount-1;end if;elsemycounter<=0;fenpincount<=fenpindat;end if;end if;end process;pwmout<=theout;end work;三.仿真时序图四.附件:源程序:pwm.vhd仿真时序:pwm.scf。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
可控m序列发生器的VHDL实现
杨晶超
1.设计类型
图1 n位线性反馈移位寄存器结构
(1) n=5的m序列;
(2) 反馈系数Ci=45(八进制),转化为二进制为100101,即C0=1,C1=0,C2=0,C3=1,C4=0,C5=1;
(3) 5级移位寄存器(D5~D1)初始状态为10000。
基于以上条件,得到输出周期为31的m序列为1000010010110011111000110111010。
2.可控目标
(1) 可以控制延迟若干个码元后开始发送;
(2) 可以控制相邻两组m序列之间的发送间隔码元数;
(3) 可以控制在发送若干组m序列之后结束。
其中,延迟、间隔和结束均用高电平表示。
3.程序流程
图2 主流程图
图3 延迟X个码元发送
图4 间隔Z个码元发送
图5 发送Y组m序列
4.实现结果
图6 延迟0个码元,间隔5个码元,发送2个周期
图7 延迟1个码元,间隔10个码元,发送3个周期
图8 延迟2个码元,间隔15个码元,发送4个周期
附程序代码:
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity m_sequence is
generic (length : positive: =4;
tap1 : positive: =4;
tap2 : positive: =2);
port (clk, reset : in bit;
prbs : out bit);
end m_sequence;
architecture Behavioral of m_sequence is
signal prreg : bit_vector (length downto 0);
signal enable : std_logic:='0';
signal enable2 : integer: =0;
signal cnt : integer: =0;
begin
process (clk)
variable count: integer: =0;
begin
if (clk'event and clk='1') then
if (count < 2 or cnt = 4) then --延迟2个码元,发送4个周期count: = count + 1;
enable <='0';
else enable <='1';
end if;
end if;
end process;
process (clk, reset, prreg, enable)
begin
if reset='0' then
prreg<=(length=>'1',others=>'0'); --初始状态
elsif (clk'event and clk='1') and enable='1' then
prreg<=prreg ((length-1) downto 0) & (prreg (tap1) xor prreg (tap2));
if prreg="01000" then
enable2<=15; --间隔15个码元
cnt<=cnt+1;
else enable2<=0;
end if;
if enable2 /= 0 then
enable2 <= enable2 - 1;
prreg<= (length=>'1', others=>'0');
end if;
end if;
end process;
process (enable, prreg (length))
begin
if enable='1' then
prbs<=prreg (length);
else prbs<='1';
end if;
end process;
end Behavioral;。