基于NIOS II的IC总线接口设计
2
协议栈。
在FPGA中使用软核处理器比硬核的优势在于,硬核实现没有灵活性,通常无法使用最新的技术。随着系统日益先进,基于标准处理器的方案会被淘汰,而基于Nios Ⅱ处理器的方案是基于HDL源码构建的,能够修改以满足新的系统需求,避免了被淘汰的命运。将处理器实现为HDL的IP核,开发者能够完全定制CPU和外设,获得恰好满足需求的处理器。
表2-2-2 Nios Ⅱ 软核处理器特性
种类
CPU结构
特性 32位指令集 32位数据宽度
种类 片内调试
特性
基于边界扫描测试(JTAG)的调试逻辑,支持硬件断点、数据触发以及片内外调试跟踪 最多可达256个用户定义的CPU指令
Nios Ⅱ的集成开发环境(IDE) 硬件辅助的调试模块
32个通用寄存器 定制指令 32个外部中断源 2GB寻址空间
具
软件开发工基于GNU 的编译器
Nios Ⅱ处理器核 Nios Ⅱ处理器系列由三个不同的内核组成,可以灵活地控制成本和性能,从而拥有广泛的应用空间。
1 JTAG调试模块: JTAG调试模块提供了通过远端PC主机实现Nios Ⅱ处理器
的在芯片控制、调试和通讯功能,这是Nios Ⅱ处理器的一个极具竞争力的特性。 2 用户指令: 开发人员可以在Nios Ⅱ CPU 核内增加硬件,用以执行复杂运算
任务,为时序要求紧张的软件提供加速算法。
3 外围设备及接口: Nios Ⅱ开发套件包括一套标准外围设备库,在Altera的
FPGA中可以免费使用。
Avalon交换式总线 Avalon交换式总线在处理器、外围设备和接口电路之间实现网络连接,并提供高带宽数据路径、多路和实时处理能力。Avalon交换式总线可以通过调用SOPC Builder设计软件自动生成[17]。
3.3 本章小结
本章主要介绍了开发过程中使用的Quartus Ⅱ软件和Nios IDE软件,介绍了Nios Ⅱ
16
基于NIOS II的IC总线接口设计
2
处理器的开发过程和使用方式,为后续的设计做准备。
17
基于NIOS II的IC总线接口设计
2
第四章 硬件开发流程
4.1 系统需求和设计思路
在NIOS Ⅱ开发过程中,硬件抽象层提供多种一般模式类设备,使得开发者可以高效的在系统中添加或使用这些设备,在SOPC Builder中提供了多种一般模式类的设备,例如:CPU、SDRAM、Flash、JTAG UART等。然而对不属于一般模式类的新设备的使用将不能按照原有的设计方法进行系统开发,根据Nios Ⅱ内部总线规范提供一个设备驱动,并按照SOPC Builder要求集成到硬件抽象层中。I2C总线实现需要FPGA的最小系统,并且需要两个PIO接口作为I2C的总线,一条SCL时钟总线,一条SDA数据总线[18]。
4.2 基于Nios II的硬件开发设计
首先打开Quartus Ⅱ,新建一个工程,需先建立设计模块的工程(Project)单击菜单“File->New Project Wizard...”,工程建立的芯片设置如下图所示,在工程目录中不要有中文和空格存在,否则会导致软件出错。在这里我将工程名定义为I2C,保存在E盘的根目录下。根据实际开发板情况配置芯片,我在这里选择的是Cyclone Ⅱ系列的EP2C8Q208C8芯片。
图4-1 Quartus II新建工程
18
基于NIOS II的IC总线接口设计
2
图4-2 I2C起始和停止条件
芯片配置好以后点击下一步Next,直到显示如图,到此工程配置就完成了。上面显示工程目录E:/i2c/,工程名称为i2c,芯片为Cyclone Ⅱ系列的EP2C8Q208C8。工作电压1.2V。
19
基于NIOS II的IC总线接口设计
2
图4-3工程信息
工程配置好后,我们就进入了工程的界面,在这里我们需要添加空白的电路文件,在软件工具栏中选择File,选择New,如图我们可以看到许多的文件类型,在这里我们选择Block Diagram/Schematic File这个选项点击OK。这样就建立了一个空白的底层电路图文件。
20