摘要:該文詳述了一種基于wishbone總線接口的IIC總線控制器IP核設計,給出了該IP核的系統接口以及各個子模塊的詳細設計方法,并對該IP核進行了仿真和驗證。
關鍵詞:IIC總線;IP核;WISHBONE總線;片上系統;verilog HDL
Design of IIC Bus IP Core Based On SOC
YANG Feng
(Lanzhou Jiaotong University, Lanzhou 730070, China)
Abstract: This paper presents design of an IIC bus IP core based on soc with a wishbone inter face.it describes system architecture and detail design mehod of every sub-module and gives methods about simulation and verification.
Key words: IIC bus; IP core; Wishbone interface; SOC; Verilog HDL
隨著集成電路工藝的日益發展,片上系統(System on Chip ,簡稱 SoC)漸漸的成為微電子行業廣泛關注的焦點,SOC技術可以很大程度地降低整個系統的開發周期和費用。由于集成電路的規模和設計效率之間的差距不斷大,SOC技術越來越倚重于IP核重用技術。IP核是集成電路知識產權的簡稱。IP核一般分為三類:固核,硬核,軟核。其中軟核為可綜合的HDL描述,硬核為芯片的版圖,固核通常為TRL代碼和對應具體工藝的網表。
本文給出了一種基于在SOC中廣泛采用的wishbone總線接口的IIC總線控制器IP核的設計方法和對該IP核的仿真以及驗證的簡明介紹。
1 IIC總線的介紹
IIC總線是飛利浦公司開發的一種廣泛應用于各種電子領域的低速器件。IIC總線定義了兩條線:串行數據線SDA(Serial Data)和串行時鐘線SCL(Serial Clock),二者均為雙向傳輸。每一個掛接在總線上的設備都有其在總線上的唯一地址,任何一個外設均可作為主機(master)或者從機(slave),此外IIC總線還允許多主機的存在。
2 IIC總線IP核的設計
IIC總線IP核主要由以下部分組成:WISHBONE總線接口模塊,時鐘發生器,字節命令控制器,比特命令控制器,寄存器組,各部分之間的關系如圖1所示。
2.1 WISHBONE總線接口模塊
連接主設備與IIC總線的模塊,對握手信號,數據信號,地址信號進行譯碼和傳輸。WISHBONE總線接口模塊是整個傳輸過程的中央控制單元,整個傳輸的開始就是通過對其內部的控制寄存器進行配置,來產生一系列的操作信號。例如,通過產生SCL為高時,SDA由高變低這樣一個配對信號,通知總線上的所有設備開始一次新的數據傳輸。
2.2 時鐘發生器
本模塊的作用是用來產生本IP核所需的內部時鐘信號clk,利用一個計數器來實現,作為字節命令控制器的使能信號,同時它也可用來控制一些slave(從設備)的時鐘擴展。當計數器的值為0的時候,就載入預先存儲在時鐘分頻寄存器里面的值prescale,clk將間隔presacle指定時間產生一次高電平,進而控制時鐘頻率。根據I2C接口結構,該核內部使用4倍的SCL時鐘.通過時鐘分頻寄存器,用編程的方式產生4倍的SCL時鐘。
例:WISHBONE總線時鐘頻率wb_clk_i=100MHZ, 需要SCL=125KHZ
結果:■
2.3 字節命令控制器
字節命令控制器用來控制在IIC總線中以字節形式傳輸的數據。IIC總線對與傳輸到SDA線上的字節數量沒有限制,但是每個字節必須為8位,并且后邊跟一個響應位ACK。它主要是通過對命令寄存器中的 開始,停止,讀位進行設置來控制數據傳輸的。對從設備讀取數據時,首先由字節命令寄存器產生開始信號,當傳輸結束后產生一個停止信號。它對字節的控制主要是通過將字節分解成比特,然后送入比特命令控制器進行操作的。
2.4 比特命令控制器
比特命令控制器控制的是真正意義上的傳輸數據并且還需要產生特定電平信號的 START, repeated START ,STOP信號來對串行數據線SDA和串行時鐘線SCL進行控制。字節命令控制器控制比特命令控制器執行何種操作,每種操作包含IDLE,A,B,C,D五個部分,其中STOP命令只包括IDLE,A,B,C四個部分。
2.5 寄存器組
本IP核所用到的寄存器主要包括以下幾個:
時鐘分頻寄存器:存儲時鐘發生器所需的分頻值prescale。
控制寄存器:存儲IIC總線IP核中斷的使能位。
發送寄存器:存儲準備要發送到從機的地址或數據。
接受寄存器:存儲從機收到的數據。
命令寄存器:存儲IP核所需的各種命令位。
狀態寄存器:存儲包括總線,握手信號,中斷,仲裁,傳輸各部分的狀態。
3 IP核的仿真與驗證
本IP核的功能仿真采用Mentor公司的modelsim和 novas 公司的debussy進行聯合仿真。Modelsim軟件提供了良好的仿真環境,支持VHDL和Verilog的混合仿真,它集成了性能分析,波形比較,信號追蹤等眾多的調試功能,編譯速度快,編譯的代碼與平臺無關,便于保護IP核。Debussy軟件的主要功能是查看仿真波形與在HDL source code、schematic diagram、waveform、state bubble diagram之間,即時做trace,幫助設計者快速的定位程序錯誤并進行修正。采用modelsim和debussy的組合能夠充分發揮兩種軟件的優勢,大大提高IP核的仿真和調試效率。在進行功能仿真之前首先需要編寫本IP核的測試平臺,平臺結構如圖2所示,包括IIC Mater Core, Wishbone master model,IIC slave 模塊。
測試過程如下:首先將預分頻寄存器的值設置好,產生所需的內部時鐘。然后主機通過IIC總線IP核向從設備的存儲器中寫入數據。此步驟完成后,主設備再通過IIC總線IP核從從機的存儲器中讀出數據。最后將寫入和讀出的數據經行對比,查看是否一致。
源程序通過modelsim和debussy的聯合仿真得到的結果如圖3所示。
從仿真結果上可以清楚的看到數據線sda,時鐘線SCL和寄存器的狀態,從功能角度來看,本IP核仿真結果與IIC總線協議要求一致。仿真完成后通過Quartus ii 7.0對本ip核進行綜合,并采用ALTERA公司CYCLONE II 系列的EP2C35芯片進行驗證,實現了對具有IIC總線標準的串行EEROM芯片AT24C02的讀寫操作,證明了設計的正確性。
4 結束語
本文采用主流的硬件描述語言verilog HDL設計了一個基于wishbone總線的IIC總線IP核,并將IP核進行綜合后,下載到目標芯片中進行了驗證,從而解決了嵌入式系統中IIC總線IP核的設計問題。
參考文獻:
[1] 何立民.IIC總線應用系統設計[M].北京:北京航空航天大學出版社,1995.
[2] 夏宇聞.Verilog數字系統設計教程[M].北京:北京航空航天大學出版社,2003.
[3] 王前,吳淑泉,劉喜英.基于FPGA的IIC總線接口實現方法[J].微電子技術,2002(2):41-43.
[4] 潘松,黃繼業,曾锍.SOPC技術實用教程平[M].北京:清華大學出版社,2005.