女人被狂躁到高潮视频免费无遮挡,内射人妻骚骚骚,免费人成小说在线观看网站,九九影院午夜理论片少妇,免费av永久免费网址

當(dāng)前位置:首頁 > EDA > 電子設(shè)計(jì)自動化
[導(dǎo)讀]在基于FPGA的SOC設(shè)計(jì)中,常使用串口作為通信接口,但直接用FPGA進(jìn)行串口通信數(shù)據(jù)的處理是比較繁雜的,特別是直接使用FPGA進(jìn)行串口通信的協(xié)議的解釋和數(shù)據(jù)打包等處理,將會消耗大量的FPGA硬件資源。

    1 概述

  在基于FPGA的SOC設(shè)計(jì)中,常使用串口作為通信接口,但直接用FPGA進(jìn)行串口通信數(shù)據(jù)的處理是比較繁雜的,特別是直接使用FPGA進(jìn)行串口通信的協(xié)議的解釋和數(shù)據(jù)打包等處理,將會消耗大量的FPGA硬件資源。

  為簡化設(shè)計(jì),降低硬件資源開銷,可以在FPGA中利用IP核實(shí)現(xiàn)的嵌入式微處理器來對串口數(shù)據(jù)進(jìn)行處理。

  本文中的設(shè)計(jì)采用了XILINX的FPGA,可選用的嵌入式微處理器IP核種類繁多,但基于對硬件資源開銷最少的考慮,最終選用了Picoblaze。

  嵌入式微處理器PicoBlaze適用于Spartan-II/E、CoolRunner-II和Virtex系列FPGA,運(yùn)行速度可達(dá)到40MIPS以上,提供49個(gè)不同的指令,16個(gè)寄存器,256個(gè)地址端口,1個(gè)可屏蔽的中斷。其性能超過了傳統(tǒng)的8bit微處理器。嵌入式微處理器Picoblaze的功能、原理見參考文獻(xiàn)[1]。

  Picoblaze使用靈活,但其缺點(diǎn)是可尋址的存儲空間非常有限,因此為滿足實(shí)際需要本文同時(shí)也提出了使用片外SDRAM器件對其存儲能力進(jìn)行擴(kuò)展的設(shè)計(jì)方法。

  2 串口收發(fā)接口設(shè)計(jì)

  2.1串口收發(fā)接口硬件設(shè)計(jì)

  嵌入式微處理器PicoBlaze本身并不具備串行接口,因此必須在FPGA中設(shè)計(jì)串口接收和發(fā)送模塊并通過總線結(jié)構(gòu)與Picoblaze連接。

  串口接收和發(fā)送模塊的設(shè)計(jì)可采用成熟的IP核。實(shí)際設(shè)計(jì)中采用了XLINX的串口收發(fā)IP核,其特點(diǎn)是串口波特率,符號規(guī)則都可以靈活地定制,同時(shí)具有16字節(jié)的接收FIFO和16字節(jié)的發(fā)送FIFO。串口收發(fā)IP核的功能、原理見參考文獻(xiàn)[2]。

  使用Picoblaze和串口收發(fā)IP核構(gòu)成的串口收發(fā)系統(tǒng)結(jié)構(gòu)見圖1。

使用Picoblaze和串口收發(fā)IP核構(gòu)成的串口收發(fā)系統(tǒng)結(jié)構(gòu)

  在設(shè)計(jì)中,發(fā)送模塊、接收模塊和標(biāo)志寄存器分別有不同的地址,Picoblaze通過地址端口對串口收發(fā)模塊進(jìn)行訪問。設(shè)計(jì)中的標(biāo)志寄存器,可用于指示發(fā)送模塊和接收模塊中FIFO的狀態(tài),Picoblaze通過查詢標(biāo)志寄存器來完成對串口數(shù)據(jù)的收發(fā)控制。

  2.2串口收發(fā)接口軟件設(shè)計(jì)

  串口發(fā)送、接收子程序

  Picoblaze通過對標(biāo)志寄存器的查詢,根據(jù)FIFO的狀態(tài)進(jìn)行操作。串口發(fā)送和接收子程序流程見圖2。

