国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

零基礎(chǔ)學(xué)FPGA (十九) 探秘SOPC

發(fā)布時間:2016-2-17 08:42    發(fā)布者:designapp
關(guān)鍵詞: FPGA , SOPC
  今天是來北京的第8天了,想想過的蠻快的,在這8天里呢,由于這邊正在開SOPC的課程,自己對這方面之前只是了解過,知道有SOPC這回事,但是從來沒有接觸過,正好有這個機會讓我蹭了幾天的課,算是對這東西有了深入的了解吧。課程講的很快,短短4天的功夫就從入門講到了我認(rèn)為比較難懂的方面,不過還好,經(jīng)過我這幾天的消化,之前也有點基礎(chǔ),理解一下還是沒什么問題的,只不過讓我去操作一個有點難度的外設(shè)的話,我估計還得下點功夫了~
  講SOPC的郝老師跟我住一個屋,郝老師人很不錯,也很年輕,也是個90后,這幾天跟著郝老師學(xué)到了不少東西,不僅僅是SOPC方面的,更多還有對工程師這個行業(yè),對這個社會的一些新的認(rèn)識。
  由于我也是剛接觸SOPC,不能像大神們講的那么井井有條,思路嚴(yán)謹(jǐn),我只是把我最近幾天學(xué)到的東西跟大家分享一下,也作為自己的一份筆記。再下面的幾篇文章中,我都會給大家發(fā)一些SOPC的筆記,從基本的概念,到基本硬件系統(tǒng)的搭建,一些常用IP核的應(yīng)用,像什么PIO核,UART核,USB,EPCS控制器,SDRAM控制器等,還有后面的自定義外設(shè)等,估計用四五篇文章的長度來講這部分吧。
  學(xué)這一部分知識要軟硬結(jié)合,硬件相信大家都沒問題了,軟件呢需要用到C語言的知識,由于我之前很久沒用C語言了,如果大家對C語言還不是很熟的話,建議大家回去補一下C語言的課,雖然我們是搞硬件的,但是越到后面,軟硬就不分了~
  第一篇文章我就先來說說我理解中的SOPC,再教大家手把手搭建一個硬件平臺,這個硬件平臺搭建好了,我們以后的軟件就全部是基于這個平臺的編程了。
  一、我理解中的SOPC
  SOPC呢,也就是所謂的可編程片上系統(tǒng),通常一個系統(tǒng)所包含的,什么CPU,存儲器,DSP和一些IO外設(shè)等都放在FPGA的周圍,這樣大大增加的系統(tǒng)的面積從而增加了系統(tǒng)的成本,SOPC技術(shù)呢就是把CPU,DSP,定時器,IO模塊都放到FPGA里面,通過Quartus II提供的SOPC builder這個工具,在里面嵌入NIOS II處理器和一些常用的IP 核,NIOS II處理器作為主機,其他外設(shè)作為從機,主機和從機之間通過AVALON MM總線進行通信與訪問,每一個外設(shè)都有一個地址,NIOS II處理器可以通過這條總線對外設(shè)進行操作,但是每次只能訪問一個外設(shè),系統(tǒng)硬件搭建好了之后,通過Quartus II對其進行綜合,布局布線,時序約束等硬件系統(tǒng)搭建工作,然后我們用C語言通過NIOS II eclipse 這個工具來給我們的硬件系統(tǒng)編程,并進行運行調(diào)試,最后將我們設(shè)計好的硬件與軟件文件燒入FPGA的配置芯片或者FILASH中,通過相應(yīng)的總線來控制相應(yīng)的外設(shè)。下面是我畫的一個關(guān)系圖
  


  下面我們就通過一個具體的實例來理解這個過程
  二 、硬件系統(tǒng)搭建
  


  上面這個圖就是我們要搭建的硬件系統(tǒng),硬件系統(tǒng)的搭建需要用到Quartus II軟件 和它提供的SOPC builder 工具,一步步來,Quartus II建立工程就不說了,建立工程之后,tool ——sopc builder,按照上面的框圖一個個添加我們需要的IP
  首先我喜歡添加時鐘,即PLL,直接在左上方的搜索框里輸入PLL雙擊即可,至于PLL的配置方法我就不說了,相信大家都已經(jīng)很熟了,由于我們的輸入時鐘是50M,我們需要的內(nèi)部時鐘主要用來控制各種IP,用50M的c0時鐘,但是我們系統(tǒng)設(shè)計SDRAM,我們需要100M的c1時鐘來控制SDRAM控制器,即SDRAM接口,同樣還需要一個時鐘輸出到FPGA芯片外部來控制SDRAM芯片,我們用C2時鐘,C2時鐘跟C1時鐘同頻不同相,根據(jù)經(jīng)驗值,這個相位偏移我們選-75deg,頻率100M
  


  接著添加定時器,在搜索框輸入timer 配置定時單位,位寬,這里我們設(shè)置為1ms,32位,在硬件選項對話框里一般選擇 full—featured,當(dāng)然也可以手動配置一些參數(shù)選custom
  


  然后我們可以配置SDRAM,即我們的內(nèi)存,SDRAM的配置參數(shù)是按照我們板子上芯片的具體參數(shù)配置的,由于系統(tǒng)提供的SDRAM芯片跟我們不匹配,所以我們用custom手動配置
  


  之后可以配置EPCS控制器啊,JTAG控制器,UART,PIO,sysid等相應(yīng)IP
  EPCS控制器是我們要控制控制片外的EPCS芯片用到的一個IP核,由于我們的CPU每次運行起來都是從內(nèi)存,即SDRAM中讀取數(shù)據(jù)的,而我們要做的就是將FPGA的硬件配置文件和我們的軟件配置文件燒入到EPCS芯片中,這樣CPU運行的時候就需要從EPCS芯片中將數(shù)據(jù)搬運到SDRAM中運行,從而提高運行速度,EPCS芯片控制器不需要配置,直接添加即可。
  JTAG控制器是我們調(diào)試用的,包括我們將軟件代碼下載的時候,在窗口返回的一些數(shù)據(jù)就是通過JTAG口傳回的,這個IP也不需要配置,直接添加即可
  UART控制器即串口,為我們以后做串口調(diào)試實驗做好硬件基礎(chǔ),這里大家可以手動配置波特率,和相應(yīng)數(shù)據(jù)位
  sysID說白了就是我們這個系統(tǒng)的標(biāo)號,跟身份證差不多意思,即一個系統(tǒng)對應(yīng)一個標(biāo)號,標(biāo)號我們可以隨便取
  PIO外設(shè)即我們的IO口,分為輸入輸出,我們可以手動配置他們的輸入輸出,位寬等參數(shù),輸出沒什么說的,說一下輸入,輸入我們主要是按鍵輸入,我的開發(fā)板上是4位按鍵,所以位寬設(shè)為4,由于是按鍵輸入,所以我們要檢測的是按鍵的下降沿,而且是沿中斷而不是電平中斷,這里我們需要手動改一下。PIO外設(shè)我們可以隨便加,包括什么數(shù)碼管,蜂鳴器,鍵盤,led等
  


  最后我們添加CPU,即我們的NIOS II 處理器,NIOS II處理器分為三種模式,即經(jīng)濟型,穩(wěn)定型和快速型,當(dāng)然越高端的類型所占的邏輯資源就越多,我們做一些小實驗用經(jīng)濟型或者穩(wěn)定型就夠了
  


  還有一點要注意,配置參數(shù)中的兩個選項,Reset Vector——復(fù)位向量
  Exception Vector——執(zhí)行向量,我們分別選EPCS和SDRAM,即我們復(fù)位的時候,CPU從EPCS中將數(shù)據(jù)搬入SDRAM中重新執(zhí)行,不復(fù)位的過程中,CPU從SDRAM中執(zhí)行(這個地方可能理解的不對,望大神指點)
  全部配置完成之后,我們需要對每一個IP核改下名字,右鍵,rename改成我們習(xí)慣的名字,不改的話后面總是跟著一些后綴。其實配置完成之后,系統(tǒng)就自動將這些模塊連接好了,我們需要做的就是改一下時鐘,讓內(nèi)部處理SDRAM控制器模塊的其他IP用PLL模塊輸出的c0時鐘,SDRAM控制器用c1時鐘
  


  接下來我們需要系統(tǒng)自動分配基地址和中斷號,其實細(xì)心的朋友可能發(fā)現(xiàn),在右面IRQ一欄下有些中斷號是重復(fù)的,所以我們要系統(tǒng)重新分配一下中斷優(yōu)先級。點system——Assign base address 和 Assign interrupt numbers 即可,最后點下面的generate生成我們的系統(tǒng)即可
  這樣我們在sopc builder里的工作就完成了,硬件一旦生成,就不要輕易改了,剩下的事就是我們要在軟件里折騰。
  其實還可以這么理解,我們剛剛生成的系統(tǒng)就相當(dāng)于一個集合了各種IP的模塊,我們直接拿來調(diào)用即可。打開文件目錄下后綴名為.inst的文件,就例化了我們剛才生成的系統(tǒng),我們在quartus II頂層文件中調(diào)用這個系統(tǒng),生成頂層模塊,配置好管腳,這樣我們的硬件部分才算是真的完成了
  


  三、軟件部分
  硬件搞好了就要做軟件,養(yǎng)成一個好的習(xí)慣,在工程目錄中建立一個文件夾,專門放軟件部分的文件
  做軟件,無非就是訪問我們硬件系統(tǒng)中的寄存器,用C語言來控制,這里我們先簡單做一個控制PIO核的小工程,通過控制PIO核來控制LED
  軟件方面的工程建立我不想多說,只想跟大家談一下學(xué)習(xí)方法,當(dāng)我們拿到一個外設(shè),肯定要首先看一下他的datasheet,看他的寄存器映射圖,拿PIO這個核來說,我們可以從網(wǎng)上下載n2cpu_nii5v3這個文件,里面詳細(xì)介紹了各種IP核的資料
  


  看datasheet 一般先看他的overview嘛,英文功底還是有的
  然后我們需要看他的軟件文件software files,即控制這個IP核需要的頭文件,這里是altera_avalon_pio_regs.h
  


  然后就是看寄存器視圖了,寄存器視圖告訴了我們?nèi)绾尉唧w操縱這個IP以及相應(yīng)位的介紹
  


  例如,第一個寄存器是數(shù)據(jù)寄存器,可以用來讀寫數(shù)據(jù),只要我們知道這個PIO核的基址,再知道它的寄存器偏移我們就可以往數(shù)據(jù)寄存器里讀寫數(shù)據(jù)了,至于基址是多少,我們在定義硬件系統(tǒng)的時候系統(tǒng)已經(jīng)自動生成,我們到時候只要調(diào)用就好了
  再例如第二個寄存器是向量寄存器,即控制IO口的數(shù)據(jù)流方向,第三個寄存器是中斷寄存器等等
  代碼部分我們來看一下
  


  首先是初始化,我們調(diào)用函數(shù)找到我們PIO核的基址,并給我們的pio口賦初值0,至于PIO核的基址在頭文件system.h中有定義
  system .h中定義了我們硬件系統(tǒng)中所有IP的相關(guān)參數(shù),我們可以直接拿來調(diào)用
  


  初始化之后呢就進入while循環(huán),循環(huán)移位就是我們所說的流水燈了。由于工程比較簡單,按理說還需要調(diào)試,這里我們就不調(diào)試了,下板即可,先將我們的硬件下到板子了,即我們的SOF文件,然后再下我們的軟件,右鍵我們的工程名,run as——NIOS II hardware
  


  這篇文章主要是講了硬件系統(tǒng)的搭建,其實硬件系統(tǒng)一搭建起來,我們以后的工程都可以用這個硬件系統(tǒng),其實我自己也感覺這種用文字描述的方式來教大家做確實是不好理解,有些東西也不好用文字描述,上傳的圖片也是有限的,所以我中間也省了不少的步驟,包括一些常見錯誤的處理方法,工程文件的導(dǎo)入等,這些希望大家自己找資料了解,具體細(xì)節(jié)如果用文字描述起來更是繁瑣,能看視頻教學(xué)最好了。
  下面的文章我們主要是在軟件上折騰,包括定時器中斷的使用啊,串口收發(fā)代碼的講解啊,還有自定義外設(shè)AD,DA芯片的控制啊,這些我們后續(xù)再談吧~寫了也不少了,暫時收工吧。
                               
               
