曼彻斯特编解码器
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
工具软件实训报告
项目名称: 曼彻斯特编解码器
指导老师:
系科:
专业:
姓名:
学号:
目录:
一:实训要求 (2)
二:实训原理 (2)
三:实训思路 (3)
四:实训步骤 (3)
五:原理图、仿真结果图以及结论分析 (4)
1、曼彻斯特编解码器(实现16bit数据得编解码) (4)
1、1曼彻斯特编解码器电路原理图: (4)
1、2模块详解 (4)
1、3仿真图以及分析...................... 错误!未定义书签。六:个人总结、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、11
(1)通过学习原理图输入设计得方法掌握使用工具软件Quartus Ⅱ设计小型数字电路;
(2)查阅文献,了解曼彻斯特编解码器得基本原理, 并提出在Quartus Ⅱ软件环境下用VHDL进行仿真得方案。
(3)完成设计对编码器得要求:能够对输入得16bit数据进行曼彻斯特编码,输入有时钟、使能、16bit并行数据、写信号等;输出有编码结束与曼彻斯特编码信号(都为1位信号)等。
(4)完成设计对解码器要求:能够把输入得串行曼彻斯特码解码成原先得并行数据,输入有时钟、曼彻斯特码输入(1bit)、使能信号等,输出有提取得同步时钟信号、解码完成(1bit),并行数据(16bit)等。
二:实训原理
曼彻斯特编码,也叫做相位编码(PE),就是一个同步时钟编码技术,在以太网媒介系统中,被物理层使用来编码一个同步位流得时钟与数据。它得每一个数据比特都就是由至少一次电压转换得形式所表示得。在曼彻斯特编码中,每一位得中间有一跳变,位中间得跳变既作为时钟信号,又作为数据信号。按照曼彻斯特码在IEEE 802、4(令牌总线)以及IEEE 802、3 (以太网)中得规定,本次实训将从高电平到低电平得跳变表示“0”,从低电平到高电平得跳变表示“1”。
以下为曼彻斯特编解码器得实现框图:
有上图可知,此次得曼彻斯特编解码电路包括三个部分:信号产生部分、编码电路部分与解码电路部分。其中,信号产生部分用来产生一个循环得16位二进制数据编码作为普通得信号输入;编码部分则将输入得信号编码为曼彻斯特码,然后输出显示;解码部分负责将获得得曼彻斯特码解码成普通得二进制数据编码。三个相对独立得模块相互协同工作,共同完成曼彻斯特编解码得工作。
四:实训步骤
(1)建立工程;
(2)编写VHDL文件,建立目标器件;
(3)绘制电路原理图并编译;
(4)进行仿真以及分析仿真后得波形文件;
(5)完成实训报告。
五:原理图、仿真结果图以及结论分析
1、曼彻斯特编解码器(实现16bit数据得编解码)
1、1曼彻斯特编解码器电路原理图:
1、2模块详解
1、2、1分频器模块
library ieee;
use ieee、std_logic_1164、all;
use ieee、std_logic_unsigned、all;
entity clks is
port(clk:in std_logic; --基准时钟
clk0,clk1,clk2:buffer std_logic); --分频出得三个时钟,分别输入循环编
--码模块、曼彻斯特编码模块、曼彻斯特解码模块end clks;
architecture behav of clks is
signal a:integer:=0;
signal b:integer:=0;
begin
process(clk)
begin
clk0<=clk;
end process;
process(clk)
begin
if clk'event 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)
begin
if clk'event and clk='1' then
if b=5 then
b<=0;clk2<='1';
else
b<=b+1;clk2<='0';
end if;
end if;
end process;
end behav;
1、2、2循环编码模块
library ieee;
use ieee、std_logic_1164、all;
use ieee、std_logic_unsigned、all; 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 clk2'event and clk2='1' then
if i=15 then
i<=0;
else