哈工大电信学院FPGA报告(2020年10月整理).pptx

上传人:摩西的****12 文档编号:148716761 上传时间:2020-10-22 格式:PPTX 页数:17 大小:154.51KB
返回 下载 相关 举报
哈工大电信学院FPGA报告(2020年10月整理).pptx_第1页
第1页 / 共17页
哈工大电信学院FPGA报告(2020年10月整理).pptx_第2页
第2页 / 共17页
哈工大电信学院FPGA报告(2020年10月整理).pptx_第3页
第3页 / 共17页
哈工大电信学院FPGA报告(2020年10月整理).pptx_第4页
第4页 / 共17页
哈工大电信学院FPGA报告(2020年10月整理).pptx_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《哈工大电信学院FPGA报告(2020年10月整理).pptx》由会员分享,可在线阅读,更多相关《哈工大电信学院FPGA报告(2020年10月整理).pptx(17页珍藏版)》请在金锄头文库上搜索。

1、哈尔滨工业大学电子与信息工程学院,FPGA 设计与应用,0,实验指导书,FPGA 设计与应用 综合实验报告,班级: 姓名: 学号: 日期:2016 年 11 月 3 日,1,哈尔滨工业大学电子与信息工程学院,FPGA 设计与应用,实验指导书,实实验性质:验证性,实验类型:必做,开课单位:电信院,学时:10 学时,一、实验目的 1、了解分频器和计数器的基本实现原理; 2、掌握七段数码管的使用方法; 3、掌握锁相环的使用方法; 4、掌握串口通信的基本原理和实现方法; 5、了解线性分组码的基本原理及实现方法; 6、掌握大型工程的模块设计方法。 二、实验要求 该综合实验由两个独立的实验构成,分别是:

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

3、综合实验 2:(7,4)汉明译码、串口接收和数码管显示综合实验。在该实验中, 要求能够利用计算机的串口发送汉明码字(可以是没有错误的汉明码字,也可以 是有一个比特错误的汉明码字);然后利用 FPGA 进行串口数据接收;接收后进 行(7,4)汉明译码,并将译码后的结果送给七段数码管进行显示。要求使用 4 个七 段数码管,其中 2 个数码管用于显示从串口接收到的数据,另一个数码管用于显 示汉明译码后的正确信息比特,最后一个数码管用于指示出错比特的位置。 三、实验准备(10 分) 3.1 串口通信的基本原理(5 分) 串口通信指口按位发送和接收字节。通信使用 3 根线完成,分别是地线、发 送、接收。

4、由于串口通信是异步的,端口能够在一根线上发送数据同时在另一根,2,哈尔滨工业大学电子与信息工程学院,FPGA 设计与应用,实验指导书,线上接收数据。其他线用于握手,但不是必须的。串口通信最重要的参数是 波特率、数据位、停止位和奇偶校验。对于两个进行通信的端口,这些参数必须 匹配。波特率表示每秒传输的位数,接受发送双方必须匹配。不发送数据时,连 线上为高电平。发送数据时,要首先发送一个起始位,为低电平,然后按照协议 发送需要的数据,八位或者九位(带有校验位),然后发送一个停止位,为高电 平。接收时,要首先确定起始位,然后按照协议接受八位或者九位数据。接受完 成后继续判断起始位,开始下一个接受周期

5、。 3.2 (7, 4)汉明码的编译码基本原理(5 分) 一般来说,若汉明码长为 n,信息位数为 k,则监督位数 r=n-k。若希望用 r 个监督位构造出r 个监督关系式来指示一位错码的n 种可能位置,则要求 2r 1 n 或 2r 1 k r 1(1) 下面以(7,4)汉明码为例说明原理: 设汉明码(n,k)中 k=4,为了纠正一位错码,由式(1)可知,要求监督位 数r3。若取 r=3,则n=k+r=7。我们用 a6a5a4a3a2a1a0 来表示这 7 个码元,用S1S2 S3 的值表示 3 个监督关系式中的校正子,则 S1S2 S3 的值与错误码元位置的对应关系 可以规定如表 1 所列。

