基于FPGA的嵌入式Linux軟硬件設(shè)計(jì)
在進(jìn)行電路設(shè)計(jì)時(shí),是以FPGA為核心,向外擴(kuò)展各種設(shè)備,因此特別注意了FPGA各個(gè)引腳的連接。由于DDR和PHY芯片都需要提供+2.5V電壓,因此和DDR、PHY芯片連接引腳所在的BANK需要提供+2.5V電壓參考,并且不能接以L(fǎng)VTTL或LVCMOS為電壓參考的引腳。重要快速的時(shí)鐘信號(hào)必須接到全局時(shí)鐘引腳上。由于FPGA需要通過(guò)外部FLASH啟動(dòng)操作系統(tǒng),需要并行配置,以減少加載時(shí)間,配置電路如圖2所示。在DDR布線(xiàn)時(shí),數(shù)據(jù)和地址線(xiàn)需要走等長(zhǎng)線(xiàn),數(shù)據(jù)線(xiàn)之間不能相差10Mil,地址線(xiàn)要控制在20Mil以?xún)?nèi),時(shí)鐘也需要走差分等長(zhǎng)線(xiàn),長(zhǎng)度應(yīng)大于地址線(xiàn),DDR各個(gè)信號(hào)還需要47Ω的并行端接,改善信號(hào)質(zhì)量。千兆 PHY 輸出MDI信號(hào)也需要在頂層做差分等長(zhǎng),不然在進(jìn)行1000M數(shù)據(jù)傳輸時(shí)很可能不穩(wěn)定。DDR和PHY需要完整的電源回路做參考,電源層劃分時(shí)也要特別注意,其他電路做常規(guī)處理就可以了。
本文引用地址:http://m.butianyuan.cn/article/106706.htmEDK和ISE軟件設(shè)計(jì)
首先需要調(diào)用Xilinx提供的 EDK軟件,對(duì)各個(gè)模塊加入必要的IPCORE,以便操作系統(tǒng)能正常調(diào)用這些器件的驅(qū)動(dòng)操作他們。本設(shè)計(jì)采用的是EDK10.1.2版本,PPC方面選用ppc405內(nèi)核,頻率設(shè)定在300MHz,同時(shí)需要添加中斷輸入引腳,以便響應(yīng)以太網(wǎng)、串口等外部中斷,其他使用默認(rèn)設(shè)置。DDR控制器采用EDK提供的Multi-Port-Memory Controller模塊,需要設(shè)置DDR芯片廠商、大小和數(shù)據(jù)位數(shù)等,特別指出的是,要設(shè)置獨(dú)立的兩條PLB總線(xiàn)和PPC連接,作為PPC的指令和數(shù)據(jù)總線(xiàn)。MAC單元需要加入XPS_LL_TEMAC模塊來(lái)控制,本設(shè)計(jì)需要設(shè)置PHY 類(lèi)型為GMII(千兆以太網(wǎng)),同時(shí)要指定物理地址和收發(fā)FIFO大小。FLASH單元需要加入xps_mch_emc模塊,同時(shí)設(shè)置FLASH類(lèi)型和讀寫(xiě)時(shí)間。為了方便調(diào)試,還需要加入串口控制臺(tái)模塊,本設(shè)計(jì)使用的是UartLite模塊,設(shè)置需要的波特率和校驗(yàn)類(lèi)型。特別注意的是,系統(tǒng)還需要時(shí)鐘管理模塊(DCM),提供各個(gè)模塊需要的不同時(shí)鐘,還要設(shè)置一段FPGA內(nèi)部RAM區(qū)域,放置PPC的.boot文件。外部這些模塊都通過(guò)PLB總線(xiàn)和PPC通信,需要統(tǒng)一編址,一般把DDR 內(nèi)存空間地址分配到0x0開(kāi)始,整個(gè)系統(tǒng)的構(gòu)建如圖3所示。
本設(shè)計(jì),除了在 EDK中搭建了操作系統(tǒng)必須的各種模塊后,還需要在ISE中編寫(xiě)各個(gè)時(shí)序電路程序,因此把 EDK中編寫(xiě)好的工程作為一個(gè)模塊,加入到ISE中,然后統(tǒng)一編譯,這樣生成了我們需要的完整功能的程序。特別指出的是,PPC405數(shù)據(jù)地址采用的是大端模式,接入到ISE中時(shí),需要把數(shù)據(jù)顛倒位置,如DATA[0:31]變?yōu)镈ATA[31:0],才能正常讀寫(xiě)。
linux操作系統(tǒng)文章專(zhuān)題:linux操作系統(tǒng)詳解(linux不再難懂)fpga相關(guān)文章:fpga是什么
linux相關(guān)文章:linux教程
隔離器相關(guān)文章:隔離器原理 土壤濕度傳感器相關(guān)文章:土壤濕度傳感器原理
評(píng)論