第一页欧美-第一页综合-丁香花成人另类小说-丁香久久-顶级欧美色妇xxxxbbbb

學(xué)術(shù)咨詢

讓期刊論文更省時、省事、省心

基于XC7Z010的自定義IP方法

時間:2021年04月28日 分類:電子論文 次數(shù):326

摘 要:Zynq7000系列基于Xilinx全可編程的可擴(kuò)展處理平臺結(jié)構(gòu)是一種SoC芯片,集成了Cortex-A9雙核ARM和FPGA。Xilinx公司為大家提供許多的IP核,在Vivado的IP Catalog中可以查看,有時這些IP核復(fù)雜,或者不能完全滿足用戶需求,因此Xilinx公司為用戶提供用戶

  摘 要:Zynq7000系列基于Xilinx全可編程的可擴(kuò)展處理平臺結(jié)構(gòu)是一種SoC芯片,集成了Cortex-A9雙核ARM和FPGA。Xilinx公司為大家提供許多的IP核,在Vivado的IP Catalog中可以查看,有時這些IP核復(fù)雜,或者不能完全滿足用戶需求,因此Xilinx公司為用戶提供用戶可以創(chuàng)建屬于自己的IP核,系統(tǒng)化定制,簡化設(shè)計(jì)。本文講述了Zynq7000系列芯片如何在Vivado中建立AXI總線類型的IP核,實(shí)現(xiàn)自定義IP核,并試驗(yàn)。

  關(guān)鍵詞:Z7 自定義IP AXI總線

