在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 2092|回复: 4

帮忙分析下

[复制链接]
发表于 2008-5-8 14:25:07 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
下面是我自己写的源程序代码

//  Module Declaration
module clock_generater
(
// {{ALTERA_ARGS_BEGIN}} DO NOT REMOVE THIS LINE!
clk, rst, alu_clk, fetch, clk1
// {{ALTERA_ARGS_END}} DO NOT REMOVE THIS LINE!
);
// Port Declaration
// {{ALTERA_IO_BEGIN}} DO NOT REMOVE THIS LINE!
input clk;
input rst;
output alu_clk;
output fetch;
output clk1;
// {{ALTERA_IO_END}} DO NOT REMOVE THIS LINE!
reg /*clk2,clk4,*/fetch,alu_clk;
reg [7:0] state;
wire  clk/*,rst*/;

parameter  s1=8'b00000001,
     s2=8'b00000010,
   s3=8'b00000100,
   s4=8'b00001000,
   s5=8'b00010000,
   s6=8'b00100000,
   s7=8'b01000000,
   s8=8'b10000000,
    idle=8'b00000000;
/*
assign clk1=~clk;
always @ (negedge clk)
    if(rst)
   begin
   clk2<=0;
   clk4<=1;
   fetch<=0;
   alu_clk<=0;
   state<=idle;
   end
  else
   begin
    case(state)
     s1:
      begin
      clk2<=~clk2;
      alu_clk<=~alu_clk;
      state<=s2;
      end
     s2:
      begin
      clk2<=~clk2;
      clk4<=~clk4;
      alu_clk<=~alu_clk;
      state<=s3;
      end
     s3:
      begin
      clk2<=~clk2;
      state<=s4;
      end
     s4:
      begin
      clk2<=~clk2;
      clk4<=~clk4;
      fetch<=~fetch;
      state<=s5;
      end
     s5:
      begin
      clk2<=~clk2;
      state<=s6;
      end
     s6:
      begin
      clk2<=~clk2;
      clk4<=~clk4;
      state<=s7;
      end
     s7:
      begin
      clk2<=~clk2;
      state<=s8;
      end
     s8:
      begin
      clk2<=~clk2;
      clk4<=~clk4;
      fetch<=~fetch;
      state<=s1;
      end
      idle: state<=s1;
    default:state<=idle;
   endcase
  end
endmodule
*/
assign clk1=~clk;
always @ (posedge clk)
if(rst)
  begin
   fetch<=0;
   alu_clk<=0;
   state<=idle;
  end
else
  begin
  case (state)
   s1:
    begin
    alu_clk<=~alu_clk;
    state<=s2;
    end
   s2:
    begin
    alu_clk<=~alu_clk;
    state<=s3;
    end
   s3: state<=s4;
   s4:
    begin
    fetch<=~fetch;
    state<=s5;
    end
   s5: state<=s6;
   s6: state<=s7;
   s7: state<=s8;
   s8:
    begin
    fetch<=~fetch;
    state<=s1;
    end
  idle: state<=s1;
  default:state<=idle;
  endcase
  end
endmodule
想得到的波形是附件1,quartus仿真波形是附件2
帮忙分析问题出在哪里?
想得到的波形.JPG
仿真波形.JPG
 楼主| 发表于 2008-5-8 14:31:03 | 显示全部楼层
自己先顶起来
发表于 2008-5-8 15:02:08 | 显示全部楼层
很正常,QII做的时序仿真吧,信号延时相位偏差
 楼主| 发表于 2008-5-9 12:36:09 | 显示全部楼层
但是完全不对啊!
不知道问题在哪里!
发表于 2008-5-26 09:23:12 | 显示全部楼层
你这直接用计数器就能得到,不一定非用状态机
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

×

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-5-12 21:34 , Processed in 0.024783 second(s), 10 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表