




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、FPGA 设计与应用综合实验报告班级:姓名:学号:日期: 2016年 11月 3日哈尔滨工业大学电子与信息工程学院FPGA设计与应用实验指导书实验类型:必做学时:10学时实实验性质:验证性 开课单位:电信院、实验目的1、了解分频器和计数器的基本实现原理;2、掌握七段数码管的使用方法;3、掌握锁相环的使用方法;4、掌握串口通信的基本原理和实现方法;5、了解线性分组码的基本原理及实现方法;6掌握大型工程的模块设计方法。二、实验要求该综合实验由两个独立的实验构成,分别是:综合实验1: (7,4)汉明编码、串口发送和数码管显示综合实验。在该实验中,要求能够利用4个拨码开关产生4个信息比特送给FPGA;
2、随后FPGA利用(7,4) 汉明码对这4个信息比特进行编码;编码后的7位码字一方面通过串口送给计算机进行显示,另一方面通过七段数码管进行显示。由于(7,4)汉明码的每个码字只 有7个比特,而串口通信通常需要8个比特,所以采用低位插零的方式将7位汉 明码字扩充为8个比特再进行串口传输和数码管显示。要求使用2个七段数码管, 其中一个显示扩充汉明码中的高 4位(即信息位),而另一个数码管显示扩充汉明码中的低4位(即校验位)综合实验2: (7,4)汉明译码、串口接收和数码管显示综合实验。在该实验中,要求能够利用计算机的串口发送汉明码字 (可以是没有错误的汉明码字,也可以是有一个比特错误的汉明码字);然
3、后利用FPGA进行串口数据接收;接收后进 行(7,4)汉明译码,并将译码后的结果送给七段数码管进行显示。要求使用4个七 段数码管,其中2个数码管用于显示从串口接收到的数据, 另一个数码管用于显 示汉明译码后的正确信息比特,最后一个数码管用于指示出错比特的位置。三、实验准备(10分)3.1串口通信的基本原理(5分)串口通信指口按位发送和接收字节。 通信使用3根线完成,分别是地线、发 送、接收。由于串口通信是异步的,端口能够在一根线上发送数据同时在另一根1哈尔滨工业大学电子与信息工程学院FPGA设计与应用实验指导书线上接收数据。其他线用于握手,但不是必须的。串口通信最重要的参数是 波特率、数据位、
4、停止位和奇偶校验。对于两个进行通信的端口,这些参数必须 匹配。波特率表示每秒传输的位数,接受发送双方必须匹配。不发送数据时,连 线上为高电平。发送数据时,要首先发送一个起始位,为低电平,然后按照协议 发送需要的数据,八位或者九位(带有校验位),然后发送一个停止位,为高电 平。接收时,要首先确定起始位,然后按照协议接受八位或者九位数据。接受完 成后继续判断起始位,开始下一个接受周期。3.2 (7, 4)汉明码的编译码基本原理(5分)一般来说,若汉明码长为n,信息位数为k,则监督位数r=n-k。若希望用r 个监督位构造出r个监督关系式来指示一位错码的n种可能位置,则要求(1)2r -1n 或 2r
5、 -1 k + r +1F面以(7, 4)汉明码为例说明原理:设汉明码(n,k)中k=4,为了纠正一位错码,由式(1)可知,要求监督位 数r若取r=3,则n=k+r=7。我们用a6a5a4a3a2a1a0来表示这7个码元,用S,S2S3 的值表示3个监督关系式中的校正子,则S1S2S3的值与错误码元位置的对应关系可以规定如表1所列。S0S1S2错码位置S0SS2错码位置001a。101a3010a1110a6100a2111a4011a5000无错码表1监督位与错码位置则由表1可得监督关系式:$2=36 a a?Si = a6a5a4a1So =35 34 as a。在发送端编码时,信息位a6
6、a5a4a3的值决定于输入信号,因此它们是随机的。(2)2哈尔滨工业大学电子与信息工程学院FPGA设计与应用实验指导书监督位a2、ai、ao应根据信息位的取值按监督关系来确定, 即监督位应使式(2)式(4)中So、Si、S2的值为0 (表示编成的码组中应无错码)a? = a a agai = a a a4a。= a a ag当数字信号编码成汉明码形式(本文中即 A)后在信道中传输,由于信道中噪声的干扰,可能由于干扰引入差错,使得接收端收到错码,因此在接收端进行 汉明码纠错,以提高通信系统的抗干扰能力及可靠性。 监督位计算结果:C6C5C4C3C2C1C0UX0000000000H0001101
7、01AH001011102EH0011010034H0100011046H010111005CH0110100068H0111001072H100011008CH1001011096H10100010A2H10111000B8H11001010CAH11010000D0H11100100E4H11111110FEH表2(7, 4)汉明码编码四、代码及测试(25分)4.1综合实验1的原理框图、代码及相关说明(8分)原理框图:图1发送数据LIBRARY IEEE;USE lEEE.STD LOGIC 1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY E
8、X1 ISP ORT ( xyt_CLK : IN STD_LOGIC;xyt_IN: IN STD_LOGIC_VECTOR( 3 DOWNTO 0 ); xyt_LEDH: OUT STD_LOGIC_VECTOR( 6 DOWNTO 0 ); xyt_LEDL : OUT STD_LOGIC_VECTOR( 6 DOWNTO 0 ); xyt_OUT : OUT STD_LOGIC);END EX1;ARCHITECTURE xyt OF EX1 ISTYPExyt_STATE_T YPEIS(xyt_STATE_IDLE,xyt_STATE_START,xyt_STATE_SEND,x
9、yt_STATE_ST OP);SIGNAL name_STATE: name_STATE_T YP E:=name_STATE_IDLE;SIGNAL n ame_EN:STD_LOGIC_VECTOR(7 DOWNTO 0);SIGNAL n ame_BAUD:STD_LOGIC;SIGNAL n ame_BAUDCNT: STD_LOGIC_VECTOR (8 DOWNTO 0);SIGNAL n ame_ST OP CNT:STD_LOGIC_VECTOR(15 DOWNTO 0);BEGINU1: PROCESS( name_CLK)BEGINIF n ame_CLKEVENT AN
10、D n ame_CLK=1 THENIF n ame_BAUDCNT217 THENn ame_BAUDCNTv=name_BAUDCNT+1; n ame_BAUD=0;ELSIF n ame_BAUDCNT434 THENname BAUDCNT=name BAUDCNT+1; name_BAUD=1;ELSEn ame_BAUDCNT0);n ame_BAUD=0;END IF;END IF;END P ROCESS;U2:P ROCESS( name_CLK)BEGINn ame_EN(7 DOWNTO 4)=n ame_IN(3 DOWNTO 0);n ame_EN(3)=name_
11、IN (3) XOR name_IN(1) XOR name_IN(0);n ame_EN(2)v=name_IN (3) XOR name_IN (2) XOR n ame_IN(1);n ame_EN(1)=name_IN (2) XOR name_IN(1) XOR name_IN(0); n ame_EN(0)=0;END P ROCESS;U3:P ROCESS( name_BAUD)BEGINIF n ame_BAUDEVENT AND n ame_BAUD=1 THEN CASE n ame_EN(3 DOWNTO 0) IS name_LEDL name_LEDL name_L
12、EDL name_LEDL name_LEDL name_LEDL name_LEDL name_LEDL name_LEDL name_LEDL name_LEDL name_LEDL name_LEDL name_LEDL name LEDL =1000000;1111001;0100100;0110000;0011001;0010010;0000010;1111000;0000000;0010000;0001000;0000011;1000110;0100001;0000110;WHEN OTHERS = n ame_LEDL name_LEDH =name_LEDH =1111001;
13、name_LEDH =0100100;name_LEDH =0110000;name_LEDH =0011001;name_LEDH =0010010;name_LEDH =0000010;name_LEDH =1111000;name_LEDH =0000000;name_LEDH =0010000;name_LEDH =0001000;name_LEDH =0000011;name_LEDH =1000110;name_LEDH =0100001;name_LEDH n ame_LEDH n ame_OUT=1;name STATEn ame_OUT=0;name_NUM:=0;name
14、STATE name_OUT=name_EN( name_NUM); IF n ame_NUM7 THENn ame_NUM:=name_NUM+1;n ame_STATE=n ame_STATE_SEND; ELSEn ame_ST OP CNT=X0000;name STATEn ame_OUT=XFFFF THENn ame_ST OP CNT=X0000;n ame_STATE=n ame_STATE_IDLE; 6 哈尔滨工业大学电子与信息工程学院FPGA设计与应用实验指导书ELSEn ame_ST OP CNT=n ame_ST OP CNT+1; n ame_STATEn ame
15、_STATE=n ame_STATE_IDLE;END CASE;END IF;END P ROCESS;END n ame;4.2综合实验2的原理框图、代码及相关说明(9分)原理框图:图2译码接收原理图ENTITY EX2 ISP ORT( name_CLK:IN STD_LOGIC;name RXD:IN STD LOGIC;n ame_RCVH:OUT STD_LOGIC_VECTOR(6 DOWNTO 0);n ame_RCVL:OUT STD_LOGIC_VECTOR(6 DOWNTO 0);n ame_YM_R:OUT STD_LOGIC_VECTOR(6 DOWNTO 0);n
16、ame_WR:OUT STD_LOGIC_VECTOR(6 DOWNTO 0); END ENTITY EX2;ARCHITECTURE n ame OF EX2 ISTYPEn ame_RCV_T YPEIS( name_RCV_IDLE ,n ame_RCV_ST OP,n ame_RCV_DATA);SIGNAL name_STATE: name_RCV_T YP E:=name_RCV_IDLE;SIGNAL name BAUD:STD LOGIC;SIGNAL n ame_BAUDCNT:STD_LOGIC_VECTOR(8 DOWNTO 0);SIGNAL name BAUD8 :
17、 STD LOGIC;SIGNAL n ame_BAUD8CNT: STD_LOGIC_VECTOR (7 DOWNTO 0);SIGNAL name_FLAG:STD_LOGIC:=0;SIGNAL n ame_S:STD_LOGIC_VECTOR(2 DOWNTO 0);SIGNAL n ame_RCV:STD_LOGIC_VECTOR(7 DOWNTO 0);SIGNAL n ame_YM:STD_L0GIC_VECT0R(3 DOWNTO 0);SIGNAL n ame_DATA:STD_LOGIC_VECTOR(7 DOWNTO 0);SIGNAL n ame_RXD_NEXT :S
18、TD_LOGIC;SIGNAL name_RIGHT:STD_LOGIC_VECTOR(3 DOWNTO 0); BEGINU1: PROCESS( name_CLK)BEGINIF n ame_CLKEVENT AND n ame_CLK=1 THENIF n ame_BAUDCNT216 THENn ame_BAUDCNT=name_BAUDCNT+1; n ame_BAUD=0;ELSIF n ame_BAUDCNT434 THENn ame_BAUDCNT=name_BAUDCNT+1; name_BAUD=1;ELSEn ame_BAUDCNT0);n ame_BAUD=0;END
19、IF;END IF;END P ROCESS;U11: PROCESS( name_CLK)BEGINIF n ame_CLKEVENT AND n ame_CLK=1 THENIF n ame_BAUD8CNT27 THENname BAUD8CNT=name BAUD8CNT+1;n ame_BAUD8=0;ELSIF n ame_BAUD8CNT54 THENname BAUD8CNT=name BAUD8CNT+1;n ame_BAUD8=1;ELSEn ame_BAUD8CNT0);n ame_BAUD8n ame_NUM1 THENn ame_RCV_TE MP (NUM):=0;
20、ELSE n ame_RCV_TE MP( NUM):=1;END IF;NUM:=NUM+1;n ame_NUM:=0;n ame_NUM0:=0;n ame_NUM1:=0;END IF;IF NUM=9 THENIF name_RCV_TE MP (0)=0 THENn ame_RCV=1000000;1111001;0100100;0110000;0011001;0010010;0000010;WHEN 0111WHEN 1000WHEN 1001WHEN 1010=WHEN 1011=WHEN 1100WHEN 1101WHEN 1110WHEN 1111=n ame_RCVH n
21、ame_RCVH n ame_RCVH n ame_RCVH n ame_RCVH n ame_RCVH n ame_RCVH n ame_RCVH n ame_RCVHWHEN OTHERS = NULL;END CASE;CASE n ame_RCV(3 DOWNTO 0) IS n ame_RCVL n ame_RCVL n ame_RCVL name_RCVL n ame_RCVL n ame_RCVL n ame_RCVL n ame_RCVL n ame_RCVL n ame_RCVL name_RCVL n ame_RCVL n ame_RCVL n ame_RCVL n ame
22、_RCVL n ame_RCVL =WHEN 1011=WHEN 1100WHEN 1101WHEN 1110WHEN 1111=WHEN OTHERS = NULL;END CASE;CASE name_YM ISWHEN 0000 WHEN 0001 WHEN 0010 WHEN 0011 WHEN 0100 WHEN 0101 WHEN 0110 WHEN 0111 WHEN 1000 WHEN 1001 WHEN 1010=1111000;0000000;0010000;0001000;0000011;1000110;0100001;0000110;0001110;1000000;11
23、11001;0100100;0110000;0011001;0010010;0000010;1111000;0000000;0010000;0001000;0000011;1000110;0100001;0000110;0001110;n ame_YM_R = 1000000; n ame_YM_R = 1111001; n ame_YM_Rn ame_YM_Rn ame_YM_Rn ame_YM_R=0100100;=0110000;=0011001;=0010010;name YM R = 0000010; name YM R = 1111000; name YM R = 0000000;
24、 name YM R = 0010000; n ame_YM_R name_YM_R name_YM_R name_YM_R name_YM_R name_YM_R name YM R WHEN 001=WHEN 010=WHEN 011=WHEN 100=WHEN 101=WHEN 110=WHEN 111=name_WR = 1000110;name_WR = 1111001;name_WR = 0100100; -2 name_WR name_WR name_WR name_WR name_WR= NULL;END CASE;END IF;END P ROCESS;U4:P ROCESS
25、( name_CLK)BEGINIF n ame_CLKEVENT AND n ame_CLK=1 THENn ame_DATA=name_RCV(7 DOWNTO 0);n ame_S(2)v=name_RCV(7) XOR name_RCV (5) XOR name_RCV XOR name_RCV(3);n ame_S(1)=name_RCV(7) XOR name_RCV (6) XOR name_RCV(5) XOR name_RCV(2);n ame_S(0) name_DATA v=NOT name_DATA ;WHEN 011=n ame_DATA (6) name_DATA
26、(5) name_DATA v=NOT name_DATA(4);WHEN 100= name_DATA (3)n ame_DATA (2) name_DATA(1)v=NOT name_DATA(1);WHEN OTHERS=n ame_RIGHT = n ame_DATA(7 DOWNTO 4);END CASE;n ame_YMkyLBaudE jM-BAUDCHTTy1_BAUDCISrnBKyt_BAUDCISrTT7 g謂UDC仲覺 nKy1_0AUDChn&-T/LBAUDChTTllKKr1_0AUDCISrn3 Kyt 0AUDCNTP叽日AUDCNTP】覺k/LB 戌 UD
27、CNTl列* xyl.LEDHxyLLEOL32S436126IMIS?k七 H-Ui UM lUJ .UdJll Uni idBllbUdllhUlldU.liil.ldbl.liil.ldbl.liil.liil.llliikHdllBkliildll.kbUlldkbU.ldbBul U.B Bk I-TLruruTLnrLTWwuuiTLnnnnmnmj_I_I_I_I_I_ LTururururLTurun LrLnTLrLruLrmrLRrLrLrLrirLn mumwMinnmmumuujmuMMiHHmmnmuMLnTLKTmrLTLRr.mramummuw7ah图3输入信号为
28、1,编码为1A而综合实验2中产生的汉明码字是按照如下方式确定的: 把自己学号的最后位1作为信息位,首先给出该信息位对应的正确汉明码字1A。TypeAliName-126专+fl即123哮学呷MS JCkt_BAUO1 ! 11砂 BALJDBL_rn_r-LL_rn_rLr-Lr-LrLj_rn_r出 3(yt_DATd1iDh牛:t:眈V!lAh田-X_RCVHi71黔TW icyLRCVL1OBti理n-All WRf屮 xyt_VWi ih驾R xyt_VU_R7 Ml-T Iidg. 2010/11A13 12J1.12 HD图4串口发送1A然后依据自己学号的倒数第二位为 2,来对正确
29、的汉明码字(0001 1010)的第3位取反(最高位设为第1位)0011 1010,得到错误的汉明码字3A。tag:12:21:12 #0Type灣Nairw icy1_&AUD xyt_BAUDB 兰 g&AH 回 KytJKV 同耳 xyt_KVL L* Kyt_ 艸R 回 Tt_yu* Kyt YU K的第j+1位取反(最高位设为第1位),得到错误的汉明码字。并解释该错误汉3641356f lOtiX 3Qft r ion X 30h 師 y 谢乔Tx ati X 1術 X 30ti y ifln y Mr X ion y 30n 灯乔TX 30ri Y rftn X me YSAh|h
30、T图5串口发送3A五、论述(5分)给出在信息出现1个比特错误时,如何进行正确的解码,举例说明。例子应和自己学号的最后两位相关。规则为:把自己学号的最后一位作为信息位 (如果学号最后一位为0,那么以AH作为信息位),首先给出该信息位对应的正确汉明码字;然后依据自己学号的倒数第二位(假设为数字j),来对正确的汉明码字明码的解码过程。注:例如学号最后两位为05,该学号最后一位(值为5)所对应的汉明码为5CH ;用学号的倒数第二位(值为0)将该码字的第1位取反,即得到错误码字DCH。给出对应错误码字的解码过程及分析。TypeSa学号的最后一位是1,所以编码结果为:1AH。Namek/LBaUD叵 xy
31、LBAUDCM-WAUDCISTTl 目Kyt_BAUDCISrTT7Kyt_BAUDCJr(6Ky1_0AUDChn&囂心AUK呵4叩HUDEZhTTp _ _nL_rm_n_ xyL 謂 UMNT口 111511112111厂11fl*口T3 ;:L : t|- 2 工HK礦IK lJkJI J J Jll-LUJBlIbUIIJLI.U.ULIiLi.UBII Lik HJlIBkUJlIak J k LL lJ UiB - J JkU7IULTLTLTirLriLrLrLrLrLruLrLnrLRrLrLrLriJWLrLrLrLrLrLrmrbaudcmi nniuiiiiniuii
32、iinn啊inii颐iwiuimiinBiiiiiiBiiiiiiiiiiniuiiiinBiiuinf* iy1 LEDH75h+ xylLEDL图6输入信息1A学号的最后两位是21 (0010 0001),为错码,正确码应该为2EH(0010 1110)。 此时,错了三位码(最后一位忽略)。输出的YM结果却会出现2h与0h交替的现 象,程序如下:U4:P ROCESS( name_CLK)BEGINIF n ame_CLKEVENT AND n ame_CLK=1 THENn ame_DATA=name_RCV(7 DOWNTO 0);n ame_S(2)=name_RCV(7) XOR
33、name_RCV (5) XOR name_RCV XOR name_RCV(3);n ame_S(1)=name_RCV(7) XOR name_RCV (6) XOR name_RCV(5) XOR name_RCV(2);n ame_S(0) name_DATA v=NOT name_DATA ;WHEN 011=n ame_DATA (6) name_DATA (5) name_DATA v=NOT name_DATA(4);WHEN 100= name_DATA (3)n ame_DATA (2) name_DATA(1)v=NOT name_DATA(1);WHEN OTHERS=NULL;END CASE;n ame_YM=name_DATA(7 DOWNTO 4);END IF;END P ROCESS;通过分析:1)2)3)第一步 name_DATAv=name_RCV(7 DOWNTO 0), name_DATA 里储存接 收到的不知对错的信息。若有错对name_DATA进行相应位进行取反纠错,但此时是仅能纠错一 位。此时S0S1S2为111,即name_RCV(5)错,取反后得到01H。将name_DATA译码后的(7 DOWNTO 4)高四位给name_YM。name
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 优惠协议合同
- 厂房供水合同协议书模板
- 工地夫妻劳动合同协议书
- 养生馆合作合同协议书
- 工程简易分包合同协议书
- 就业协议视同合同
- 云浮复印机租赁协议合同
- 仓储保管合同协议
- 护校值班合同协议
- 木门签订合同协议书
- 张元鹏《微观经济学》(中级教程)笔记和课后习题详解
- 如何有效管理90-00后新员工技巧方法-123课件
- 第十三讲 全面贯彻落实总体国家安全观PPT习概论2023优化版教学课件
- 建筑施工安全风险辨识分级管控(台账)清单
- 人教版语文能力层级-·-教材-·-中考
- 2017年一点点奶茶技术配方
- 中山大学PPT模板-中山大学01
- 2022年湖北省高中学业水平考试真题-音乐学科
- 基础类隐患排查清单
- 人教版八下物理难题专练(尖子生专用)
- 计算机控制技术于海生课后答案
评论
0/150
提交评论