時鐘設定的關鍵性暫存器

2021-10-03 10:47:13 字數 1140 閱讀 4368

1、xpll_lock:

xpll_lock暫存器主要控制pll鎖定週期的。注(這裡的x代表a、m、e、v)

2、xpll con / xpll con0 / xpll con1

xpll_con暫存器主要用來開啟 / 關閉ppl倍頻電路,設定pll的倍頻引數,檢視鎖定狀態等。

3、clk_src(n ~ 6)

clk_src暫存器是用來設定時鐘**的(這裡是n選一選那個),對應時鐘框圖的mux開關。

4、clk_src_maskn

clk_src_mask決定mux開關n選1後是否能繼續通過。預設的時鐘都是開啟的,好處是不會因為某個模組的時鐘關閉而導致莫名其妙的問題,壞處是功耗控制不精細、功耗高。

5、clk_divn

各模組的分頻器引數配置

6、clk_gate_x

類似於clk_src_mask(源時鐘開關),對時鐘進行開關控制,控制最終輸出時鐘源的開關。

7、clk_div_statn

8、clk_mus_statn

這兩類狀態位暫存器,用來檢視div和mus的狀態是否已經完成還是在進行中(分頻是否已經成功)。

總結:其中最重要的暫存器有3類:con、src、div。其中con決定pll倍頻到多少,src決定走那一條路,div決定分頻多少。

跨時鐘域的暫存器訪問

在verilog中,如果對於乙個暫存器可能同時有兩個時鐘clk對其進行操作,為了防止讀寫衝突,需要做如下簡單處理 clk f fast時鐘 和clk s slow時鐘 clk s對暫存器time cnt進行寫操作,clk f對暫存器time cnt進行讀操作,所以當clk f邊沿讀取time cnt...

跨時鐘域的暫存器訪問

在verilog中,如果對於乙個暫存器可能同時有兩個時鐘clk對其進行操作,為了防止讀寫衝突,需要做如下簡單處理 clk f fast時鐘 和clk s slow時鐘 clk s對暫存器time cnt進行寫操作,clk f對暫存器time cnt進行讀操作,所以當clk f邊沿讀取time cnt...

解決IIC不能設定暫存器,暫存器總是0

dualxu 2010 07 30 11 10 mini2440 linux2.6.32 在核心驅動中我想直接讀寫spi和iic暫存器,但通過ioremap後,無法寫暫存器,請各位幫忙看看 科長大叔 2010 08 02 09 44 clkcon這個暫存器需要設定 spi和i2c的pclk使能 否則...