計(jì)算機(jī)論文

  1 引言

  Zynq-7000系列芯都有完整的ARM處理子系統(tǒng),其包含了雙核的CortexTM-A9處理器,整個處理器的搭建都以處理器為中心,整個處理器子系統(tǒng)中集成了內(nèi)存控制器和大量的外設(shè),使CortexTM-A9的核在Zynq-7000中完全獨(dú)立于可編程邏輯單元,即Zynq-7000系列芯片包含ARM的PS部分,和FPGA部分(PL),其中PS集成了兩個Cortex™-A9處理器,AMBA®互連,內(nèi)部存儲器,外部存儲器接口和外設(shè)。返些外設(shè)主要包括USB總線接口,以太網(wǎng)接口,SD/SDIO接口,I2C總線接口,CAN總線接口,UART接口,GPIO等。PS和PL部分可以協(xié)同工作,也可以獨(dú)立工作。

  計(jì)算機(jī)評職知識:計(jì)算機(jī)應(yīng)用研究期刊投稿領(lǐng)域和要求

  為方便用戶開發(fā)使用,xilinx公司提供了許多IP核,有時候這些接口時序復(fù)雜,不利于實(shí)際應(yīng)用,因此,xilinx公司還提供了自定義IP的方法來滿足用戶的個性需求,同時提供了典型的接口ip供用戶使用。利用自定義IP的方法實(shí)現(xiàn)PS-PL通信接口是使用Xilinx提供的IP封裝工具,將用戶代碼封裝成為標(biāo)準(zhǔn)AXI總線形式模塊,將模塊以圖形化的方式加入頂層文件中并進(jìn)行AXI總線的自動連接,這種方式為用戶提供了系統(tǒng)化、個性化的服務(wù)。

  2 建立新的系統(tǒng)工程

  本文使用黑金開發(fā)板介紹自定義IP的方法,黑金開發(fā)板使用的芯片為Xilinx公司的xc7z020clg400-2。具體方法如下:

  1)在Vivado開發(fā)環(huán)境里新建了一個名稱為test_IP工程,并生成一個名為system的Block Diagram文件,再在該原理圖中添加ZYNQ7 Processing System內(nèi)核系統(tǒng)。

  2)雙擊Diagram界面里的ZYNQ Processing System,打開ZYNQ系統(tǒng)的配置界面。

  其中Page Navigator界面下有8個子項(xiàng),分布為Zynq Block Design, PS-PL Configuration, Peripheral I/O Pins, MIO Configration, Clock Configuration, DDR Configuration, SMC Timing Calculation, Interrupts。這些頁面選項(xiàng)對應(yīng)的是ZYNQ的不同同硬件模塊的配置,其中PS_PL頁面提供了PS到PL的相關(guān)接口配置信息以及PS部分一些配置信息;Peripheral I/O Pins頁面主要是對一些通用外設(shè)接口的配置;MIO Configruation頁面主要是對MIO已經(jīng)EMIO的分配控制;Clock Configruation頁面主要是對PS端時鐘資源的配置和管理;DDR Configration頁面主要是對DDR控制器一些參數(shù)的配置;Interrupts頁面主要是對中斷進(jìn)行配置管理。

  2.1) 點(diǎn)擊Peripheral I/O Pins選項(xiàng)。

  在AX7020開發(fā)板上, MIO48和MIO49是連接到UART芯片上,是作為串口通信使用的。因此這里配置成UART1的功能,點(diǎn)擊MIO48,49對應(yīng)的UART1, 方框的顏色會發(fā)成綠色。如此MIO48,49的管腳功能就固定了,只能作為UART的功能。其中MIO48為串口發(fā)送,MIO49為串口接收。

  2.2)點(diǎn)擊PS-PL Configuration選項(xiàng)。

  在Gemeral目錄下,可以看到UART1的波特率115200,因此選擇115200,可以根據(jù)需要更改。 因?yàn)楸緦?shí)驗(yàn)中沒有用到PL部分外設(shè),所以就沒有PL的外設(shè)需要掛到AXI的總線上,也就部需要AXI GP0的Master總線了,因此這里把FCLK_RESET0_N和M AXI GP0 interface的選頃去掉。

  2.4) 點(diǎn)擊Clock Configuration頃。

  這個界面會顯示ZYNQ系統(tǒng)的一些時鐘,比如輸入時鐘是33.33333Mhz, 與開収板上癿PS癿系統(tǒng)時鐘是一樣是。CPU的工作時鐘是666.666666Mhz, DDR的工作時鐘是533.333333Mhz,這些時鐘頻率默認(rèn)。

  由于本實(shí)驗(yàn)中沒有用到PL部分外設(shè),所以可以把PL的FCLK_CLK0前面的選項(xiàng)去掉,不會產(chǎn)生FCLK_CLK0。

  2.5) 打開DDR Configration選項(xiàng)。

  這個界面上是選擇DDR芯片的名稱和一些參數(shù)。此界面在Memory Part選項(xiàng)中需要選擇跟開發(fā)板上DDR3型號一樣的名稱,AX7020開發(fā)板選擇MT41J256M16 RE-125。

  配置完成點(diǎn)擊OK退到Vivado的開發(fā)環(huán)境。

  3 自定義IP方法

  1) 創(chuàng)建自定義IP。

  1.1)點(diǎn)擊菜單Tools->Create and Package IP;

  1.2)點(diǎn)擊next,選擇Create a new AXI4 peripheral選項(xiàng);

  1.3)顯示IP的名字,版本和描述等信息。這里可以修改了IP的名字即test_IP和存放位置;

  1.4)顯示AXI總線接口名字,接口是Slave, 數(shù)據(jù)寬度是32位,IP內(nèi)部的寄存器數(shù)量為4個。默認(rèn)選項(xiàng),點(diǎn)擊Next;

  1.5)點(diǎn)擊Finish完成。

  2)添加自定義IP核的功能。

  2.1)打開IP Catalog界面,右鍵選中test_IP_ip_v1.0, 然后選擇Edit in IP Packager選項(xiàng);

  2.2) 點(diǎn)擊OK, 軟件會自動打開另外一個Vivado窗口對用戶自定義的IP核進(jìn)行編輯;

  2.3)雙擊頂層文件test_IP_ip_v1_0.v打開,在“users to add ports here”位置添加管腳端口定義,如下:

  output wire SX_PRF,

  output wire SX_TR,

  input wire sys_clk,;

  2.4) 在頂層文件test_IP_ip_v1_0.v的程序?qū)苣_進(jìn)行例化,如下:

  .SX_PRF(SX_PRF),

  .SX_TR(SX_TR),

  .sys_clk(sys_clk),;

  2.5) 在雙擊打開rtc_ip_v1_0_s00_AXI.v文件,在以下癿位置添加的管腳端口定義如下:

  output wire SX_PRF,

  output wire SX_TR,

  input wire sys_clk,;

  2.6)在“Add user logic here”位置添加實(shí)現(xiàn)產(chǎn)生TR和PRF信號的代碼如下:

  reg[18:0] timer_cnt;

  reg SX_PRF1;

  reg SX_TR1;

  always@(posedge sys_clk)

  if(slv_reg0==32'd1)

  begin

  if(timer_cnt >= 19'd265000)

  timer_cnt<= 1'd0;

  timer_cnt = timer_cnt + 1'd1;

  case(timer_cnt)

  19'd0: begin SX_PRF1<=1'b1;SX_TR1<=1'b1;end

  19'd1000: begin SX_PRF1<=1'b0;SX_TR1<=1'b0;end

  19'd7500: begin SX_PRF1<=1'b1;end

  19'd8500: begin SX_PRF1<=1'b0;end

  19'd40000: begin SX_PRF1<=1'b1;end

  19'd41000: begin SX_PRF1<=1'b0;end

  19'd265000: begin SX_PRF1<=1'b1;SX_TR1<=1'b1;end

  default:begin SX_PRF1 <= SX_PRF1; SX_TR1 <= SX_TR1; end

  endcase

  end

  else

  begin

  SX_PRF1<= 0;

  SX_TR1<= 0;

  timer_cnt <= 0;

  end

  assign SX_TR=SX_TR1;

  assign SX_PRF=SX_PRF1;

  2.7) 點(diǎn)擊Save All Files,編譯文件;

  2.8)雙擊IP-XACT下的component.xml文件,返回到Package IP-test_IP_ip窗口,點(diǎn)擊Port and Interfaces頃,點(diǎn)擊Merge changes from Ports and Interface Wizard。

  2.9) 再對前面沒有打鉤d File Groups點(diǎn)擊Merge changes from File Groups Wizard來更新文件和驅(qū)動。 選擇Review and Package選項(xiàng),然后點(diǎn)擊Re-Package IP結(jié)束IP核的設(shè)置。關(guān)閉IP核的Vivado工程,回到系統(tǒng)工程界面。

  4 添加約束文件

  1)在Diagram窗口,右鍵點(diǎn)擊空白處,選擇Add IP,選擇test_IP_ip_v1.0雙擊添加。

  2)點(diǎn)擊Run Connection Automation選項(xiàng), 選中All Automation,使系統(tǒng)自動連接端口,點(diǎn)擊Run Block Automation選項(xiàng)。 選中timer_cnt,reg SX_PRF,reg SX_TR這三個管腳,右鍵選擇Make External。

  3)在Source窗口中選中system.bd,右鍵打開選擇Generate Output Projects和Create HDL Wrapper選項(xiàng)

  4)在xdc文件中添加管腳約束,如下:

  set_property IOSTANDARD LVCMOS33 [get_ports SX_PRF]

  set_property IOSTANDARD LVCMOS33 [get_ports SX_TR]

  set_property IOSTANDARD LVCMOS33 [get_ports sys_clk]

  set_property PACKAGE_PIN U18 [get_ports sys_clk]

  set_property PACKAGE_PIN R14 [get_ports SX_TR]

  set_property PACKAGE_PIN P14 [get_ports SX_PRF]

  5) 點(diǎn)擊Generate bitstream生成比特流文件。

  5 硬件導(dǎo)入SDK

  1) 導(dǎo)出硬件的方法是選擇菜單File->Export->Export Hardware,把bit文件也一起導(dǎo)出。硬件導(dǎo)出后,選擇菜單File->Launch SDK,啟動SDK開發(fā)環(huán)境。

  2)在SDK環(huán)境里重新新建一個名為ip_test 工程和BSP庫工程,頃目使用helloworldd 工程模板。

  3)修改ip_test工程的helloworld.c如下。

  #include

  #include "platform.h"

  #include "xparameters.h"

  void print(char *str);

  int main()

  {

  int i,j;

  init_platform();

  while(1)

  {

  for(i=0;i<1000;i++)

  for(j=0;j<10000;j++);

  Xil_Out32(XPAR_SX11_IP_0_S00_AXI_BASEADDR,0);

  for(i=0;i<1000;i++)

  for(j=0;j<10000;j++);

  Xil_Out32(XPAR_SX11_IP_0_S00_AXI_BASEADDR,1);

  print("Hello World\n\r");

  }

  cleanup_platform();

  return 0;

  }

  6 總結(jié)

  本文介紹了xilinx公司自定義IP的方法,以及使用自定義IP進(jìn)行開發(fā)的方法,其操作簡便,實(shí)用性高,可滿足用戶的個性化要求,封裝好的IP核在后續(xù)的開發(fā)工程中可以直接調(diào)用,增強(qiáng)程序的可讀性,簡化開發(fā)過程。

  參考文獻(xiàn):

  [1] xilinx,Serial RapidIO Gen2 Endpoint v4.0 LogiCORE IP Product Guide,2015

  [2] TI,SRIO Programming and Performance Data on Keystone DSP,2011

  作者:余佩

