原创 Qsys简析

2011-8-25 17:41 9424 18 22 分类: FPGA/CPLD

         AlteraQuartus II 10.1推出Qsys这个新工具,就对这个Qsys充满了好奇,起初只是简单的认为它只是SOPC Builder的简单升级,就简单地在界面上复杂化了一下,不过经过进一步学习发现,它还是很有“内涵”的。

         QuartusII 11.0中就正式使用Qsys作为主要的SOPC工具,当然SOPC Builder还保留,可以通过tools->SOPC Builder打开,据说在12.0后就完全把SOPC builder去掉了。为了探究Altera到底对Qsys做了哪些改进,首先咱分别在SOPC BuilderQsys中建了一个最小系统,只包含了几个主要组件:NiosII Processoronchip_memoryjtag_uartpio。如图1所示为熟悉的SOPC Builder界面。

1 SOPC Builder界面

         如图2所示为在Qsys中的系统界面,与SOPC Builder对比可以发现,首先在connection这一栏明显复杂了许多,并且多出了一个clk source时钟组件,这两个变化也是这次改进的主要部分,下面分别说明一下:

2 Qsys界面

         ()时钟

         在图2中所示的时钟组件是建立系统时默认就有的,也是必须的,在组件中有clock inputclock outputclock input就是外部时钟输入引脚,可以在图中看到有输入引脚的输入接口,在Qsys中加入了这个输入输出引脚的视图功能,这个还是比较人性化的。这个时钟改进并不仅是简简单单地在界面上加入的这个时钟组件,还包括一些跨时钟域方面的优化。如图3所示为Qsys中的各种功能标签:SystemContentsAddress MapClock SettingsProject SettingsSystem InspectorHDL ExampleGeneration,至于各标签功能大家可以自己简单摸索一下。其中在Project Settings标签中有一个Clock crossing adapter type选项,这个是在SOPC Builder中没有的,在Qsys系统中,如果要处理跨时钟域的数据传输时,在系统生成时会自动加入一个clock crossing adaptor,而无需手动加入(clock crossing adaptorcomponent列表中也有)。其中在选项下拉菜单中有三个选择项:HandshakeFIFOAuto

         Hankshake:采用简单的握手协议处理跨时钟域数据传输,在这种模式下耗用的资源比较少,适用于数据吞吐量比较少时的情况;

         FIFO:采用了双时钟的FIFO做同步处理,这种模式下可以处理吞吐量比较大的数据传输,但是总体延时是handshake的两倍,适用于吞吐量比较大的存储器映射的数据传输;

         Auto:这种模式下同时采用HankshakeFIFO方式的连接,在突发连接中使用FIFO方式,其它情况下使用Handshake方式。

3

         (二)互连

         可以在图3中看到Limit interconnect pipeline stage to的选项,这个也是在SOPC Builder中没有的。这也是Qsys的改进之一,在Qsys中对用户开放了一部分的总线信息。如图4所示为一个Avalon-MM接口的互连系统,在以前的系统结构中,开放给用户的只有Avalo- MM接口masterslave交互的简单协议,并没有给出Interconnect中的交互协议。因此,在以前咱们自以为能轻松驾驭Avalon接口,其实咱们只会用而已,并不知道Avalon在底层是怎么工作的。

4

         关于Interconnect的具体资料可以查阅官方资料,此处注意一下,这个互连只针对Avalon-MM接口,而对于Avalon-ST接口的信息其实早已公布。下面咱就把重点部分简单说明一下。其中Interconnect内部组成如图5所示,总体可分为CommandResponse两条链路:

Command链路Master Network Interface连接Avalon-MM master接口,通过Command Switch打包数据(实质采用Avalon-ST接口协议打包数据)进行传输,经过Slave Network Interface输出数据给Avalon-MM slave

Response链路Slave Network Interface连接Avalon-MM slave接口,通过Response Switch打包数据进行传输,经过Master Network Interface输出数据给Avalon-MM master

5

         进一步剖析,可以对Master Network InterfaceSlave Network Interface这两个接口进行进一步分解,其中Master Network Interface如图6所示,主要由TranslatorAgentRouterLimiter5部分组成,Translator主要将Avalon-MM接口协议转换成更简单、更适用于这个Qsys Network的形式;Agent用于打包数据;Router决定包数据的传输方向;limiter保证包数据按顺序输入或者输出。

6

         Slave Network Interface如图7所示,其中包含AgentTranslator两部分,它们的功能与在Master Network Interface中类似,此处不再重复说明了,具体可参考手册,里面有详尽的解释。

7

         很遗憾,关于互连的信息只公开到这个层次,并没有对TranslatorAgentRouterLimiter的工作协议做详细说明,不过庆幸的是,在Qsys中将这些模块加入到component列表中了,如图8所示,用户将这些组件加入到系统中。

8

         现在对Qsys处于学习阶段,还没应用到项目中,相信真正用了才会知道它的好!

         听说Altera也要嵌ARM核了,还要加入AXI总线应用,这个也是比较值得期待的……

文章评论4条评论)

登录后参与讨论

用户314854 2013-8-21 17:25

开始学,完全摸不到门,那个用户模块怎么加到QSYS系统啊

用户420421 2012-7-26 19:23

Qsys

Hoki 2011-8-25 18:33

这个NiosII核再怎么优化也拼不过ARM,感觉Qsys只不过拿来吸引眼球罢了

ilove314_323192455 2011-8-25 17:54

有实用之处,也有噱头,呵呵
相关推荐阅读
Hoki 2017-01-11 17:35
LX9开发板呼吸灯实现
对LX9开发板硬件评测后,从这一节开始真正进入FPGA开发的世界。很多开发板的例程中必有跑马灯实验,老跑马也没意思,咱来把新潮的,整一个呼吸灯。 呼吸灯最初是出现在apple公司的笔记本产品中,当合上...
Hoki 2017-01-11 16:47
LX9的microblaze配置
虽然XC6SLX9芯片资源比较少,但是嵌一个microblaze还是搓搓有余的,这一节就来评测一下在XC6SLX9上microblaze的配置。 有两种方法配置microblaze,一是在ISE软件中...
Hoki 2017-01-11 16:32
zynq评测
Zynq芯片是业界第一款在FPGA中集成ARM核的芯片,由FPGA的发明者xilinx公司推出的。Zynq严格来说不能以FPGA来定义它,因为其是以处理器为中心的平台,能够在单芯片上提供软、硬件和 I...
Hoki 2017-01-11 16:19
u-boot
Zyny芯片启动加载分为3步: 1. 芯片上电启动,首先读取BootROM中的程序,初始化一些必要的外设,然后根据专用引脚电平判断该从何处启动first stage Bootloader(FSBL),...
Hoki 2017-01-11 16:09
基于zynq的交叉编译平台
Zynq芯片的最大特点是其集成了双ARM Cortex-A9处理器,因此zynq的应用基本是以这个ARM核为核心,再配合FPGA逻辑作为协处理器,几乎能实现所有较复杂的应用。并且在ARM上可以跑操作系...
Hoki 2017-01-11 15:54
u-boot image生成
这节介绍一下如何生成u-boot image文件,在SDK软件中点击Xilinx Tools→Create Boot Image工具即可生成,但是生成image文件需要首先集齐3个文件:u-boot....
我要评论
4
18
关闭 站长推荐上一条 /2 下一条