`module encoder8_3(S,I7,I6,I5,I4,I3,I2,I1,I0,Y2,Y1,Y0,YS,YEX);
input S,I7,I6,I5,I4,I3,I2,I1,I0;
output Y2,Y1,Y0,YS,YEX;
reg Y2,Y1,Y0,YS,YEX;
always @(S,I7,I6,I5,I4,I3,I2,I1,I0)
begin if (S)
begin
Y2=1’b1;Y1=1’b1;Y0=1’b1;YS=1’b1;YEX=1’b1;
end
else
if(I7&&I6&&I5&&I4&&I3&&I2&&I1&&I0)
begin
Y2=1’b1;Y1=1’b1;Y0=1’b1;YS=1’b1;YEX=1’b1;
end
else if(!I7)
begin
Y2=1’b1;Y1=1’b1;Y0=1’b1;YS=1’b1;YEX=1’b0;
end
else if(!I6)
begin
Y2=1’b1;Y1=1’b1;Y0=1’b0;YS=1’b1;YEX=1’b0;
end
else if(!I5)
begin
Y2=1’b1;Y1=1’b0;Y0=1’b1;YS=1’b1;YEX=1’b0;
end
else if(!I4)
begin
Y2=1’b1;Y1=1’b0;Y0=1’b0;YS=1’b1;YEX=1’b0;
end
else if(!I3)
begin
Y2=1’b0;Y1=1’b1;Y0=1’b1;YS=1’b1;YEX=1’b0;
end
else if(!I2)
begin
Y2=1’b0;Y1=1’b1;Y0=1’b0;YS=1’b1;YEX=1’b0;
end
else if(!I1)
begin
Y2=1’b0;Y1=1’b0;Y0=1’b1;YS=1’b1;YEX=1’b0;
end
else if(!I0)
begin
Y2=1’b0;Y1=1’b0;Y0=1’b0;YS=1’b1;YEX=1’b0;
end
else
begin Y2=1’b0;Y1=1’b0;Y0=1’b0;YS=1’b0;YEX=1’b0;
end
end
endmodule`
该博客介绍了用Verilog语言编写的一个逻辑功能模块,该模块名为moduleencoder8_3。模块根据输入S及八个二进制输入I7到I0的值来决定五个输出Y2, Y1, Y0, YS, YEX的值。当S为1或所有输入I7到I0均为1时,所有输出被置为1;否则,输出根据各个输入的值进行相应设置,只有在I0为0时,YEX被置为0。该模块适用于数字逻辑设计和VHDL/Verilog FPGA实现。
4482

被折叠的 条评论
为什么被折叠?



