版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、EDA课程设计 _通信编解码器设计-学 号 09700113EDA技术及应用设计说明书通信编解码器设计起止日期:2013年1 月4日至2013 年1月10 日学生姓名李炯班级 09 电信 1班成绩指导教师 ( 签字 )电子与信息工程系2013年 1月 9日-天津大学课程设计任务书2012 2013 学年第 1学期电子与信息工程系 电子信息工程专业课程设计名称 : EDA 技术及应用设计题目 :通信编解码器设计完成期限 :自 2013 年 1 月 4日至 2013 年 1月 10 日共 1周一(课程设计依据在掌握常用数字电路原理和技术的基础上,利用EDA技术和硬件描述语言,EDA开发软件 (Qu
2、artus?) 和硬件开发平台 ( 达盛试验箱 Cyclone?FPGA)进行初步数字系统设计。二( 课程设计内容采用状态机结构设计简易串行数据编码器,实现NRZ码转换为差分码,双相码和曼彻斯特码功能,串行数据速率为9600bit/s ,扩展设计 : 超采样,频率 1MHz实现数据实现 960bit/s传输。要求通过仿真验证。三 ( 课程设计要求1. 要求独立完成设计任务。2. 课程设计说明书封面格式要求见天津城市建设学院课程设计教学工作规范附表 1 3.课程设计的说明书要求简洁、通顺,计算正确,图纸表达内容完整、清楚、规范。4.测试要求 : 根据题目的特点,采用相应的时序仿真或者在实验系统上
3、观察结果。5.课设说明书要求 :1) 说明题目的设计原理和思路、采用方法及设计流程。2) 系统框图、 VHDL语言设计清单或原理图。3) 对各子模块的功能以及各子模块之间的关系作较详细的描述。4) 详细说明调试方法和调试过程。5) 说明测试结果 : 仿真时序图和结果显示图。并对其进行说明和分析。指导教师 ( 签字 ):教研室主任 ( 签字 ):批准日期 : 2012 年 12月 22日-目 录第一章通信解码器概述 . 11.1几种码的介绍 . 1码 .1差分码 . 1曼彻斯特码 ( 又称双相码 ). 11.2总体方案概述 . 21.3用状态机设计差分码编码器 . 2状态机简介 . 2对编码器的
4、设计 . 31.4曼彻斯特码模块程序. 3第二章转码器的设计与仿真. 62.1功能描述. 62.2差分码源程序( 基于Verilog HDL语言 ). 62.3功能模块的仿真 . 72.4曼彻斯特码源程序 ( 基于 VerilogHDL). 82.5功能模块仿真 . 10第三章转码器的综合及硬件验证 .113.1转码器码的综合 .11曼彻斯特码转码器 .11差分码转码器 .113.2图形文件 .11第四章 转码器的设计总结 . 124.1设计调试 . 124.2设计心得 . 12参考文献 . 13-第一章通信解码器概述编解码器指的是一个能够对一个信号或者一个数据流进行变换的设备或者程序。这里指
5、的变换既包括将信号或者数据流进行编码( 通常是为了传输、存储或者加密 ) 或者提取得到一个编码流的操作,也包括为了观察或者处理从这个编码流中恢复适合观察或操作的形式的操作。编解码器经常用在视频会议和流媒体等应用中,通常主要还是用在广电行业,作前端应用。1.1几种码的介绍码数字信号可以直接采用基带传输, 所谓基带就是指基本频带。基带传输就是在线路中直接传送数字信号的电脉冲, 这是一种最简单的传输方式, 近距离通信的局域网都采用基带传输。基带传输时 , 需要解决数字数据的数字信号表示以及收发两端之间的信号同步问题。对于传输数字信号来说, 最简单最常用的方法是用不同的电压电平来表示两个二进制数字 ,
6、 也即数字信号由矩形脉冲组成。按数字编码方式,可以划分为单极性码和双极性码,单极性码使用正( 或负 ) 的电压表示数据 ; 双极性码是二进制码, 1为反转, 0 为保持零电平。根据信号是否归零,还可以划分为归零码和非归零码,归零码码元中间的信号回归到0 电平,而非归零码遇1 电平翻转,零时不变。差分码通信中的差分编码,差分编码输入序列 an ,差分编码输出序列 bn ,二者都为 0 、1 序列,则差分编码输出结果为 bn=an 异或 bn-1 ,并不是 bn=an异或 an-1( 即所谓的 : 对数字数据流,除第一个元素外,将其中各元素都表示为各该元素与其前一元素的差的编码。这么定义是不准确的
7、。 ) 。前者多用在 2DPSK调制,后者多用在 MSK调制预编码。同时后者是码反变换器的数学表达式,即用来解差分编码用的。曼彻斯特码 ( 又称双相码 )曼彻斯特编码 (Manchester Encoding) ,也叫做相位编码 (PE) ,是一个同步时钟编码技术,被物理层使用来编码一个同步位流的时钟和数据。曼彻斯特编码被用在以太网媒介系统中。曼彻斯特编码提供一个简单的方式给编码简单的二进制序列而没有长的周期没有转换级别,因而防止时钟同步的丢失,或来自低频率位移在贫乏补偿的模拟链接位错误。在这个技术下,实际上的二进制数据被传输通过这个电缆,不是作为一个序列的逻辑 1 或 0 来发送的 ( 技术
8、上叫做反向不归零制 (NRZ) 。相反地,这些位被转换为一个稍微不同的格式,它通过使用直接的二进制编码有很多的优点。曼彻斯特编码,常用于局域网传输。在曼彻斯特编码中,每一位的中间有一跳变,位中间的跳变既作时钟信号,又作数据信号; 从低到高跳变表示 "0" ,从高到低跳变表示 "1" 。还有一种是差分曼彻斯特编码,每位中间的跳变仅提供时钟定时,而用每位开始时有无跳变表示"0" 或 "1" ,有跳变为 "0" ,无跳变为 "1" 。本文主要介绍用Verilog HDL语言来描述编
9、写一个将NRZ码转换为曼彻斯特码和差分码的软件模块,并能够在FPGA芯片中调试和仿真。四总码型的编码方案如下图1-1:1-图 1-1 四总码型的编码方案1.2总体方案概述曼彻斯特解码器是一种基于硬件描述的设计方案; 该方案先利用 Verilog HDL语言描述少量逻辑单元,构成逻辑处理模块,继而搭建出解码器。曼彻斯特码是将NRZ 普通二进制数据与其位率时钟信号相异或而得,解决了传输数据没有时钟的问题。当传送信号为“ 1”,曼彻斯特编码由高电平跳变为低电平; 若传送的信息为“0”; 曼彻斯特编码由低电平转变为高电平; 如果有连续的“ 1”或“ 0”信息出现时,则曼彻斯特编码保持“1”或“ 0”的
10、跳变,即编码后,信息“0”与时钟一致,信息“ 1”与时钟反相 ( 相位相差 180 度) 。曼彻斯特编码是一种相位调制,有时钟的 180 度相位代表 NRZ信号的逻辑“ 1”电平。这次设计主要是要实现将NRZ码转成曼彻斯特码的功能, 总体的设计原理框图如图 1-2 所示。图 1-2 原理框图1.3用状态机设计差分码编码器状态机简介状态机是一个有向图形,由一组节点和一组相应的转移函数组成。状态机通过响应一系列事件而“运行”。每个事件都在属于“当前”节点的转移函数的控制范围内,其中函数的范围是节点的一个子集。函数返回“下一个”( 也许是同一个 ) 节点。这些节点中至少有一个必须是终态。当到达终态,
11、状态机停止。状态机主要分为2 大类 : 第一类,若输出只和状态有关而与输入无关,则称为Moore 状态机 : 第二类,输出不仅和状态有关而且和输入有关系,则称为Mealy 状态机。要特别注意的是,因为Mealy 状态机和输入有关,输出会受到输入的干扰,所以可能会产生毛刺 (Gitch)现象,使用时应当注意。事实上现在市面上有很多EDA工具可以很方便的将采用状态图的描述转换成可以综合的VHDL程序代码。2-对编码器的设计设初始状态为 S0 编码为 00, 根据功能带入输入0 时得到下一状态S1 和相应输出 0。依次代入类推,可得到如图 1-3 所示的状态图。S00/00 或 1/11/0S3S1
12、1/00 或 1/00/1S2图 1-3 状态图其状态机设计程序如下 :always (negedge clk or negedge reset) if(reset = 0)state<=S0;else state<=next_state; always (state or in) beginout = 0;case(state)S0:begin if(in = 0)next_state = S1;else next_state = S3;endS1:begin next_state = S2;endS2:begin out = 1;if (in = 0)next_state =
13、S1;else next_state = S3;endS3:begin out = 1;next_state = S0;endendcaseend1.4曼彻斯特码模块程序曼彻斯特编码模块如下 :moduleManchester_bian(in_dat,clk_tong,clk_fan,out_dat_tong,out_dat_fan,clr);input in_dat,clk_tong,clk_fan,clr;output out_dat_tong,out_dat_fan;wire out_dat_tong,out_dat_fan;3- wire out_dat_tong_1,out_dat_
14、fan_1; wire out_dat_tong_0,out_dat_fan_0;assign out_dat_tong_1=(state11:0=2'b01)?(clk_tong && con):1'b0; assign out_dat_tong_0=(state11:0=2'b10)?(clk_fan && con):1'b0; assign out_dat_tong=(out_dat_tong_1) |( out_dat_tong_0);assign out_dat_fan_1=(state21:0=2'b01)?(
15、clk_tong && con):1'b0; assign out_dat_fan_0=(state21:0=2'b10)?(clk_fan && con):1'b0;assign out_dat_fan=(out_dat_fan_1) | (out_dat_fan_0);reg 1:0 state1;reg 1:0 state2;reg 1:0 dat_reg;reg con;always (posedge clk_tong )begincon=1'b0;if(clr)beginstate11:0=2'b01;state
16、21:0=2'b01;con=1'b0;endelsebegindat_reg1:0=dat_reg1:0>>1;dat_reg1=in_dat;if(dat_reg1)beginstate11:0=2'b01;con=1'b1;if(state21:0=2'b01)beginstate21:0=2'b10;endelsebeginstate21:0=2'b01;endendelse4-beginstate11:0=2'b10;con=1'b1;if(state21:0=2'b01)beginstate
17、21:0=2'b01;endelse if(state21:0=2'b10)beginstate21:0=2'b10;endendendendendmodule5-第二章转码器的设计与仿真2.1功能描述1、输入 NRZ码;2、设置 CLK;3、输出差分码,曼彻斯特码。2.2差分码源程序 ( 基于 Verilog HDL语言 )module NRZ_To_Differential (Out, in,clk,reset);output Out;input in;input clk,reset;reg Out;reg 1:0 state,next_state;paramete
18、r S0 = 0,S1 = 1,S2 = 2,S3 = 3;always (negedge clk or negedge reset)if(reset = 0)state<=S_0;else state<=next_state;always (state) beginOut = 0;case(state)S_0:begin if( = 0)next_state = S_1;else next_state = S_3;end S_1:begin next_state = S_2;endS_2:begin Out = 1;if( = 0)next_state = S_1;else ne
19、xt_state = S_3;endS_3:begin Out = 1;next_state = S_0;endendcaseendendmodulemodule stimulus();reg CLK,RESET;reg BIN;wire BOUT;NRZ_To_Differential T1(. Out (BOUT),. (BIN),.clk(CLK),.reset(RESET)6-);initial$monitor($time," : IN = %b OUT = %b ", BIN,BOUT,); initial beginRESET <= 0;BIN <=
20、 0;#5 if(BOUT != 0)$display($time," : Reset State_0 Failed ! ");RESET <= 1;#10 if(BOUT != 0)$display($time," : State_1 Failed ! ");#5 BIN <= 1;#5 if(BOUT != 1)$display($time," : State_2 Failed ! ");#10 if(BOUT != 1)$display($time," : State_3 Failed ! ");
21、#45 BIN <= 0;#40 BIN <= 1;#20 BIN <= 0;#60 $stop;endendmodule2.3功能模块的仿真功能仿真采用 Quartus II 7.2实现程序功能 :1. 打开 Quartus 后,新建一个 Verilog HDL file文件,讲上述程序复制到生成的对话框中,保存;2. 保存运行后,新建一个Vector Waveform file文件保存在同一文件夹下;3. 将, Out, CLK,RESET导入窗口 ;4. 修改 End Time,CLK和 RESET的 Count every;5. 将窗口保存同一文件夹下 ;完成以上步骤
22、就可得到2.1 图所示的仿真码。End Time 为 500 us ,Clock 为 100 us 时,解码器输出的 Manchester 、如图 2-1 所示。图 2-1 时序仿真7-2.4曼彻斯特码源程序 ( 基于 Verilog HDL)Manchester 码 ( 双相码 ) 编码器。/ 总模块 :module Manchester_shuchu(clk,clr,in_dat,out_dat_tong,out_dat_fan);input clk,clr,in_dat;output out_dat_tong,out_dat_fan;wire clk_fan;fpj u0(.clk(cl
23、k),.clk_fan(clk_fan),);Manchester_bian u1(.in_dat(in_dat),.clk_tong(clk),.clk_fan(clk_fan),.out_dat_tong(out_dat_tong),.out_dat_fan(out_dat_fan),.clr(clr);endmodule/fpj模块 :module fpj(clk,clk_fan);output clk_fan;input clk;wire clk2_fan;assign clk_fan=clk;endmodule/Manchester_bian模块 :moduleManchester_
24、bian(in_dat,clk_tong,clk_fan,out_dat_tong,out_dat_fan,clr); input in_dat,clk_tong,clk_fan,clr;output out_dat_tong,out_dat_fan;wire out_dat_tong,out_dat_fan;wire out_dat_tong_1,out_dat_fan_1;wire out_dat_tong_0,out_dat_fan_0;assign out_dat_tong_1=(state11:0=2'b01)?(clk_tong && con):1'
25、b0;assign out_dat_tong_0=(state11:0=2'b10)?(clk_fan && con):1'b0; assignout_dat_tong=(out_dat_tong_1) |( out_dat_tong_0); assignout_dat_fan_1=(state21:0=2'b01)?(clk_tong && con):1'b0; assignout_dat_fan_0=(state21:0=2'b10)?(clk_fan && con):1'b0; assigno
26、ut_dat_fan=(out_dat_fan_1) | (out_dat_fan_0); reg 1:0 state1;8-reg 1:0 state2;reg 1:0 dat_reg;reg con;always (posedge clk_tong )begincon=1'b0;if(clr)beginstate11:0=2'b01;state21:0=2'b01;con=1'b0;endelsebegindat_reg1:0=dat_reg1:0>>1;dat_reg1=in_dat;if(dat_reg1)beginstate11:0=2
27、39;b01;con=1'b1;if(state21:0=2'b01)beginstate21:0=2'b10;endelsebeginstate21:0=2'b01;endendelsebeginstate11:0=2'b10;con=1'b1;if(state21:0=2'b01)beginstate21:0=2'b01;endelse if(state21:0=2'b10)beginstate21:0=2'b10;9-endendendendendmodule2.5功能模块仿真功能仿真采用Quartus II
28、 7.2实现程序功能:1. 打开Quartus后,新建一个Verilog HDL file文件,讲上述程序复制到生成的对话框中,保存;2. 保存运行后,新建一个Vector Waveform file文件保存在同一文件夹下; 3.将 NRZ,Manchester ,CLK,RESET导入窗口 ;4. 修改 End Time,CLK和 RESET的 Count every;5. 将窗口保存同一文件夹下 ;完成以上步骤就可得到2-2 图所示的仿真码。End Time 为 00 us ,Clock 为 200 us 时,解码器输出的Manchester 、如图 2-2所示。图 2-2 Manches
29、ter 时序仿真10-第三章转码器的综合及硬件验证3.1转码器码的综合3.1.1曼彻斯特码转码器在 Quartus II 软件的图形编译模式下, NRZ码转曼彻斯特码转码器如图3.1 所示,综合后的曼彻斯特码转码器内核有3 个输入控制端、 2 个输出端。3.1.2差分码转码器重复上述步骤,可得图3-2 的差分码转码器内核,其内核由3 个输入控制端、1 个输出端。图 3-1 RZ 码转曼彻斯特码转码器图 3-2 差分码转码器内核3.2图形文件在 Quartus II软件的图形编译模式下,通过与软件内部的输入、输出模块联接,并定义各输入、输出端口的名字即得到了转码器的图形文件仿真如图3-3示。所图
30、 3-3 转码器的图形文件11-第四章转码器的设计总结4.1设计调试要注意状态机的设计过程是否正确,其中的语言描述语法是否正确,符号的问题,在总体编译的过程中不通过,查出顶层文件名出线错误,经修改后编译通过。4.2设计心得经过一周的设计与思考,最终实现了转码器的模拟。期间遇到了许多问题,但最后都在图书馆、网络和同学的帮助下解决。设计初期不知道要从什么地方下手,通过学习,查资料,套用以前的前辈们的模板来对应所需要解决的问题,从而设计出与任务书相符的设计。当初设计了几个方案,对其进行一一比较,选择最合适的方案动手设计,然后开始查资料和设计。总体设计在整个设计过程中非常重要,应该花较多的时间在上面。方案确定后,才开始设计。设计时,多使用已学的方法,如有限状态机。整体考虑,应符合设计要求目的。模块之间关系,查资料,然后根据目的来自己修改,与同学交流后,得出最终设计。遇到复杂程序连
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 制度职责考试题及答案
- 河北省保定市高碑店市2026-2027学年数学三上期末质量跟踪监视模拟试题含解析
- 2026年中职(电气运行与控制)电机检修试题及答案
- 趣味常识考试题目及答案
- 国信培训考试题及答案
- 大兴安岭地区漠河县2027届三上数学期末复习检测试题含解析
- 2026年高职(港口物流管理)港口物流信息系统操作综合测试题及答案
- 酒店品质考试题及答案
- 中药炮制考试题型及答案
- 中医晕厥相关试题与答案解析
- 2026教师法规题库推-荐及答案
- 人教版三年级英语下册期末测试卷及答案(2026年)
- ISOTS 6892-52025 金属材料 拉伸试验 第5部分小型化试件试验规范标准立项发展报告
- 2026年贵州省贵阳市中考地生会考考试试卷及答案
- 2026泉州五中高一数学分班考试真题含答案
- 矿山排水系统安装工程施工方案及技术措施
- 安徽宣城市2025-2026学年第二学期高二期末测试数学试题(含答案)
- 2026年注册安全工程师实务《其他安全》试题含答案
- 中国下肢静脉功能不全诊疗指南(2025版)
- JJG-JY-GL(B)-001-2025 北京市高速公路占道作业交通安全设施预算定额
- (2026年)抽搐的定义病因分类课件
评论
0/150
提交评论