瀛︽湳鎸囧鏈嶅姟鏄庣粏

  • 鐮斿悎妯″紡

    鍜屽浗澶栫爺绌跺憳鎴愪负1绡囪鏂囩殑浣滆€咃紝鍏变韩瀛︽湳璧勬簮锛岃妭鐪佹椂闂村拰绮惧姏锛屽彂琛ㄦ湁淇濋殰銆�

    鍜ㄨ璇︽儏
  • 鍗忓姪鍙戣〃

    閽堝瀛︽湳璁烘枃锛屼粠鎶曞墠璇勪及鍒板綍鐢紝鍏ㄨ繃绋嬫寚瀵煎苟鍗忓姪锛屽噺灏戞氮璐规椂闂淬€�

    鍜ㄨ璇︽儏
  • 鏈熷垔鎺ㄨ崘

    鍚岄鍩熺爺绌跺憳鎺ㄨ崘鏈熷垔锛屽垎鏋愯鏂囪川閲忋€佷綔鑰呴渶姹傘€佹湡鍒婂緛绋胯姹傜簿鍑嗘帹鑽愩€�

    鍜ㄨ璇︽儏
  • 鏂囩珷棰勫

    鏂囩珷棰勫璇勪及鏈嶅姟锛岄個璇峰悓棰嗗煙涓撳瀹$ǹ锛岀粰鍑轰慨鏀规剰瑙侊紝鎻愰珮琚帴鏀剁殑鍑犵巼銆�

    鍜ㄨ璇︽儏
  • 鏂囩珷娑﹁壊

    鏀瑰杽闈炶嫳璇瘝璇鐮斿鑰呮枃绔犺瑷€锛岀‘淇濇枃绔犱笉鍥犺瑷€銆佽娉曠瓑闂鑰岄€€淇敋鑷虫嫆绋裤€�

    鍜ㄨ璇︽儏
  • 鏂囩珷缈昏瘧

    鍥藉唴澶栭珮鏍″拰绉戠爺鏈烘瀯绮鹃€氫腑鑻卞弻璇殑涓撳缈昏瘧鏂囩珷锛岀‘淇濊嫳鏂囪瘝璇噯纭€с€佷笓涓氭€с€�

    鍜ㄨ璇︽儏
  • 鏂囩珷鏌ラ噸

    浣跨敤鍥介檯鏈熷垔閫氱敤鏁版嵁搴撹繘琛岃嫳鏂囨煡閲嶏紝鑾峰緱涓庡嚭鐗堝晢鐩稿悓閲嶅鐜囦俊鎭紝鎻愬墠闄嶉噸銆�

    鍜ㄨ璇︽儏
  • 鎶曠ǹ鎸囧

    鏃ㄥ湪甯綔鑰呭皢绋夸欢鎻愪氦鑷崇洰鏍囨湡鍒婃姇绋跨郴缁燂紝浣滆€呴伩鍏嶈€借鏃堕棿锛屾垨鍥犺鎿嶄綔瀵艰嚧閫€绋裤€�

    鍜ㄨ璇︽儏

