EETOP 创芯网论坛 (原名:电子顶级开发网)
标题:
verilog复位信号问题
[打印本页]
作者:
无所谓
时间:
2016-5-31 10:05
标题:
verilog复位信号问题
verilog设计一般都有rst复位信号,以避免状态机不能复位,这是资料上说的。但是有时候硬件上没有复位信号,此时可以用软件复位或者不设置复位信号。对于软件复位:我用计数器实现一个rst复位,在modelsim和Isim仿真时都没有引起出发效果,也就是说,程序跑不起来,这是为什么,说明软件复位不行么?
对于不设置复位:在实际中,FPGA上电之后寄存器全部是0,利用好这个特点,是不是说不设置复位信号也是可行的呢?
作者:
无所谓
时间:
2016-5-31 10:11
各位有经验的可以指导指导
作者:
fascinate_lyd98
时间:
2016-5-31 10:11
不管是软件复位还是硬件复位,程序不应该跑不起来;
程序跑不起来,和你程序有关。
认真检查吧。
作者:
无所谓
时间:
2016-5-31 10:14
回复
3#
fascinate_lyd98
没有写软件复位之前,我在testbench文件里产生复位信号,程序可以跑起来,说明程序没有问题额
作者:
无所谓
时间:
2016-5-31 10:20
1、软件复位是不是一种可行的方案?
2、不设置复位会不会有较大干扰?
作者:
无所谓
时间:
2016-5-31 10:22
我在testbench里给复位信号,程序可以跑起来,程序应该没有问题吧
作者:
杰克淡定
时间:
2016-5-31 10:37
芯片里,最最基本的一个复位,一定是存在的,就是上电复位,电源稳定后撤销复位信号。软件复位,可以用写寄存器为0来复位,也可以用watchdog产生复位;还可以做PIN的复位,比如通过按键复位实现等等。
作者:
HOM破晓
时间:
2016-5-31 15:16
你在testbench里给复位信号,程序可以跑起来,说明你主程序里的复位信号写的有问题
作者:
无所谓
时间:
2016-6-1 10:39
回复
8#
HOM破晓
贴出来算了,主程序的复位有问题么
always @(posedge CLK)
begin
if(!RST_B)
begin
SPIRST_B<=0;
SPIDATA <=32'd0;
state<=8'd4;
dstate<=9'd0;
end
作者:
HOM破晓
时间:
2016-6-1 10:46
回复
9#
无所谓
你应该贴你用计数器写的复位信号部分
作者:
无所谓
时间:
2016-6-1 10:50
回复
10#
HOM破晓
module gen_rst(clk,rst_n);
input clk;
output rst_n;
reg [5:0]rst_count;
assign rst_n = ~(rst_count>5'd50 && rst_count<5'd56);
always @(posedge clk)
begin
if(rst_count > 5'd60)
rst_count <= 5'd62;
else
rst_count <= rst_count + 1;
end
endmodule
作者:
HOM破晓
时间:
2016-6-1 11:32
回复
11#
无所谓
计数写错了,亲
作者:
无所谓
时间:
2016-6-1 14:13
回复
12#
HOM破晓
哪里错了
作者:
YYFFLLMMNN
时间:
2016-6-2 13:24
复位用DCM或者PLL的LOCK信号比较好。这样就不用纠结上电寄存器的值是多少了,而且有的公司的寄存器,比如Actel上电的后的值不一定是0.
作者:
zombes
时间:
2016-6-5 13:41
仿真时的结果是不是不确定值x?
作者:
zhuhua
时间:
2016-6-6 09:09
回复
11#
无所谓
5'd60=>6'd60
作者:
lcxi2727
时间:
2016-6-6 12:10
回复
14#
YYFFLLMMNN
正解
作者:
legenlay
时间:
2016-6-7 21:15
1、FPGA上电之后初始值不一定都是0;
2、计数器写的有问题
欢迎光临 EETOP 创芯网论坛 (原名:电子顶级开发网) (https://bbs.eetop.cn/)
Powered by Discuz! X3.5