串口發(fā)送和接收子程序流程

  Picoblaze的編程,類似于匯編語言。

  串口發(fā)送子程序代碼如下:

  (1)串口接收子程序

  receive:
  INPUT s0,uartrxflag ;查詢接收FIFO是否非空
  AND s0,01
  AND s0,s0
  JUMP Z,receive ;若FIFO為空時(shí)繼續(xù)查詢
  INPUT rxdata,uartrx ;若FIFO非空時(shí)讀取數(shù)據(jù)
  RETURN

  (2)串口接收子程序

  translate:
  INPUT s0,uarttxflag ;查詢發(fā)送FIFO是否為空
  AND s0,01
  AND s0,s0
  JUMP NZ,translate ;若發(fā)送FIFO非空時(shí)繼續(xù)查詢
  OUTPUTtxdata,uarttx ;若發(fā)送FIFO為空時(shí)寫入數(shù)據(jù)
  RETURN

  協(xié)議處理子程序

  本文應(yīng)用中的串口通信,采用應(yīng)答機(jī)制,數(shù)據(jù)具有一定的幀結(jié)構(gòu),Picoblaze需要對命令幀進(jìn)行拆包處理,并根據(jù)幀的內(nèi)容進(jìn)行相應(yīng)的操作,然后發(fā)送響應(yīng)幀。

表1 通信數(shù)據(jù)的命令幀結(jié)構(gòu)

通信數(shù)據(jù)的命令幀結(jié)構(gòu)

表2 通信數(shù)據(jù)的響應(yīng)幀結(jié)構(gòu)

通信數(shù)據(jù)的響應(yīng)幀結(jié)構(gòu)

  根據(jù)幀格式,Picoblaze對串口數(shù)據(jù)的處理流程見圖3。

根據(jù)幀格式

  以上的Picoblaze程序流程所處理的數(shù)據(jù)幀結(jié)構(gòu)是較為簡單的,當(dāng)需要處理復(fù)雜的通信協(xié)議時(shí)可以考慮采用多個(gè)Picoblaze并行處理。

  3 存儲器接口設(shè)計(jì)

  Picoblaze的優(yōu)點(diǎn)是資源占用少,使用靈活,但可尋址的地址空間最多為256字節(jié),無法滿足對大量通信數(shù)據(jù)進(jìn)行存儲的需要。因此本文中采用了SDRAM器件來對Picoblaze的存儲能力進(jìn)行擴(kuò)展。

  SDRAM器件的管腳分為控制信號、地址和數(shù)據(jù)三類。通常一個(gè)SDRAM中包含幾個(gè)BANK,每個(gè)BANK的存儲單元是按行和列尋址的。SDRAM的具體特性見參考文獻(xiàn)[3]。

    SDRAM在使用時(shí)需要專用的控制器來產(chǎn)生滿足SDRAM所需的信號。FPGA中SDRAM控制器也有多種IP核可以選用。出于對設(shè)計(jì)通用性的考慮,本文中采用了一款A(yù)ltera提供的SDRAM控制器IP核,并增加了必要的設(shè)計(jì)以滿足與Picoblaze的接口要求。SDRAM控制器IP核的功能、原理見參考文獻(xiàn)[4]。

  對Picoblaze與SDRAM控制器的接口設(shè)計(jì)有以下幾個(gè)出發(fā)點(diǎn):

  總線匹配

  Picoblaze為8位處理器,數(shù)據(jù)線僅8bit,而SDRAM控制器總線寬度與SDRAM相同,可以為8、16或32bit。因此對于SDRAM控制器的數(shù)據(jù)Picoblaze必須以字節(jié)為單位進(jìn)行處理。

  地址控制

  Picoblaze地址線僅8位,無法直接對SDRAM進(jìn)行尋址。因此Picoblaze對SDRAM的尋址可借鑒先入先出存儲器FIFO的設(shè)計(jì),即設(shè)計(jì)專門的地址計(jì)數(shù)器,通過地址計(jì)數(shù)器實(shí)現(xiàn)對SDRAM的尋址。

  時(shí)序匹配

  Picoblaze的運(yùn)行速度不超過40MHz,而SDRAM的工作速度通常大于100MHz。因此為了滿足SDRAM的時(shí)序要求,要增加必要的緩沖機(jī)制。

  3.1存儲器接口硬件設(shè)計(jì)

  Picoblaze與SDRAM存儲器接口的硬件原理框圖見圖4。

