基于FPGA的VHDL语言m序列生成详解+源码文档格式.docx
- 文档编号:20831988
- 上传时间:2023-01-25
- 格式:DOCX
- 页数:15
- 大小:25.10KB
基于FPGA的VHDL语言m序列生成详解+源码文档格式.docx
《基于FPGA的VHDL语言m序列生成详解+源码文档格式.docx》由会员分享,可在线阅读,更多相关《基于FPGA的VHDL语言m序列生成详解+源码文档格式.docx(15页珍藏版)》请在冰豆网上搜索。
(注意:
STA要采用自锁定开关,高电平有效)
三、M2:
码长选择
序列的码长选择既是N值的选择,码长=2**N-1。
核心就是一个计数器,可从2计到15。
按一次PUSH就可以自动加一(注意:
按键建议采用自弹跳按键,如过需要软件清除按键震颤的话,我再做发给你),没有0,1两个状态。
如果需要的话还可以扩展7段数码管的接口,以显示N值。
四、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.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYCTRLIS
PORT(
CP,STA:
INSTD_LOGIC;
EN,RN:
OUTSTD_LOGIC
);
ENDCTRL;
ARCHITECTUREaOFCTRLISSIGNALQ1,Q2:
STD_LOGIC;
BEGIN
PROCESS(CP)
BEGIN
IFCP’eventANDCP=’1’THEN
Q2<
=Q1;
Q1<
=STA;
ENDIF;
ENDPROCESS;
EN<
RN<
=Q1ANDNOTQ2;
ENDa;
M2-------------------------------------------------
ENTITYCOUNTERIS
PUSH,EN,RST:
SEL1:
OUTSTD_LOGIC_VECTOR(3DOWNTO0)
);
ENDCOUNTER;
ARCHITECTUREaOFCOUNTERISSIGNALB,C:
SIGNALQN:
STD_LOGIC_VECTOR(3DOWNTO0);
PROCESS(PUSH,C)
IFEN=’0’THEN
IFC=’1’THEN
QN<
=”0010”;
ELSEIFPUSH’EVENTANDPUSH=’1’THEN
=QN+1;
ENDIF;
ELSE
QN<
=QN;
B<
=’1’WHENQN=”0000”ELSE
‘0’;
C<
=BORRST;
SEL1<
M3-----------------------------------
ENTITYFPIS
CLK,FSEL1,FSEL2,FSEL3:
CP:
ENDFP;
ARCHITECTUREaOFFPISSIGNALQ1,Q2,Q3,RST:
SIGNALM1,M5,M10:
SIGNALQN:
STD_LOGIC_VECTOR(2DOWNTO0);
BP1:
BLOCK
PROCESS(CLK,Q1)
BEGIN
IFQ1=’1’THEN
=’0’
ELSEIFCLK’EVENTANDCLK=’1’THEN
=’1’;
ENDPROCESS;
ENDBLOCKBP1;
BP2:
PROCESS(CLK,Q2)
IFQ2=’1’THEN
ELSEIFCLK’EVENTANDCLK=’0’THEN
ENDBLOCKBP2;
FP:
PROCESS(CLK,RST)
IFRST=’1’THEN
=”000”;
ELSEIFCLK’EVENTANDCLK=’1’THEN
ENDBLOCKFP;
Q3<
=Q1ORQ2;
RST<
=’1’WHENQN=”101”ELSE
M1<
=QN
(2)ANDFSEL1;
M2<
=CLKANDFSEL2;
M3<
=Q3ANDFSEL3;
CP<
=M1ORM2ORM3;
M----------------------------------------
ENTITYPN1IS
CP,SEL2,EN,RN:
SEL1:
INSTD_LOGIC_VECTOR(3DOWNTO0);
OP:
ENDPN1;
ARCHITECTUREaOFPN1IS
SIGNALQ,A,B,C:
STD_LOGIC_VECTOR(14DOWNTO0);
SIGNALSEL:
STD_LOGIC_VECTOR(4DOWNTO0);
SEL<
=SEL1&
SEL2;
PROCESS(CP,SEL)
IFCP'
eventANDCP='
1'
THEN
IFEN='
0'
Q<
="
000000000000000"
;
OP<
=Q(0);
ELSE
Q(14)<
=C(14)ORRN;
B<
CASESELIS
WHEN"
11111"
=>
C(0)<
B
(1)<
='
FORIIN1TO14LOOP
Q(I-1)<
=Q(I);
A(I)<
=Q(I)ANDB(I);
C(I)<
=C(I-1)XORA(I);
ENDLOOP;
OP<
11110"
B(14)<
11101"
C
(1)<
=Q
(1);
B
(2)<
B(7)<
B(11)<
FORIIN2TO14LOOP
11100"
B(5)<
B(9)<
B(14)<
11011"
C
(2)<
=Q
(2);
B(3)<
B(5)<
B(6)<
FORIIN3TO14LOOP
11010"
B(11)<
B(12)<
11001"
C(3)<
=Q(3);
B(4)<
B(7)<
FORIIN4TO14LOOP
11000"
10111"
C(4)<
=Q(4);
FORIIN5TO14LOOP
10110"
B(13)<
10101"
C(5)<
=Q(5);
B(8)<
FORIIN6TO14LOOP
10100"
10011"
C(6)<
=Q(6);
B(10)<
FORIIN7TO14LOOP
10010"
10001"
C(7)<
=Q(7);
FORIIN8TO14LOOP
10000"
01111"
C(8)<
=Q(8);
FORIIN9TO14LOOP
01110"
01101"
C(9)<
=Q(9);
FORIIN10TO14LOOP
01100"
01011"
C(10)<
=Q(10);
FORIIN11TO14LOOP
01010"
01001"
C(11)<
=Q(11);
FORIIN12TO14LOOP
01000"
00111"
C(12)<
=Q(12);
FORIIN13TO14LOOP
00110"
WHENOTHERS=>
C(13)<
=Q(13);
Q(13)<
=Q(14);
A(14)<
=Q(14)ANDB(14);
C(14)<
=C(13)XORA(14);
ENDCASE;
ENDIf;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 FPGA VHDL 语言 序列 生成 详解 源码