99在线精品免费视频九九视-99在线精品视频-99在线精品视频免费观里-99在线精品视频在线观看-99在线免费播放



官方論壇
官方淘寶
官方博客
微信公眾號
點擊聯系吳工 點擊聯系周老師

【文章】ZYNQ-AXI總線應用-PWM實現呼吸

發布時間:2021-06-18   作者:admin 瀏覽量:

一、前言


  在實時性要求較高的場合中,CPU軟件執行的方式顯然不能滿足需求,這時需要硬件邏輯實現部分功能。要想使自定義IP核被CPU訪問,就必須帶有總線接口。ZYNQ采用AXI BUS實現PS和PL之間的數據交互。本文以PWM為例設計了自定義AXI總線IP,來演示如何靈活運用ARM+FPGA的架構。


功能定義:


在上一篇ZYNQ入門實例博文講解的系統中添加自定義IP核,其輸出驅動LED等實現呼吸燈效果。并且軟件通過配置寄存器方式對其進行使能、打開/關閉配置以及選擇占空比變化步長。另外,可以按鍵操作完成占空比變化步長的增減。


平臺:米聯客 MIZ702N (ZYNQ-7020)


軟件:VIVADO+SDK 2017


注:自定義IP邏輯設計采用明德揚至簡設計法


二、PWM IP設計

PWM無非就是通過控制周期脈沖信號的占空比,也就是改變高電平在一段固定周期內的持續時間來達到控制目的。脈沖周期需要一個計數器來定時,占空比由低變高和由高變低兩種模式同樣需要一個計數器來指示,因此這里使用兩個嵌套的計數器cnt_cyc和cnt_mode。cnt_mode的加一條件除了要等待cnt_cyc計數完成,還要考慮占空比的變化。


我們可以使用下降沿位置表示占空比,位置越靠近周期值占空比越高。在模式0中下降沿位置按照步長增大直至大于等于周期值,模式1中下降沿位置則按照步長遞減直到小于步長。使用兩個信號up_stage和down_stage分別指示模式0和模式1。至于步長值,在配置有效時被更新,否則使用默認值。模塊最終的輸出信號在周期計數器小于下降沿位置為1,反之為零。


<PWM IP邏輯代碼>

 VIVADO綜合、布局布線比較慢,且軟硬件級聯調試費時費力,所以仿真是極其重要的。編寫一個簡單的testbench,定義update_freq_step task更新步長。這里使用System Verilog語法有一定的好處。首先單驅動信號可以統一定義為logic變量類型,其次等待時長能指定單位。


<testbench代碼>

設計較簡單,直接使用VIVADO仿真器觀察波形即可:

null

可以看到輸出信號led的占空比在不斷起伏變化,當更新freq_step為50后變化更為減慢。

配置前相鄰兩個neg_loc數值差與更新后分別是100和50。以上證明邏輯功能無誤。


三、硬件系統搭建

   

設計完PWM功能模塊還沒有完,需要再包一層總線Wrapper才能被CPU訪問。


創建AXI總線IP

null


在封裝器中編輯。

null


最終IP結構如圖:

null

   

具體操作不過多講述,直接以代碼呈現:

<AXI IP頂層和Slave邏輯代碼>


最后重新封裝

null


接下來搭建硬件IP子系統。

null

   

和之前相比只是添加了pwm_led_ip_0,并連接在AXI Interconnect的另一個Master接口上。使用SystemILA抓取總線信號以備后續觀察。還是同樣的操作流程:生成輸出文件,生成HDL Wrapper,添加管腳約束文件,綜合,實現,生成比特流并導出硬件,啟動SDK軟件環境。


四、軟件編程與調試

   

其實CPU控制自定義IP的方式就是讀寫數據,寫就是對指針賦值,讀就是返回指針所指向地址中的數據,分別使用Xil_Out32()和Xil_In32()實現。創建pwm_led_ip.h文件,進行地址宏定義并編寫配置函數。為了更好地實現軟件庫的封裝和擴展,創建environment.h文件來include不同的庫以及宏定義、全局變量定義。


  軟件代碼如下:

<軟件程序代碼>


其他文件與上一篇ZYNQ入門實例博文相同。Run程序后多次按下按鍵,從串口terminal可以看出系統初始化成功,進入按鍵中斷回調函數。開發板上呼吸燈頻率也隨著按鍵按下在變化。


null


最后打開VIVADO硬件管理器,觀察AXI總線波形:

null

   

按下步長值增加按鍵后,會有四次寫數據操作,正好對應pwm_led_setFreqStep function中的四次Xil_Out32調用。每次寫后一個時鐘周期寫響應通道BVALID拉高一個時鐘周期證明寫正確。


null

   

再來觀察用于確認寫入無誤的讀操作對應總線波形:

null

   

讀取數據為40,與寫入一致。到此功能定義、設計規劃、硬件邏輯設計仿真、IP封裝、子系統搭建、軟件設計、板級調試的流程全部走完。


注:代碼未貼出,如果需要,可以找明德揚老師免費獲取源工程。

   拓展閱讀
主站蜘蛛池模板: 成人在线视频免费看 | 日韩一级免费毛片 | 三级a黄 | 欧美一区二区三区不卡免费观看 | 欧美一级做a影片爱橙影院 欧美一级做一a做片性视频 | 黄短视频在线观看免费版 | 手机看片日韩高清国产欧美 | 精品视频在线免费 | 金发美女与黑人巨大交 | 搜索毛片 | 久久精品免费电影 | 成年人免费网站视频 | 成年人激情视频 | 毛片a级三毛片免费播放 | 亚欧成人中文字幕一区 | 国产码欧美日韩高清综合一区 | 国产r级在线观看 | 国产一级特黄生活片 | 韩国一级毛片在线高清免费 | 亚洲性色综合图区图片 | 青青青青青国产免费手机看视频 | 日韩毛片免费视频一级特黄 | 欧美激情人成日本在线视频 | 亚洲免费专区 | 国产精品第44页 | 在线欧美一级毛片免费观看 | 99久久综合狠狠综合久久一区 | 国产精品福利视频一区二区三区 | 亚洲欧洲日产v特级毛片 | 亚洲免费在线视频播放 | 欧美一级日本一级韩国一级 | 久9视频这里只有精品8 | 久久久网 | 麻豆视频在线观看 | 久久涩精品 | 午夜老司机永久免费看片 | 你懂的国产 | 久久久久久全国免费观看 | 国产一区在线免费观看 | 欧美r级毛片在线播放 | 精品一区二区国语对白 |