Picoblaze與SDRAM存儲器接口的硬件原理框圖

  控制狀態(tài)機(jī)控制的地址計(jì)數(shù)器為SDRAM控制器提供地址,同時(shí)控制狀態(tài)機(jī)還控制輸入數(shù)據(jù)緩沖區(qū)和輸出數(shù)據(jù)緩沖區(qū),并且根據(jù)Picoblaze的地址端口數(shù)據(jù)和讀/寫使能信號產(chǎn)生SDRAM控制器的命令字。

  (1)SDRAM初始化

  每次加電或復(fù)位后控制狀

態(tài)機(jī)執(zhí)行對SDRAM控制器的初始化操作,設(shè)置SDRAM的時(shí)間參數(shù)和刷新周期等。

  (2)數(shù)據(jù)寫入SDRAM

  輸出數(shù)據(jù)緩沖區(qū)由16×8bit的FIFO構(gòu)成,當(dāng)Picoblaze向輸出數(shù)據(jù)緩沖區(qū)寫入超過8個(gè)字節(jié)后,通過“半滿”信號使控制狀態(tài)機(jī)進(jìn)入SDRAM的長度為8的突發(fā)寫模式,在寫入完成后控制狀態(tài)機(jī)將地址計(jì)數(shù)器增加8,以準(zhǔn)備好下一次的寫入。

  (3)數(shù)據(jù)讀取

  數(shù)據(jù)讀取時(shí)Picoblaze首先向控制狀態(tài)機(jī)發(fā)送讀取請求,控制狀態(tài)機(jī)進(jìn)入SDRAM的長度為1的突發(fā)讀模式,并將讀取的數(shù)據(jù)寫入輸入數(shù)據(jù)緩沖區(qū),此后Picoblaze再由輸入數(shù)據(jù)緩沖區(qū)中讀取數(shù)據(jù)。在讀取后,地址計(jì)數(shù)器做相應(yīng)的增加,以實(shí)現(xiàn)先入先出功能。

  以上的設(shè)計(jì)方法適用于需要數(shù)據(jù)連續(xù)寫入后再連續(xù)讀取的場合。

  控制狀態(tài)機(jī)狀態(tài)圖見圖5。

控制狀態(tài)機(jī)狀態(tài)圖

  3.2存儲器接口軟件設(shè)計(jì)

  由于在SDRAM控制器與Picoblaze之間增加了控制狀態(tài)機(jī),簡化了Picoblaze的程序設(shè)計(jì)。

  (1)數(shù)據(jù)寫入

  數(shù)據(jù)寫入時(shí)Picoblaze向輸出數(shù)據(jù)緩沖區(qū)直接寫入數(shù)據(jù)即可。

  (2)數(shù)據(jù)讀取

  數(shù)據(jù)讀取時(shí)Picoblaze首先向控制狀態(tài)機(jī)發(fā)出請求,然后等待輸入數(shù)據(jù)緩沖區(qū)的數(shù)據(jù)準(zhǔn)備就續(xù)后再讀取。

  4 結(jié)論

  本文在XILINX FPGA中采用嵌入式處理器Picoblaze進(jìn)行SOC設(shè)計(jì),以較少的硬件資源實(shí)現(xiàn)了對串口通信數(shù)據(jù)的處理,同時(shí)采用SDRAM器件對Picoblaze的存儲能力進(jìn)行擴(kuò)展。所采用的設(shè)計(jì)已應(yīng)用于多個(gè)產(chǎn)品中。經(jīng)過了長期的使用和測試證明文中的設(shè)計(jì)方法穩(wěn)定、可靠,并且具有資源占用少,設(shè)計(jì)靈活的優(yōu)點(diǎn)。

  參考文獻(xiàn)

  [1]PicoBlaze 8-BitMicrocontroller forVirtex-E and Spartan-II/IIE Devices,Ken Chapman Xilinx Ltd,XAPP213 (v2.1)February 4, 2003

  [2]UART Transmistter and Receiver Macros,Ken Chapman Xilinx Ltd,2002,10

  [3]MT48LC2M32B2數(shù)據(jù)手冊[R].Micron Technology Inc., 2002

  [4]SDR SDRAM Controller white pape,Altera Corporation

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

