哈工大电信学院FPGA报告Word文档格式.docx

上传人:b****6 文档编号:20466235 上传时间:2023-01-23 格式:DOCX 页数:19 大小:150.24KB
下载 相关 举报
哈工大电信学院FPGA报告Word文档格式.docx_第1页
第1页 / 共19页
哈工大电信学院FPGA报告Word文档格式.docx_第2页
第2页 / 共19页
哈工大电信学院FPGA报告Word文档格式.docx_第3页
第3页 / 共19页
哈工大电信学院FPGA报告Word文档格式.docx_第4页
第4页 / 共19页
哈工大电信学院FPGA报告Word文档格式.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

哈工大电信学院FPGA报告Word文档格式.docx

《哈工大电信学院FPGA报告Word文档格式.docx》由会员分享,可在线阅读,更多相关《哈工大电信学院FPGA报告Word文档格式.docx(19页珍藏版)》请在冰豆网上搜索。

哈工大电信学院FPGA报告Word文档格式.docx

然后利用FPGA进行串口数据接收;

接收后进行(7,4)汉明译码,并将译码后的结果送给七段数码管进行显示。

要求使用4个七段数码管,其中2个数码管用于显示从串口接收到的数据,另一个数码管用于显示汉明译码后的正确信息比特,最后一个数码管用于指示出错比特的位置。

三、实验准备(10分)

3.1串口通信的基本原理(5分)

串口通信指口按位发送和接收字节。

通信使用3根线完成,分别是地线、发送、接收。

由于串口通信是异步的,端口能够在一根线上发送数据同时在另一根

线上接收数据。

其他线用于握手,但不是必须的。

串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。

对于两个进行通信的端口,这些参数必须匹配。

波特率表示每秒传输的位数,接受发送双方必须匹配。

不发送数据时,连线上为高电平。

发送数据时,要首先发送一个起始位,为低电平,然后按照协议发送需要的数据,八位或者九位(带有校验位),然后发送一个停止位,为高电平。

接收时,要首先确定起始位,然后按照协议接受八位或者九位数据。

接受完成后继续判断起始位,开始下一个接受周期。

3.2(7,4)汉明码的编译码基本原理(5分)

一般来说,若汉明码长为n,信息位数为k,则监督位数r=n-k。

若希望用r个监督位构造出r个监督关系式来指示一位错码的n种可能位置,则要求

(1)

下面以(7,4)汉明码为例说明原理:

设汉明码(n,k)中k=4,为了纠正一位错码,由式

(1)可知,要求监督位数r≥3。

若取r=3,则n=k+r=7。

我们用

来表示这7个码元,用

的值表示3个监督关系式中的校正子,则

的值与错误码元位置的对应关系可以规定如表1所列。

错码位置

001

101

010

110

100

111

011

000

无错码

表1监督位与错码位置

则由表1可得监督关系式:

(2)

在发送端编码时,信息位

的值决定于输入信号,因此它们是随机的。

监督位

应根据信息位的取值按监督关系来确定,即监督位应使式

(2)~式(4)中

的值为0(表示编成的码组中应无错码)

(3)

当数字信号编码成汉明码形式(本文中即A)后在信道中传输,由于信道中噪声的干扰,可能由于干扰引入差错,使得接收端收到错码,因此在接收端进行汉明码纠错,以提高通信系统的抗干扰能力及可靠性。

监督位计算结果:

C6

C5

C4

C3

C2

C1

C0

U

X

00H

1

1AH

2EH

34H

46H

5CH

68H

72H

8CH

96H

A2H

B8H

CAH

D0H

E4H

FEH

表2(7,4)汉明码编码

四、代码及测试(25分)

4.1综合实验1的原理框图、代码及相关说明(8分)

原理框图:

图1发送数据

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYEX1IS

PORT(xyt_CLK:

INSTD_LOGIC;

xyt_IN:

INSTD_LOGIC_VECTOR(3DOWNTO0);

xyt_LEDH:

OUTSTD_LOGIC_VECTOR(6DOWNTO0);

xyt_LEDL:

xyt_OUT:

OUTSTD_LOGIC);

ENDEX1;

ARCHITECTURExytOFEX1IS

TYPExyt_STATE_TYPEIS(xyt_STATE_IDLE,xyt_STATE_START,xyt_STATE_SEND,xyt_STATE_STOP);

SIGNALname_STATE:

name_STATE_TYPE:

=name_STATE_IDLE;

SIGNALname_EN:

STD_LOGIC_VECTOR(7DOWNTO0);

SIGNALname_BAUD:

STD_LOGIC;

SIGNALname_BAUDCNT:

STD_LOGIC_VECTOR(8DOWNTO0);

SIGNALname_STOPCNT:

STD_LOGIC_VECTOR(15DOWNTO0);

BEGIN

U1:

PROCESS(name_CLK)

IFname_CLK'

EVENTANDname_CLK='

1'

THEN

IFname_BAUDCNT<

217THEN

name_BAUDCNT<

=name_BAUDCNT+1;

name_BAUD<

='

0'

;

