NetFPGA 是由美國(guó)斯坦福大�(xué) (Stanford University) �(kāi)�(fā)�(shè)�(jì)的一�(gè)低成� 可重用硬件平�(tái).它的出現(xiàn)使研究人員可以在硬件�(jí)別的�(kāi)�(fā)�(huán)境上搭建 Gb/s �(jí)高性能�(wǎng)�(luò)系統(tǒng)模型,從而�(jìn)行網(wǎng)�(luò)系統(tǒng)的研究和�(cè)�.NetFPGA平臺(tái)的軟件系�(tǒng)包括操作系統(tǒng)、作為軟件接口的�(qū)�(dòng)程序、實(shí)�(xiàn)各種硬件功能的邏輯代碼、執(zhí)行控制功能的軟件程序、系�(tǒng)�(cè)試的腳本程序,以及計(jì)算機(jī)輔助�(shè)�(jì)軟件工具�
NetFPGA 能夠很好地支持模塊化�(shè)�(jì),�(fù)雜的硬件�(shè)�(jì)可以通過(guò)各�(gè)子模 塊的組合�(lái)完成.更重要的�,NetFPGA 是一�(gè)基于 Linux 的開(kāi)放性平�(tái),所 有對(duì)它感興趣的人都可以利用平�(tái)上現(xiàn)有的資源, 在前人開(kāi)�(fā)的基�(chǔ)上搭建自� 的系�(tǒng), 而自己開(kāi)�(fā)的系�(tǒng)也可以被其他人所�,而不再需要重�(fù)地搭建外圍模 �,�(kāi)�(fā)�(qū)�(dòng)� GUI �,只要添加自己的模塊和修改�(xiàn)有的系統(tǒng)即可. NetFPGA 的模塊化和開(kāi)放�,大大�(jiǎn)化了�(wǎng)�(luò)研究的任�(wù)�,從而使其獲 得了全球眾多研究�(jī)�(gòu)的青�. 目前, 基于 NetFPGA 的網(wǎng)�(luò)�(shè)�(jì)和路由器�(shè)�(jì), 已經(jīng)作為一門(mén)�(shí)�(yàn)課程在美�(guó)的很多高校里講授. �(guó)�(nèi)也有很多�(xué)校和研究�(jī)�(gòu)采用基于 NetFPGA �(jìn)行實(shí)�(yàn)與教�(xué)的實(shí)�.
�2.1版本NetFPGA�(kāi)�(fā)板的�(shí)物圖如圖所�
NetFPGA的主要組成部分為�
Xilinx Virtex-II Pro 50 (賽靈思Virtex-II Pro 50 FPGA �
JTAG cable connector can be used to run Xilinx (國(guó)際通用的JTAG�(cè)試端口)
4.5 MBStatic Random Access Memory (SRAM) �4.5 MB高速靜�(tài)隨機(jī)存取器)
Connector block on left of PCB interfaces to 4 external RJ45 plugs �4組高速以太網(wǎng)口)
Interfaces to standard Gigabit Ethernet using Cat5E or Cat6 copper network cables (支持Cat5E或Cat6�(biāo)�(zhǔn)電纜�
Wire-speed processing on all ports at all time using FPGA logic (基于FPGA硬件控制電路�
Two SATA-style connectors to Multi-Gigabit I/O (MGIO) on right-side of PCB (右�(cè)兩�(gè)串口連接�(xiàn)�
Double-Date Rate Random Access Memory (DDR2 DRAM) �64MB二代�(nèi)存)
Standard PCI Form Factor (標(biāo)�(zhǔn)PCI接口�
Dimensions: 25cm long x 10cm tall (10" x 4")�25厘米�(zhǎng)x 10厘米高)
NetFPGA平臺(tái)的軟件系�(tǒng)包括操作系統(tǒng)、作為軟件接口的�(qū)�(dòng)程序、實(shí)�(xiàn)各種硬件功能的邏輯代�、執(zhí)行控制功能的軟件程序、系�(tǒng)�(cè)試的腳本程序,以及計(jì)算機(jī)輔助�(shè)�(jì)軟件工具�
為了保證�(kāi)放性,NetFPGA平臺(tái)選擇了CentOS操作系統(tǒng)。CentOS是一�(gè)�(kāi)放源代碼的Linux操作系統(tǒng),全名為"社區(qū)企業(yè)操作系統(tǒng)"(Community Enterprise Operating System�,是Red Hat的免�(fèi)版本,相�(duì)于其他Linux�(fā)行版,其�(wěn)定性值得信賴(lài),非常適合應(yīng)用在�(wǎng)�(luò)和服�(wù)器平�(tái)。目�,NetFPGA平臺(tái)已經(jīng)支持32位的CentOS 4.4版本直至�5.2版本�
基于Linux�(nèi)核的�(shè)備驅(qū)�(dòng)程序是NetFPGA�(kāi)�(fā)板與主機(jī)操作系統(tǒng)的軟件接口。首�,驅(qū)�(dòng)程序?qū)etFPGA的四�(gè)千兆以太�(wǎng)口�(jìn)行配置,在系�(tǒng)�(nèi)添加了四�(gè)命名為nf2c0、nf2c1、nf2c2、nf2c3的網(wǎng)�(luò)連接,從而使得PC主機(jī)上的用戶(hù)空間軟件可以通過(guò)NetFPGA�(kāi)�(fā)板上的以太網(wǎng)端口�(lái)收發(fā)�(shù)�(jù)分組,就像使用普通的以太�(wǎng)口一樣。其�,驅(qū)�(dòng)程序給安裝在主機(jī)上的每�(gè)NetFPGA板子�(yù)留了128MB的主�(jī)�(nèi)存空間,�(kāi)�(fā)板的片上寄存�、SRAM、DRAM被映射到�(nèi)存中,應(yīng)用程序通過(guò)�(duì)這些寄存器映像�(jìn)行讀�(xiě),從而控制NetFPGA的運(yùn)行模�,監(jiān)視數(shù)�(jù)通道的分組處理狀�(tài)。再�,驅(qū)�(dòng)程序使主�(jī)和NetFPGA之間按照DMA方式傳送這�(gè)以太�(wǎng)幀,從而使主機(jī)在I/O�(jìn)行的同時(shí)能夠并行�(yùn)算而不必等待I/O�(jié)��
�(shí)�(xiàn)各種硬件功能的邏輯代碼是由Verilog硬件�(shè)�(jì)�(yǔ)言編寫(xiě)�,這些代碼通過(guò)仿真�(lái)�(cè)試和改�(jìn)邏輯功能,之后生成bit文件下載到FPGA中,�(zhí)行相�(yīng)的硬件功�。NetFPGA作為一�(gè)�(kāi)放平�(tái),其研究者們已�(jīng)貢獻(xiàn)出了很多Verilog模塊,這為我們的研究�(kāi)�(fā)提供了很大的便捷�
完成控制功能的軟件程序主要是由C�(yǔ)言編寫(xiě),包括讀�(xiě)寄存�、網(wǎng)�(luò)�(xié)議的�(zhí)行等功能。為了使操作�(jiǎn)單和便捷,NetFPGA平臺(tái)還提供了Java程序�(kāi)�(fā)的圖形用�(hù)界面(Java GUI��
此外,Linux操作系統(tǒng)下的Shell腳本程序,可以用�(lái)�(diào)用C�(yǔ)言程序,從而對(duì)系統(tǒng)�(jìn)行測(cè)試,�(píng)估其�(wǎng)�(luò)性能�。這些腳本程序通常是在Shell終端里,以命令行的方式運(yùn)行的�
用于NetFPGA平臺(tái)�(kāi)�(fā)的計(jì)算機(jī)輔助�(shè)�(jì)(CAD)工�,對(duì)硬件�(shè)�(jì)�(jìn)行仿真和�(diào)�。設(shè)�(jì)方案通過(guò)Mentor Graphics ModelSim�(lái)仿真,確保邏輯能夠正確地�(zhí)�。Verilog源代碼通過(guò)Xilinx ISE�(jìn)行綜合,最終生成bit文件�,bit文件通過(guò)PC主機(jī)的命令行程序下載到FPGA并對(duì)其�(jìn)行編程,從而執(zhí)行設(shè)�(jì)的硬件功�。硬件電路的�(diào)試可以使用Xilinx ChipScope的片上邏輯分析儀,通過(guò)JTAG接口�(lái)完成�
組裝PC主機(jī)
主機(jī)配置要求為雙核或四核處理��2G以上�(nèi)存,額定功率400W以上的電�,主板必須帶有PCI-Express和PCI插槽。主�(jī)攢好之后,將雙口�(wǎng)卡和NetFPGA分別插到主板的PCI-Express和PCI插槽,并牢牢固定��
安裝操作系統(tǒng)
目前NetFPGA已經(jīng)兼容�4.4�5.2的各�(gè)CentOS版本,由于CentOS暫時(shí)不支持SATA硬盤(pán),需要通過(guò)�(shè)置主板BIOS使SATA硬盤(pán)工作在IDE模式。為了保�(xiǎn)起見(jiàn),安裝過(guò)程中選擇所有的組件�
安裝Java
由于NetFPGA平臺(tái)的控制軟件中包含了Java�(yǔ)言編寫(xiě)的GUI界面,因此還必須安裝Java JDK和JRE�
安裝NetFPGA軟件�
包含NetFPGA�(qū)�(dòng)程序和基本模塊的軟件�,可以從官方�(wǎng)站直接下�,安裝之后�(jìn)行編譯,系統(tǒng)已經(jīng)為NetFPGA的四�(gè)端口添加了驅(qū)�(dòng),出�(xiàn)了nf2c0,nf2c1,nf2c2和nf2c3四�(gè)�(wǎng)�(luò)連接�
安裝CAD工具
編譯工具采用Xilinx的ISE Foundation,仿真工具采用Mentor Graphics的ModelSim,調(diào)試NetFPGA上的信號(hào)采用Xilinx� ChipScope Pro �
�(cè)�
為了確保軟硬件系�(tǒng)的正確設(shè)�,在安裝完所有軟件之�,對(duì)NetFPGA平臺(tái)做了一系列�(cè)試。這些�(cè)試是由一系列Shell腳本程序�(lái)完成�,NetFPGA的基本軟件包里已�(jīng)包含了這些程序�
維庫(kù)電子通,電子知識(shí),一查百��
已收錄詞�160343�(gè)