Altera公司在Quartus II 11.0 之后推出了Qsys集成开发工具从开始流程上看,与之前的SOPC builder没有太大的区别,但是在实际开发中有很多的不同点,Qsys取代SOPC builder也将成为一个趋势。Quartus II 11.0版本还没有取消SOPC builder,不过取消了之前版本的快捷方式,取而代之的是Qsys快捷方式,具体在菜单Tool->SOPC builder启动。
Qsys系统集成工具自动生成互联逻辑,连接知识产权(IP)功能和子系统,从而显著节省了时间,减轻了FPGA设计工作量。Qsys是下一代SOPC Builder工具,在FPGA优化芯片网络(NoC)新技术支持下,与SOPC Builder相比,提高了性能,增强了设计重用功能,更迅速的进行验证。
Qsys优点
加速开发
- 使用方便的GUI界面,支持IP功能和子系统的快速集成。
- 自动生成互联逻辑(地址/数据总线连接、总线宽度匹配逻辑、地址解码逻辑以及仲裁逻辑等)
- Altera及其IP合作伙伴提供的即插即用Qsys兼容IP
- 系统HDL自动生成
- 分层设计流程,实现了灵活的设计,支持基于团队的设计,提高了设计重用能力
- 将SOPC Builder设计移植到Qsys的移植流程
更快的时序收敛
- 与SOPC Builder系统互联架构相比,基于NoC体系结构的高性能Qsys互联以及自动流水线将性能提高了两倍。
- 控制功能强大的自动流水线,满足fMAX和延时系统要求。
更快的完成验证
- 利用自动测试台生成功能并使用验证IP套装迅速开始您的仿真
- 通过系统控制台进行发送读写系统级操作,来加快电路板开发
以下将通过一个在DE2-70开发板的一个例子叙述Qsys的开发过程:
1、 新建工程qsys_test,选择EP2C70F896C6芯片。
2、 打开Qsys,系统默认添加了clk模块,这和SOPC builder有很大的区别。往系统中添加系统需要的模块,存储器SDRAM,还有用来连接外部的PIO端口,不同模块的连接都采用新的方式,需要仔细的研究,在System菜单中选择自动分配地址等,系统构架图如图1所示。
图1 Qsys系统构架图
需要注意的一点就是Qsys生成顶层文件的方式和SOPC builder不一样,所以如果模块有Conduit接口的都要在click to export点击,如图2示,否则在Generate之后再HDL example界面将看不到这些接口,而只会出现clk和reset接口。我们也注意到在系统默认clk的Export栏目是有默认值的。
图2 Conduit接口修改
1、 修改完毕,系统无错误提示之后,设置Project Settings设置Clock crossing adapter type中设置类型,一共有3种类型:Handshake、FIFO和Auto,这3中分别有不同的含义,大体如下:
Handshake:采用简单的握手协议处理跨时钟域数据传输,在这种模式下耗用的资源比较少,适用于数据吞吐量比较少时的情况;
FIFO:采用了双时钟的FIFO做同步处理,这种模式下可以处理吞吐量比较大的数据传输,但是总体延时是Handshake的两倍,适用于吞吐量比较大的存储器映射的数据传输;
Auto:这种模式下同时采用Handshake和FIFO方式的连接,在突发连接中使用FIFO方式,其它情况下使用Handshake方式。
本案例选择Auto模式,如图3示:
图3 Project Settings设置
4、Generation菜单中进行,仿真设置,默认状态下是None,这个根据自己的需要来设置就可以,设置完毕之后点击Generate,如图4所示
5、复制顶层文件
Qsys生成模块成功之后顶层文件有专门的标签下点击copy来复制,这个和SOPC builder生成硬件描述语言文件不同,本例子的顶层文件如图5所示。
回到Quartus II,新建系统顶层文件,给Qsys系统生成的模块端口赋值,完成之后编译,编译通过编译之后配置引脚再编译
至此,项目的硬体开发部分已经全部完成,下面将进入软体Nios II 11.0 IDE开发阶段。
7、使用Nios II 11.0 Software Build Tools for Eclipse进入工程目录,如图7所示。
新建工程,选择Hello World模板,选择何种模板根据系统需求来定。