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