VHDL的编码器和译码器的设计(3)

2019-03-10 16:32

基于VHDL的编码器和译码器的设计 第8页 共20页

a<=\ elsif i(6)='1'then a<=\ elsif i(5)='1'then a<=\ elsif i(4)='1'then a<=\ elsif i(3)='1'then a<=\ elsif i(2)='1'then a<=\ elsif i(1)='1'then a<=\ elsif i(0)='1'then a<=\ else gs<='0'; end if; end process;

3.2译码器

3.2.1 译码器的工作原理

二进制译码器的输入是一组二进制代码,输出是一组与输入代码一一对应的高、低电平信号。因此,译码器是编码器的反操作。

对于3线-8线译码器来说,3位二进制共有8种状态,所以对应的输出有8种状态。例如:对于二进制代码111来说,输出为10000000。由于3线-8线译码器只需要输入3根线即可输出8种不同的状态,对信息的译码有很大的好处,所以在硬件电路中占有较重要的地位,实验中也经常用到。3线-8线译码器功能表如表3-2所示,实现逻辑电路图如图3.3所示:

表3-2 3线-8线译码器的功能表

基于VHDL的编码器和译码器的设计 第9页 共20页

输 入 A2 0 0 0 0 1 1 1 1 A1 0 0 1 1 0 0 1 1 A0 0 1 0 1 0 1 0 1 Y7 0 0 0 0 0 0 0 1 Y6 0 0 0 0 0 0 1 0 Y5 0 0 0 0 0 1 0 0 输 出 Y4 0 0 0 0 1 0 0 0 Y3 0 0 0 1 0 0 0 0 Y2 0 0 1 0 0 0 0 0 Y1 0 1 0 0 0 0 0 0 Y0 1 0 0 0 0 0 0 0

图3.3 3线-8线优先编码器

对于2线-4线译码器来说,2位二进制共有4种状态,分别为:00、01、10、11。所以对应的输出有4种状态,分别为:0001、0010、0100、1000。例如:对于二进制代码00来说,输出为0001,对于11来说,输出为1000。2线-4线译码器是所有译码器中结构最简单,其实现的功能也比较少,但是在硬件电路设计中是一个非常重要的元件,在实际应用中也经常用到这种译码器。2线-4线译码器功能表如表3-3所示,实现的电路图如图3.4所示:

表3-3 2线-4线译码器的功能表

基于VHDL的编码器和译码器的设计 第10页 共20页 输 入 A1 0 0 1 1 A0 0 1 0 1 Y3 0 0 0 1

输 出 Y2 0 0 1 0 Y1 0 1 0 0 Y0 1 0 0 0

图3.4 2线-4线译码器

3.2.2 3线-8线译码器的设计

关于3线-8线译码器的工作框图如图3.5所示。

.

图3.5 3线-8线译码器工作框图

3线-8线译码器由VHDL程序来实现,下面是其中一段VHDL关键代码 process(datain) begin

case datain is

when \ when \ when \

基于VHDL的编码器和译码器的设计 第11页 共20页

when \ when \ when \ when \ when \ when others=>dataout<=\ end case; end process;

3.2.3 2线-4线译码器的设计

关于2线-4线译码器的工作框图如图3.6所示。

图3.6 2线-4线译码器工作原理图

2线-4线译码器由VHDL程序来实现,下面是其中一段VHDL关键代码:

process(i)

begin case i is

when \ when \ when \ when \ when others =>o<=\ end case; end process;

基于VHDL的编码器和译码器的设计 第12页 共20页

4 系统仿真与时序分析

使用VHDL语言编写程序后,接下来要做的就是验证程序的正确性,利用 Max+plusII导入源程序后,对源程序进行编译,然后进行模拟仿真,可以得到一个波形文件,可以非常直观知道程序是否正确。在进行模拟仿真之后,为了能了解软件模拟仿真中各信号之间的具体延时量,可以用MAX+plusII提供的时序分析功能来做时序分析。在MAX+plusII中启动时序分析,分析完成后,各信号之间的延时时间以表格形式显示出来,表格中的数据即为两信号之间的延时时间。

4.1 8线-3线优先编码器仿真及时序分析

8线-3线优先编码器由VHDL程序实现后,其仿真图如图4.1所示。

图4.1 8线-3线优先编码器功能时序仿真

对其仿真图进行仿真分析:gs为编码输出标志,i为输入信号组,它由i7-i0八个输入信号组成。a为输出信号组, 它由a2-a0三个二进制代码输出信号组成。gs为1时候表示输出。当i7为1时,即输入为:1*******时,输出111,当i7为0时,输出由优先级仅次于i7的i6决定,即输入为:01******时,输出110,紧接着依次类推,分别得出输入为:001*****时,输出101,输入为:0001****时,输出100,输入为00001***时,输出为011,输入为000001**时,输出010,输入为0000001*时,输出001,输入为00000001时,输出为000。 8线-3线优先编码器的时序分析如图4.2:


VHDL的编码器和译码器的设计(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:生活中的数学校本课程备课样版

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: