用Vorilog HDL语言编写百位可加减计数器,使用可清零十进制加减计数模块,在清零时出现问题

用Vorilog HDL语言编写百位可加减计数器,使用可清零十进制加减计数模块,在清零时出现只有十位和个位清零或者只有个位清零的情况,希望大佬可以帮忙教一下。
代码如下:
module cnt_9(d,t,clk,pd,rst);

output reg [3:0] d = 0;
output reg t;
input clk;
input pd;
inout rst;
always @(posedge clk or negedge rst)
if(!rst)
d<=0;
else
begin
    if(pd==1 )
    begin
         if(d==0)
         begin
            d<=9;
            d <= d - 1'b1;
         end
         else
            d <= d - 1'b1;

        if(4'b0000 == d)
        begin 
            d <= 9;
            t<= 1;
        end 
        else t <= 0;
    end
    else
    begin
        d <= d + 1'b1;
        if(4'b1010 == d)
        begin 
            d <= 0;
            t<= 1;
        end 
        else t <= 0;
    end
end

endmodule