分頻器還是比較簡單的,一般的思路是:每數幾個時鍾就輸出一個時鍾。最簡單的當數二分頻器了,每當時鍾上升沿(或下降沿)就把輸出翻轉一下。
這樣就剛好實現了二分頻器了。
網上也搜到了最簡實現”二分頻最簡單了,一句話就可以了: always @ (negedge clk) clk_2<=~clk_2;“
但仿真時卻發現無法輸出
分析是因為輸出信號的初始狀態不確定造成的,於是加了一句初始化,就可以正常分頻了
但觀察他們生成的邏輯結構圖是一樣的
完整代碼如下:
module divider2(clk_in, clk_out); input clk_in; output clk_out; reg clk_out; initial clk_out <= 1'b0; always@(posedge clk_in) clk_out <= ~clk_out; endmodule
