Qsys与uC/OS学习笔记1:与Qsys的第一次亲密接触

发布时间:2016-1-29 10:23    发布者:designapp
关键词: Qsys
  从Quartus II 11.0开始,喜新厌旧的Altera就不厌其烦的炒作SOPC Builder的替代者Qsys。记得去年参加他们的研讨会时就已经炒得火热,如今12.0sp2都已经release了,12以后更是完全摒弃了SOPC Buider,如果再不加紧找个理由上Qsys练练手,咱可就要OUT了。
  正好近期对uC/OS非常感兴趣,苦于手上没有一款比较高端的板子用于实践。于是通过层层关系最终在Altera的大学计划经理John处讨得一套TerasIC的DE2-115,板载EP4CE115F29C7N器件,丰富的片上资源和外设足以应付各种功能需求。上个图,让各位看官也垂涎三尺。
  


  图1
  废话就此打住,后面要上电有营养的文字。话说特权同学也是第一次接触Qsys,虽然这两天抽空恶补了一下Qsys的各种pdf,但毕竟学海无涯苦作舟,咱也就多懂点皮毛,提前班门弄斧一下,只是实实在在的把自己知道的、明白的、领会的一一道来,期间肯定有疏漏和不妥之处,甚至也会带些疑问而来,还请高手不吝惜键盘跟帖指点。
  第一步当然是新建工程,这等小儿科步骤不详究,直接步入主题。如图2所示,两种方式均可打开Qsys。
  


  图2
  进入Qsys后,如图3所示,界面窗口的布局内容多少还有些似曾相识,毕竟还是SOPC Builder一脉相承的,一个最大的变化时Qsys tabs的选项要比SOPC Buider多得多,Qsys的更多系统个性化编辑和设置也都得益于此了。
  


  图3
  初次打开Qsys,System Content中默认已经添加了一个孤零零的CLOCK组件,其他啥也没有,光杆司令只是个摆设,啥活干不了。于是乎,咱觉得在Component Library中各种查找,添加了几个常用组件,如NIOS II处理器、JTAG UART、定时器TIMER、8bit输出PIO、system ID和200KB的片内RAM。如图4所示,这些常用的组件各就各位,基本就可以搭建起一个最小嵌入式系统了,至少是可以写代码在线运行程序的。
  


  图4
  不过,看图4咱可就有点看不懂了,SOPC Builder可不是这样,Connections应该是完全在添加组件过程中自动互联上才对的,而Qsys则一片空白,貌似啥都不连接,别说,还真这么回事。那么就这么着把,绝对不可以,人家系统肯定罢工。怎么办?自己动手,丰衣足食!找了相关资料,都说Qsys可以很智能的进行组件的互联,愣是没找到一个“智能按键”让他们自动互联,看来Altera把这项考验真水平的活都下放给最智能的人脑来干了,能不智能吗?哈哈,好了,还好特权同学底子不差,虽然以前都让SOPC Buider自个连接从不干预,但是实际接口都是牢记于心的,三下五除二便连接成功。如图5所示,看到小圆圈点点空心实心就会变化,实心代表连接上了。这连接的活可好玩了,一点不比那些年不知道祸害了多少有志青年的“连连看”差多少,那比得是速度,咱比的是准确。系统的连接其实也非常简单,我们的时钟clk和复位reset都没有做太复杂,都是clk_0组件输出,所以所有的组件都和clk_0的时钟复位连接上就对了;CPU的数据存储器和代码存储器都必须由片内RAM来担当,所以nios2_qsys的data_master和instruction_master均与代表onchip_mem的从机总线s1连接上。而其他作为总线slave的外设均连接到nios2_qsys的data_master上即可。
  


  图5
  另外,要说明的是作为系统与外部连接的接口不像SOPC Buider一样直接引出了,需要设计者特别设置一下。如图6所示,选择Export列的属性为*_external connection,然后该接口前面会出现一个export的图标。
  


  图6
  接着我们还要双击打开nios2_qsys组件,将其Reset Vector和Exception Vector均设为onchip_mem。如图7所示。
  


  图7
  就此,一个漂亮的测试系统搭建完毕,后面的事情就是分配地址、中断优先级等,这个可以如同SOPC Builder一样使用菜单栏上的自动分别选项一键分配。特权同学就常常这么干,咱对地址还真没讲究,中断优先级有时还可以根据需要调整一下。
  前面提到了Qsys tabs是一大特色,这里不一一细说,偷懒贴几张图。大家自己使用的时候可以慢慢体味。如图8,Address Map对地址的管理一目了然,而且对于不同的Master可以有不同的地址空间映射。
  


  图8
  如图9所示,System Inspector中罗列所有的信号接口以及相关属性参数,甚至可以在此处进行修改。
  


  图9
  如图10所示,HDL Example中直接给出了当前系统的例化模板,直接复制到工程顶层模块后进行修改即可,这比之前专门要到工程目录下找相关文件查看要方便得多。
  


  图10
  最后,如图11所示,Generation里可以选择系统仿真、综合以及各种输出的相关设置,最后点击右下角的Generate即可启动当前系统的生成。大家可别忘了在Output Directory中设置后系统输出路径。
  


  图11
                               
                                                               
                               
               
本文地址:https://www.eechina.com/thread-160513-1-1.html     【打印本页】

本站部分文章为转载或网友发布,目的在于传递和分享信息,并不代表本网赞同其观点和对其真实性负责;文章版权归原作者及原出处所有,如涉及作品内容、版权和其它问题,我们将根据著作权人的要求,第一时间更正或删除。
您需要登录后才可以发表评论 登录 | 立即注册

厂商推荐

关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
快速回复 返回顶部 返回列表