CCIE 发表于 2010-6-28 00:13:25

请求懂Verilog HDL语言的朋友们帮我看看这个程序

本帖最后由 fpgaw 于 2010-7-18 11:13 编辑

请求懂Verilog HDL语言的朋友们帮我看看下面这个程序,这个程序能综合可就是在仿真时就不能仿真出我想要的预期结果,由于我刚学习这们语言所以还有好多地方不是很熟悉,现在我不知道是这个程序编得有问题还是我编的测试文件有问题?请各位高手帮我看看这个程序,再给我编个测试文件.我现在正等着这个程序急用,如有朋友能帮我,下次需要我帮忙时尽管说!
非常感谢大家!
module IDCounter (IDclock,reset,inc,dec,IDout);
input IDclock, reset, inc, dec;
output IDout;
reg inc_new;
reg inc_pulse;
reg dec_new;
reg dec_pulse;
reg Toggle_FF;
reg delayed;
reg advanced;
reg IDout;

always @ (posedge IDclock)
begin
if(!inc)
begin
   inc_new<=1;
   inc_pulse<=0;
end
else if(inc_pulse)
begin
   inc_pulse<=0;
   inc_new<=0;
end
else if(inc&&inc_new)
begin
inc_pulse<=1;
inc_new<=0;
end
else
   begin
   inc_pulse<=0;
   inc_new<=0;
   end
end
always @ (posedgeIDclock)
begin
if(!dec)
begin
   dec_new<=1;
   dec_pulse<=0;
   end
else if(dec_pulse)
begin
    dec_pulse<=0;
    dec_new<=0;
end
   else if(dec&&dec_new)
   begin
   dec_pulse<=1;
   dec_new<=0;
    end
   else
   begin
   dec_pulse<=0;
   dec_new<=0;
    end
end
always @ (posedgeIDclock)
begin
if(!reset)
begin
   Toggle_FF<=0;
   delayed<=1;
   advanced<=1;
end
else
    begin
    if(inc_pulse)
   begin
   advanced<=1;
   Toggle_FF<=!Toggle_FF;
   end
    else if(dec_pulse)
    begin
      delayed<=1;
      Toggle_FF<=!Toggle_FF;
    end
    else if(Toggle_FF==0)
    begin
      if(!advanced)
      Toggle_FF<=!Toggle_FF;
      else if(advanced)
      begin
      Toggle_FF<=Toggle_FF;
      advanced<=0;
      end
   end
   else
   begin
      if(!delayed)
       Toggle_FF<=!Toggle_FF;
      else if(delayed)
       begin
       Toggle_FF<=Toggle_FF;
       delayed<=0;
      end
    end
    end
end
always @ (IDclock or Toggle_FF)
begin
if(Toggle_FF)
   IDout=0;
else
   begin
    if(IDclock)
   IDout=0;
    else
    IDout=1;
   end
end
endmodule


仿真后的预期结果应该如下:
在此相位控制器模块中,IDclock为输入的时钟信号,inc为进位脉冲信号,dec为借位脉冲信号,IDout为输出信号,相位控制器在没有进位与借位信号时对时钟进行了二分频。此时IDclock为40ns,输出IDout为80ns。当出现进位脉冲inc时,输出信号IDout序列中插入一个脉冲,当出现借位脉冲dec时,输出信号IDout序列中扣除一个脉冲,从而实现了相位控制器对本地时钟序列的控制。该模块符合设计要求。
页: [1]
查看完整版本: 请求懂Verilog HDL语言的朋友们帮我看看这个程序