8线-3线编码器 优先编码器+八选一数据选择器 FPGA设计Verilog逻辑源码Quartus工程文件, Quartus软件版本11.0, FPGA型号为CYCLONE4E系列中的EP4CE6E22C8,可以做为你的学习设计参考。
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<=3'b111;
gs<=1'b1;
eo<=1'b1;
end
else
begin
if(i[7]==1'b0) //当i的第8为0时候
begin
y<=3'b000;
gs<=1'b0;
eo<=1'b1;
end
else if(i[6]==1'b0) //当i的第七位为0时候
begin
y<=3'b001;
gs<=1'b0;
eo<=1'b1;
end
else if(i[5]==1'b0) //当i的第6位为0时候
begin
y<=3'b010;
gs<=1'b0;
eo<=1'b1;
end
else if(i[4]==1'b0) //当i的第5位为0时候
begin
y<=3'b011;
gs<=1'b0;
eo<=1'b1;
end
else if(i[3]==1'b0) //当i的第4位为0时候
begin
y<=3'b100;
gs<=1'b0;
eo<=1'b1;
end
else if(i[2]==1'b0) //当i的第3位为0时候
begin
y<=3'b101;
gs<=1'b0;
eo<=1'b1;
end
else if(i[1]==1'b0) //当i的第2位为0时候
begin
y<=3'b110;
gs<=1'b0;
eo<=1'b1;
end