微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 电路的逻辑出现错误?

电路的逻辑出现错误?

时间:10-02 整理:3721RD 点击:
我使用quartus的ip核生成了一个fft的核,顶层文件直接修改的自动生成的fft_tb.v测试分支文件,在使用signaltap监测时发现end_test这个信号有问题,在代码中对它的赋值只有一下这一段:

  1. always @(posedge clk)
  2.       begin
  3.         if (reset_n == 1'b0)
  4.           end_test <= 1'b0;
  5.         else if (end_input == 1'b1)                               
  6.                          end_test <= 1'b1;
  7. end               

复制代码

但是虽然end_input这个信号一直是0,但是只要放开reset键,end_test信号就会自动变高,导致程序无法正常运行,不知道这样的问题是由于什么原因啊?应该如何解决?谢谢大家!

把代码改为以下看看

  • always @(posedge clk)
  •       begin
  •         if (reset_n == 1'b0)
  •           end_test <= 1'b0;
  •         else if (end_input == 1'b1)
  •                          end_test <= 1'b1;
  •         else;
  • end

end_input可能在reset后,某一个时钟,拉高一次,导致end_test变高,而你用signaltap 可能观察不到,请核对你的测试方法

end_input 是怎么控制的?是不是end_test控制了end_input 导致end_test赋值为1?

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top