隨著IC設計與工藝水平的提高,可編程邏輯器件FPGA因其功能強大,設計靈活,開發周期短等特點,得到了越來越廣泛的應用。片上可編程系統(System On Programmable Chip,SOPC)的設計方法更是越來越受到重視。SOPC將微處理器、存儲器、定時器、通用I/O接口等系統設計必需的功能模塊以及用戶設計的特定功能的模塊集成到一片可編程邏輯器件上,構成一個軟、硬件可編程的片上系統。采用NiosⅡ軟核處理器,使設計具有更大的靈活性。NiosⅡ系列32位RISC嵌入式處理器具有超過200DMIP的性能,在低成本FPGA中實現成本只有35美分,可以在多種系統設置組合中進行選擇,滿足成本和功能要求。這種設計方式使整個系統的裁減、擴充、升級變的容易,可縮短系統的開發周期,節省開發成本,延長產品的生命周期。
1 系統總體框圖
系統一方面采集按鍵的鍵值顯示在數碼管上,并將鍵值數據通過串口送給PC;另一方面通過串口接收由PC發來的數據,將收到的數據顯示在數碼管上,由收到的數據控制相應的發光二極管亮。系統方框圖如圖1所示。
整個系統由Altera支持SOPC的CycloneII高性能、低成本、低功耗的FPGA和一些外圍電路組成。采用了Nios II嵌入式處理器,在FPGA芯片上實現核心控制處理功能。外圍電路主要有串行通信接口,LED數碼管、發光二極管,鍵盤,Flash、SRAM存儲器等組成。
2 硬件設計
利用SOPC技術結合VHDL硬件描述語言,在FPGA芯片內部設計硬件控制部分;再加上外圍電路就構成了整個系統的硬件電路。FPGA內部各模塊利用Altera公司提供的Quartus II開發軟件和其中集成的SOPC Builder系統開發工具來設計。SOPC Builder支持Nios II CPU的配置,并支持設計者在其提供的IP庫中,根據系統設計需要選擇相應的接口模塊,加入到NiosII系統中,將這些設計在Quartus II中編譯并生成sof格式文件后,下載到FPGA芯片中就形成了SOPC的嵌入式系統硬件平臺。
2.1 NiosII軟核處理器
本設計選擇的處理器是Altera公司推出的第二代嵌入式NiosII軟核處理器。Nios II處理器系列是一種面向用戶的,可以靈活定制的通用RISC(精簡指令集架構)嵌入式CPU。Nios以軟核的方式提供給用戶,并專為在Altera的FPGA上實現作了優化,用于SOPC(片上可編程系統)集成,最后在FPGA上實現。
它的外設可以靈活選擇或增刪,可以自定制用戶邏輯為外設,可以允許用戶定制自己的指令集,使用Nios加上外部的Flash、SRAM即可構成一個嵌入式處理器系統。構建的軟核處理器如圖2所示。
2.2 串行通信接口
串行通信接口芯片選用MAX3232,由電平轉換芯片完成從LVTTL電平到RS232C電平的轉換,如圖3所示。
2.3 LED數碼管、發光二極管
8位數碼管顯示數據,通過接收的數據控制點亮相應的二極管。數碼管顯示譯碼在FPGA內部實現。發光二極管通過限流電阻直接接在FPGA的I/O口上。
2.4 Flash、SRAM存儲器、鍵盤
系統片外FLASH選用AM29LV065DU,片外SRAM選用UM611024A;作為運行Nios II的FLASH和SRAM。十個按鍵KEY0-KEY9直接與FPGA芯片的I/O口連接。
3 軟件設計
系統的軟件設計是利用Altera公司的軟件集成開發工具Nios II IDE來完成,用C語言進行編程。系統的軟件主流程圖如圖4所示。接收上位機PC發來的數據采用中斷方式,中斷方式能很快響應提高程序的運行效率,如圖5所示。
4 結束語
本系統采用SOPC技術實現了鍵值采集及顯示,并將數據通過串口發給上位機PC;可以接收從上位機送來的數據并顯示,由接收的數據控制點亮相應的二極管。在設計中采用了Nios II軟核處理器。通過實驗證實了系統工作穩定,在實際的應用中具有很好的參考價值。