FPGA選用Xilinx公司的Spartan-3E系列XC3S500E,采用先進的90nm制造工藝生產,其器件密度為50萬門。Spartan3系列的FPGA是Xilinx公司專門針對大容量、低成本需求的電子設計而開發(fā)的,可支持多種電平的I/O標準;含有豐富的邏輯資源。XC3S500E具有360kbits的塊RAM、73kbits的分布式RAM、10476個邏輯單元、20個18×18的乘法器和4個DCM時鐘管理模塊。
FPGA的配置芯片選用的是Xilinx公司的在系統(tǒng)可編程配置芯片XCF04S,該芯片可為XC3S500E提供易于使用、成本低且可重復編程的配置數據存貯方法,該芯片支持IEEE1149.1標準的JTAG邊界掃描測試和編程。在本系統(tǒng)設計中,XCF04S主要存放用于引導Microblaze軟核及應用程序的引導代碼。
2.2.2 存儲芯片
系統(tǒng)使用的RAM是Micron Technology公司的DDRSDRAM(MT46V32M16),是一片容量為512Mbit(32Mx16)的16位總線寬度存儲芯片,用于上電后加載Microblaze軟核代碼和應用程序代碼,以及對計數數據進行緩沖。FLASH芯片是Intel StrataFlash parallel NORFlash,型號為28F256J3,存儲密度為256Mbit,在本系統(tǒng)中用于保存Microblaze軟核代碼和應用程序代碼。
3 功能設計實現
3.1 基于EDK的FPGA軟核Microblaze的應用設計實現
系統(tǒng)設計工具主要采用Xilinx公司的嵌入式開發(fā)套件EDK,它是用于設計嵌入式處理系統(tǒng)的集成解決方案。它包括搭建硬件平臺的XPS和進行軟件配置的SDK。
Microblaze是Xilinx公司推出的32位軟處理器核,支持CoreConnect總線的標準外設集合。MicroBlaze處理器運行在150MHz時鐘下,可提供125 D-MIPS的性能,這種高效的軟核在本系統(tǒng)中可用于實現處理器功能,實現對計數IP核的配置,以及支撐Xilinx的clockgenerator、Et-hernet等IP核。系統(tǒng)對計數器的實現采用Verilog語言將計數功能編寫為IP核,將其通過FSL總線掛在Microblaze軟核上,以實現計數功能。
3.2 通訊協(xié)議
Microblaze到計數IP核之間的通訊數據定義如下:
計數IP核到Microblaze之間的通訊數據定義如下:
3.3 計數IP核的設計實現
3.3.1 計數IP核的結構
計數IP核采用verilog硬件語言編寫,其結構如圖6所示,頂層文件counterpulse3對接口進行配置,并根據FSL總線上的命令參數選擇工作模式,pulsecount1、pulsecount2和pulsecount3分別是3種工作模式的代碼實現,fsloprt是與FSL進行接口的代碼。
3.3.2 與FSL總線接口
fslopn.v的代碼完成與FSL總線接口功能。FSL總線是單向點對點的通道,它用于完成任意FPGA中兩個模塊的快速通訊。FSL總線是基于FIFO的,基于非共享的無仲裁通信機制,它的深度是可以設置的,最大可以到8k,具備高速的通信性能,其結構如圖7所示。
由于FSL總線是單向的,所以系統(tǒng)中采用了兩條FSL總線,實現Mieroblaze到計數IP核之間的雙向通訊,計數IP核在面對兩條FSL總線時,擔當的分別是MASTER(主)和SLAVE(從)兩種角色。因此,fsloprt.v的代碼應該同時滿足與FSL總線接口的讀和寫時序。讀寫時序如圖8和圖9所示。
3.4 計數IP核和FSL總線的在EDK中的連接實現
為了能使用FSL總線,首先應該在XPS圖形界面中對Microblaze進行配置,在Buses中將Number of FSL Links設置為1。再在IP Catalog中將FSL總線加入到工程中兩次。
在計數IP核編寫后并綜合通過后,將該IP核導入到XPS工程中。
在XPS中,分別對Microblaze和計數IP核的MFSL和SFSL進行連接,將Microblaze的MFSL端連接到計數IP核的SFSL端,反之將計數IP核的MFSL端連接到Microblaze的SFSL端。并在system.mhs中進行如下配置:
由于從計數IP到Microblaze方向數據量較大,所以對FSL總線的深度進行了配置,如上述代碼中,PARAMETERC_FSL_DEPTH=128,被配置為128級深度。
4 結論
評論
查看更多