intc是乙個軟核,可以捕捉pl端外設的多個中斷,並輸出乙個中斷至cpu。intc支援支援級聯,能在系統中有非常多的外設而cpu中斷介面不足時發揮作用。
在xilinx的sdk中有相關外設、ip的例程,加快了開發速度。然而不得不吐槽的是intc的例程不夠完善。intc例程中並未提及gic的初始化,並且sdk不會自動生成intc在gic上的中斷號,需要自己通過手冊(例如ug1085)獲得該中斷號,此部分對開發的誤導較大,讓人誤以為不需要設定gic中斷。並且pl串列埠的中斷例程也很糟糕,在接收到特定個數的資料發生中斷後,如果再接收到新的資料,那程式會不停地進入中斷。
intc的中斷輸出連線到cpu的gic上,並初始化gic,使能gic相應中斷號的中斷,並將中斷函式設定為intc本體的服務函式xintc_deviceinterrupthandler。
將pl外設中斷訊號連線入intc,初始化intc,並將相應intc的輸入介面編號使能中斷,設定外設所需的中斷服務函式
初始化外設,設定好外設的中斷功能。
中斷發生後gic會呼叫相應的intc中斷服務函式,函式內會根據intc內部暫存器自動識別是哪個外設產生中斷,並呼叫相應的中斷函式。
gic和intc不需要手動清中斷,而外設的可能需要自己在中斷服務中清中斷
參考設計,pl(gic)中斷:
參考文章,intc:
Xilinx 中時鐘的使用
沒有pll的時鐘 輸入時鐘在沒有連線到pll中,那麼一定在輸入端鏈結bufg,ibufg iostandard default specify the input i o standard ibufg inst o o clock buffer output i i clock buffer inp...
關於軟核 固核 硬核簡明扼要的比較定義 IP核
ip核模組有行為 結構和物理 不同程度的設計,對應描述功能行為的不同分為三類,即軟核 soft ip core 完成結構描述的固核 firm ip core 和基於物理描述並經過工藝驗證的硬核 hard ip core 1 什麼是軟核?ip軟核通常是用hdl文字形式提交給使用者,它經過rtl級設計優...
Vivado PLL IP核的使用
當我們需要用到分頻或者倍頻的時候,就需要使用vivado中的 pll ip核來獲得我們想要的時鐘頻率。下面簡單說明一下如何配置pll ip核。1 查詢 pll ip核 2 指定用於分頻的輸入頻率 3 設定輸出頻率 相位以及占空比 4 設定locked訊號的名字 locked訊號是用來觀察pll輸出時...