閹疇顩︽禍鍡毿扴CI/SSCI/EI/AHCI鐎癸紕枪閸涖劍婀¢妴浣哄闂堛垼鍨傞妴浣哥秿閻€劎宸�婵夘偄鍟撴穱鈩冧紖鐎涳附婀虫い楣冩6閹绘劒绶甸崗宥堝瀭鐠佽尪袙

閹存劖鐏夐崪銊嚄
主站蜘蛛池模板: 热99精品只有里视频最新 | 日本成熟bbxxxxxxxx | 国产欧美日韩亚洲精品区2345 | 久久久久久久国产视频 | 一区二区三区四区在线播放 | 一级做a级爰片性色毛片视频 | 91精品日本久久久久久牛牛 | 1000部拍拍拍18免费网站 | 136福利导福航 | www.av免费| 狠狠色婷婷综合天天久久丁香 | 一级毛片在线播放免费 | 日本精品视频在线观看 | 国内一级一级毛片a免费 | 亚洲人成一区二区不卡 | 成人三级做爰在线观看男女 | 青青青国产依人在在线观看高 | 国产丝袜视频在线 | 久久综合精品视频 | 国产黄色一级 | 国内自拍 在线播放 网红 | mmmmxxxx国产在线观看 | 免费特黄一区二区三区视频一 | 久久婷婷午色综合夜啪 | 国产片一级aaa毛片视频 | aaa免费毛片 | 国产成人综合网 | 国产一区二区三区四卡 | 国产网红主播精品福利大秀专区 | 国产日韩精品一区二区 | 国产精品中文字幕在线 | 国产高清在线精品一区αpp | 一本大道香蕉中文日本不卡高清二区 | 三级毛片在线 | 超高清欧美videos360 | 黄色一级毛片网站 | 久久久久在线视频 | 国产亚洲婷婷香蕉久久精品 | 欧洲男女下面进出的视频 | 欧美大黄特黄一级毛片 | 亚洲精品国产第一区第二区国 |