本文地址:http://www.qingdxww.cn/thread-160806-1-1.html     【打印本頁】

本站部分文章為轉(zhuǎn)載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀點和對其真實性負(fù)責(zé);文章版權(quán)歸原作者及原出處所有,如涉及作品內(nèi)容、版權(quán)和其它問題,我們將根據(jù)著作權(quán)人的要求,第一時間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區(qū)
  • 想要避免發(fā)生災(zāi)難,就用MPLAB SiC電源仿真器!
  • 利用模擬開發(fā)工具生態(tài)系統(tǒng)進行安全電路設(shè)計
  • 更佳設(shè)計的解決方案——Microchip模擬開發(fā)生態(tài)系統(tǒng)
  • Cortex-M4外設(shè) —— TC&TCC結(jié)合事件系統(tǒng)&DMA優(yōu)化任務(wù)培訓(xùn)教程
  • 貿(mào)澤電子(Mouser)專區(qū)

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 四虎hu| 好吊色欧美一区二区三区视频 | 国产成人精品曰本亚洲 | 欧美视频免费在线观看 | 美女教师穿蕾丝内裤动态图 | 国产激情对白一区二区三区四 | 在线国产区 | 99视频精品全部国产盗摄视频 | 亚洲特级aaaaaa毛片 | 午夜在线视频网站 | 国产动漫在线 | 特级a级毛片 | 一级片在线免费观看 | 欧美一区二区三区gg高清影视 | 久久久久久久一精品 | 欧美性猛交xx免费看 | 日本一卡精品视频免费 | 九九精品免费视频 | 日韩经典欧美精品一区 | 亚洲二区在线 | 成年网站未满十八禁毛片免费 | 久久国产精品成人免费 | 国内一级一级毛片a免费 | 一区二区高清在线观看 | 九色免费视频 | 国内偷自拍对白视频 | 五月花综合网 | 狠狠色丁香婷婷综合久久来 | 久久久久国产精品免费免费 | 日本不卡高清免费v | 亚洲第一香蕉视频 | 99re6这里只有精品视频 | 4虎最新网址 | 91精品综合久久久久久五月天 | 午夜日韩在线 | 一区二区三区免费观看 | 操xxx| 亚洲欧美一二三区 | 日本高清视频一区二区 | 国产日本欧美亚洲精品视 | 狠狠操夜夜操 |