网站搜索:
第9节 优先编码器
文章出处:与非网
更新于2008-05-16 12:13:47

优先编码器,实质上,就是译码器电路的双胞胎(或反向电路)-它接收N路输入(N一般为4,8,16),并产生一个二进制码输出,位数为M=log2N 比特(所以M-比特二进制码一般是2,3,或4比特)。M-比特二进制码指明了哪一路输入有效(比如在4:2二进制编码器中,如果第0路输入有效,那么输出将产生二进制码00,如果第1路输入有效,那么输出将产生二进制码01,以此类推)。由于在给定的时间内可能会有不止一路输入信号有效,那么优先编码器的输出有效只根据最高路输入信号有效来计算(比如,在4:2编码器中,如果第0路输入和第2路输入同时有效,那么只取最高路的输入为当前有效输入,即第2路是有效输入,并产生二进制码10)。
我们先考虑这样一个问题,一个四路输入编码电路只需要两路输出。在这样的电路中,第3路输入信号有效就产生“11输出,第2路输入信号有效就产生“10输出,第1路输入信号有效就产生“01输出,第0路输入信号有效就产生“00输出。那么如果没有任何输入有效,那么输出如何呢?回答是输出“00。为了避免混淆两种“00”输出,编码器一般使用一个“输入使能”(Ein)信号和一个“输出使能”(Eout)信号。Ein的功能和其它使能信号的功能是一样的,当其无效时,所有的输出都是逻辑0,当其有效时,译码器根据其输入来驱动输出。当且仅当Ein有效而无任何输入信号有效时,Eout有效。因此,Eout可以用来区别无输入信号和第0路输入有效。
大型编码器可以用小型编码器来构造,其方式和大型译码器可以用小型译码器构成一样。编码模块可以用来作为构造大型编码器的一个模块,但其必须有一个附加输出,称为组信号(GS)。只要Ein有效且有输入信号有效,那么GS信号有效。它是编码器输出数据元素中最重要的一个比特位。
如果一个数字系统中,给定一个输入信号,必须要产生相应的二进制码,那么这里一般就要使用编码电路。比如,在飞机的每个座位都能产生“服务员呼叫”信号,那么就可以对飞机上的作为进行编码以确定实际呼叫的座位号。如果特定的输入信号一定要用指定的方式处理,那么也可以使用优先编码器。比如,来自某些来源的输入可能同时到达,用优先编码器就可以选择哪一路输入可以优先处理。右图所示为一个编码器的VHDL代码。

 

<<上一节    下一节>>



关于OpenHW | OpenHW使用说明 | FAQ | 相关法律 | 版权声明 | 网站地图
联系邮件:xiaoquan@eefocus.com  联系电话: 010-58859035-8012
Powered by eefocus.com