weibode01 发表于 2010-11-9 15:09:26

米勒型有限状态机实现的串行口发送源程序

本帖最后由 fpgaw 于 2010-11-18 15:58 编辑

米勒型有限状态机实现的串行口发送源程序
module s_tx(clk,en,dain,txd);
input clk,en;
input dain;
output txd;
reg da_temp;
reg txd;
reg state;
parameter swait=4'b0000, star=4'b0001,s1=4'b0010,s2=4'b0011,
s3=4'b0100,s4=4'b0101,s5=4'b0110,s6=4'b0111,s7=4'b1000,
s8=4'b1001, stop=4'b1010;
always @(posedge en)
      da_temp<=dain;
always @(posedge clk)
    if (!en)
       begin
         state<=swait;
         txd<=1;
       end
    else
       case(state)
         swait: begin state<=star;txd<=1; end
         star: begin state<=s1; txd<=0; end
         s1: begin state<=s2; txd<=da_temp; end
         s2: begin state<=s3; txd<=da_temp; end
         s3: begin state<=s4; txd<=da_temp; end
         s4: begin state<=s5; txd<=da_temp; end
         s5: begin state<=s6; txd<=da_temp; end
         s6: begin state<=s7; txd<=da_temp; end
         s7: begin state<=s8; txd<=da_temp; end
         s8: begin state<=stop; txd<=da_temp; end
         stop: begin state<=stop; txd<=1; end
       endcase
endmodule

pgfzhy 发表于 2010-11-9 18:13:06

学习学习!学习学习!

weibode01 发表于 2010-11-14 09:30:32

嗯, 多帮我顶下贴子
页: [1]
查看完整版本: 米勒型有限状态机实现的串行口发送源程序