《风格I》
assign pll_en_d = sw_en ? pll_en_dvfs : pll_en_default;
assign pll_en_dvfs = pll_en_wen ? pll_en_value : pll_en;
always @(posedge clk or negedge rst_n) begin
if(~rst_n) begin
pll_en <= 1'b1;
end else begin
pll_en <= pll_en_d;
end
end
《风格II》
always @(posedge clk or negedge rst_n) begin
if(~rst_n) begin
pll_en <= 1'b1;
end else if(sw_en) begin
if(pll_en_wen)
pll_en <= pll_en_value;
else
pll_en <= pll_en;
end else begin
pll_en <= pll_en_default;
end
end