数字逻辑电路课程设计-4B5B编码-VHDL实现(含完整代码)_第1页
数字逻辑电路课程设计-4B5B编码-VHDL实现(含完整代码)_第2页
数字逻辑电路课程设计-4B5B编码-VHDL实现(含完整代码)_第3页
数字逻辑电路课程设计-4B5B编码-VHDL实现(含完整代码)_第4页
数字逻辑电路课程设计-4B5B编码-VHDL实现(含完整代码)_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

-.z.电子科技大学UNIVERSITYOFELECTRONICSCIENCEANDTECHNOLOGYOFCHINA数字逻辑设计实验报告实验题目:4B5B编码器学生**:指导教师:一、实验内容4B/5B编码是百兆以太网中线路层编码类型之一,该试验需要实现用5bit的二进制数来表示4bit二进制数。二、实验要求1、功能性要求:能够实现4B5B编码,即输入4bit数据时能输出正确的5bit编码结果。2、算法要求:利用卡诺图对编码真值表进展化简,得出其逻辑表达式,并基于此进展硬件设计。3、设计性要求:使用代码及原理图两种设计方式来进展设计。采用根本门构造化描述。能够编写TestBench文件,并利用Modelsim进展仿真。三、实验原理及设计思路1、实验原理:在IEEE802.9a等时以太网标准中的4B:5B编码方案,因其效率高和容易实现而被采用。这种编码的特点是将欲发送的数据流每4bit作为一个组,然后按照4B/5B编码规则将其转换成相应5bit码。5bit码共有32种组合,但只采用其中的16种对应4bit码的16种,其他的16种或者未用或者用作控制码,以表示帧的开场和完毕、光纤线路的状态〔静止、空闲、暂停〕等。4B5B编码表如下:设计思路:整体思路:对的编码真值表,首先利用卡诺图对其进展化简,得出其逻辑表达式,再用根本门构造将其实现。卡诺图与表达式:设输入的4位编码为:ABCD,输出的5位编码为:VW*YZ,则分别画出其卡诺图并得出表达式如下:1.V:V=A+B’D’+B’C2.W:W=B+A’C’3.*:*=C+A’B’D’4.Y:Y=A’B+AB’+C’D’+AC’5.Z:Z=D根本门构造设计:由上述表达式可见,用到的根本门有:非门、2输入与门、3输入与门、2输入或门、3输入或门、4输入或门,用not、and、or将其一一表示出即可。四、程序设计1、顶层模块:libraryIEEE;useIEEE.STD_LOGIC_1164.ALL;entitymainisPort(a:inSTD_LOGIC;b:inSTD_LOGIC;c:inSTD_LOGIC;d:inSTD_LOGIC;v:outSTD_LOGIC;w:outSTD_LOGIC;*:outSTD_LOGIC;y:outSTD_LOGIC; z:outSTD_LOGIC);endmain;architectureBehavioralofmainis PONENTnoti PORT( i:INstd_logic; o:OUTstd_logic ); ENDPONENT; PONENTand2i PORT( i1:INstd_logic; i2:INstd_logic; o:OUTstd_logic ); ENDPONENT; PONENTand3i PORT( i1:INstd_logic; i2:INstd_logic; i3:INstd_logic; o:OUTstd_logic ); ENDPONENT; PONENTor2i PORT( i1:INstd_logic; i2:INstd_logic; o:OUTstd_logic ); ENDPONENT; PONENTor3i PORT( i1:INstd_logic; i2:INstd_logic; i3:INstd_logic; o:OUTstd_logic ); ENDPONENT; PONENTor4i PORT( i1:INstd_logic; i2:INstd_logic; i3:INstd_logic; i4:INstd_logic; o:OUTstd_logic ); ENDPONENT;signalnota,notb,notc,notd,v1,v2,v3,w1,w2,*1,*2,y1,y2,y3,y4,vv,ww,**,yy,zz:std_logic;begin--not-- Inst_noti_nota:notiPORTMAP( i=>a, o=>nota ); Inst_noti_notb:notiPORTMAP( i=>b, o=>notb ); Inst_noti_notc:notiPORTMAP( i=>c, o=>notc ); Inst_noti_notd:notiPORTMAP( i=>d, o=>notd );--v-- v1<=a; Inst_and2i_v2:and2iPORTMAP( i1=>notb, i2=>notd, o=>v2 ); Inst_and2i_v3:and2iPORTMAP( i1=>notb, i2=>c, o=>v3 ); Inst_or3i_vv:or3iPORTMAP( i1=>v1, i2=>v2, i3=>v3, o=>vv );--w-- w1<=b; Inst_and2i_w2:and2iPORTMAP( i1=>nota, i2=>notc, o=>w2 ); Inst_or2i_ww:or2iPORTMAP( i1=>w1, i2=>w2, o=>ww );--*-- *1<=c; Inst_and3i_*2:and3iPORTMAP( i1=>nota, i2=>notb, i3=>notd, o=>*2 ); Inst_or2i_**:or2iPORTMAP( i1=>*1, i2=>*2, o=>** );--y-- Inst_and2i_y1:and2iPORTMAP( i1=>nota, i2=>b, o=>y1 ); Inst_and2i_y2:and2iPORTMAP( i1=>a, i2=>notb, o=>y2 ); Inst_and2i_y3:and2iPORTMAP( i1=>notc, i2=>notd, o=>y3 ); Inst_and2i_y4:and2iPORTMAP( i1=>a, i2=>notc, o=>y4 ); Inst_or4i_yy:or4iPORTMAP( i1=>y1, i2=>y2, i3=>y3, i4=>y4, o=>yy );--z-- zz<=d;--not-- Inst_noti_v:notiPORTMAP( i=>vv, o=>v ); Inst_noti_w:notiPORTMAP( i=>ww, o=>w ); Inst_noti_*:notiPORTMAP( i=>**, o=>* ); Inst_noti_y:notiPORTMAP( i=>yy, o=>y ); Inst_noti_z:notiPORTMAP( i=>zz, o=>z );endBehavioral;2、非门:entitynotiisPort(i:inSTD_LOGIC;o:outSTD_LOGIC);endnoti;architectureBehavioralofnotiisbegino<=noti;endBehavioral;3、2输入与门:entityand2iisPort(i1:inSTD_LOGIC;i2:inSTD_LOGIC;o:outSTD_LOGIC);endand2i;architectureBehavioralofand2iisbegino<=i1andi2;endBehavioral;4、3输入与门:entityand3iisPort(i1:inSTD_LOGIC;i2:inSTD_LOGIC;i3:inSTD_LOGIC;o:outSTD_LOGIC);endand3i;architectureBehavioralofand3iisbegino<=i1andi2andi3;endBehavioral;5、2输入或门:entityor2iisPort(i1:inSTD_LOGIC;i2:inSTD_LOGIC;o:outSTD_LOGIC);endor2i;architectureBehavioralofor2iisbegino<=i1ori2;endBehavioral;6、3输入或门:entityor3iisPort(i1:inSTD_LOGIC;i2:inSTD_LOGIC;i3:inSTD_LOGIC;o:outSTD_LOGIC);endor3i;architectureBehavioralofor3iisbegino<=i1ori2ori3;endBehavioral;7、4输入或门:entityor4iisPort(i1:inSTD_LOGIC;i2:inSTD_LOGIC;i3:inSTD_LOGIC;i4:inSTD_LOGIC;o:outSTD_LOGIC);endor4i;architectureBehavioralofor4iisbegino<=i1ori2ori3ori4;endBehavioral;仿真与硬件调试1、仿真:〔1〕顶层仿真:1.仿真文件:LIBRARYieee;USEieee.std_logic_1164.ALL;ENTITYtest1ISENDtest1;ARCHITECTUREbehaviorOFtest1IS--ponentDeclarationfortheUnitUnderTest(UUT)PONENTmainPORT(a:INstd_logic;b:INstd_logic;c:INstd_logic;d:INstd_logic;v:OUTstd_logic;w:OUTstd_logic;*:OUTstd_logic;y:OUTstd_logic;z:OUTstd_logic);ENDPONENT;--Inputssignala:std_logic:='0';signalb:std_logic:='0';signalc:std_logic:='0';signald:std_logic:='0'; --Outputssignalv:std_logic;signalw:std_logic;signal*:std_logic;signaly:std_logic;signalz:std_logic;--Noclocksdetectedinportlist.Replace<clock>belowwith--appropriateportnameBEGIN --InstantiatetheUnitUnderTest(UUT)uut:mainPORTMAP(a=>a,b=>b,c=>c,d=>d,v=>v,w=>w,*=>*,y=>y,z=>z);--Stimulusprocessstim_proc:processbegin a<='0';b<='0';c<='0';d<='0';waitfor100ns; a<='0';b<='0';c<='0';d<='1';waitfor100ns; a<='0';b<='0';c<='1';d<='0';waitfor100ns; a<='0';b<='0';c<='1';d<='1';waitfor100ns; a<='0';b<='1';c<='0';d<='0';waitfor100ns; a<='0';b<='1';c<='0';d<='1';waitfor100ns; a<='0';b<='1';c<='1';d<='0';waitfor100ns; a<='0';b<='1';c<='1';d<='1';waitfor100ns; a<='1';b<='0';c<='0';d<='0';waitfor100ns; a<='1';b<='0';c<='0';d<='1';waitfor100ns; a<='1';b<='0';c<='1';d<='0';waitfor100ns; a<='1';b<='0';c<='1';d<='1';waitfor100ns; a<='1';

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论