最近為什么越來越多的研究開始利用FPGA作為CNN加速器?FPGA與CNN的相遇究竟能帶來什么神奇效果呢?原來,F(xiàn)PGA擁有大量的可編程邏輯資源,相對于GPU,它的可重構(gòu)性以及高功耗能效比的優(yōu)點(diǎn),是GPU無法比擬的;同時(shí)...

關(guān)鍵字: FPGA 可編程邏輯資源 GPU

FPGA的應(yīng)用領(lǐng)域包羅萬象,我們今天來看看在音樂科技領(lǐng)域及醫(yī)療照護(hù)的智能巧思。

關(guān)鍵字: FPGA 科技領(lǐng)域 智能

強(qiáng)大的產(chǎn)品可降低信號噪音并提高分辨率與動態(tài)

關(guān)鍵字: Spectrum儀器 數(shù)字化儀 FPGA

最近某項(xiàng)目采用以太網(wǎng)通信,實(shí)踐起來有些奇怪,好像設(shè)計(jì)成只能應(yīng)答某類計(jì)算機(jī)的ICMP(ping)命令, 某類計(jì)算機(jī)指的是Windows特定系統(tǒng),其他系統(tǒng)發(fā)送ping都不能正確識別。

關(guān)鍵字: 嵌入式Linux FPGA 協(xié)議

近兩年,國外廠商的FPGA芯片價(jià)格飆升,由于價(jià)格,貨期,出口管制等多方面因素的影響,很多公司都在尋找FPGA國產(chǎn)化替代方案。我工作中正在使用的幾款芯片也面臨停產(chǎn)的風(fēng)險(xiǎn),用一片少一片,了解到國產(chǎn)FPGA發(fā)展的也不錯(cuò),完全自...

關(guān)鍵字: FPGA 芯片 EDA

本篇是FPGA之旅設(shè)計(jì)的第十二例,在前面的例程中,完成了DS18B20溫度傳感器數(shù)據(jù)的采集,并且將采集到的數(shù)據(jù)顯示在數(shù)碼管上。由于本例將對溫濕度傳感器DHT11進(jìn)行采集,而且兩者的數(shù)據(jù)采集過程類似,所以可以參考一下前面的...

關(guān)鍵字: FPGA DS18B20溫度傳感器

這是FPGA之旅設(shè)計(jì)的第十三例啦,本例是一個(gè)綜合性的例程,基于OLED屏幕顯示,和DHT11溫濕度采集,將DHT11采集到的溫濕度顯示到OLED屏幕上。

關(guān)鍵字: FPGA OLED屏幕

第八例啦,本例將介紹如何通過FPGA采集DS18B20傳感器的溫度值。

關(guān)鍵字: FPGA DS18B20傳感器

這是FPGA之旅設(shè)計(jì)的第九例啦?。?!本例將介紹如何使用FPGA驅(qū)動OLED屏幕,并在接下來的幾例中,配合其它模塊,進(jìn)行一些有趣的綜合實(shí)驗(yàn)。由于使用的OLED屏是IIC接口的,對IIC接口不是很清楚的,可以參考第五例的設(shè)計(jì)...

關(guān)鍵字: FPGA OLED屏幕

這是FPGA之旅設(shè)計(jì)的第十例啦,在上一例中,已經(jīng)成功驅(qū)動了OLED屏幕,本例將結(jié)合上一例,以及第四例多bytes串口通信做一個(gè)有趣的例程。

關(guān)鍵字: FPGA OLED屏 串口

電子設(shè)計(jì)自動化

21162 篇文章

關(guān)注

發(fā)布文章

編輯精選

技術(shù)子站

關(guān)閉