下面是一个基本的热水器电路设计示例,供参考:
verilog
复制代码
module hotwater_device(
input clk,
input rst,
input [7:0] data_in,
output reg [7:0] data_out
);
reg [7:0] i;
reg [7:0] temp;
reg [7:0] last_reading;
always @(posedge clk) begin
if (rst) begin
i 《= 8‘h00;
data_out 《= 8’h5FFFF;
end else begin
i 《= i + 1;
temp 《= data_in + i;
if (temp 》 last_reading) begin
last_reading 《= temp;
end
if (temp 《 0) begin
i 《= 8‘h00;
data_out 《= 8’h5FFFF;
end else begin
i 《= i + 1;
data_out 《= temp - last_reading;
last_reading 《= temp;
end
end
end
endmodule