ImageVerifierCode 换一换
格式:DOCX , 页数:19 ,大小:165.10KB ,
资源ID:6788986      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6788986.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(哈工大电信学院FPGA报告.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

哈工大电信学院FPGA报告.docx

1、哈工大电信学院FPGA报告FPGA设计与应用综合实验报告班级:姓名: 学号:日期:2016年11月3日实实验性质:验证性 实验类型:必做开课单位:电信院 学时:10学时一、实验目的1、了解分频器和计数器的基本实现原理;2、掌握七段数码管的使用方法;3、掌握锁相环的使用方法;4、掌握串口通信的基本原理和实现方法;5、了解线性分组码的基本原理及实现方法;6、掌握大型工程的模块设计方法。二、实验要求该综合实验由两个独立的实验构成,分别是:综合实验1:(7,4)汉明编码、串口发送和数码管显示综合实验。在该实验中,要求能够利用4个拨码开关产生4个信息比特送给FPGA;随后FPGA利用(7,4)汉明码对这

2、4个信息比特进行编码;编码后的7位码字一方面通过串口送给计算机进行显示,另一方面通过七段数码管进行显示。由于(7,4)汉明码的每个码字只有7个比特,而串口通信通常需要8个比特,所以采用低位插零的方式将7位汉明码字扩充为8个比特再进行串口传输和数码管显示。要求使用2个七段数码管,其中一个显示扩充汉明码中的高4位(即信息位),而另一个数码管显示扩充汉明码中的低4位(即校验位)综合实验2:(7,4)汉明译码、串口接收和数码管显示综合实验。在该实验中,要求能够利用计算机的串口发送汉明码字(可以是没有错误的汉明码字,也可以是有一个比特错误的汉明码字);然后利用FPGA进行串口数据接收;接收后进行(7,4

3、)汉明译码,并将译码后的结果送给七段数码管进行显示。要求使用4个七段数码管,其中2个数码管用于显示从串口接收到的数据,另一个数码管用于显示汉明译码后的正确信息比特,最后一个数码管用于指示出错比特的位置。三、实验准备(10分)3.1 串口通信的基本原理(5分)串口通信指口按位发送和接收字节。通信使用3根线完成,分别是地线、发送、接收。由于串口通信是异步的,端口能够在一根线上发送数据同时在另一根线上接收数据。其他线用于握手,但不是必须的。串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。对于两个进行通信的端口,这些参数必须匹配。波特率表示每秒传输的位数,接受发送双方必须匹配。不发送数据时,连

4、线上为高电平。发送数据时,要首先发送一个起始位,为低电平,然后按照协议发送需要的数据,八位或者九位(带有校验位),然后发送一个停止位,为高电平。接收时,要首先确定起始位,然后按照协议接受八位或者九位数据。接受完成后继续判断起始位,开始下一个接受周期。3.2 (7, 4)汉明码的编译码基本原理(5分)一般来说,若汉明码长为n,信息位数为k,则监督位数r=n-k。若希望用r个监督位构造出r个监督关系式来指示一位错码的n种可能位置,则要求 或 (1)下面以(7,4)汉明码为例说明原理: 设汉明码(n,k)中k=4,为了纠正一位错码,由式(1)可知,要求监督位数r3。若取r=3,则n=k+r=7。我们

5、用来表示这7个码元,用的值表示3个监督关系式中的校正子,则的值与错误码元位置的对应关系可以规定如表1所列。错码位置错码位置 001 101 010 110 100 111 011000无错码表1 监督位与错码位置则由表1可得监督关系式: (2)在发送端编码时,信息位的值决定于输入信号,因此它们是随机的。监督位、应根据信息位的取值按监督关系来确定,即监督位应使式(2)式(4)中、的值为0(表示编成的码组中应无错码) (3) 当数字信号编码成汉明码形式(本文中即A)后在信道中传输,由于信道中噪声的干扰,可能由于干扰引入差错,使得接收端收到错码,因此在接收端进行汉明码纠错,以提高通信系统的抗干扰能力

6、及可靠性。监督位计算结果:C6C5C4C3C2C1C0UX0000000000H000110101AH001011102EH0011010034H0100011046H010111005CH0110100068H0111001072H100011008CH1001011096H10100010A2H10111000B8H11001010CAH11010000D0H11100100E4H11111110FEH表2 (7,4)汉明码编码四、代码及测试(25分)4.1 综合实验1的原理框图、代码及相关说明(8分)原理框图:图1 发送数据LIBRARY IEEE;USE IEEE.STD_LOGIC_

7、1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY EX1 IS PORT ( 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 ISTYPE xyt_STATE_TYP

8、E IS (xyt_STATE_IDLE,xyt_STATE_START,xyt_STATE_SEND,xyt_STATE_STOP);SIGNAL name_STATE:name_STATE_TYPE:=name_STATE_IDLE;SIGNAL name_EN:STD_LOGIC_VECTOR(7 DOWNTO 0);SIGNAL name_BAUD:STD_LOGIC;SIGNAL name_BAUDCNT: STD_LOGIC_VECTOR (8 DOWNTO 0);SIGNAL name_STOPCNT:STD_LOGIC_VECTOR(15 DOWNTO 0);BEGINU1:P

9、ROCESS(name_CLK)BEGIN IF name_CLKEVENT AND name_CLK=1 THEN IF name_BAUDCNT217 THEN name_BAUDCNT=name_BAUDCNT+1; name_BAUD=0; ELSIF name_BAUDCNT434 THEN name_BAUDCNT=name_BAUDCNT+1; name_BAUD=1; ELSE name_BAUDCNT0); name_BAUD=0; END IF; END IF;END PROCESS; U2:PROCESS(name_CLK)BEGIN name_EN(7 DOWNTO 4

10、)=name_IN(3 DOWNTO 0); name_EN(3)=name_IN(3) XOR name_IN(1) XOR name_IN(0); name_EN(2)=name_IN(3) XOR name_IN(2) XOR name_IN(1); name_EN(1)=name_IN(2) XOR name_IN(1) XOR name_IN(0); name_EN(0) name_LEDL name_LEDL name_LEDL name_LEDL name_LEDL name_LEDL name_LEDL name_LEDL name_LEDL name_LEDL name_LE

11、DL name_LEDL name_LEDL name_LEDL name_LEDL name_LEDL name_LEDH name_LEDH name_LEDH name_LEDH name_LEDH name_LEDH name_LEDH name_LEDH name_LEDH name_LEDH name_LEDH name_LEDH name_LEDH name_LEDH name_LEDH name_LEDH name_OUT=1; name_STATE name_OUT=0; name_NUM:=0; name_STATE name_OUT=name_EN(name_NUM);

12、IF name_NUM7 THEN name_NUM:=name_NUM+1; name_STATE=name_STATE_SEND; ELSE name_STOPCNT=X0000; name_STATE name_OUT=XFFFF THEN name_STOPCNT=X0000; name_STATE=name_STATE_IDLE; ELSE name_STOPCNT=name_STOPCNT+1; name_STATE name_STATE=name_STATE_IDLE; END CASE; END IF; END PROCESS;END name;4.2 综合实验2的原理框图、代

13、码及相关说明(9分)原理框图:图2 译码接收原理图ENTITY EX2 IS PORT(name_CLK:IN STD_LOGIC; name_RXD:IN STD_LOGIC; name_RCVH:OUT STD_LOGIC_VECTOR(6 DOWNTO 0); name_RCVL:OUT STD_LOGIC_VECTOR(6 DOWNTO 0); name_YM_R:OUT STD_LOGIC_VECTOR(6 DOWNTO 0); name_WR:OUT STD_LOGIC_VECTOR(6 DOWNTO 0);END ENTITY EX2;ARCHITECTURE name OF E

14、X2 ISTYPE name_RCV_TYPE IS(name_RCV_IDLE,name_RCV_STOP,name_RCV_DATA);SIGNAL name_STATE:name_RCV_TYPE:=name_RCV_IDLE;SIGNAL name_BAUD:STD_LOGIC;SIGNAL name_BAUDCNT:STD_LOGIC_VECTOR(8 DOWNTO 0);SIGNAL name_BAUD8 : STD_LOGIC;SIGNAL name_BAUD8CNT: STD_LOGIC_VECTOR (7 DOWNTO 0);SIGNAL name_FLAG:STD_LOGI

15、C:=0;SIGNAL name_S:STD_LOGIC_VECTOR(2 DOWNTO 0);SIGNAL name_RCV:STD_LOGIC_VECTOR(7 DOWNTO 0);SIGNAL name_YM:STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL name_DATA:STD_LOGIC_VECTOR(7 DOWNTO 0);SIGNAL name_RXD_NEXT :STD_LOGIC;SIGNAL name_RIGHT:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINU1:PROCESS(name_CLK)BEGIN IF name

16、_CLKEVENT AND name_CLK=1 THEN IF name_BAUDCNT216 THEN name_BAUDCNT=name_BAUDCNT+1; name_BAUD=0; ELSIF name_BAUDCNT434 THEN name_BAUDCNT=name_BAUDCNT+1; name_BAUD=1; ELSE name_BAUDCNT0); name_BAUD=0; END IF; END IF;END PROCESS;U11:PROCESS(name_CLK)BEGINIF name_CLKEVENT AND name_CLK=1 THEN IF name_BAU

17、D8CNT27 THEN name_BAUD8CNT=name_BAUD8CNT+1; name_BAUD8=0; ELSIF name_BAUD8CNT54 THEN name_BAUD8CNT=name_BAUD8CNT+1; name_BAUD8=1; ELSE name_BAUD8CNT0); name_BAUD8=0; END IF;END IF;END PROCESS;U2:PROCESS(name_BAUD8)VARIABLE name_NUM,NUM:INTEGER:=0;VARIABLE name_NUM0,name_NUM1:INTEGER:=0;VARIABLE name

18、_RCV_TEMP:STD_LOGIC_VECTOR(8 DOWNTO 0);VARIABLE name_FLAG:STD_LOGIC:=0;BEGINIF name_BAUD8EVENT AND name_BAUD8=1 THEN name_RXD_NEXTname_NUM1 THEN name_RCV_TEMP(NUM):=0; ELSE name_RCV_TEMP(NUM):=1; END IF; NUM:=NUM+1; name_NUM:=0; name_NUM0:=0; name_NUM1:=0; END IF; IF NUM=9 THEN IF name_RCV_TEMP(0)=0

19、 THEN name_RCV name_RCVH name_RCVH name_RCVH name_RCVH name_RCVH name_RCVH name_RCVH name_RCVH name_RCVH name_RCVH name_RCVH name_RCVH name_RCVH name_RCVH name_RCVH name_RCVH NULL; END CASE; CASE name_RCV(3 DOWNTO 0) IS WHEN 0000 = name_RCVL name_RCVL name_RCVL name_RCVL name_RCVL name_RCVL name_RCVL name_RCVL name_RCVL name_RCVL name_RCVL name_RCVL name_RCVL name_RCVL = 0100001; WHEN

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

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