else begin case(control_reg[14:13]) 2'b00:begin //单次立即; mode_reg <= 2'b00; period_s <= pwdata[15:0 ]; pluse_s <= pwdata[31:16]; period <= pwdata[15:0 ]; pluse <= pwdata[31:16]; select <= 0; clr_reg <= 1; end 2'b01:begin //单次延迟; period <= pwdata[15:0 ]; pluse <= pwdata[31:16]; period_s <= period; pluse_s <= pluse; if(count!=16'd0) begin select <= 1; mode_reg <= 2'b01; end else begin select <= 0; mode_reg <= 2'b00; clr_reg <= 1; end end 2'b10:begin //连续立即; mode_reg <= 2'b10; period_s <= pwdata[15:0 ]; pluse_s <= pwdata[31:16]; period <= pwdata[15:0 ]; pluse <= pwdata[31:16]; select <= 0; clr_reg <= 1; end 2'b11:begin //连续延迟; mode_reg <= 2'b11; period <= pwdata[15:0 ]; pluse <= pwdata[31:16]; period_s <= period; pluse_s <= pluse; select <= 1; end endcase end
时间: 2024-04-28 17:24:35 浏览: 101
这段代码看起来像是 Verilog HDL 的一个模块中的一个状态机。根据 control_reg 的值,它会执行不同的操作,例如设置 mode_reg 以指定操作模式,设置 period 和 pluse 以指定脉冲宽度,以及设置 select 和 clr_reg 等变量。同时,该模块似乎支持单次和连续两种模式,以及立即和延迟两种触发方式。具体的操作和功能,可能需要查看更多的代码和文档才能确定。
阅读全文