资源描述:
《数字逻辑电路课程设计_4B5B编码_VHDL实现(含完整代码!!).doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、电子科技大学UNIVERSITYOFELECTRONICSCIENCEANDTECHNOLOGYOFCHINA数字逻辑设计实验报告实验题目:4B5B编码器学生:指导老师:一、实验容4B/5B编码是百兆以太网中线路层编码类型之一,该试验需要实现用5bit的二进制数来表示4bit二进制数。二、实验要求1、功能性要求:能够实现4B5B编码,即输入4bit数据时能输出正确的5bit编码结果。2、算法要求:利用卡诺图对编码真值表进行化简,得出其逻辑表达式,并基于此进行硬件设计。3、设计性要求:使用代码及原理图两种设计方式来进行设计。采用基本门结构化描述。能够编写Test
2、Bench文件,并利用Modelsim进行仿真。三、实验原理及设计思路1、实验原理:在IEEE802.9a等时以太网标准中的4B:5B编码方案,因其效率高和容易实现而被采用。这种编码的特点是将欲发送的数据流每4bit作为一个组,然后按照4B/5B编码规则将其转换成相应5bit码。5bit码共有32种组合,但只采用其中的16种对应4bit码的16种,其他的16种或者未用或者用作控制码,以表示帧的开始和结束、光纤线路的状态(静止、空闲、暂停)等。4B5B编码表如下:2、设计思路:(1)整体思路:对已知的编码真值表,首先利用卡诺图对其进行化简,得出其逻辑表达式,再用
3、基本门结构将其实现。(2)卡诺图与表达式:设输入的4位编码为:ABCD,输出的5位编码为:VWXYZ,则分别画出其卡诺图并得出表达式如下:1.V:V=A+B’D’+B’C2.W:W=B+A’C’3.X:X=C+A’B’D’4.Y:Y=A’B+AB’+C’D’+AC’5.Z:Z=D(3)基本门结构设计:由上述表达式可见,用到的基本门有:非门、2输入与门、3输入与门、2输入或门、3输入或门、4输入或门,用not、and、or将其一一表示出即可。四、程序设计1、顶层模块:libraryIEEE;useIEEE.STD_LOGIC_1164.ALL;entitymai
4、nisPort(a:inSTD_LOGIC;b:inSTD_LOGIC;c:inSTD_LOGIC;d:inSTD_LOGIC;v:outSTD_LOGIC;w:outSTD_LOGIC;x:outSTD_LOGIC;y:outSTD_LOGIC;z:outSTD_LOGIC);endmain;architectureBehavioralofmainisCOMPONENTnotiPORT(i:INstd_logic;o:OUTstd_logic);ENDCOMPONENT;COMPONENTand2iPORT(i1:INstd_logic;i2:INstd_l
5、ogic;o:OUTstd_logic);ENDCOMPONENT;COMPONENTand3iPORT(i1:INstd_logic;i2:INstd_logic;i3:INstd_logic;o:OUTstd_logic);ENDCOMPONENT;COMPONENTor2iPORT(i1:INstd_logic;i2:INstd_logic;o:OUTstd_logic);ENDCOMPONENT;COMPONENTor3iPORT(i1:INstd_logic;i2:INstd_logic;i3:INstd_logic;o:OUTstd_logic);
6、ENDCOMPONENT;COMPONENTor4iPORT(i1:INstd_logic;i2:INstd_logic;i3:INstd_logic;i4:INstd_logic;o:OUTstd_logic);ENDCOMPONENT;signalnota,notb,notc,notd,v1,v2,v3,w1,w2,x1,x2,y1,y2,y3,y4,vv,ww,xx,yy,zz:std_logic;begin--not--Inst_noti_nota:notiPORTMAP(i=>a,o=>nota);Inst_noti_notb:notiPORTMAP
7、(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
8、_w2:and2iPORTMAP(i1