Z393072 发表于 2014-9-9 22:18:47

cycloneIII复位电路!!!

我用的是EP3C16Q240C8,之前板子没有把复位电路焊上去,能够正常工作。。
但是过了大半年,突然就工作不正常了,FPGA一直处于复位状态。。。。。
当我把复位电路焊上后,又能正常工作了!!!(开始以为是晶振坏了。。)
请问这是为啥呢??求解啊

Z393072 发表于 2014-9-9 22:21:06

坐等大神们指点啊{:smile:}

biansf2001 发表于 2014-9-9 22:26:18

没有复位就没有初始化呗,应该也能工作,就是一些变量不对啦

NJ8888 发表于 2014-9-9 22:38:33

我用赛灵斯,不理解你说的给FPGA复位

Z393072 发表于 2014-9-9 22:46:47

biansf2001 发表于 2014-9-9 22:26
没有复位就没有初始化呗,应该也能工作,就是一些变量不对啦

额。。modelsim仿真的话确实没有复位变量就没有初始化。。。但是cycloneIII内部有一个所谓的上电复位(Power On Reset)电路,技术手册说的我没看懂。。

蓝色风暴@FPGA 发表于 2014-9-9 22:58:18

关键要看你这个复位信号是接哪里了

Z393072 发表于 2014-9-12 17:27:01

蓝色风暴@FPGA 发表于 2014-9-9 22:58
关键要看你这个复位信号是接哪里了

接的普通的IO引脚啊

ccrt 发表于 2014-9-12 17:45:02

Z393072 发表于 2014-9-12 17:27
接的普通的IO引脚啊

还是检查你的复位不分的程序吧

Z393072 发表于 2014-9-12 19:22:17

ccrt 发表于 2014-9-12 17:45
还是检查你的复位不分的程序吧

我都是用的异步复位,程序本身不会一直陷入在复位中、、、
比如说这个产生脉冲的小程序
//repeat freq---2kHz   pulse width 200ns
module wave_gen(clk,rst,wave_pulse);
input clk;
input rst;
output wave_pulse;
reg wave_pulse;
reg count;

parameter n0 = 32'd10 - 1,n1 = 32'd25000 - 1;

always @(posedge clk or negedge rst)
if(!rst)
begin
count<=17'd0;
wave_pulse<=1'b1;
end
else if(count==n0)
begin
count<=count+1'b1;
wave_pulse<=1'b0;
end
else if(count==n1)
    begin
       count<=17'd0;
       wave_pulse<=1'b1;
       end
else count<=count+1'b1;
endmodule

ccrt 发表于 2014-9-13 09:43:40

这大半年还有别的地方改了么?仔细查改动地方,这个可能原因太多了,除了你自己别人很难帮到你

DepravedLucien 发表于 2014-9-13 11:40:22

没焊接,是指哪些元件没焊接

DepravedLucien 发表于 2014-9-13 11:41:05

是只有按键没焊接呢,还是整个电路都没焊接

Z393072 发表于 2014-9-13 20:27:27

ccrt 发表于 2014-9-13 09:43
这大半年还有别的地方改了么?仔细查改动地方,这个可能原因太多了,除了你自己别人很难帮到你 ...

谢谢。。没有改动啊、、之前是没有焊复位电路,跑各种代码都能一直工作好好的,后来突然不行了,焊上复位电路就又正常了。。没搞懂

Z393072 发表于 2014-9-13 20:29:28

DepravedLucien 发表于 2014-9-13 11:41
是只有按键没焊接呢,还是整个电路都没焊接

附图所示的三个元件都没有焊,之前

易尘 发表于 2014-9-15 09:03:14

可能是程序的问题吧

DepravedLucien 发表于 2014-9-15 14:38:39

Z393072 发表于 2014-9-13 20:29
附图所示的三个元件都没有焊,之前

三个都没焊接,然后你的代码中依然有复位,引脚也有分配是吧。你把上拉的电阻焊接上试试看呗
页: [1]
查看完整版本: cycloneIII复位电路!!!