8

您所在的位置:网站首页 42编码器设计 8

8

2024-07-10 23:02| 来源: 网络整理| 查看: 265

在数字系统中,由于采用二进制运算处理数据,因此通常将信息变成若干位二进制代码。在逻辑电路中,信号都是以高,低电平的形式输出。编码器:实现编码的数字电路,把输入的每个高低电平信号编成一组对应的二进制代码。

设计一个输入为8个高电平有效信号,输出代码为原码输出的3位二进制编码器。

image

化简逻辑表达式:image由逻辑表达式可以得出,普通的8-3编码器用或门即可实现。对应的verilog程序如下:

module mb_83(x,y); input [7:0]x; output [2:0]y; reg [2:0]y; always@(x) begin case (x) 8'b00000001:y=3'b000; //当 当 x=8 ’b00000001,则 则 y 输出为 3 ’b000 8'b00000010:y=3'b001; //当 当 x=8 ’b00000010,则 则 y 输出为 3 ’b001 8'b00000100:y=3'b010; //当 当 x=8 ’b00000100,则 则 y 输出为 3 ’b010 8'b00001000:y=3'b011; //当 当 x=8 ’b00001000,则 则 y 输出为 3 ’b011 8'b00010000:y=3'b100; //当 当 x=8 ’b00010000,则 则 y 输出为 3 ’b100 8'b00100000:y=3'b101; //当 当 x=8 ’b00100000,则 则 y 输出为 3 ’b101 8'b01000000:y=3'b110; //当 当 x=8 ’b01000000,则 则 y 输出为 3 ’b110 8'b10000000:y=3'b111; //当 当 x=8 ’b10000000,则 则 y 输出为 3 ’b111 default: y=3'b000; endcase end endmodule

上述编码器有一个缺点,即在某一个时刻只允许有一个有效的输入,而同时若又有两个或两个以上的输入信号要求编码,输出端一定会发生混乱,出现错误。为了解决这个问题,引入了优先编码器。优先编码器的功能是允许同时在几个输入端有输入信号,编码器按照输入信号预先排定的优先顺序,只对同时输入的几个信号中有优先权高位的一个信号编码。

image

对应的真值表为

image

对应的verilog程序:(输入信号:i[7:0];输入使能端:ei;输出信号端:y: [2:0];输出使能端eo;优先标志端gs)

module yxbm_83(y,eo,gs,i,ei); input [7:0] i; //8 位输入 i input ei; // 使能输入端 ei output eo,gs; // 使能输出端 eo ,优先标志端 gs output[2:0] y; //3 位输出 y reg[2:0] y; //3 位输出寄存器 y reg eo,gs; // 使能输出寄存器, always@(i,ei) // 电平触发方式,当 i 跟 跟 ei 有改变的时候,执行以下操作 begin if(ei==1'b1) //当 ei 为 为 1 的时候 begin y


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3