基于FPGA的VHDL语言m序列生成详解+源码.pdf

基于FPGA的VHDL语言m序列生成详解+源码.pdf

ID:58314134

大小:147.49 KB

页数:15页

时间:2020-09-06

基于FPGA的VHDL语言m序列生成详解+源码.pdf_第1页
基于FPGA的VHDL语言m序列生成详解+源码.pdf_第2页
基于FPGA的VHDL语言m序列生成详解+源码.pdf_第3页
基于FPGA的VHDL语言m序列生成详解+源码.pdf_第4页
基于FPGA的VHDL语言m序列生成详解+源码.pdf_第5页
资源描述:

《基于FPGA的VHDL语言m序列生成详解+源码.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、说明可控m序列产生器我分成四个小模块来做,M,M1,M2,M3分别对应为:m序列产生器、控制器、码长选择器、码速率选择器。一、M:m序列产生器这是该设计的核心部分,原理就是设计一个通用m序列产生子单元,然后由外部选择器来写入码型,码长等参数,加以循环可连接成任意长度的m序列产生器,其子单元结构如下:如上图,若N=15,就有15个这样的子单元首尾相接。注意:开头和结尾的两个子单元会有所不同,因为首单元需要输入初值,尾单元要进行直通反馈,在程序里请多留意。C(N)A(N)Q(N+1)C(N-1)Q(N)B(N)D+CP图中,

2、主要部件是一个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

3、和RN两个控制信号。其中,EN与STA的波形基本一致,只是它与CP进行了同步处理;RN在EN为‘1’的头一个脉冲周期里置高电平,以达到为序列发生器的首端置数的目的。如果不清楚的话可以看一下它的模拟波形。(注意:STA要采用自锁定开关,高电平有效)三、M2:码长选择序列的码长选择既是N值的选择,码长=2**N-1。核心就是一个计数器,可从2计到15。按一次PUSH就可以自动加一(注意:按键建议采用自弹跳按键,如过需要软件清除按键震颤的话,我再做发给你),没有0,1两个状态。如果需要的话还可以扩展7段数码管的接口,以显示N值

4、。四、M3:码速率选择器码的传输速率是靠CP来控制的,CP的频率就等于码元速率。这段程序包含一个倍频器,一个5分频的分频器,可把5MHZ的脉冲源CLK扩展成1MHZ和10MHZ。FSEL1、FSLE2、FSEL3分别在选择1、5、10MHZ时为高电平,其余两个为低,建议采用3选1单刀单掷开关。M1--------------------------------------------------LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_ARITH.A

5、LL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYCTRLISPORT(CP,STA:INSTD_LOGIC;EN,RN:OUTSTD_LOGIC);ENDCTRL;ARCHITECTUREaOFCTRLISSIGNALQ1,Q2:STD_LOGIC;BEGINPROCESS(CP)BEGINIFCP’eventANDCP=’1’THENQ2<=Q1;Q1<=STA;ENDIF;ENDPROCESS;EN<=Q1;RN<=Q1ANDNOTQ2;ENDa;M2-----------------

6、--------------------------------LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_ARITH.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYCOUNTERISPORT(PUSH,EN,RST:INSTD_LOGIC;SEL1:OUTSTD_LOGIC_VECTOR(3DOWNTO0));ENDCOUNTER;ARCHITECTUREaOFCOUNTERISSIGNALB,C:STD_LOGI

7、C;SIGNALQN:STD_LOGIC_VECTOR(3DOWNTO0);BEGINPROCESS(PUSH,C)BEGINIFEN=’0’THENIFC=’1’THENQN<=”0010”;ELSEIFPUSH’EVENTANDPUSH=’1’THENQN<=QN+1;ENDIF;ELSEQN<=QN;ENDIF;ENDPROCESS;B<=’1’WHENQN=”0000”ELSE‘0’;C<=BORRST;SEL1<=QN;ENDa;M3-----------------------------------LIBR

8、ARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_ARITH.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYFPISPORT(CLK,FSEL1,FSEL2,FSEL3:INSTD_LOGIC;CP:OUTSTD_LOGIC)

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。