Zynq-7000 PL端時(shí)鐘詳解
掃描二維碼
隨時(shí)隨地手機(jī)看文章
1PL 時(shí)鐘簡(jiǎn)介
PL 具有自己的時(shí)鐘管理生成和分配功能,還從 PS 中的時(shí)鐘發(fā)生器接收四個(gè)時(shí)鐘信號(hào),如下圖所示。
PL 時(shí)鐘生成
PS 產(chǎn)生的四個(gè)時(shí)鐘彼此完全異步,與其他 PL 時(shí)鐘沒有關(guān)系。
這四個(gè)時(shí)鐘來(lái)自 PS 中單獨(dú)選擇的 PLL。每個(gè) PL 時(shí)鐘都是獨(dú)立的輸出信號(hào),可產(chǎn)生適合 PL 使用的時(shí)鐘波形。
2時(shí)鐘油門
四個(gè) PL 時(shí)鐘中的每一個(gè)都包含用于啟動(dòng)和停止時(shí)鐘以及協(xié)助 PL 設(shè)計(jì)調(diào)試和協(xié)同仿真的邏輯。時(shí)鐘節(jié)流行為由軟件和來(lái)自 PL 的觸發(fā)輸入信號(hào)控制。
時(shí)鐘節(jié)流功能包括:
-
軟件控制下的啟動(dòng)/停止時(shí)鐘
-
為預(yù)編程的脈沖數(shù)運(yùn)行時(shí)鐘
-
運(yùn)行時(shí)鐘并使用 PL 邏輯來(lái)暫停時(shí)鐘脈沖
每個(gè)時(shí)鐘節(jié)流閥都有一個(gè) 16 位計(jì)數(shù)器,該計(jì)數(shù)器針對(duì)要生成的時(shí)鐘脈沖數(shù)進(jìn)行編程。
對(duì)于連續(xù)時(shí)鐘輸出,向計(jì)數(shù)器寫入 0,這是默認(rèn)值,當(dāng)前計(jì)數(shù)可由軟件讀取,PL 邏輯可以使用來(lái)自 PL 的FCLKCLKTRIGxN輸入信號(hào)暫停計(jì)數(shù)和時(shí)鐘脈沖,軟件可以通過(guò)寫入PL時(shí)鐘控制寄存器來(lái)重新啟動(dòng)計(jì)時(shí)。
PL 時(shí)鐘油門輸入信號(hào)如下:
| 信號(hào)名稱 | I/O | 描述 |
|---|---|---|
| FCLKCLKTRIGxN | I | PL 時(shí)鐘觸發(fā)信號(hào)是來(lái)自 PL 邏輯的輸入,用于在對(duì)編程的時(shí)鐘脈沖數(shù)進(jìn)行計(jì)數(shù)時(shí)暫停(暫停)PL 時(shí)鐘。暫停模式由FCLKCLKTRIGxN信號(hào)的上升沿(邏輯 0 到邏輯 1)進(jìn)入, 該信號(hào)可以與 FCLK 和所有其他信號(hào)異步置位,當(dāng)時(shí)鐘連續(xù)運(yùn)行時(shí),該引腳沒有影響,[LAST_CNT] = 0。 |
3時(shí)鐘油門編程
示例:停止/開始時(shí)鐘
此示例說(shuō)明了使用寫入節(jié)流計(jì)數(shù)寄存器slcr.FPGAx_THR_CNT [LAST_CNT]中的最后一個(gè)計(jì)數(shù)字段來(lái)停止和啟動(dòng) PL 時(shí)鐘 (FCLKCLKx) 的簡(jiǎn)單方法,該示例假設(shè)slcr.FPGAx_THR_CTRL寄存器保持其默認(rèn)狀態(tài)0x0000_0000。
- 停止時(shí)鐘
將0x0000_0001寫入slcr.FPGAx_THR_CTRL,立即停止時(shí)鐘。
[LAST_CNT] = 1 [ReservedReserved] = 0
- 開始時(shí)鐘
將 0x0000_0000 寫入slcr.FPGAx_THR_CTRL以恢復(fù)連續(xù)時(shí)鐘。
[LAST_CNT] = 0 [Reserved] = 0
示例:運(yùn)行 592 個(gè)脈沖的 PL 時(shí)鐘并停止
在本例中,將有 592 個(gè)時(shí)鐘脈沖和停止,slcr.FPGAx_THR_CTRL [CPU_START]位是正沿觸發(fā)以啟動(dòng)時(shí)鐘。
- 啟動(dòng)啟動(dòng)時(shí)鐘位
將 0x0000_0004 寫入控制寄存器slcr.FPGAx_THR_CTRL。
[CPU_START] = 0 [CNT_RST] = 0 [Reserved] = 0x001
- 編程計(jì)數(shù)為 592
將 0x0000_0250 寫入計(jì)數(shù)寄存器slcr.FPGAx_THR_CNT。
[LAST_CNT] = 0x0250 [Reserved] = 0
- 置位起始時(shí)鐘位
將 0x0000_0005 寫入控制寄存器slcr.FPGAx_THR_CTRL。
[CPU_START] = 1 [CNT_RST] = 0 [Reserved] = 0x001
示例:編程 592 脈沖并與 PL 觸發(fā)器輸入交互
在這個(gè)例子中,將有 592 個(gè)時(shí)鐘脈沖被時(shí)鐘觸發(fā)信號(hào)暫停(FCLKCLKTRIGxN) 并由軟件重新啟動(dòng),slcr.FPGAx_THR_CTRL [CPU_START]位為正邊沿觸發(fā)以啟動(dòng)時(shí)鐘。
-
啟動(dòng)起始時(shí)鐘位
-
編程計(jì)數(shù)為 592
-
置位起始時(shí)鐘位
-
PL 邏輯暫停時(shí)鐘(HALT 狀態(tài)):邏輯置位 FCLKCLKTRIGxN 輸入以停止時(shí)鐘時(shí)鐘。
-
啟動(dòng)起始時(shí)鐘位





