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