jessie9940509 发表于 2011-11-24 16:06:26

哪位大侠帮我看看,就是照着书上写的Mealy型的状态机,仿真都不出波形

哪位大侠帮我看看,就是照着书上写的Mealy型的状态机,仿真都不出波形,晕死了。我把书上的源程序写下来了,编译也不好使。树上的源程序如下:
module fpga5(a,clk,z);
   input a,clk;
   output z;
   reg z;
   regp_state,n_state;
   parameter st0=0,st1=1,st2=2,st3=3;
       
       
   always@(negedge clk)
      p_state=n_state;
   always@(p_state or a)
      begin
         case(p_state)
         st0:
         if(a)
             begin
                z=1;
                n_state=st3;                                       
             end
         else
             z=0;
         st1:
         if(a)
             begin
                z=0;
                n_state=st0;
             end
         else
             z=1;
         st2:
         if(~a)
             z=0;
         else
             begin
               z=1;
               n_state=st1;               
             end       
         st3:
         begin
             z=0;
             if(~a)
                n_state=st2;
             else
                n_state=st1;
         end               
         endcase
   end
endmodule

honeybear 发表于 2011-11-24 16:17:40

都看晕啦,为什么不对齐呢!
时序部分应该用非阻塞语句,p_state <= n_state;
组合逻辑部分代码都产出锁存器。

jessie9940509 发表于 2011-11-24 16:22:48

回复【1楼】honeybear
-----------------------------------------------------------------------

好的 我对齐下,考进来就变了 ,这个是书上的源代码,仿真也不出波形

jessie9940509 发表于 2011-11-24 16:33:40

回复【1楼】honeybear
-----------------------------------------------------------------------

我试验了,也不可以,Z输出的就是随机的,不知道怎么回事,和书上写的一模一样的东西都不好使,

get500wan 发表于 2011-11-24 21:23:43

嘿嘿,记得上研究生时,同宿舍的一牛哥们,推荐了一本学习VB的宝典。据说书里的每一个例子,手工敲进去都不能按照书上说的结果运行,他当年就是一个个的把书上的BUG找出来,把例子调通,终于成长位一名VB高手的。

1楼的程序到底是要实现什么功能啊?

p_state没有复位,也没有初始值,仿真貌似会有问题的。

buickbuick 发表于 2011-11-24 21:55:25

学VB用不着这样吧?这东西拿来就用,根本不用学
页: [1]
查看完整版本: 哪位大侠帮我看看,就是照着书上写的Mealy型的状态机,仿真都不出波形