ELSIFname_BAUDCNT<

434THEN

ELSE

name_BAUDCNT<

=(OTHERS=>

'

);

ENDIF;

ENDPROCESS;

U2:

name_EN(7DOWNTO4)<

=name_IN(3DOWNTO0);

name_EN(3)<

=name_IN(3)XORname_IN

(1)XORname_IN(0);

name_EN

(2)<

=name_IN(3)XORname_IN

(2)XORname_IN

(1);

name_EN

(1)<

=name_IN

(2)XORname_IN

(1)XORname_IN(0);

name_EN(0)<

U3:

PROCESS(name_BAUD)

IFname_BAUD'

EVENTANDname_BAUD='

THEN

CASEname_EN(3DOWNTO0)IS

WHEN"

0000"

=>

name_LEDL<

="

1000000"

0001"

1111001"

0010"

0100100"

0011"

0110000"

0100"

0011001"

0101"

0010010"

0110"

0000010"

0111"

1111000"

1000"

0000000"

1001"

0010000"

1010"

0001000"

1011"

0000011"

1100"

1000110"

1101"

0100001"

1110"

0000110"

WHENOTHERS=>

0001110"

ENDCASE;

CASEname_EN(7DOWNTO4)IS

name_LEDH<

ENDIF;

U4:

VARIABLEname_NUM:

INTEGERRANGE7DOWNTO0;

IFname_BAUD'

CASEname_STATEIS

WHENname_STATE_IDLE=>

name_OUT<

name_STATE<

=name_STATE_START;

WHENname_STATE_START=>

name_NUM:

=0;

=name_STATE_SEND;

WHENname_STATE_SEND=>

=name_EN(name_NUM);

IFname_NUM<

7THEN

name_NUM:

=name_NUM+1;

ELSE

name_STOPCNT<

=X"

name_STATE<

=name_STATE_STOP;

ENDIF;

WHENname_STATE_STOP=>

IFname_STOPCNT>

FFFF"

name_STOPCNT<

=name_STOPCNT+1;

WHENOTHERS=>

ENDCASE;

ENDname;

4.2综合实验2的原理框图、代码及相关说明(9分)

图2译码接收原理图

ENTITYEX2IS

PORT(name_CLK:

INSTD_LOGIC;

name_RXD:

name_RCVH:

OUTSTD_LOGIC_VECTOR(6DOWNTO0);

name_RCVL:

name_YM_R:

name_WR:

OUTSTD_LOGIC_VECTOR(6DOWNTO0));

ENDENTITYEX2;

ARCHITECTUREnameOFEX2IS

TYPEname_RCV_TYPEIS(name_RCV_IDLE,name_RCV_STOP,name_RCV_DATA);

name_RCV_TYPE:

=name_RCV_IDLE;

STD_LOGIC_VECTOR(8DOWNTO0);

SIGNALname_BAUD8:

STD_LOGIC;

SIGNALname_BAUD8CNT:

STD_LOGIC_VECTOR(7DOWNTO0);

SIGNALname_FLAG:

STD_LOGIC:

SIGNALname_S:

STD_LOGIC_VECTOR(2DOWNTO0);

SIGNALname_RCV:

SIGNALname_YM:

STD_LOGIC_VECTOR(3DOWNTO0);

SIGNALname_DATA:

SIGNALname_RXD_NEXT:

SIGNALname_RIGHT:

IFname_BAUDCNT<

216THEN

name_BAUDCNT<

name_BAUD<

ELSIFname_BAUDCNT<

ELSE

U11:

IFname_CLK'

IFname_BAUD8CNT<

27THEN

name_BAUD8CNT<

=name_BAUD8CNT+1;

name_BAUD8<

ELSIFname_BAUD8CNT<

54THEN

name_BAUD8CNT<

PROCESS(name_BAUD8)

VARIABLEname_NUM,NUM:

INTEGER:

VARIABLEname_NUM0,name_NUM1:

VARIABLEname_RCV_TEMP:

VARIABLEname_FLAG:

IFname_BAUD8'

EVENTANDname_BAUD8='

name_RXD_NEXT<

=name_RXD;

IFname_FLAG='

THEN

IFname_RXD='

ANDname_RXD_NEXT='

name_FLAG:

ELSE

IFname_RXD='

name_NUM0:

=name_NUM0+1;

ELSEname_NUM1:

=name_NUM1+1;

name_NUM:

IFname_NUM=8THEN

IFname_NUM0>

name_NUM1THEN

name_RCV_TEMP(NUM):

ELSEname_RCV_TEMP(NUM):

NUM:

=NUM+1;

name_NUM:

name_NUM0:

name_NUM1:

ENDIF;

IFNUM=9THEN

IFname_RCV_TEMP(0)='

name_RCV<

=name_RCV_TEMP(8DOWNTO1);

ENDIF;

CASEname_RCV(7DOWNTO4)IS

WHEN"

name_RCVH<

="

1111"

WHENOTHERS=>

NULL;

ENDCASE;

CASEname_RCV(3DOWNTO0)IS

name_RCVL<

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 唐诗宋词

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1