网站发展趋势,西安网页制作模板,做网站放广告收益,wordpress sqlite使用8线-3线优先编码器Ⅰ实现16线-4线优先编码器
描述
②请使用2片该优先编码器Ⅰ及必要的逻辑电路实现16线-4线优先编码器。优先编码器Ⅰ的真值表和代码已给出。
可将优先编码器Ⅰ的代码添加到本题答案中#xff0c;并例化。
优先编码器Ⅰ的代码如下#xff1a;
module…使用8线-3线优先编码器Ⅰ实现16线-4线优先编码器
描述
②请使用2片该优先编码器Ⅰ及必要的逻辑电路实现16线-4线优先编码器。优先编码器Ⅰ的真值表和代码已给出。
可将优先编码器Ⅰ的代码添加到本题答案中并例化。
优先编码器Ⅰ的代码如下
module encoder_83(input [7:0] I ,input EI ,output wire [2:0] Y ,output wire GS ,output wire EO
);
assign Y[2] EI (I[7] | I[6] | I[5] | I[4]);
assign Y[1] EI (I[7] | I[6] | ~I[5]~I[4]I[3] | ~I[5]~I[4]I[2]);
assign Y[0] EI (I[7] | ~I[6]I[5] | ~I[6]~I[4]I[3] | ~I[6]~I[4]~I[2]I[1]);assign EO EI~I[7]~I[6]~I[5]~I[4]~I[3]~I[2]~I[1]~I[0];assign GS EI(I[7] | I[6] | I[5] | I[4] | I[3] | I[2] | I[1] | I[0]);
//assign GS EI(| I);endmodule 下表是8线-3线优先编码器Ⅰ的功能表 EI I[7] I[6] I[5] I[4] I[3] I[2] I[1] I[0] Y[2] Y[1] Y[0] GS EO 0 x x x x x x x x 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 x x x x x x x 1 1 1 1 0 1 0 1 x x x x x x 1 1 0 1 0 1 0 0 1 x x x x x 1 0 1 1 0 1 0 0 0 1 x x x x 1 0 0 1 0 1 0 0 0 0 1 x x x 0 1 1 1 0 1 0 0 0 0 0 1 x x 0 1 0 1 0 1 0 0 0 0 0 0 1 x 0 0 1 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0
输入描述 input [15:0] A , input EI
输出描述 output wire [3:0] L , output wire GS , output wire EO
解题思路
16-4线优先编码器与8-3优先编码器工作状态类似
对于编码器1令其I7~I0对应16-4编码器的A7~A0将编码器1记为EN1
同理编码器2I7~I0对应16-4编码器的A15~A8将编码器2记为EN2
将EN1的使能端EI做为整个编码器的使能端EI
其中我们希望当EN1为EI1时EN2的EI端同样为1即两个编码器EN1EN2同时进入工作状态根据8-3编码器的功能表发现当E11时无论什么情况GS和EO端的输出值总有一个值为1即GS | EO 1因此将EN1的GS端和EO端经过一个或门(OR)再接入EN2的EI端
GS当且仅当A[15:0]为全0时GS0因此将两个EN的GS端经过一个或门(OR)输出可包含以上情况
EO当且仅当A[15:0]为全0时EO1因此将两个EN的EO端经过一个与门(AND)输出 对于输出变量L的判断
L[3]当L[3]0时说明待编码的数据为前8个数据EN1当L[3]1时说明待编码的数据为后8个数据EN2
对于L[3]的状态的判定只需要判定EN2的输出端Y与GS的按位相或是否为1观察8-3编码器功能表
L[3]1则说明EN2处于输出状态最终输出的L[2:0]同样应为EN2的Y端
L[3]0说明L[2:0]应对应于EN1的输出端Y
因为设定的是EN2的为高端输出因此EN2优先级高
因此根据以上所述画出其电路图 代码如下
timescale 1ns/1nsmodule encoder_164(input [15:0] A ,input EI ,output wire [3:0] L ,output wire GS ,output wire EO
);
wire [2:0] E1_Y, E2_Y;
wire Eo_1, Eo_2;
wire Ei_2;
wire GS_1, GS_2;
//编码器1
encoder_83 EN1(.I(A[7:0]),.EI(EI),.Y(E1_Y),.GS(GS_1),.EO(Eo_1));
//编码器2
assign Ei_2 GS_1 | Eo_1;encoder_83 EN2(.I(A[15:8]),.EI(Ei_2), .Y(E2_Y),.GS(GS_2),.EO(Eo_2));assign L[3] |{E2_Y[2:0], GS_2} ;
assign L[2:0] (L[3])? E2_Y : E1_Y;assign EO Eo_1Eo_2;
assign GS GS_1 | GS_2;endmodule