6、,表 1 监督位与错码位置 则由表 1 可得监督关系式:,S2 a6 a4 a3 a2 S1 a6 a5 a4 a1 S0 a5 a4 a3 a0,(2),在发送端编码时,信息位a6a5a4a3 的值决定于输入信号,因此它们是随机的。,3,哈尔滨工业大学电子与信息工程学院,FPGA 设计与应用,实验指导书,监督位a2 、a1 、a0 应根据信息位的取值按监督关系来确定,即监督位应使式(2),式(4)中 S0 、S1 、 S2 的值为 0(表示编成的码组中应无错码) a2 a6 a4 a3 a1 a6 a5 a4 a0 a5 a4 a3,(3),当数字信号编码成汉明码形式(本文中即 A)后在信道

7、中传输,由于信道中 噪声的干扰,可能由于干扰引入差错,使得接收端收到错码,因此在接收端进行 汉明码纠错,以提高通信系统的抗干扰能力及可靠性。 监督位计算结果:,哈尔滨工业大学电子与信息工程学院,FPGA 设计与应用,实验指导书,表 2 (7,4)汉明码编码 四、代码及测试(25 分) 4.1 综合实验 1 的原理框图、代码及相关说明(8 分) 原理框图:,50MHz,115200分频,编码、补零,数据采集,发送数据,图 1 发送数据 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTIT

8、Y 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 IS,4,IS,TYPExyt_STATE_TYPE (xyt_STATE_IDLE,xyt_STATE_START,xyt_ST

9、ATE_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); BEGIN,U1:PROCESS(name_CLK) BEGIN IF name_CLKEV

10、ENT AND name_CLK=1 THEN IF name_BAUDCNT217THEN,5,哈尔滨工业大学电子与信息工程学院,FPGA 设计与应用,实验指导书,name_BAUDCNT0); name_BAUD name_LEDL name_LEDL name_LEDL name_LEDL name_LEDL name_LEDL name_LEDL name_LEDL name_LEDL name_LEDL name_LEDL name_LEDL name_LEDL name_LEDL name_LEDL name_LEDL name_LEDH =1000000;,6,哈尔滨工业大学电子

11、与信息工程学院,FPGA 设计与应用,实验指导书,WHEN 0001 = 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 name_OUT name_OUT name_OUT=XFFFF THEN name_STOPCNT=X0000; name_STATE=name_STATE_IDLE;,哈尔滨工业大学电子与信息工程学院,F

12、PGA 设计与应用,实验指导书,ELSE name_STOPCNT name_STATE=name_STATE_IDLE; END CASE; END IF; END PROCESS; END name; 4.2 综合实验 2 的原理框图、代码及相关说明(9 分) 原理框图:,50MHz,115200* 分频,译,115200 分频,显示,图 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_RCV

13、L: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;,7,name_RCV_TYPE,ARCHITECTURE name OF EX2 IS TYPE IS(name_RCV_IDLE,name_RCV_STOP,name_RCV_DATA);,SIGNAL name_STATE:name_RCV_TYPE:=name_RCV_IDLE; SIGNAL name_BAUD:S

14、TD_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_LOGIC:=0; SIGNAL name_S:STD_LOGIC_VECTOR(2 DOWNTO 0); SIGNAL name_RCV:STD_LOGIC_VECTOR(7 DOWNTO 0);,BEGIN,8,哈尔滨工业大学电子与信息工程学院,FPGA 设计与应用

15、,实验指导书,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); BEGIN U1:PROCESS(name_CLK) BEGIN IF name_CLKEVENT AND name_CLK=1 THEN IF name_BAUDCNT0); name_BAUD0); name_BAUD8=0; END

16、IF; END IF; END PROCESS; U2:PROCESS(name_BAUD8) VARIABLE name_NUM,NUM:INTEGER:=0; VARIABLE name_NUM0,name_NUM1:INTEGER:=0; VARIABLE name_RCV_TEMP:STD_LOGIC_VECTOR(8 DOWNTO 0); VARIABLE name_FLAG:STD_LOGIC:=0;,9,哈尔滨工业大学电子与信息工程学院,FPGA 设计与应用,实验指导书,IF 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_

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号