基于SOC的IIC总线IP核设计

时间:2022-10-29 03:20:06

基于SOC的IIC总线IP核设计

摘要:该文详述了一种基于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.

上一篇:高等HSK考试环境分析与研究 下一篇:应用改进最小距离分类法识别泵功图工况