资源预览内容
第1页 / 共13页
第2页 / 共13页
第3页 / 共13页
第4页 / 共13页
第5页 / 共13页
第6页 / 共13页
第7页 / 共13页
第8页 / 共13页
第9页 / 共13页
第10页 / 共13页
亲,该文档总共13页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
合 肥 学 院课 程 设 计 报 告题 目:基于FPGA的曼彻斯特编译码设计与实现系 别 :电子信息与电气工程系 专 业: 通信工程 班 级: 10通信工程1班 学 号:1005074007 1005076001 1005074012姓 名:柯望 吕烨 邓超 导 师: 段慧敏 成 绩:_2013年12月9日 一、前言3二、方案论证及选择41.1方案一41.2方案二4三、理论分析41.1伪随机序列模块41.2曼彻斯特编码模块51.3曼彻斯特解码模块51.4四分频模块设计5四、系统整体设计6五、实验相关程序61.1 M序列产生程序61.2 曼彻斯特编码程序71.3 曼彻斯特解码程序81.4 四分频程序91.5整体程序9六、总结10参考文献11附录111.1附录一111.2附录二121.3附录三121.4附录四13基于FPGA的曼彻斯特编译码设计与实现中文摘要随着科学技术的进步,现代战争样式向信息战形式发展。现代战争胜负对于信息获取的依赖程度前所未有的提高。在现代战争中,若己方的通讯交流方式早敌军破获,则地方将获取己方部队动向或实施信息干扰。将会使部队陷入极其危险地境地中。因此,信息战对通讯加密手段的要求极高。伪随机序列(Pseudo-noiseSequence)又称伪噪声或伪随机码,具有类似随机信号的一些统计特性,但又是有规律的,容易产生和复制的。最大长度线性移位寄存器序列(m序列)是保密通信中非常重要的一种伪随机序列,它具有随机性、规律性及较好的自相关和互相关性,而且密钥量很大。利用m序列加密数字信号,使加密后的信号在携带原始信息的同时具有伪噪声的特点,以达到在信号传输的过程中隐藏信息的目的;在信号接收端,再次利用m序列加以解密,恢复出原始信号。这样,通过对m序列的应用,将大大的提高通讯的保密程度和防窃取能力。这样的通讯手段被称为扩展频谱通信关键词:伪随机码;曼彻斯特码;曼彻斯特编译码;FPGA一、前言曼彻斯特码(Manchester code),又称裂相码,双向码,是一种自同步的编码方式,即时钟同步信号隐藏在数据波形中,亦即在传输代码信息的同时,也将时钟同步信号一起传输到对方。另外,曼彻斯特码每位编码中有一跳变,不存在直流分量。因此该码具有自同步能力和良好的抗干扰性能。曼彻斯特编码(Manchester Encoding),也叫做相位编码(PE),是一个同步时钟编码技术,被物理层使用来编码一个同步位流的时钟和数据。曼彻斯特编码被用在以太网媒介系统中。曼彻斯特编码提供一个简单的方式给编码简单的二进制序列而没有长的周期和转换级别,因而防止时钟同步的丢失,或来自低频率位移在贫乏补偿的模拟链接位错误。FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输入输出模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。 现场可编程门阵列(FPGA)是可编程器件,与传统逻辑电路和门阵列(如PAL,GAL及CPLD器件)相比,FPGA具有不同的结构。FPGA利用小型查找表(161RAM)来实现组合逻辑,每个查找表连接到一个D触发器的输入端,触发器再来驱动其他逻辑电路或驱动I/O,由此构成了既可实现组合逻辑功能又可实现时序逻辑功能的基本逻辑单元模块,这些模块间利用金属连线互相连接或连接到I/O模块。FPGA的逻辑是通过向内部静态存储单元加载编程数据来实现的,存储在存储器单元中的值决定了逻辑单元的逻辑功能以及各模块之间或模块与I/O间的联接方式,并最终决定了FPGA所能实现的功能,FPGA允许无限次的编程。二、方案论证及选择由实验要求本次课程设计分四个模块分别为基于FPGA的伪随机序列产生模块;基于FPGA 的曼彻斯特编码模块;基于FPGA的曼彻斯特解码模块;基于FPGA的四分频模块。1.1方案一方案一:实现上述四个模块可以用Quartus软件中的原理图编辑功能进行各个模块的设计,然后进行元件封装进行连接实现整体设计。但是由于Quartus软件所提供的基本元件有限不能满足本实验的实验要求。故不采用原理图设计本实验。1.2方案二方案二:由VHDL硬件描述语言的强大功能可以运用VHDL语言对各个模块的功能进行功能描述,使得各个模块能够实现各自的子功能。与原理图编辑类似,将用VHDL语言描述的各个子模块进行元件封装以便用例化语句进行调用。此方案可以减少原理图设计时的线路连接的繁琐工作,可以方便的进行功能的改变和错误检查。故本次实验选择VHDL语言进行功能描述完成实验要求。三、 理论分析1.1伪随机序列模块伪随机序列模块:由实验要求需要产生的伪随机序列满足特征方程:f=1+x2+x3+x4+x8。由特征方程的表达式可知线性反馈移位寄存器的抽头位置分别在c0,c5,c9。并且c5和c9进行异或运算作为输入输入给D8。根据功能要求用VHDL语言进行描述。在进行软件设计时可以通过使能端控制对c0-c8进行初始设置,并且在时钟控制下按照程序设置运行程序,并进行波形仿真以验证程序功能的正确性。m序列实验程序波形见附录 一图1 线性反馈移存器的一般组成原理图1.2曼彻斯特编码模块曼彻斯特编码模块:由曼彻斯特解码规则可将程序设置为在输入一个二进制码元时将此输入二进制码元作为标准逻辑矢量的一个元素,再将此码元取反作为标准逻辑矢量的另一个元素。最后将所得的两个元素进行并置输出为二位的标准逻辑矢量,并将此标准逻辑矢量按位输出即可得到曼彻斯特编码在仿真时可以通过输入码元与对应的仿真输出二位的标准逻辑矢量进行比较确认是否输出正确。曼彻斯特编码的实验程序见附录二。1.3曼彻斯特解码模块曼彻斯特解码模块:与曼彻斯特编码类似,可以根据曼彻斯特解码的规则可将程序设置为在输入两个码元后,对两个码元所组成的码组进行判别从而输出相应的单个的二进制码元。在曼彻斯特解码的过程中为保证在输入两个码元后在进行判别需要用到两个不同频率的时钟信号。控制进行曼彻斯特解码输入的时钟信号时钟频率是进行码组判别的时钟信号时钟频率的4倍。因此需要对同一个时钟信号进行4分频。曼彻斯特解码实验程序见附录三。1.4四分频模块设计四分频模块设计:为了减少在一个实验中用到多个外接时钟信号,可以通过将一个时钟信号进行分频获得满足要求的不同频率的时钟信号。为满足曼彻斯特解码对输入时钟信号的要求,需要对同一时钟信号进行四分频。四分频实验程序见附录四。四、系统整体设计按照以上各个子系统模块以及整体连接可以完成实验基本要求。编码速率可以通过调节时钟CLK1的频率来改变。对于实验要求的伪码数据率为 10100kbps,可以调节时钟CLK1的时钟频率在10K100K之间。仿真分析:在Quartus软件中进行整体软件设计程序仿真,通过仿真波形图分析输入数据和输出数据可以验证系统满足实验要求。图2 系统总体设计框图五、 实验相关程序1.1 M序列产生程序library ieee;use ieee.std_logic_1164.all;entity M isport(clk,led:in std_logic; z:in std_logic_vector(8 downto 0); MOT:out std_logic_vector(8 downto 0); MO:out std_logic);end entity;architecture M1 of M is signal reg:std_logic_vector(8 downto 0); signal cy,A,B,C:std_logic; begin process (clk) begin if (clkevent and clk=1) and (clklast_value=0) then case led is when 1= reg(8 downto 0) reg(7 downto 0)=reg(8 downto 1); cy=reg(0); A=reg(5) xor reg(0); B=reg(6) xor A; C=reg(7) xor B; reg(8)=C; end case; end if; end process; MO=cy;MOT(8 downto 0)=reg(8 downto 0);end M1;1.2 曼彻斯特编码程序library ieee;use ieee.std_logic_1164.all;entity MC isport (clk,MCI:in std_logic; MCOV:out std_logic_vector(1 downto 0); MCO:out std_logic);end entity;architecture MC1 of MC is signal a,b,d,e:std_logic; signal c:std_logic_vector(1 downto 0);begin u1:process (clk,MCI) begin if (clkevent and clk=1) and (clklast_value=0) then b=MCI; a=not MCI; c(1 downto 0)=a & b; e=c(0); end if; end process;MCO=e;MCOV(1 downto 0)=c(1 downto 0);end architecture MC1;1.3 曼彻斯特解码程序 library ieee;use ieee.std_logic_1164.all;entity MCJ isport (clk1,clk2,MCJI:in std_logic; MCOJV: out std_logic_vector(1 downto 0);MCJO:out std_logic);end entity MCJ;architecture MCJ1 of MCJ is signal a,c:std_logic_vector(1 downto 0); signal b:std_logic; begin process (clk1,MCJI)variable J:std_logic_vector(1 downto 0); begin
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号