一个由多模块构成的大模块,除了系统主复位mrst,还需要设计一个(evt)信号,效果为在刚开始的时候,这个(evt)信号来临后,模块才开始处理数据,在数据处理过程中,该(evt)信号来临后模块初始化,重新开始处理数据。想问问大家:这种拿事件信号去完成复位的操作该如何设计。 刚入职的应届生,没事师傅带,经常性钻牛角尖,求大佬指点。
修改:可以理解成子模块有一个系统复位信号mrst,同时还要有一个开始信号restart_evt(模块初始化,从初始状态重新运行),我有点不明白这样相当于有两个复位信号的模块,代码层面该如何实现。
想法1:
always @(posedge mclk or posedge mrst)
begin
if((mrst||restart_evt))
begin
xxx<=1'b0;
end
else
begin
...;
end
end
想法2:
always @(posedge mclk or posedge mrst)
begin
if(mrst)
begin
xxx<=1'b0;
end
else
begin
if(restart_evt)
begin
xxx<=1'b0;
end
else
begin
...;
end
end
end
想法3:
在状态机所有状态里加上
if(restart_evt)
begin
xxx<=1'b0;
end
else
begin
...;
end