玩轉(zhuǎn)Zynq連載22——[ex03] 基于Zynq PL的PLL配置實(shí)例 更多資料共享 騰訊微云鏈接:https://share.weiyun.com/5s6bA0s 百度網(wǎng)盤(pán)鏈接:https://pan.baidu.com/s/1XTQtP5LZAedkCwQtllAEyw 提取碼:ld9c ![]() 騰訊微云鏈接:https://share.weiyun.com/5s6bA0s 百度網(wǎng)盤(pán)鏈接:https://pan.baidu.com/s/1XTQtP5LZAedkCwQtllAEyw 提取碼:ld9c 本實(shí)例通過(guò)PLL產(chǎn)生的不同頻率的時(shí)鐘,分別驅(qū)動(dòng)3個(gè)LED指示燈閃爍一樣的頻率。本實(shí)例的重點(diǎn)其實(shí)不是LED,而是IP核的應(yīng)用,當(dāng)然,僅以PLL IP核為例。 參考文檔《玩轉(zhuǎn)Zynq-基礎(chǔ)篇:基于FPGA的模塊化設(shè)計(jì).pdf》。 我們常說(shuō)的IP核,也就是知識(shí)產(chǎn)權(quán)(Intellectual Property),是那些己驗(yàn)證的、可重利用的、具有某種確定功能的設(shè)計(jì)功能模塊。IP核一般分為軟IP(soft IP core)、固IP(firm IP core)和硬IP(hard IP core)。軟IP是用某種高級(jí)語(yǔ)言來(lái)描述功能塊的行為,但是并不涉及用什么電路和電路元件實(shí)現(xiàn)這些行為。固IP除了完成軟IP所有的設(shè)計(jì)外,還完成了門(mén)電路級(jí)綜合和時(shí)序仿真等設(shè)計(jì)環(huán)節(jié),一般以門(mén)電路級(jí)網(wǎng)表形式提交用戶使用。硬IP則是完成了綜合的功能塊,已有固定的拓?fù)洳季趾途唧w工藝,并己經(jīng)經(jīng)過(guò)工藝驗(yàn)證,具有可保證的性能。設(shè)計(jì)深度愈深,后續(xù)工序所需要做的事情就越少,但是靈活性也就越小。 在Xilinx的FPGA器件中,IP核設(shè)計(jì)是非常重要并且必不可少的一部分,應(yīng)該說(shuō),前述的軟IP、固IP和硬IP,在我們Zstar板載的Zynq上都能夠找到蹤影。而對(duì)于Vivado來(lái)說(shuō),對(duì)于Xilinx或者其第三方合作伙伴提供的,已經(jīng)集成在Vivado工具界面中供設(shè)計(jì)者調(diào)用的IP,我們姑且可以稱(chēng)之為標(biāo)準(zhǔn)IP核;而對(duì)于Vivado未集成的,第三方或者用戶自己開(kāi)發(fā)設(shè)計(jì)的IP核,我們則稱(chēng)之為用戶自定義IP核。 對(duì)于Vivado中集成的IP核,可以點(diǎn)擊Vivado菜單Window --> IP Catalog查看。
![]() 在Vivado主視窗中,IP Catalog --> Cores中,列出了Vivado已經(jīng)集成的分類(lèi)IP核,點(diǎn)擊各個(gè)分類(lèi)前的+號(hào),可以查看具體分類(lèi)下都有哪些可用的IP核。
![]() 對(duì)于一般的IP核,先找到所需要的IP核,然后雙擊IP核彈出配置頁(yè)面,配置完成后輸出各類(lèi)IP核相關(guān)設(shè)計(jì)文件,在用戶設(shè)計(jì)中只要例化IP核模塊就可以了。
![]() 下面我們以zstar_ex04實(shí)例的PLL IP核的配置為例,看看如何添加配置Vivado中集成的標(biāo)準(zhǔn)IP核。 如圖所示,點(diǎn)擊Flow Navigator面板下的“Project Manager à IP Catalog”。
![]() 圖 IP Catalog菜單 如圖所示,彈出的IP Catalog面板中列出了所有Vivado自帶IP核的分類(lèi)列表。
![]() 圖 IP Catalog面板 如圖所示,在“FPGA Features and Design à Clocking”分類(lèi)展開(kāi)后,可以看到名為Clocking Wizard的IP核,通過(guò)這個(gè)IP核,我們可以配置一個(gè)PLL用于對(duì)FPGA外部輸入時(shí)鐘做各種分頻或倍頻處理。點(diǎn)擊Clocking Wizard后將彈出相應(yīng)的配置頁(yè)面。
![]() 圖 Clocking Wizard IP核 彈出的第一個(gè)配置頁(yè)面如圖所示,這里的Primitive可以選擇“PLL”,然后在時(shí)鐘頻率(Input Clock Information)的Primary一行中設(shè)定我們的輸入時(shí)鐘頻率(Input Frequency)為25MHz即可。 ![]() 接著在Output Clocks配置頁(yè)面中,如圖所示,勾選clk_out1/2/3這3個(gè)時(shí)鐘,分別設(shè)置其輸出頻率為25MHz、50MHz、100MHz。同時(shí)勾選控制信號(hào)reset和locked的,并且它們是高電平有效(Active High)。 ![]() 接下來(lái)幾個(gè)頁(yè)面不需要做配置更改,直接點(diǎn)擊OK完成PLL的配置。 配置生效后,我們可以切換到Sources面板下方的IP Sources這個(gè)子頁(yè)面中,如圖所示,出現(xiàn)了名為clk_wiz_0的IP核,即我們剛剛配置添加的IP核。可以點(diǎn)擊展開(kāi)它,在“Instantiation Template”下方的“clk_wiz_0.veo”文件就是例化模板,可以雙擊打開(kāi)它。
![]() 圖 查看例化模板 如圖所示,可以復(fù)制這個(gè)PLL的例化模板,在我們的工程中相應(yīng)修改外部接口。 ![]() 關(guān)于這里PLL模塊的接口定義如表所示。
注:方向是相對(duì)PLL模塊而言的。 參考文檔《玩轉(zhuǎn)Zynq-工具篇:Vivado中IP核的移植.pdf》。 參考文檔《玩轉(zhuǎn)Zynq-環(huán)境篇:XilinxPlatformCableUSB下載器使用指南》,將...\project\zstar_ex03\zstar.runs\impl_1路徑下的zstar.bit文件燒錄到Zynq中。 看到的效果D1、D2和D3這3顆LED指示燈同步閃爍。 |