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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

曼彻斯特编解码器.docx

1、曼彻斯特编解码器 工具软件实训报告 项目名称: 曼彻斯特编解码器 指导老师: 系 科: 专 业: 姓 名: 学 号: 目录:一:实训要求 3二:实训原理 3三:实训思路 4四:实训步骤 4五:原理图、仿真结果图以及结论分析 51.曼彻斯特编解码器(实现16bit数据的编解码) 5曼彻斯特编解码器电路原理图: 5模块详解 6仿真图以及分析 10六:个人总结.11一:实训要求(1)通过学习原理图输入设计的方法掌握使用工具软件Quartus 设计小型数字电路;(2)查阅文献,了解曼彻斯特编解码器的基本原理, 并提出在Quartus 软件环境下用VHDL进行仿真的方案。(3)完成设计对编码器的要求:能

2、够对输入的16bit数据进行曼彻斯特编码,输入有时钟、使能、16bit并行数据、写信号等;输出有编码结束和曼彻斯特编码信号(都为1位信号)等。(4)完成设计对解码器要求:能够把输入的串行曼彻斯特码解码成原先的并行数据,输入有时钟、曼彻斯特码输入(1bit)、使能信号等,输出有提取的同步时钟信号、解码完成(1bit),并行数据(16bit)等。二:实训原理曼彻斯特编码,也叫做相位编码(PE),是一个同步时钟编码技术,在以太网媒介系统中,被物理层使用来编码一个同步位流的时钟和数据。它的每一个数据比特都是由至少一次电压转换的形式所表示的。在曼彻斯特编码中,每一位的中间有一跳变,位中间的跳变既作为时钟

3、信号,又作为数据信号。按照曼彻斯特码在IEEE?(令牌总线)以及IEEE?(以太网)中的规定,本次实训将从高电平到低电平的跳变表示“0”,从低电平到高电平的跳变表示“1”。三:实训思路以下为曼彻斯特编解码器的实现框图:有上图可知,此次的曼彻斯特编解码电路包括三个部分:信号产生部分、编码电路部分和解码电路部分。其中,信号产生部分用来产生一个循环的16位二进制数据编码作为普通的信号输入;编码部分则将输入的信号编码为曼彻斯特码,然后输出显示;解码部分负责将获得的曼彻斯特码解码成普通的二进制数据编码。三个相对独立的模块相互协同工作,共同完成曼彻斯特编解码的工作。?四:实训步骤(1)建立工程;(2)编写

4、VHDL文件,建立目标器件;(3)绘制电路原理图并编译;(4)进行仿真以及分析仿真后的波形文件;(5)完成实训报告。五:原理图、仿真结果图以及结论分析1.曼彻斯特编解码器(实现16bit数据的编解码)曼彻斯特编解码器电路原理图:模块详解分频器模块library ieee; use use entity clks is port(clk:in std_logic; -基准时钟 clk0,clk1,clk2:buffer std_logic); -分频出的三个时钟,分别输入循环编 -码模块、曼彻斯特编码模块、曼彻斯特解码模块end clks; architecture behav of clks

5、is signal a:integer:=0; signal b:integer:=0; begin process(clk)begin clk0=clk; end process; process(clk) begin if clkevent and clk=1 then if a=2 then a=0;clk1=1; else a=a+1;clk1=0; end if; end if; end process; process(clk) beginif clkevent and clk=1 then if b=5 then b=0;clk2=1; else b=b+1;clk2=0; en

6、d if; end if; end process; end behav; 循环编码模块library ieee; use use entity recycle is port(clk2:in std_logic; datain:out std_logic); end recycle; architecture behav of recycle is signal i:integer:=0; begin process(clk2) begin if clk2event and clk2=1 then if i=15 then i=0;else i datain datain datain da

7、tain datain datain datain datain datain datain datain datain datain datain datain datain datain=null; end case; end if; end process; end behav;曼彻斯特编码模块library ieee; use mcode is port(clk1: in std_logic; datain: in std_logic; dataout: out std_logic); end mcode;architecture behav of mcode is signal co

