1、 课程设计题目:基于 Quartus II 的(7,4)汉明码的编解码器的设计 班 级: 学 号: 姓 名: 指导教师姓名: 钱志文 任艳玲 设计地点: JIANGSU TEACHERS UNIVERSITY OF TECHNOLOGY 通信原理课程设计报告通信电子线路实验与设计报告1目录序言 2第一章 软件简介 3第二章 工作原理 4第三章 基于 Quartus II 的(7,4)汉明码的编解码器的设计的仿真实现 3.1 仿真方案原理 53.2 仿真的功能程序 63.3 仿真的结果与分析 7参考文件 10体会与建议 10附录 10通信电子线路实验与设计报告2序言汉明(Hamming)码是一种
2、一种能够纠正一位错码或检测两位错码的一种效率较高的线性分组码。本次课程设计的任务就是利用 EDA 技术在 Quartus II 软件下用 VHDL 语言实现(7,4)汉明码的编译码的设计和仿真。从而进一步加深对汉明码编译码原理的理解。EDA(Electronic Design Automation 技术是随着集成电路和计算机技术飞速发展应运而生的一种高级、快速、有效的电子设计电动化工具。目前,VHDL 语言已经成为 EDA 的关键技术之一,VHDL 是一种全方位的硬件描述语言,具有极强的描述能力,能支持系统行为级、寄存器传输级和逻辑门级三个不同层次的设计,支持结构、数据流、行为三种描述形式的混
3、合描述,覆盖面广,抽象能力强,因此在实际应用中越来越广泛。VHDL 语言具有功能强大的语言结构,可用明确的代码描述复杂的控制逻辑设计,并且具有多层次的设计描述功能,支持设计库和可重复使用的原件的生成,近几十年来,EDA 技术获得了飞速的发展,它以计算机为平台,根据硬件描述语言 VHDL,自动地完成逻辑编译,化简为割、综合及优化,布局布线,仿真直至对特定目标芯片的适配编译,逻辑映射和编程下载等工作,以自顶向下的设计方法,使硬件设计软件化,拜托了传统手工设计的众多缺点,随着 EDA 技术的深入发展,基于硬件描述语言的方法将由取代传统手工设计方法的趋势。通信电子线路实验与设计报告3一、Quartus
4、 II 软件简介Quartus是 Altera 公司推出的 CPLD/FPGA 的开发工具, Quartus提供了完全集成且与电路结构无关的开发环境,具有数字逻辑设计的全部特性。 Quartus 设计软件提供完整的多平台设计环境,可以很轻松地满足特定设计的需要。它是可编程片上系统(SOPC)设计的综合性环境,拥有 FPGA 和 CPLD 设计的所有阶段的解决方案。与其它 EDA 软件相比较 Quartus软件的特点主要包括: 1、可利用原理图、结构框图、Verilog HDL、AHDL 和 VHDL 完成电路描述,并将其保存为设计实体文件。 2、芯片(电路)平面布局连线编辑。 3、LogicL
5、ock 增量设计方法, 用户可建立并优化系统,然后添加对原始系统的性能影响较小或无影响的后续模块。 4、功能强大的逻辑综合工具。 5、完备的电路功能仿真与时序逻辑分析。 6、定时/时序分析与关键路径延时分析。 7、可使用 SignalTap 逻辑分析工具进行嵌入式的逻辑分析。 8、支持软件源文件的添加和创建,并将它们链接起来生成编程文件。 9、使用组合编译方式可一次完成整体设计流程。 10、自动定位编译错误。 11、高效的期间编程与验证工具。 12、可读入标准的 EDIF 网表文件、 VHDL 网表文件和 Verilog 网表文件。 13、能生成第三方 EDA 软件使用的 VHDL 网表文件和
6、 Verilog 网表文件。通信电子线路实验与设计报告42、(7,4)汉明码的编解码器的工作原理2.1 汉明码的构造原理线性分组码是一类重要的纠错码,应用很广泛。在(n,k)分组码中,若监督码元是按线性关系模 2 相加而得到的,则称其为线性分组码。现在以(7,4)分组码为例来说明线性分组码的特点。设气码字为 A=【a6,a5,a4,a3,a2,a1,a0】,前 4 位是信息元,后 3 位是监督元,可用下列线性方程组来描述该分组码产生监督元:3460512aa显然,这 3 个方程式线性无关的。代入上述公式可得(7,4)码的全部码组,如表 1 所示。信息位a6a5a4a3监督位a2a1a0信息位a
7、6a5a4a3监督位a2a1a00000 000 1000 1110001 011 1001 1000010 101 1010 0100011 110 1011 0010100 110 1100 0010101 101 1101 0100110 011 1110 1000111 000 1111 111表 1 (7,4)汉明码的全部码组由上表可知:(7,4)汉明码的最小码距 d0=3,它能纠正 1 位错或检 2 位错。由此可见,汉明码是能够纠正单个错误的线性分组码,其特点是:最小码距 d0=3,码长 n 与监督位 r 满足关系式:2 r-1=n,说明上述所说的(7,4)线性分组码就是汉明码。同
8、时,由于码率 k/n=(n-r)/n=1-r/n,故当 n 很大和 r 很小时,码率接近 1,可见:汉明码是一种高效码。2.2 校正子(伴随式)S校正子与错码位置的关系,如表 2 所示S1S2S3 错码位置 S1S2S3 错码位置001 a0 101 a4010 a1 110 a5100 a2 111 a6011 a3 000 无错通信电子线路实验与设计报告5表 2 校正子与错码位置由上表可知:当 S=001 时,则出错在 0 位;当 S=010 时,则出错在 1 位;当 S=100 时,则出错在 2 位;当 S=011 时,则出错在 3 位;当 S=101 时,则出错在 4 位;当 S=11
9、0 时,则出错在 5 位;当 S=111 时,则出错在 6 位;当 S=000 时,则无错。2.3(7,4)汉明码的编解码器的工作原理编码:将输入的 4 位信息码编成 7 位汉明码,即加入 3 位监督位。解码:输入 7 位汉明码翻译成 4 位信息码,并且能纠正其中可能出现的一个错误。3、基于 Quartus II 的(7,4)汉明码的编解码器的设计的仿真实现3.1 仿真方案原理编码器的设计流程图如下:(7,4)汉明码的编码就是将输入的四位信息码编成七位的汉明码,即加入三位监督位。 根据式 A = 开始输入信息码 a3a2a1a0编出监督位 b2b1b0输出(7,4)汉明码b6b5b4b3b2b
10、1b0结束通信电子线路实验与设计报告6a6 a5 a4 a3 G 可知,信息码与生成矩阵 G 的乘积就是编好以后 的(7,4)汉明码,而生成矩阵G 又是已知的,可以得出如下方程组 a6=a6 a5=a5 a4=a4 a3=a3 a2=a6+a5+a4 a1=a6+a5+a3 a0=a6+a4+a3 (此处+即为异或), 就可以编出编码程序了。解码器的设计流程图如下:YN解码器算出校正子 S 与(7,4)汉明码之间的关系:S2=a6+a5+a4+a2;S1=a6+a5+a3+a1;S0=a6+a4+a3+a0;(此处+为异或)3.2 仿真的功能程序 编码器的主要功能程序介绍:输入信息码 a3a2
11、a1a0,输出(7,4)汉明码 b6b5b4b3b2b1b0。 开始译码输入 7 位码算出校正子 s2s1s0校正子 s2s1s0为 0?纠正出错的位输出 4 位信息码结束通信电子线路实验与设计报告7首先,输入信息码 a3a2a1a0,即使用以下语句:port(a:in std_logic_vector(3 downto 0);监督位与信息码之间的对应关系,使用异或运算,即: b(2)bb(0):= not bb(0);cbb(1):= not bb(1);cbb(2):=not bb(2);cbb(3):=not bb(3);cbb(4):=not bb(4);cbb(5):=not bb(5);cbb(6):=not bb(6);c “000“ then case ss is when “001“ =bb(0):=not bb(0);cbb(1):=not bb(1);cbb(2):=not bb(2);cbb(3):=not bb(3);cbb(4):=not bb(4);cbb(5):=not bb(5);cbb(6):=not bb(6);c null;c=“111“; end case; else b= a(6) end if; s=ss; b=bb(6) end process; end;