• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于MicroBlaze的AXI總線實(shí)時(shí)時(shí)鐘IP核設(shè)計(jì)

      2014-08-12 08:46:10薩其日娜
      關(guān)鍵詞:外設(shè)寄存器時(shí)鐘

      薩其日娜

      (內(nèi)蒙古魯電電力工程有限公司,內(nèi)蒙古 010000)

      基于MicroBlaze的AXI總線實(shí)時(shí)時(shí)鐘IP核設(shè)計(jì)

      薩其日娜

      (內(nèi)蒙古魯電電力工程有限公司,內(nèi)蒙古 010000)

      應(yīng)用MicroBlaze軟核作為CPU的硬件平臺(tái),在此平臺(tái)上設(shè)計(jì)了基于AXI總線的通用實(shí)時(shí)時(shí)鐘IP核。給出了創(chuàng)建IP核的過程和導(dǎo)入IP核的方法。介紹了實(shí)時(shí)時(shí)鐘的IP核結(jié)構(gòu),給出了IP核的結(jié)構(gòu)框圖。介紹了實(shí)時(shí)時(shí)鐘的原理,給出了實(shí)時(shí)時(shí)鐘各個(gè)模塊的核心代碼。

      AXI;IP核;實(shí)時(shí)時(shí)鐘;MicroBlaze

      引 言

      MicroBlaze是可以嵌入到FPGA中的RISC處理器軟核,具有運(yùn)行速度快、占用資源少、可配置性強(qiáng)等優(yōu)點(diǎn),廣泛應(yīng)用于通信、軍事、高端消費(fèi)市場等領(lǐng)域。Xilinx公司的MicroBlaze 32位軟處理器核是支持CoreConnect總線的標(biāo)準(zhǔn)外設(shè)集合。MicroBlaze處理器運(yùn)行在150 MHz時(shí)鐘下,適合設(shè)計(jì)針對(duì)網(wǎng)絡(luò)、電信、數(shù)據(jù)通信和消費(fèi)市場的復(fù)雜嵌入式系統(tǒng)。

      AXI是ARM公司提出的AMBA3.0協(xié)議中最重要的部分,是一種面向高性能、高帶寬、低延遲的片內(nèi)總線。AXI 總線技術(shù)不但使片上系統(tǒng)面積更小功耗更低,同時(shí)還獲得了更加優(yōu)異的性能。AXI 能達(dá)到這樣的技術(shù)指標(biāo)的一個(gè)主要原因,就是它的單向通道體系結(jié)構(gòu)。單向通道體系結(jié)構(gòu)使得片上的信息流只以單方向傳輸,減少了延時(shí)。AXI 技術(shù)滿足超高性能和復(fù)雜的片上系統(tǒng)設(shè)計(jì)的需求,因此AXI的與應(yīng)用也越來越廣泛[1]。隨著ARM公司與Xilinx公司的合作逐步加強(qiáng),Xilinx開始逐步在FPGA產(chǎn)品中大力推廣AXI總線技術(shù)。AXI在Xilinx公司的MicroBalze等CPU上面得到越來越重要的支持,必將成為未來的主流技術(shù)。

      1 IP核的創(chuàng)建與導(dǎo)入

      Xilinx的MicroBlaze軟核為用戶提供了大量的可用IP核,方便用戶開發(fā)縮短開發(fā)周期,降低成本。但是用戶的需求千差萬別,官網(wǎng)提供的IP核不可能滿足所有人的需求。因此開發(fā)環(huán)境支持用戶自定義IP核,根據(jù)用戶的不同需求,用戶可以通過定制的方式開發(fā)自己需要的IP核。在測控裝置的研發(fā)過程中,筆者發(fā)現(xiàn)插件上設(shè)計(jì)的RTC時(shí)鐘芯片,雖然具有掉電保持時(shí)間的功能。但是在完成裝置界面對(duì)時(shí)等功能時(shí),對(duì)RTC芯片的讀寫操作顯示到界面上后,會(huì)有一定的延時(shí),界面無法精確的顯示當(dāng)前的時(shí)間。因此設(shè)計(jì)一個(gè)通過自定制IP核的形式,實(shí)現(xiàn)實(shí)時(shí)時(shí)鐘時(shí)鐘的功能解決上述問題。開發(fā)環(huán)境中的Xilinx Platform Studio為IP核的定值與導(dǎo)入提供了向?qū)А?/p>

      創(chuàng)建IP核的步驟如下:選擇Hardware→Create or Import Peripheral Wizward來打開創(chuàng)建和引入外設(shè)向?qū)?。單擊Next按鈕。選擇Create templates for a new peripheral。默認(rèn)情況下新的外設(shè)將被存在pcores文件夾中方便查找。然后再次單擊Next按鈕。在Create Peripheral-Name and Version對(duì)話框中,輸入定制的IP核的名字,這里輸入本次定制IP核名稱為soft_rtc。下面是版本控制,可以根據(jù)需要修改。界面如圖1所示。

      圖 1

      單擊Next按鈕,在Create Peripheral-Bus Interface 對(duì)話框中,選擇AXI4,這是新的外設(shè)將要連接的總線。對(duì)于簡單設(shè)計(jì)可以選擇AXI4_Lite;下一步在IPIF (IP 接口) 配置,這里配置接口的一些屬性,如是否是AXI 主/從設(shè)備等。所定制的IP是一個(gè)從設(shè)備,因而不需要使用主設(shè)備接口。數(shù)據(jù)寬度選擇默認(rèn)的32位,下一步選擇需number of use memory ranges數(shù)量,這里選1。界面如圖2所示。

      圖 2

      接下來就是IPIC(IP 互聯(lián)),也就是IP的接口信號(hào)。接下來需要使用需要使用BFM總線功能模型對(duì)外設(shè)進(jìn)行仿真,本例不要使用。最后,需要選擇HDL類型、ISE工程支持和軟件驅(qū)動(dòng)模板。此處使用Verilog模板,選擇后需IP接口仍然是VHDL編寫,只是用戶邏輯改用Verilog。如果不需要使用軟件驅(qū)動(dòng)模板,可以不選。最后給出了外設(shè)的信息summary。完成上述步驟后,自定制的soft_rtc IP核的模版創(chuàng)建完成,只需根據(jù)需求對(duì)user_logic文件索要實(shí)現(xiàn)的功能編寫應(yīng)用代碼,并配置相應(yīng)的引腳。

      完成user_logic的代碼編寫后,需要將完成的IP核導(dǎo)入工程。大致步驟如下:再次使用Hardware Create or Import Peripheral, 并單擊Next按鈕。選擇Import existing peripheral項(xiàng),單擊Next按鈕再次輸入名稱soft_rtc,單擊Next按鈕,選擇Yes按鈕。下一步選中第一項(xiàng)HDL source files單擊Next按鈕,然后下一步驟選中第二項(xiàng)Use existing Peripheral Analysis Order files(*pao), Browse到相應(yīng)的目錄下,選中.pao文件,單擊打開,然后單擊Next按鈕;出現(xiàn)圖3所示的窗口時(shí),選中左側(cè)AXI4Lite選項(xiàng),然后單擊Next按鈕后面都選擇默認(rèn)選項(xiàng)直到出現(xiàn)結(jié)束窗口時(shí)選擇結(jié)束按鈕Finish按鈕。 這樣通過上述步驟完成了IP核的創(chuàng)建與導(dǎo)入。最后將IP核加入到工程中與AXI4Lite總線連接。完成IP核模版的創(chuàng)建與導(dǎo)入后,下一步就要進(jìn)行完成IP核user_logic文件的代碼設(shè)計(jì)。

      圖 3

      2 soft_rtc IP核的設(shè)計(jì)

      soft_rtc IP核中主要分為與上層接口的寄存器管理模塊、為IP核提供精確時(shí)鐘的 Clock分頻模塊和RTC的核心邏輯模塊[2]。IP核接口如圖4所示。

      圖 4

      開發(fā)板上提供有25 MHz的晶振和16.384 MHz的晶振。為了計(jì)時(shí)的精度,將16.384 MHz的輸入信號(hào)引入soft_rtc模塊。Clock 分頻模塊將輸入的16.384 MHz準(zhǔn)晶振時(shí)鐘4分頻得到4.096 MHz的時(shí)鐘信號(hào)。分頻核心代碼如下:

      always @(posedge clk_in)

      begin

      if(clk_div == 4'b0011)

      clk_div <= 4'b0110;

      else if(clk_div == 4'b0110)

      clk_div <= 4'b1100;

      else if(clk_div == 4'b1100)

      clk_div <= 4'b1001;

      else

      clk_div <= 4'b0011;

      end

      寄存器控制模塊的主要功能是實(shí)現(xiàn)對(duì)RTC 模塊內(nèi)部各個(gè)寄存器的讀寫控制并為整個(gè)IP 模塊提供控制信號(hào)。提供上層應(yīng)用代碼與IP核代碼之間的接口。在這個(gè)模塊內(nèi)部包含對(duì)每個(gè)內(nèi)部功能寄存器的讀寫進(jìn)行控制的子模塊和對(duì)各個(gè)子模塊時(shí)鐘的總體分布控制[3]。本設(shè)計(jì)中一共定義了16個(gè)寄存器,主要有控制寄存器、狀態(tài)寄存器以及毫秒的讀寄存器、毫秒的寫寄存器;秒的讀寄存器、秒位寫寄存器、分位的讀寄存器、分位的寫寄存器、小時(shí)位的讀寄存器、小時(shí)位的寫寄存器、以及年月日的讀與寫寄存器等。

      設(shè)置RTC核心代碼如下:

      always @(posedge Bus2IP_Clk)

      begin

      if(Bus2IP_CS[0] && Bus2IP_WrCE[0] && (Bus2IP_Addr[9:2] == SETSECOND_Addr))

      SetSecondRegister <= Bus2IP_Data[5:0];

      ……

      end

      讀RTC核心代碼如下:

      assign IP2Bus_Data[15:0] = (Bus2IP_CS[0] && Bus2IP_RdCE[0] && (Bus2IP_Addr[9:2] == MSECOND_Addr))?{6'h00,GetMsecondRegister}:16'hzzzz;

      ……

      RTC的核心邏輯模塊主要完成的功能就是精確計(jì)時(shí)。IP核中通過計(jì)數(shù)器的控制,毫秒逢1000進(jìn)位,秒、分和小時(shí)逢60進(jìn)位,月逢12進(jìn)位。設(shè)計(jì)時(shí)要全面考慮實(shí)際情況,注意對(duì)閏年以及不同月份天數(shù)不一樣等情況的處理。RTC計(jì)時(shí)的核心代碼如下:

      always @(posedge SETTIME or posedge clk_jg)

      begin

      if(SETTIME)

      SecondRegister <= SetSecondRegister;

      else if((SecondRegister_B < 59) && Msecond_Carry)

      SecondRegister <= SecondRegister + 1;

      else if(Msecond_Carry)

      SecondRegister <= 6'h00;

      else

      SecondRegister <= SecondRegister;

      end

      ……

      當(dāng)時(shí)鐘上升沿到來或者應(yīng)用程序發(fā)出設(shè)置時(shí)間指令后,進(jìn)行判斷:秒位如果小于59并且毫秒位有進(jìn)位,此時(shí)秒位計(jì)數(shù)器加1;如果秒位計(jì)數(shù)器大于或等于59時(shí)毫秒位有進(jìn)位則將秒位清零。其他情況秒位計(jì)數(shù)器保持原來數(shù)值。 其他的分、小時(shí)、日月年等計(jì)數(shù)依次類推。

      結(jié) 語

      [1] 田澤,曹慶年,劉天時(shí),等. 嵌入式處理器S3C2440 Windows CE的RTC模塊設(shè)計(jì)與實(shí)現(xiàn)[J]. 計(jì)算機(jī)應(yīng)用與軟件,2007,24(3):31-33.

      [2] 周飚, 謝曉陽. 有限狀態(tài)機(jī)在RTC設(shè)計(jì)中的分析與應(yīng)用[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2008,17(5):77-80.

      [3] 戚戰(zhàn)鋒. RTC技術(shù)在系統(tǒng)集成中的應(yīng)用研究 [J].信息通信,2012(6):37-38.

      薩其日娜(工程師),從事電網(wǎng)自動(dòng)化研究。

      Real-time Clock IP Core Based on AXI Bus and MicroBlaze

      Saqirina

      (Inner Mongolia Ludian Electric Power Engineering Corp. Ltd., Nei Menggu 010000, China)

      MicroBlaze was used as embedded hardware system. In this embedded hardware system, the real time clock IP core was based on AXI bus. The method of creating and importing the IP core was provided. The structure of the IP core was introduced. At the same time the structured flowchart of the IP core was provided. The theory of the real time clock was introduced, and the core code of the modules was provided.

      AXI; IP core;real time clock;MicroBlaze

      TP399

      A

      2014-02-25)

      猜你喜歡
      外設(shè)寄存器時(shí)鐘
      別樣的“時(shí)鐘”
      古代的時(shí)鐘
      Lite寄存器模型的設(shè)計(jì)與實(shí)現(xiàn)
      分簇結(jié)構(gòu)向量寄存器分配策略研究*
      有趣的時(shí)鐘
      時(shí)鐘會(huì)開“花”
      Microchip推出具備雙ADC外設(shè)的全新器件,擴(kuò)展其低成本8位PIC?單片機(jī)產(chǎn)品線
      高速數(shù)模轉(zhuǎn)換器AD9779/AD9788的應(yīng)用
      一種可重構(gòu)線性反饋移位寄存器設(shè)計(jì)
      貼身呵護(hù) 必不可少的PSP外設(shè)
      陆川县| 正阳县| 麻栗坡县| 汽车| 泊头市| 贵德县| 万山特区| 白水县| 文登市| 临澧县| 武川县| 牡丹江市| 布拖县| 望江县| 铁岭市| 六安市| 虞城县| 阜康市| 安康市| 永年县| 阿拉尔市| 华阴市| 融水| 城步| 布尔津县| 得荣县| 磴口县| 揭西县| 陆河县| 西华县| 汉寿县| 合阳县| 当涂县| 东乌珠穆沁旗| 漠河县| 乐陵市| 公主岭市| 富平县| 昌乐县| 边坝县| 龙州县|