8、n:std_logic_vector(1 downto 0); signal s:std_logic; begin process(clk1) begin if clk1event and clk1=1 then if datain=1 then con=01; -上升沿表示1 else con=10; -下降沿表示0 end if; end if; end process; process(clk1) Begin if clk1event and clk1=1 then if s=1 then dataout=con(1); s=not s; else dataout=con(0); s=n

9、ot s; end if; end if;end process; end behav;说明:曼彻斯特码是用“01”和“10”来表示普通二进制数据中的“1”和“0”的,因此在实际电路设计中,我们很容易产生一个和数据信号具有相同频率的检测时钟,用来对传入的数据信号进行检测。当检测信号检测到输入信号是“1”时,选择器就输出“01”给寄存器,由寄存器完成并串转化功能,然后再将串行数据输出;当输入信号是“0”时,选择器就输出“10”给寄存器由寄存器完成并串转化功能,然后再将串行数据输出,这样,输出的串行数据就是曼彻斯特码。曼彻斯特解码模块library ieee; use entity mdecode

10、 is port(clk0:in std_logic; dedatain: in std_logic; dedataout:out std_logic; count: buffer std_logic_vector(2 downto 0); end mdecode;architecture behav of mdecode issignal con:std_logic_vector(1 downto 0); begin process(clk0) begin if clk0event and clk0=1 then if count=5 then count=000; else count=c

11、ount+1; end if; end if; end process; process(clk0) begin if clk0event and clk0=1 then con(1)=con(0); con(0)=dedatain; end if; end process; process(clk0) begin if clk0event and clk0=1 then if count=4 then if con=10 then dedataout=0; elsif con=01 then dedataout=1; end if; end if; end if;end process; e

12、nd behav;说明:曼彻斯特解码电路设计的关键是如何准确地从曼彻斯特码的数据流中提取出“10”和“01”信号,并且把它们转换成普通二进制编码中的“0”和“1”。例如对于曼彻斯特码“01010101”,如果从第一位开始解码,得到的二进制编码就是“1111”,而若从第二位开始解码,得到的二进制编码就是“000”和头尾两个曼彻斯特码。由此可见,如果曼彻斯特码数据流中只有“1”或“0”是不能得到正确的译码结果的,如果曼彻斯特编码数据流中出现“00”,则“00”前后的码元必定是“1”;如果曼彻斯特编码数据流中出现“11”,则“00”前后的码元必定是“0”,因此,我们可以将“00”与“11”作为曼彻斯

13、特码译码的标志位。仿真图以及分析曼彻斯特编解码器仿真图仿真分析“CLK”是输入的基准时钟,“data_in”是输入数据波形,从92us后提取一段输入数据为“100”。“code_data”是曼彻斯特编码波形,理论上应当是“001010”,从仿真图中可以看出仿真结果符合理论值。而“decode_data”是曼彻斯特解码波形,应当与“data_in”相一致,仿真图也符合理论结果,这些说明了编码程序和解码程序是正确的。从图中也可以看出当输入数据是“1”时,曼彻斯特编码为“01”;当输入数据是“0”时,曼彻斯特编码为“10”。六:个人总结彻斯特编码器电路,是目前为止比较实用的设计项目之一,应用广泛。在此次实训中,遇到了很多技术上的问题,自己查阅了很多网络上和各种EDA书籍,关于曼彻斯特编码器电路的实训项目等相关知识。了解掌握了如何运用时序控制电路,EDA库文件模块的调用(参数设定),VHDL语言的程序编写,通过已知频率脉冲的控制让该模块输出时序控制电路,驱动下一功能模块电路。接下来完成编码的设计工作,16位并行数据的输入,16位串行译码数据的输出。最后,顶层电路模块的仿真联调工作,把前面三个模块按照一定电路原则连接起来,并进行编译和波形仿真,最终实现全部功能。精心搜集整理,只为你的需要

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

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