2024年1月20日,孩子幼儿园放假了,我把老人和孩子从工作地送回到家里。2月18日,过完年了,我们又一起返回工作地。
孩子一共在家里待了一个月,显著的变化是:痴迷上手机游戏了。孩子在家里这些日子,周围的小孩都玩手机游戏,比如蛋仔派对,我家孩子也迅速爱好上了,以至于离了手机就喊“无聊”,老是跟大人要手机,这个真令大人苦恼!
现在回到工作地了,我和媳妇俩人正在给孩子戒手机游戏的瘾。
真是希望国家管理一下电子游戏,这玩意儿对孩子来说就是毒药啊!
【verilog-01: soft reset】
module soft_reset (clk_s, rst_s_n, clk_d, rst_d_n, soft_reset_n, soft_reset_n_sync)
input wire clk_s;
input wire rst_s_n;//low active
input wire clk_d;
input wire rst_d_n;//low active
input wire soft_reset_n;//low active, synchronous to clk_s.
output wire soft_reset_n_sync;//low active
reg data_s_d;
wire data_s2d;
wire data_s2d2s;
wire waiting_for_feedback;
assign waiting_for_feedback = (soft_reset_n != data_s2d2s);
always @(posedge clk_s, negedge rst_s_n)
begin
if(!rst_s_n)
data_s_d <= 1'b0;
else if((soft_reset_n != data_s_d) && (!waiting_for_feedback))
data_s_d <= soft_reset_n;
end
data_sync sync_s2d(
.clk (clk_d ),
.rst_n (rst_d_n ),
.in (data_s_d ),
.out (data_s2d )
);
data_sync sync_d2s(
.clk (clk_s ),
.rst_n (rst_s_n ),
.in (data_s2d ),
.out (data_s2d2s )
);
assign soft_reset_n_sync = data_s2d;
endmodule
module data_sync (clk, rst_n, in, out);
input wire clk;
input wire rst_n;
input wire in;
output wire out;
reg [1:0] data_d;
always @(posedge clk, negedge rst_n)
begin
if(!rst_n)
data_d <= 2'b00;
else
data_d <= {data_d[0], in};
end
assign out = data_d[1];
endmodule
孩子一共在家里待了一个月,显著的变化是:痴迷上手机游戏了。孩子在家里这些日子,周围的小孩都玩手机游戏,比如蛋仔派对,我家孩子也迅速爱好上了,以至于离了手机就喊“无聊”,老是跟大人要手机,这个真令大人苦恼!
现在回到工作地了,我和媳妇俩人正在给孩子戒手机游戏的瘾。
真是希望国家管理一下电子游戏,这玩意儿对孩子来说就是毒药啊!
【verilog-01: soft reset】
module soft_reset (clk_s, rst_s_n, clk_d, rst_d_n, soft_reset_n, soft_reset_n_sync)
input wire clk_s;
input wire rst_s_n;//low active
input wire clk_d;
input wire rst_d_n;//low active
input wire soft_reset_n;//low active, synchronous to clk_s.
output wire soft_reset_n_sync;//low active
reg data_s_d;
wire data_s2d;
wire data_s2d2s;
wire waiting_for_feedback;
assign waiting_for_feedback = (soft_reset_n != data_s2d2s);
always @(posedge clk_s, negedge rst_s_n)
begin
if(!rst_s_n)
data_s_d <= 1'b0;
else if((soft_reset_n != data_s_d) && (!waiting_for_feedback))
data_s_d <= soft_reset_n;
end
data_sync sync_s2d(
.clk (clk_d ),
.rst_n (rst_d_n ),
.in (data_s_d ),
.out (data_s2d )
);
data_sync sync_d2s(
.clk (clk_s ),
.rst_n (rst_s_n ),
.in (data_s2d ),
.out (data_s2d2s )
);
assign soft_reset_n_sync = data_s2d;
endmodule
module data_sync (clk, rst_n, in, out);
input wire clk;
input wire rst_n;
input wire in;
output wire out;
reg [1:0] data_d;
always @(posedge clk, negedge rst_n)
begin
if(!rst_n)
data_d <= 2'b00;
else
data_d <= {data_d[0], in};
end
assign out = data_d[1];
endmodule