fight 发表于 2011-10-28 00:09:14

请教高手!!!

module pulse_counter_task_logic(
      divide_clk,
      reset_n,         
      pulse_pos_input,
      pulse_neg_input,      
      pulse_result,
      pre_pulse_pos_1,
      pre_pulse_neg_1,
      
                );

      input divide_clk;                              //Input Clock to be divided
      input reset_n;                              //Reset
      input pulse_pos_input;      //input pulse positive
      input pulse_neg_input;      //input pulse negative
               
      output pulse_result;    // output pulse counter
      output pre_pulse_neg_1;
      output pre_pulse_pos_1;

reg pulse_result_r;         //output pulse counter register
reg pre_pulse_pos;         //pulse counter temporary register
reg pre_pulse_neg;

//clock divide Process


always @(posedge divide_clk or negedge reset_n)      
begin
      if (~reset_n)
                pulse_result_r <= 8'h0;
      else if (divide_clk)
                pulse_result_r <= pre_pulse_pos + pre_pulse_neg;
      else
            pulse_result_r <= pulse_result_r;
end

// pulse measure process
always @(negedge pulse_pos_input or posedge divide_clk or negedge reset_n)
begin
      if((~reset_n) | divide_clk )
      begin
                pre_pulse_pos <= 8'h0;    //clear the pre_pulse
      end
      else
      begin
                pre_pulse_pos <= pre_pulse_pos + 8'h1;
      end
end

always @(negedge pulse_neg_input or posedge divide_clk or negedge reset_n)
begin
      if((~reset_n) | divide_clk )
      begin
                pre_pulse_neg <= 8'h0;    //clear the pre_pulse
      end
      else
      begin
                pre_pulse_neg <= pre_pulse_neg - 8'h1;
      end
end

assign pulse_result = pulse_result_r;
//assign irq = divide_clk;
assign pre_pulse_pos_1 = pre_pulse_pos;
assign pre_pulse_neg_1 = pre_pulse_neg;

endmodule


用quartusII自带的仿真器仿真出来的pulse_result 为什么无输出请教高手?
是程序问题 还是仿真设置问题

收藏 分享

至芯兴洪 发表于 2011-10-28 14:13:27

else if (divide_clk),这个条件不对,如果你要采时钟的高电平,那你还得想其他方法采集,在本时钟的上升怎么可能猜到本时钟的高电平,当然没结果了

至芯兴洪 发表于 2011-10-28 14:19:30

异步复位信号的处理也有问题;

fight 发表于 2011-11-1 16:51:29

回复 2# 至芯兴洪


   感谢你的回复。后两个模块调试过,没什么问题。第一个always模块中,若有posedge divide_clk ,divide_clk就为1啊?

fight 发表于 2011-11-1 16:56:54

回复 4# fight


    还有就是,后面的always块中,也用posedge divide_clk敏感信号,检测divide_clk为高电平,确实起到了清零的作用啊

weifhfpgapc 发表于 2011-11-2 23:53:54

if (~reset_n)
“~”用的不对, 应该用“!”

fight 发表于 2011-11-3 10:12:00

回复 6# weifhfpgapc


    两者都可以吧

zhouhuaguo 发表于 2011-11-4 16:14:53

小伙子我怎么没有看到你的激励文件部分,你这个市一个工程文件,还要给出具体的激励部分才行,就是几假设输入条件是什么样子的。否则module不知道要给你出什么样的东西。

fight 发表于 2011-11-4 16:54:12

回复 8# zhouhuaguo


   

fight 发表于 2011-11-4 16:55:05

回复 9# fight


    最终的工程框图,不知道您说的激励文件是指???
页: [1] 2
查看完整版本: 请教高手!!!