reg [2:0]Y;
reg valid;
always @(*) begin
case(Din)
8'b00000001:Y=0;
8'b00000010:Y=3'd1;
8'b00000100:Y=3'd2;
8'b00001000:Y=3'd3;
8'b00010000:Y=3'd4;
8'b00100000:Y=3'd5;
8'b01000000:Y=3'd6;
8'b10000000:Y=3'd7;
default:Y=0;
endcase
if(EN==1)
if(Din!=0)
valid=1;
else
valid=0;
else
valid=0;
end
reg [2:0]Y;
reg valid;
always @(*) begin
casex(Din)
8'b00000001:Y=0;
8'b0000001X:Y=3'd1;
8'b000001XX:Y=3'd2;
8'b00001XXX:Y=3'd3;
8'b0001XXXX:Y=3'd4;
8'b001XXXXX:Y=3'd5;
8'b01XXXXXX:Y=3'd6;
8'b1XXXXXXX:Y=3'd7;
default:Y=0;
endcase
if(EN==1)
if(Din!=0)
valid=1;
else
valid=0;
else
valid=0;
end
reg [4:0]bcd;
reg valid;
always @(*) begin
if(EN)
begin
valid=1;
if(bin>=4'd10)
begin
bcd[3:0]=bin-10;
bcd[4]=1;
end
else
begin
bcd[4]=0;
bcd[3:0]=bin;
end
end
else
valid=0;
end
reg [3:0]Dout;
reg valid;
integer i;
always @(*) begin
Dout=0;
if(EN)
begin
valid=1;
if(gray_n==0)
begin
Dout[3]=Din[3];
for(i=0;i<=2;i=i+1)
Dout[i]=Din[i+1]^Din[i];
end
else
begin
Dout[3]=Din[3];
for(i=2;i>=0;i=i-1)
Dout[i]=Dout[i+1]^Din[i];
end
end
if(EN==0)
valid=0;
end